Представляю подробную инструкцию по OpenVPN v2.3.8 на Windows server 2008R2 c уровнем шифрования TLS. Так же будут подробно описаны все параметры.

Настройка сервера


Для начала качаем дистрибутив с официально сайта. Запускаем установщик openvpn-install-2.3.8-I001-x86_64. В компонентах включаем следующее:

image

Указываем путь установки (Все дальнейшие действия будут ориентироваться на данный путь указанный в примере):

image

В процессе установке потребуется установить виртуальный сетевой адаптер, соглашаемся с установкой.

image

После успешной установки переходим в каталог “C:\Programm Files\OpenVPN” где создаем директорию “SSL” (каталог может называться как угодно, в последующих настройках будет использоваться именно этот каталог), в данном каталоге будут располагаться сертификаты сервера, алгоритмы шифрования и проверка подлинности клиента.

image

Переходим в каталог “C:\Programm Files\OpenVPN\easy-rsa”, открываем с помощью notepad или notepad++ (более правильный вариант) "vars.bat" (скрипт, содержащий в себе параметры ответов для создания и генерации клиентских/серверных сертификатов и последующих настроек сервера).

В самом низу файла есть следующие параметры, которые нужно настроить под себя:

set KEY_COUNTRY=RU
set KEY_PROVINCE=MO
set KEY_CITY=MOSCOW
set KEY_ORG=OpenVPN
set KEY_EMAIL=local@mos.local
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme rem Параметр по умолчанию
set PKCS11_PIN=1234 rem Параметр по умолчанию

Сохраняем.

В этом же каталоге “C:\Programm Files\OpenVPN\easy-rsa”, есть конфигурационный файл “openssl-1.0.0.cnf”, открываем его с помощью notepad или notepad++ (более правильный вариант) и изменяем настройку, отвечающую за срок жизни сертификатов, по умолчанию 365 дней, продлим срок жизни до 3650 дней.

default_days = 3650 # how long to certify for

Сохраняем.

Далее будем генерировать следующее:

ca.crt — Собственный доверенный сертификат (Certificate Authority — далее CA) для подписи клиентских сертификатов и для их проверки при авторизации клиента.
dh1024.pem — ключ Диффи Хельмана позволяющий двум и более сторонам получить общий секретный ключ
server.crt — сертификат сервера
server.key — ключ сервера
ta.key — дополнительный ключ для tls-аутентификации (повышение безопасности соединения), сервер и каждый клиент должны иметь копию этого ключа

Открываем командную строку и переходим в каталог “C:\Program Files\OpenVPN\easy-rsa”

cd C:\Program Files\OpenVPN\easy-rsa

Вводим команду “vars” нажимаем Enter (инициируем работу со скриптами, в случае закрытия командной строки, команду “vars” придется вводить заного)

Вводим команду “clean-all” (Очищаем каталог “C:\Program Files\OpenVPN\easy-rsa\keys” c последующим созданием файла“index.txt” (база клиентов, она же database) и “serial” (ключ))

image

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “index.txt и serial”.

Вводим команду “openvpn --genkey --secret %KEY_DIR%\ta.key

image

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “ta.key”.

Вводим команду “build-dh” — генерация ключа Диффи Хельмана.

image

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “dh1024.pem”.

Вводим команду “build-ca” — генерация ключа центра сертификации (CA)
На все вопросы отвечаем по умолчанию нажатием клавиши Enter, эти параметры мы прописали в “vars.bat

image

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “ca.crt и ca.key”.

Вводим команду “build-key-server server” — генерация сертификата сервера.
На вопросы Country Name, State Name, Locality Name и т.д. отвечаем по умолчанию нажатием клавиши Enter до самого конца, эти параметры мы прописали в “vars.bat”, далее будет предложено создание сертификата сроком на 3650 дней (данный параметр мы указывали в openssl-1.0.0.cnf) нажимаем “Y”, будет предложено записать сертификат сервера в базу, нажимаем “Y”.

image

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должены создаться файлы “server.crt, server.key, server.csr”.

Вводим команду “build-key revokecrt” — команда для создания пользовательского сертификата, но в данном случае мы создаем произвольный сертификат “revokecrt” для последующей генерации файла “crl.pem”, который отвечает за проверку и последующий отзыв сертификатов. Теоретически данную процедуру можно проделать в самом конце и даже жить без нее, но тогда не сможем отзывать сертификаты и конфигурационный файл “server.ovpn” будет выглядеть иначе.

На вопросы Country Name, State Name, Locality Name и т.д. отвечаем по умолчанию нажатием клавиши Enter до вопросов Common Name и Name, на эти вопросы нужно отвечать согласно названию создаваемого сертификата пользователя, в нашем случае это произвольный сертификат “revokecrt” на оставшиеся вопросы нажимаем Enter, далее будет предложено создание сертификата сроком на 3650 дней (данный параметр мы указывали в openssl-1.0.0.cnf) нажимаем “Y”, будет предложено записать сертификат сервера в базу, нажимаем “Y”.

image

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “revokecrt.crt, revokecrt.key, revokecrt.csr

Вводим команду “revoke-full revokecrt” – команда отвечает за отзыв сертификата и последующего создания файла “crl.pem

image

Не закрывая командную строку, проверяем содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должен создаться файл “crl.pem

Теперь создадим сертификат пользователя, аналогично сертификату “revokecrt” см. выше.
Вводим команду “build-key user1” – создаем сертификат пользователя с именем user1

image.

На данном этапе работа с консолью закончена, можно закрыть окно и проверить содержимое каталога “ C:\Program Files\OpenVPN\easy-rsa\keys”, должны создаться файлы “user1.crt, user1.key, user1.csr

Рекомендую создать папку “Clients” в любом удобном для Вас месте и скопировать туда необходимые файлы для передачи пользователям:

1 — ca.crt
2 — user1.crt
3 — user1.key
4 — ta.key

Также хочу обратить Ваше внимание на то, что содержимое папки “keys” удалять нельзя, при создании пользовательских сертификатов или любых изменениях в консоли, делайте копию данного каталога во избежание потерь или случайных генераций сертификатов сервера и обновления базы данных.

Копируем файлы сервера в раннее созданную папку “ssl” в каталоге “ C:\Program Files\OpenVPN\ssl”:

1 — ca.crt
2 — server.crt
3 — server.key
4 — dh1024.pem
5 — ta.key

Переходим в каталог “C:\Program Files\OpenVPN\config” и создадим файл конфигурации сервера “server.ovpn” со следующим содержимым:

# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем порт на котором будем слушать.
port 1194
# Указываем что это TLS сервер.
tls-server
# Указываем путь к доверенному сертификату.
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
# Указываем путь к сертификату сервера.
cert «C:\\Program Files\\OpenVPN\\ssl\\Server.crt»
# Указываем путь к ключу сервера.
key «C:\\Program Files\\OpenVPN\\ssl\\Server.key»
# Указываем путь к ключю Диффи Хельмана
dh «C:\\Program Files\\OpenVPN\\ssl\\dh1024.pem»
# Указываем адресацию сети.
server 10.8.0.0 255.255.255.0
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Указываем не перечитавать файлы ключей при перезапуске туннеля.
persist-key
# Указываем путь к ключу безопасности и устанавливаем параметр сервера 0
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 0
# Разрешаем общаться клиентам внутри тоннеля.
client-to-client
# Указываем каталог с описаниями конфигураций каждого из клиентов.
client-config-dir «C:\\Program Files\\OpenVPN\\ccd»
# Указываем файл с описанием сетей между клиентом и сервером.
ifconfig-pool-persist «C:\\Program Files\\OpenVPN\\ccd\\ipp.txt»
# Указывает сверку по отозванным сертификатам.
crl-verify «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\crl.pem»
# Указываем путь к логу со статусом.
status «C:\\Program Files\\OpenVPN\\log\\logopenvpn-status.log»
# Указываем путь к логу.
log «C:\\Program Files\\OpenVPN\\log\\openvpn.log»
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
# Указывает, если в течении 120 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
keepalive 10 120
# Указываем уровень логирования.
verb 3

Сохраняем.

На сервере где будет крутиться OpenVPN необходимо проделать следующее:

1 – Если вы используете встроенный Брандмауэр Windows, создайте разрешающее правило для входящих и исходящих подключений по протоколу UDP на порт 1194.

2 – В службах сервера найдите OpenVPN Service и установите запуск на автоматический, это позволит автоматически запускаться сервису при перезагрузке сервера.

C рабочего стола сервера запускаем “OpenVPN GUI”, в трее дважды щелкаем по значку “OpenVPN GUI” откроется окно лога, если после запуска сервиса в пункте 2 нечего не произошло, нажимаем слева внизу подключиться и если все хорошо, мы должны увидеть следующее содержимое:

image

Сервис VPN на сервере запущен и готов принимать клиентов.

Настройка клиента


Запускаем ранее скаченный установщик openvpn-install-2.3.8-I001-x86_64, выбор компонентов оставляем по умолчанию, путь сохраняется прежний.

image

После успешной установки переходим в каталог “C:\Program Files\OpenVPN\config” и создаем файл конфигурации клиента “test.ovpn” со следующим содержимым:

# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем IP аддрес сервера с портом.
remote X.X.X.X 1194
# Указываем задержку в секундах для построения маршрута.
route-delay 3
# Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
client
# Указываем что мы являемся TLS клиентом.
tls-client
# Параметр защиты от MitM атак.
ns-cert-type server
# Указываем путь к доверенному сертификату.
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
# Указываем путь к клиентскому сертификату.
cert «C:\\Program Files\\OpenVPN\\ssl\\user1.crt»
# Указываем путь к клиентскому ключу.
key «C:\\Program Files\\OpenVPN\\ssl\\user1.key»
# Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 1
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Указываем, сли в течении 60 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
ping-restart 60
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
ping 10
# Указываем уровень логирования.
verb 3

Сохраняем.

C рабочего стола запускаем “OpenVPN GUI”, в трее дважды щелкаем по значку “OpenVPN”, откроется окно лога, нажимаем подключиться и если все хорошо, то мы увидим следующее:

image

Запускаем пинг на 10.8.0.1 и видим что сеть доступна (10.8.0.1 адрес, который получил виртуальный сетевой адаптер на сервере).
На сервере мы увидим лог подключения:

image

Собственно на этом этапе можно закончить и все в дальнейшем будет работать. Но я хотел бы еще кое-что добавить. Для уменьшения количества файлов у клиента и добавление еще одного пункта в безопасности (пароль на подключение), можно сделать следующее, на этапе создания сертификата пользователя на сервере, выполняем команду “build-key-pkcs12 user2” вместо “build-key user1”, выполняем все аналогично первой команде, до пункта Export Password, в этом пункте необходимо указать пароль, например 12345, данный пароль по факту назначается на сертификат “user2.p12”, при попытке подключения через “OpenVPN”, программа обращается к сертификату и требует пароль (зная пароль, его можно изменить, удалить и т.д).

image

В таком случае, комплект для пользователя будет состоять из:

1 – user2.p12
2 – ta.key

Конфигурационный файл “test.ovpn” должны быть следующего содержания:

# Создаем маршрутизируемый IP туннель.
dev tun
# Указываем протокол для подключения.
proto udp
# Указываем IP аддрес сервера с портом.
remote X.X.X.X 1194
# Указываем задержку в секундах для построения маршрута.
route-delay 3
# Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
client
# Указываем что мы являемся TLS клиентом.
tls-client
# Параметр защиты от MitM атак.
ns-cert-type server
# Указываем путь к сертификату.
pkcs12 «C:\\Program Files\\OpenVPN\\ssl\\user2.p12»
# Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
tls-auth «C:\\Program Files\\OpenVPN\\ssl\\ta.key» 1
# Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
cipher AES-128-CBC
# Включаем сжатие.
comp-lzo
# Устранение проблем с передачей MTU.
mssfix
# Указывает MTU для туннеля, должны быть одинаковые параметры клиент/сервер.
tun-mtu 1500
# Указываем, сли в течении 60 секунд не было получено ни одного пакета,
# то туннель будет перезапущен.
ping-restart 60
# Указывает отсылать ping на удаленный конец тунеля после указанных n-секунд,
# если по туннелю не передавался никакой трафик.
ping 10
# Указываем уровень логирования.
verb 3

Сохраняем.

Пробуем подключиться, вводим пароль 12345

image

Если все хорошо видим следующее:

image

Ну и на последок, как отозвать сертификат пользователя и вообще посмотреть список выданных сертификатов. Сам список храниться по следующему пути “C:\Program Files\OpenVPN\easy-rsa\keys\index.txt”

image

Для того чтобы отозвать сертификат, заходим в командную строку. Переходим в каталог “C:\Programm Files\OpenVPN\easy-rsa”:

cd C:\Program Files\OpenVPN\easy-rsa

Вводим команду “vars” нажимаем Enter (инициируем работу со скриптами). Вводим команду для отзыва сертификата пользователя “revoke-full user2” (указываем название заведенного раннее пользователя).

image

После заходим в “index.txt” “C:\Program Files\OpenVPN\easy-rsa\keys\index.txt” и видим, что сертификат отозван “R”.

image

Не готов сказать на 100%, но судя по описанию, файл “index.txt” проверяется каждый час, соответственно через час, сертификат будет заблокирован, ну или просто достаточно перезапустить сервис на сервере.

Еще рекомендую использовать отдельную учетную запись для службы “OpenVPN Service” и в случае если пользователи будут работать с этим сервером, где развернут VPN, обязательно уберите права у простых пользователей на каталог “C:\Program Files\OpenVPN”.

Всем спасибо, надеюсь, данная статься поможет многим, кто сталкивается с вопросами и не находил подходящих ответов, разжевал как мог.

Комментарии ()


  1. srs2k
    17.12.2015 17:37
    -1

    Зарегистрирован: 16 декабря 2015 в 14:42
    Приглашен: 17 декабря 2015 в 16:03 по приглашению НЛО
    Публикации: 1

    Инвайт в обмен на копипаст мануала. Okay…


    1. ZeroToon
      17.12.2015 17:49

      Ну если вы мне покажите конкретный копи паст, удалю статью.
      За основу были взяты разные мануалы, но ни в одном мануале нет полноценного описания команд от и до, а по этому мануалу сможет настроить даже ребенок, так как тут все грамотно разжевано и по порядку описано, а не там где статья состоит из 20 строк и где написано введите это, введите то и должно все работать…


      1. srs2k
        17.12.2015 17:56

        сможет настроить даже ребенок

        Вот в этом-то и печаль — читать на хабре статьи, рассчитанные на детей.


        1. ZeroToon
          17.12.2015 17:59
          +2

          Не совсем так, если человек ни разу этого не делал, ему будет приятно читать данный мануал и не искать дополнительных ответов на вопросы.


          1. Lopar Автор
            17.12.2015 18:09

            Кстати о дополнительных вопросах. Заголовок толсто обещает, что всё будет разжёвано. А потом в первых предложениях: запускаем инсталлятор, не задаём никаких вопросов и ставим галочки точно как указано на скриншоте. Дальше по тексту: находим vars и настраиваем под себя, не задаём никаких вопросов, ведь что это за переменные и что они обозначают «даже ребёнок разберётся».

            Ну и про всякие мелочи вроде WARNING на скриншотах и говорить нечего…


            1. ZeroToon
              17.12.2015 18:25

              Ну если вы хотите углубляться в переменные…
              Я может быть специально для Вас перепишу статью :)
              Мелочи вроде WARNING, ну если вы говорите о WARNING в командной строке, то хочу вас огорчить или обрадовать, выбирайте сами.
              Содержимое скрипта универсально как для Windows так и для NIX систем, вообщем дальнейший разговор считаю нецелесообразным.


              1. Lopar Автор
                17.12.2015 18:28

                Да вы далеко пойдёте с таким отношением. :)

                Это не «я хочу придраться и углубиться в переменные», это вы пишете прямым текстом:

                Так же будут подробно описаны все параметры.


        1. LinGG
          17.12.2015 20:41

          ты сначала за «копипасту» ответь


          1. srs2k
            17.12.2015 22:15
            +1

            Звучит как вызов.

            Признаю что был не совсем прав. Топик — не просто копипаста, а компиляция из пары-тройки мануалов, коих в интернете просто навалом.
            При этом никаких действительно полезных вещей в статье нет — например, в чём отличие tun и tap интерфейсов (это же статья для новичков, не так ли?) и в каких ситуациях какой лучше использовать, не упомянут момент про запуск клиентской оболочки от имени Администратора (а под простым пользователем могут быть проблемы с директивой «push route ...» — у пользователя нет прав на изменение таблицы маршрутизации.)
            В общем, если захотеть, можно придраться ко всему, что я и попытался показать. Однако моё мнение — статья «ни о чём». Копипаста.


  1. Lopar Автор
    17.12.2015 17:50
    -4

    Ребята, это же копипаста статьи www.pvsm.ru/openvpn/106518 — даже те же самые орфографические ошибки.
    Время публикации там: 2015-12-17 в 13:03
    Время публикации тут: 2015-12-17 в 16:03


    1. ZeroToon
      17.12.2015 17:55

      Посмотрите кто автор статьи, а потом уже поднимайте панику.


      1. Lopar Автор
        17.12.2015 17:57

        Я смотрю дату публикации. Главное правило Хабра (одно из):

        Хабрахабр — не место для копипастеров. Размещение полностью скопированного контента с других сайтов запрещено — даже при использовании гиперссылки на источник. Мы за авторские материалы.


    1. Lopar Автор
      17.12.2015 17:56
      -2

      На сайте моментально появилась приписка «источник — Хабрахабр». Если сейчас и время публикации изменится — будет праздник. :)


      1. ZeroToon
        17.12.2015 18:06
        +1

        Мое мнение, что модераторы публикаций, занимаются и дополнительными сайтами, поэтому не исключаю, что статья там могла появиться раньше, но самое главное что указали источник.


        1. Lopar Автор
          17.12.2015 18:11
          -1

          То есть вы сейчас прямым текстом обвинили модераторов Хабрахабра в плагиате и использовании модераторских полномочий, чтобы украсть у вас статью до её публикации на первоисточнике? Серьёзно?


          1. ZeroToon
            17.12.2015 18:19
            +2

            Обвинять я никого не собираюсь, мне все равно где будет размещена данная статья, но другого объяснения у меня нет.
            А вы смотрю провокатор, что же Вас так задело, долго пытались пробиться на хабр? никто не принимал Ваши статьи? с 30 апреля 2014 года кроме одной статьи в Вашей репутации нет, поэтому разговор считаю завершенным…


            1. Lopar Автор
              17.12.2015 18:23

              Как вы быстро скатились с «покажите конкретный копи паст, удалю статью» до «вы все представители сексуальных меньшинств, а я — дворянин из Гаскони».


              1. 4mz
                17.12.2015 18:52

                Чего вы накинулись на человека, нормальная хаутушка, может пригодится даже когда-то. Не скатывайтесь в копирастию, подумайте лучше о том, что кому-то статья, может быть, поможет (в конце концов Хабр для того и существует), а то что попрали ваше чувство справедливости, чтож… станете модератором Хабра — отыграетесь))


                1. Lopar Автор
                  17.12.2015 19:06
                  +1

                  Автор нарушил 4 правила из 11. Полезность тоже очень сомнительна. Сделайте поиск по тэгу. Найдёте массу интересного. Одно только это руководство сводит на нет «полезность» таких вот поделок. А когда автору указывают на его огрехи, а он такой: «СПЕРВА ДОБЕЙСЯ!!!», или там: «почему критикуешь? слабо просто похвалить?» — это вызывает как минимум недоумение…


                  1. 4mz
                    17.12.2015 19:23
                    +2

                    Ну чего вы, в самом деле, взъелись. «Руководство по установке и настройке OpenVPN» у меня тоже есть в закладках, но оно на целую книгу тянет, чтоб прочитать его нужно достаточно много времени вдумчивого чтения. Тут же все по быстрому и с «мурзилкой», я не говорю что статья уникальна, но, определенно, если кто-то ищет достаточно свежий и простой мануал, то статья придется «в тему». Пускай будет, не вредничайте)

                    P.S. Если бы модератор узрел нарушение, я думаю, статьи бы тут небыло.


                    1. Lopar Автор
                      17.12.2015 20:19
                      +1

                      И правда, чего это я?

                      Я спрашиваю: что значат галочки.
                      Какой ответ? «Это оптимально для всех».

                      Я спрашиваю: что значат переменные?
                      Какой ответ? «Может быть ради вас статья будет переписана».

                      Я спрашиваю: почему в командной строке выскакивают WARNING? Это нормально? Я про это окно, тащемта, которое прямо в статье подаётся — три предупреждения подряд, шутка ли:
                      image
                      Какой ответ? «хочу вас огорчить или обрадовать, выбирайте сами, дальнейший разговор считаю нецелесообразным».

                      Естественно я негодую.


    1. ValdikSS
      17.12.2015 19:13
      +1

      Перестаньте, pvsm — сайт автоматического зеркалирования статей с хабра. У них, вероятно, время в UTC.


      1. Lopar Автор
        17.12.2015 19:17

        Омг. Ой.
        Но ёпт, про такие вещи надо жирно на сайте писать. И время публикации отслеживать. Я даже предположить не мог.


        1. ValdikSS
          17.12.2015 19:19

          Так это что-то вроде саттелита, они намеренно не указывают, что берут откуда-то статьи.


          1. Lopar Автор
            17.12.2015 19:25

            Меня только время публикации с толку сбило, да. Если бы не оно — кипиша было бы существенно меньше и только по тексту, да. А так… нехорошо получилось. :(


  1. Vindicar
    17.12.2015 18:27
    +5

    Мануал почти ничем не отличается от десятка таких же для предыдущих версий Windows.

    Говорите про Windows Server, но даже не упомянули про то, что OpenVPN можно запускать как службу, без GUI. А это зачастую удобно как на клиенте — чем меньше пользователь видит отвлекающих иконок, тем сложнее что-то сломать — так и на сервере — проще настроить запуск служб с зависимостями. Например, веб сервер который отдает контент строго внутрь VPN и ломается если интерфейс не поднят.

    Клиентские ключи проще закинуть внутрь соответствующего файла .ovpn с помощью XML-подобного синтаксиса — распространять клиентские конфиги одним файлом несколько проще.

    EDIT: ну хоть про права на каталог упомянули, и то хлеб.


    1. Lopar Автор
      17.12.2015 18:31

      Клиентские ключи проще закинуть внутрь соответствующего файла .ovpn с помощью XML-подобного синтаксиса — распространять клиентские конфиги одним файлом несколько проще.

      Не знал. А это сработает, если ключи запаролены?


      1. Vindicar
        17.12.2015 18:54

        Запароленные не пробовал, но должно по идее. Там ведь просто содержимое файла ключа целиком вставляется, то есть вместо key user1.key будет <key>...содержимое файла ключа...</key>


    1. ZeroToon
      17.12.2015 18:33
      -2

      Да что же такое, еще раз акцентирую внимание на то, что в этой статье все расписано от и до и по возможности расписаны все действия и команды. В инструкции указано про службы на сервере.
      Вместо того чтобы написать хорошая статья, все доступно и понятно, тут начинаю разводить срач.


    1. ValdikSS
      17.12.2015 19:14
      +1

      OpenVPN можно запускать как службу, без GUI
      Все еще сломано, пожалуйста, не используйте это. А если нужен именно сервис, то надо накрутить NSSM.


      1. Vindicar
        17.12.2015 20:27

        Да? У меня работает. Можно чуть подробнее?


        1. ValdikSS
          18.12.2015 03:19

          Ну он еще сносно работает в 7, но в 8, 8.1 и 10 уже не очень, то зависает сервис при разрыве соединения, то просто падает. Ребята сейчас выкидывают его, 2.3.9, вышедший 2 дня назад, поддерживает NSSM полностью. Скоро будет новый сервис, насколько я знаю, с которым будет нормально работать GUI и не требовать прав администратора.


      1. yosemity
        17.12.2015 21:05

        Спасибо. Теперь можно выкинуть srvany.


  1. bougakov
    17.12.2015 18:44

    Зачем на Windows поднимать OpenVPN со всеми его родовыми травмами, если там «из коробки» есть ванильный IPSec IKEv2? Притом даже серверная лицензия не нужна


    1. ZeroToon
      17.12.2015 18:52

      Я им о круглом, они мне о зеленом…


    1. gotch
      17.12.2015 19:13

      А какие у него родовые травмы?


      1. ValdikSS
        17.12.2015 19:18
        +1

        Все еще не слишком быстро и не слишком хорошо работает под Windows, к сожалению. Windows-разработчиков в проекте всего два-три. Вот прямо сейчас сижу, отлаживаю проблемы со скоростью под Windows: всегда думал, что все более-менее нормально под Windows, а сейчас запустил и удивился — получаю в лучшем случае в 2 раза ниже скорость, чем под Linux с той же конфигурацией, а по умолчанию вообще в 4-5 раз ниже была.


        1. gotch
          17.12.2015 19:35

          Понятно.


  1. ValdikSS
    17.12.2015 19:21
    +1

    Для генерирования ключей лучше использовать Easy-RSA v3, а не v2. v2 вам подпишет ключи SHA-1, а v2 уже SHA-256. Да и DH-группу лучше использовать длиной 2048-бит и выше, а не 1024.