Настройка OpenVPN на Windows Server 2008/2012

Установка и настройка OpenVPN сервера и клиента в двух примерах с использованием Windows и Linux

Почему стоит скачать VPN на Windows 10?

  • Вы получите надежное соединение, стабильную скорость и доступ к любимому контенту
  • Установка расширения VPN для браузера распространяется только на веб-страницы, они не подходят для игр и скачивания торрентов
  • VPN для Windows 10 помогает обеспечивать максимальный уровень анонимности для пользователей, заменяя реальный IP на IP-адрес сервера VPN

Установка OpenVPN Server

Переходим на официальный сайт OpenVPN и скачиваем последнюю версию программы для соответствующей версии Windows:

Скачиваем OpenVPN для Windows

Запускаем скачанный файл — нажимаем NextI Agree — и выставляем галочку EasyRSA 2 Certificate Management Scripts (нужен для возможности сгенерировать сертификаты):

Во время установки, ставим галочку EasyRSA 2 Certificate Management Scripts

… снова Next и Install — начнется установка. В процессе мастер может выдать запрос на подтверждение установки виртуального сетевого адаптера — соглашаемся (Install/Установить).

После завершения нажимаем Next — снимаем галочку Show ReadmeFinish.

Создание сертификатов

Переходим в папку установки OpenVPN (по умолчанию, C:Program FilesOpenVPN) и создаем каталог ssl.

После переходим в папку C:Program FilesOpenVPNeasy-rsa, создаем файл vars.bat, открываем его на редактирование и приводим к следующему виду:

set «PATH=%PATH%;%ProgramFiles%OpenVPNbin»
set HOME=%ProgramFiles%OpenVPNeasy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
set KEY_DIR=keys
set KEY_SIZE=2048
set KEY_COUNTRY=RU
set KEY_PROVINCE=Sankt-Petersburg
set KEY_CITY=Sankt-Petersburg
set KEY_ORG=Organization
set KEY_EMAIL=master@dmosk.ru
set KEY_CN=DMOSK
set KEY_OU=DMOSK
set KEY_NAME=server.domain.ru
set PKCS11_MODULE_PATH=DMOSK
set PKCS11_PIN=12345678

* в каталоге easy-rsa уже есть файл vars.bat.sample — можно переименовать и использовать его.
** значение HOME не меняем, если оставили путь установки программы по умолчанию; KEY_DIR — каталог, куда будут генерироваться сертификаты; KEY_CONFIG может быть разным — его лучше посмотреть в файле vars.bat.sample или по названию соответствующего файла в папке easy-rsa; KEY_NAME желательно, чтобы соответствовал полному имени VPN-сервера; остальные опции можно заполнить произвольно.

Запускаем командную строку от имени администратора:

Запуск командной строки от имени администратора

Переходим в каталог easy-rsa:

cd %ProgramFiles%OpenVPNeasy-rsa

Запускаем vars.bat:

vars.bat

Чистим каталоги от устаревшей информации:

clean-all.bat

Снова запускаем vars.bat (после clean переопределяются некоторые переменные):

vars.bat

Теперь генерируем последовательность центра сертификации:

build-ca.bat

На все запросы нажимаем Enter.

Запускаем build-dh.bat (сертификат с использованием алгоритма Диффи-Хеллмана):

openssl dhparam -out keysdh.pem 2048

* команда может выполняться долго — это нормально.

Генерируем сертификат для сервера:

build-key-server.bat cert

* где cert — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.

После переносим из папки C:Program FilesOpenVPNeasy-rsakeys в C:Program FilesOpenVPNssl следующие файлы:

  • ca.crt
  • cert.crt
  • cert.key
  • dh.pem

Как вручную настроить IPSec VPN в Windows 10 (L2TP, SSTP, IKEv2)

Что вам понадобится:

  • Имя хоста сервера
  • Имя пользователя
  • Пароль
  • Сертификат или общий секрет

Windows имеет встроенную поддержку протоколов VPN на основе IPSec, включая L2TP, SSTP и IKEv2. Хотя каждый из этих протоколов работает немного по-разному, настройка более или менее одинакова. В этом руководстве я сосредоточусь на IKEv2.

Обратите внимание, что разные провайдеры могут использовать разные схемы шифрования. Например, если ваш провайдер использует сертификат, вам может потребоваться установить сертификат и импортировать его в доверенные корневые центры сертификации вашего ПК. Это выходит за рамки данной статьи, поэтому мы просто сделаем базовую настройку VPN.

Вот как настроить соединение IPSec VPN в Windows 10 (IKEv2):

  1. Введите «Панель управления» в строку поиска Windows и выберите верхний вариант.
  2. Перейдите в Сеть и Интернет> Центр управления сетями и общим доступом.
  3. Щелкните Настроить новое соединение или сеть.
  4. Выберите Подключиться к рабочему месту.
  5. Отметьте опцию «Нет, создавать новое соединение» и нажмите «Далее».
  6. Выберите Использовать мое подключение к Интернету (VPN).
  7. Введите имя хоста вашего сервера в поле Интернет-адреса, введите любое имя, которое вы хотите в качестве имени назначения, и нажмите «Создать».
  8. Вернувшись в окно Центра управления сетями и общим доступом, щелкните Изменить параметры адаптера на левой боковой панели.
  9. Щелкните правой кнопкой мыши только что созданное соединение и выберите «Свойства». Перейдите на вкладку Безопасность.
  10. Введите данные подключения, указанные вашим поставщиком VPN, включая тип VPN, шифрование и аутентификацию.
  11. Необязательно: перейдите на вкладку «Сеть» и снимите флажок «Протокол Интернета версии 6 (TCP / IPv6)». Это может помочь предотвратить утечку данных IPv6.
  12. Щелкните ОК, чтобы сохранить изменения.
  13. В строке поиска Windows введите «vpn» и выберите настройки VPN, что для меня является лучшим результатом.
  14. Щелкните только что настроенное VPN-соединение и выберите Дополнительные параметры.
  15. В разделе ” Свойства подключения” нажмите ” Изменить”.
  16. При необходимости введите свое имя пользователя и пароль, затем нажмите «Сохранить».
  17. Вернувшись на страницу настроек VPN, щелкните свое VPN-соединение, а затем нажмите «Подключиться».

Через несколько секунд соединение будет установлено, и VPN отобразит статус Connected.

Создаем конфигурационные файлы для OpenVPN

Конфигурационный файл сервера OpenVPN

В папке «C:Program FilesOpenVPNconfig», создаем текстовой документ server.ovpn — это будет конфиг сервера, вставляем в файл текст:

dev tun # Поднимаем L3-туннельproto udp # Протоколport 12345 # Порт который слушает впн# Ключи и сертификаты:ca ca.crtcert server.crtkey server.keydh dh1024.pemtopology subnet # Грубо говоря экономим адресаserver 10.9.0.0 255.255.255.0 # Пул адресовcipher AES-128-CBC # Метод шифрованияcomp-lzo # Сжатиеmssfix # Немного улучшит пингkeepalive 10 120 # Время жизни клиентов, если не откликнулся — отключаетverb 3 # Уровень отладки

Пробуем запустить сервер: Кликаем на рабочем столе по ярлыку OpenVPN Gui или запускаем файл «C:Program FilesOpenVPNbinopenvpn-gui.exe».

В панели задач возле к появится серый значок, кликаем по нему дважды, если через 10-20 секунд он загорелся зеленым, значит, все хорошо, если нет, тогда смотрим лог в папке log.

Конфигурация клиента OpenVPN

На компьютере клиента тоже устанавливаем OpenVPN, все галочки можно не отмечать.

Копируем из папки «C:Program FilesOpenVPNeasy-rsa» на компьютере с сервером файлы:

  • ca.crt
  • client.crt
  • client.key

на компьютер с OpenVPN клиентом в папку C:Program FilesOpenVPNconfig. В этой же папке создаем файл client.ovpn, в котором прописываем:

clientdev tunproto udpremote АДРЕС_СЕРВЕРА 12345 # Адрес и порт сервераca ca.crtcert client.crtkey client.keycipher AES-128-CBCnobindcomp-lzopersist-keypersist-tunverb 3

На клиентском компьютере запускаем OpenVPN Gui или client.ovpn.

Если подключились, пробуем проверить связь: в командной строке набираем ping 10.9.0.1. Если пинг проходит, значит все настроено верно.

На OpenVPN сервере можно настроить автоматический запуск OpenVPN службы:

  • переходим в Панель Управления — Администрирование — Службы
  • Ищем OpenVPN Service и выставляем тип запуска «Автоматически»

Ошибка «WARNING: can’t open config file: /etc/ssl/openssl.cnf «

Если при попытке создать сертификат для OpenVpn вы видите эту ошибку, то скорее всего вы не запустили перед этим действием bat-файл OpenVPNeasy-rsavars.bat.

Используем приложение OpenVPN

О штатных возможностях «десятки» я расскажу далее в статье. Но начну с описания стороннего приложения для настройки vpn.

  • Сначала необходимо узнать, какая разрядность у Вашей ОС. Данная информация отображается в окне «Свойства», которое вызывается при выборе одноименного пункта в контекстном меню «Мой компьютер». Возможно два варианта. 64-х и 32-х разрядная система.

разрядность операционной системы

Внимание! Перед установкой обязательно проверьте правильность указания системной даты и времени. Если настройки неправильны, то клиент не сможет соединиться с сервером!

Скачать программу OpenVPN

Скачать

Скачать

  • Запускаем установщик. По окончанию процесса НЕ открываем приложение!
  • Заходим в директорию, где находятся файлы программы и переходим в папку с названием «config»:

устновка vpn

  • Содержимое архива с ключами (которые предоставляются поставщиком услуг) следует скопировать в указанный выше каталог:

vpn сертификат

  • Теперь необходимо выполнить некоторые манипуляции с ярлыком установленного приложения. Кликаем на нём правой кнопкой и переходим к пункту «Свойства».
  • В окне перемещаемся на вкладку «Ярлык». Находим поле для ввода с названием «Объект» и ничего в нём не удаляем. Просто в самом конце строки вставляем этот код: —connect «test.ovpn»
    Только вместо выражения в кавычках нужно указать индивидуальное конфигурационное имя.
  • Нажимаем «Применить», но окно не закрываем. Нам еще нужно кое-что изменить на вкладке «Совместимость».
  • Ставим отметку в чек-боксе: «Выполнять эту программу от имени администратора»:

Запуск программы от администратора

  • Закрываем свойства нажатием по кнопке «ОК» и запускаем утилиту OpenVPN.
  • Загрузится окно соединения, после автоматического закрытия которого в панели уведомлений появится значок клиента:

vpn соеденился

Доступ к локальной сети

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

1. Настройка реестра

Для включения IP маршрутизации в Windows необходимо в ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters найти параметр IPEnableRouter и задать ему значение 1. Это можно сделать в утилите редактирования реестра (regedit) или командой:

reg add «HKLMSYSTEMCurrentControlSetServicesTcpipParameters» /v IPEnableRouter /t REG_DWORD /d 1 /f

* командную строку необходимо запускать от администратора.

2. Настройка OpenVPN Server

В конфигурационный файл OpenVPN добавим:

push «route 172.16.10.0 255.255.255.0»
push «route 192.168.2.0 255.255.255.0»

* где 172.16.10.0 — VPN сеть; 192.168.2.0 — локальная сеть, в которую необходимо «попасть» пользователям openvpn.

При необходимости использовать DNS внутренней сети также добавим:

push «dhcp-option DNS 192.168.0.15»
push «dhcp-option DNS 192.168.0.16»
push «dhcp-option DOMAIN dmosk.local»

* где 192.168.0.15 и 192.168.0.16 — внутренние DNS-серверы; dmosk.local — домен, который будет добавляться к узлам, обращение к которым идет по неполному имени.

Если нам нужно, чтобы все запросы клиента (в том числе, Интернет) ходили через сервер OpenVPN, добавляем:

push «redirect-gateway def1»

* в таком случае, нам не обязательно добавлять push route, который мы использовали выше.

Перезагружаем службу OpenVpnService.

3. Разрешаем доступ к локальной сети

Заходим в управление сетевыми подключениями (Панель управленияСеть и ИнтернетСетевые подключения). Кликаем правой кнопкой мыши по адаптеру локальной сети — Свойства:

Открываем свойства сетевого адаптера для локальной сети

На вкладке Доступ ставим галочку Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера:

Скачиваем OpenVPN для Windows

… и сохраняем настройки.

Описание команд и параметров OpenVPN

Команды без — (двумя знаками дефиса) перед командой должны быть использованы в конфигурационном файле, команды с — в начале используются только из командной строки.

  • remote < host > — определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.
  • local < host > — определяет локальный ip или имя хоста, на котором будет работать OpenVPN. Актуально, если на локальной машине несколько адресов.
  • dev < device > — определяет какой использовать тип устройства tun или tap. Например: dev tun или dev tap. Так же можно явно указывать номер виртуального интрефейса, например tun0.
  • port < port number > — указывает на каком порту будет работать OpenVPN (локально и удаленно).
  • proto < proto > — какой протокол будет использоваться. Возможные значения: udp, tcp, tcp-client, tcp-server.
    • tcp-client — сам пытается установить соединение
    • tcp-server — только ждет подключений
    • Использование протокола udp VPN будет работать чуть быстрее, чем tcp. Но в плане стабильности работы лучше выбирать tcp (как показывает практика, VPN-соединение более устойчиво)
  • remote-random — если указана данная опция и в random перечисленно несколько удаленных хостов, то OpenVPN в случайном порядке будет к ним подключаться. Применяется для балансировки нагрузки.
  • float — позволяет удаленному хосту изменять IP во время работы туннеля. Соединение при этом не разрывается.
  • ipchange < cmd > — выполняет скрипт или команду указанную в < cmd >, если IP сменился. Пример: ipchange script-ip.sh
  • connect-retry < seconds > — пробует переподключиться через указанное время в секундах, если соединение было разорвано.
  • connect-retry-max < n > — максимальное количество повторов если соединение было разорвано
  • resolv-retry < seconds > — если OpenVPN не удалось узнать имя удаленного хоста по DNS, то через указанное количество секунд попытаться переподключиться.
  • lport < port > — указывает на локальный порт для использования OpenVPN
  • rport < port > — аналогично для удаленного порта. Пример: rport 8000 — OpenVPN будет пытаться подключится к удаленному порту 8000
  • nobind — использовать динамический порт для подключения (только для клиента)
  • shaper < bytes > — указывает скорость передачи данных в байтах для исходящего трафика (только для клиента)
  • tun-mtu < mtu size > — устанавливает максимальный размер MTU. По умолчанию tun-mtu равен 1500. Использование: tun-mtu 1200
  • dev-node < interface name > — устанавливает имя виртуального интерфейса. Например: dev-node openvpn1
  • ifconfig — устанавливает локальный IP и маску подсети для туннельного интерфейса. Например: ifconfig 10.3.0.1 255.255.255.0
  • server < network > < mask > — автоматически присваивает адреса всем клиентам (DHCP) в указанном диапазоне с маской сети. Данная опция заменяет ifconfig и может работать только с TLS-клиентами в режиме TUN, соответственно использование сертификатов обязательно. Например: server 10.3.0.0 255.255.255.0 . Подключившиеся клиенты получат адреса в диапазоне между 10.3.0.1 и 10.3.0.254.
  • server-bridge < gateway > < mask > < pool > — сервер в режиме моста для TAP устройств. Пример: server bridge 10.3.0.1 255.255.255.0 10.3.0.128 10.3.0.254 Клиентам будут выданы адреса в диапазоне 10.3.0.128 — 10.3.0.254, в качестве шлюза будет указан 10.3.0.1.
  • mode server — переключает OpenVPN в режим сервера (начиная с 2-й версии)
  • mode p2p — данная опция идет по умолчанию.

Опции в режиме сервера

  • push < options > — передача клиенту конфигурационных параметров. Пример: push «route 192.168.0.0 255.255.255.0». Аналогично с помощью push клиенту могут передаваться следующие параметры: route, route-gateway, route-delay, redirect-gateway, inactive, ping, ping-exit, ping-restart, persist-key, persist-tun, comp-lzo, dhcp-option, ip-win32.  Последние две опции применимы только для Window-клиентов. Например передадим Windows-клиенту адрес DNS-сервера 11.11.11.11: push «dhcp-option DNS 11.11.11.11»
  • ifconfig-pool-persist ipp.txt — в файле ipp.txt назначаем клиентам статические IP-адреса. В файле в каждой строке пишем «название_сертификата,айпи_адрес», например: «demyanovich,172.16.25.10»
  • comp-lzo — параметр сжатия трафика, идущего через виртуальный туннель. Может принимать значения yes, no, adaptive. Последнее используется по умолчанию.
    • comp-lzo yes — принудительно включить сжатие
    • comp-lzo no — принудительно отключить сжатие
    • comp-lzo adaptive — адаптивный режим.

Команды и параметры при работе с сертификатами x509 и параметрами шифрования

  • cipher < alg > — указываем алгоритм шифрования. Например: cipher AES-256-CBC. Рекомендуется использование шифров в режиме CBC (Cipher Block Chaining).
  • keysize < n > — размер ключа в битах. Например: keysize 128
  • auth < alg > — алгоритм хэширования. Пример: auth SHA1
  • df < file > — файл с ключем Диффи-Хелмана
  • ca < file > — файл сертификата для CA
  • cert < file > — сертификат локальной машины
  • key < file > — локальный ключ машины
  • tls-server — явно указывает, что данный хост является tls-server
  • tls-client — соответственно tls-client
  • pkcs12 < file > — указываем файл (PKCS12), который содержит в себе сертификат, ключ и CA в одном файле. Пример: pkcs12 /file
  • crl-verify < file > — список отозванных сертификатов, т.е. blacklist.
  • no-replay — отключает защиту OpenVPN от атаки повторного воспроизведения (replay attack). Крайне не рекомендуется отключать!
  • no-iv — отключает использование вектора инициализации шифра (IV). Крайне не рекомендуется отключать!
  • secret < file > — включает режим шифрования и аутентификации на статических ключах. В качестве параметра использует заранее сгенерированный, командой —genkey, файл. Например: secret key.txt
  • Все доступные алгоритмы шифрования можно просмотреть выполнив из командной строки: openvpn —show-ciphers
  • Алгоритмы хэширования: openvpn —show-digests
  • Показать все доступные TLS-шифры (TLS используется только для шифрования канала управления): openvpn —show-tls
  • Показать все доступные крипто-устройства в системе (если такие имеются): openvpn —show-engines

Команды для управления маршрутизацией

Обозначение: VPN-хост — удаленная сторона (удаленный хост)

  • route < network > — устанавливает указанную маршрутизацию на VPN-хосте, после успешного запуска туннеля. Пример: route 10.0.10.0 255.255.255.252
  • route-gateway < IP > — устанавливает шлюз на VPN-хосте. Пример: route-gateway 192.168.0.22. После успешного запуска виртуального туннеля клиенту будет задан шлюз 192.168.0.22
  • route-delay < seconds > — указывает подождать n-секунд перед установкой маршрутов. Пример: route-delay 5 — через 5 секунд после установки туннеля будут заданы маршруты.
  • route-up < cmd > — выполнить скрипт или программу < cmd > после установки маршрутов. Пример: route-up /script.sh
  • redirect-gateway — установить шлюзом по умолчанию удаленный сервер. Т.е. когда удаленный пользователь подключается к нашему серверу, то ему будет задан шлюз по умолчанию на наш сервер.

Команды для управления туннелем

  • ping < seconds > — указывает отсылать ping на удаленный конец тунеля после указанных n-секунд, если по туннелю не передавался никакой трафик. Пример:
    ping 10
  • ping-restart < seconds > — если за указанное время не было получено ни одного пакета с удаленной стороны, то перезапускать туннель. Пример: ping-restart 60 — если в течении 60 секунд не было получено ни одного пакета, то туннель будет перезапущен.
  • ping-timer-rem — позволяет перезапускать туннель, только когда указан удаленный адрес.
  • persist-tun — данная опция оставляет без изменения устройства tun/tap при перезапуске OpenVPN.
  • persist-key — указывает не перечитавать файлы ключей при перезапуске туннеля.
  • resolv-retry < seconds > — устанавливает время в секундах для запроса об удаленном имени хоста. Актуально только если используется DNS-имя удаленного хоста. Пример: resolv-retry 86400
  • inactive < seconds > — после n-секунд неактивности устройство TUN/TAP автоматически отключется. Пример: inactive 120
  • ping-exit < seconds > — если за указанные n-секунд не было получено ни одного пакета, то отключать OpenVPN. Пример: ping-exit 120
  • keepalive < seconds > < seconds > — является совмещением сразу двух команд — ping и ping-restart. Использует сразу два параметра в секундах, перечисленных через пробел. Пример: keepalive 10 180 — каждые 10 секунд посылать ping на удаленный хост, и, если за 180 секунд не было получено ни одного пакета — то перезапускать туннель.
  • persist-local-ip < IP > — оставлять неизменными локальный IP адрес и номер порт, если туннель был перезапущен.
  • persist-remote-ip < IP > — оставлять неизменными удаленный IP адрес и номер порт, если туннель был перезапущен. persist-remote-ip 192.168.50.1

Методы аутентификации

  • auth-user-pass-verify < script > < method > — указывается только на серверной стороне.
    • < script > — путь к скрипту, который будет производить авторизацию. Скрипт должен возвращать 0 если авторизация успешна, и соответственно, 1 если авторизация не успешна.
    • < method > — метод авторизации, может быть двух типов: via-env и via-file
  • auth-user-pass < file >- указывается на клиентской стороне. Параметр не обязателен, если он отсутствует то будет предложено ввести пару логин/пароль. должен содержать имя пользователя и пароль в двух строчках: username и password
  • client-cert-not-required — отключает авторизацию по сертификатам

Работа с прокси

OpenVPN без проблем может работать через http и socks прокси.

  • http-proxy < server port [auth] > — указываем адрес и порт прокси-сервера. http-proxy 192.168.0.12 8080
  • Если требуется авторизация на прокси-сервере: http-proxy < server port authfile > — где authfile — файл содержащий две строки (имя пользователя и пароль) или stdin (будет запрошено имя пользователя и пароль). Так же после authfile требуется указать метод авторизации. Можно оставить auto для автоматического выбора метода авторизации или указать явно через auth-method. auth-method может быть трех видов «none», «basic» или «ntlm».
  • http-proxy-retry — переподключаться, если соединение было разорвано.
  • http-proxy-timeout < seconds > — считать соединение с прокси-сервером разорванным после n-секунд неактивности. Например: http-proxy-timeout 5
  • socks-proxy < server port > — указываем сокс-прокси сервер. Пример: socks-proxy 192.168.0.12 8080
  • socks-proxy-retry — переподключаться, если соединение было разорвано.
  • auto-proxy — автоматически определять прокси-сервер.

Скриптинг

  • up < command >- выполнить команду после запуска устройства TUN/TAP. Пример: up script-up.sh
  • up-delay < seconds > — подождать n-секунд перед запуском команды указанной в up. Пример: up-delay 5
  • down < command > — выполнить команду когда интерфейс TUN/TAP выключится. Пример: down script-down.sh
  • down-pre — выполнить команду, указанную в down перед выключением интерфейса TUN/TAP
  • up-restart < command > — выполнить команду после каждого реконнекта
  • route-up < command > — выполнить команду после установки сетевых маршрутов. Пример: route-up script.sh
  • learn-address < command > — выполнить указанную команду, если ip удаленной стороны изменился.
  • ipchange < command > — выполнить команду, если ip сервера изменился.
  • client-connect < command > — выполнить команду, когда клиент подключился.
  • client-disconnect < command > — выполнить команду, когда клиент отключился.

Команды отладки и поиска неисправностей

  • verb < verbosity level > — устанавливает уровень информативности отладочных сообщений. Может принимать параметр от 0 до 11. По умолчанию verb равен 1.
    При уровне verb 5 и выше в логе будут встречаться подобные записи: RwrW. R (read), W (write) — соответственно чтение и запись. Большая буква обозначает, что пакет был считан (R) или записан (W) на виртуальном устройстве TUN/TAP, а маленькие — считан (r) и записан (w) в туннеле.
  • mute < number of messages > — если значение установлено в 10, то в лог будет записываться только по 10 сообщений из одной категории.
  • log < file > — указываем лог-файл. Если данный параметр не указан, то весь вывод openvpn будет производиться в stdout.
  • log-append < file > — дописывать сообщения в лог-файл, а не перезаписывать.
  • status < file > — указывает путь к статус-файлу, в котором содержится информация о текущих соединениях и информация о интерфейсах TUN/TAP.

Чем отличаются виртуальные устройства tun и tap?

  • TUN — туннель, соединение по которому указывается по типу: локальный IP < — > удаленный IP. Например, при явном указании ifconfig: —ifconfig 10.3.0.2 10.3.0.1. В этом примере 10.3.0.2 — локальный IP, 10.3.0.1 — удаленный IP
  • TAP — эмулирует виртуальную ethernet карточку, для которой требуется указывать локальный IP и маску подсети. Например: —ifconfig 10.3.0.2 255.255.255.0

Как сделать автоматический старт OpenVPN соединения при запуске Windows? 

Каждый раз запускать вручную соединение  неудобно. В ярлыке OpenVPNgui  (свойствах объекта) дописываем аргумент —connect server.ovpn, Ярлык помещаем в «автозагрузку». Я настраивал автозапуск быстро с помощью glary utilites

Вот так это выглядит Команда —connect дает соединение, а настройки его берутся из файла  нашего server.ovpn

Если планируется круглосуточная работа  сервера — советую настроить операционную систему на автоматический вход без пароля. Это гарантирует самозапуск соединения после  перезагрузок, которые бывают при отключении света, установки обновлений.

С сервером закончили. Не забываем открыть порт (указанный в конфиге сервера) на роутере, чтобы предоставить доступ к  нашему серверу извне.

Как проверить правила брендмауэра

Чтобы функционирование виртуальной частной сети проходило корректно, на стороне сервера необходимо открыть соответствующий порт. Стандартно его имя UDP 1194.

Зайдите в установленный системный Firewall и посмотрите, разрешен ли доступ к порту антивирусным программным обеспечением и брендмауэром.

Использование штатных возможностей Windows 10

Как создать защищенное соединение без стороннего софта? К счастью, в «десятке» предусмотрена такая возможность. Вот подробная инструкция:

  • Открываем «Центр управления сетями» и кликаем по самой первой ссылке «Создание нового подключения».

подключание vpn в windows

  • Нас интересует второй вариант (как на скрине):

Добавляем vpn соединие

  • Продолжаем в том же духе, выбрав на следующем этапе верхний пункт из списка:

подключение vpn в windows

  • Чтобы корректно подключить ПК к сети, стоит указать данные для VPN:
  1. IP (или домен);
  2. Название соединения.
  • После ввода нажимаем «Создать»:

настриваем соединение vpn

Новое соединение будет отображаться в списке сетей. Чтобы установить связь достаточно кликнуть по названию, а затем на соответствующую кнопку:

vpn windows 10

Откроется форма для ввода личных данных:

vpn-open пароль

Если всё настроено правильно, то спустя мгновение Вы подключитесь к серверу.

Возможные проблемы

Большая часть проблем решается при помощи логов, которые находятся в папке C:Program FilesOpenVPNlog. Уровень детализации лога контролируется параметром verb в конфигурационном файле сервера или клиента.

Также возможны следующие часто возникающие проблемы:

  1. Проблема: клиент постоянно пытается подключиться к серверу, но соединения не происходит или подключение зависает.
    Причина: сервер блокирует подключения по настроенному порту VPN (в нашем примере, 443).
    Решение: на сервере необходимо добавить 443 порт в исключения брандмауэра или отключить последний.
     
  2. Проблема: при попытке подключиться к серверу выскакивает ошибка «Не удалось подключиться к config».
    Причина: ошибка в настройках.
    Решение: перепроверьте каждую строчку файла конфигурации. Проверьте наличие всех файлов, на которые ссылаетесь в настройках.
     
  3. Проблема: клиенты получают одинаковые IP-адреса.
    Причина: подключение выполняется под одним и тем же пользователем.
    Решение: сервер выдает одинаковые адреса одинаковым клиентам. Необходимо настроить авторизацию на сервере и выдать каждому клиенту индивидуальные настройки.
     
  4. Проблема: соединение происходит, но через несколько минут связь прерывается.
    Причина: дублирование IP-адресов.
    Решение: данная проблема описана выше (пункт 3).

Полезные ссылки:

  • geektimes.ru/post/197744 — оригинал этой статьи — «OpenVPN: создание сервера на Windows»
  • interface31.ru — схожая статья «Организация каналов между офисами при помощи OpenVPN с дополнительной парольной защитой», с описанием полезных нюансов
  • habrahabr.ru/post/273371 — Подробная инструкция по OpenVPN v2.3.8 на Windows server 2008R2
  • Установка OpenVPN на Windows VPS
  • Установка и настройка OpenVPN на Windows 2008
  • habrahabr.ru/company/1cloud/blog/307280 — Немного о VPN: Краткий обзор программных реализаций

Понравилось? =) Поделись с друзьями:

Возможно, Вы это тоже захотите попробовать

  1. Настройка OpenVPN-сервера с аутентификацией через LDAP (Active Directory) на Ubuntu Server
  2. Установка и настройка OpenVPN на Linux CentOS 7
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: