Как настроить сервер OpenVPN на Windows
OpenVPN позволяет настроить VPN-сервер как на платформе Windows Server, так и версии для рабочего компьютера (Windows 10, 8, 7).
Установка OpenVPN Server
Переходим на официальный сайт OpenVPN и скачиваем последнюю версию программы для соответствующей версии Windows:
Запускаем скачанный файл — нажимаем Next — I Agree — и выставляем галочку EasyRSA 2 Certificate Management Scripts (нужен для возможности сгенерировать сертификаты):
. снова Next и Install — начнется установка. В процессе мастер может выдать запрос на подтверждение установки виртуального сетевого адаптера — соглашаемся (Install/Установить).
После завершения нажимаем Next — снимаем галочку Show Readme — Finish.
Создание сертификатов
Переходим в папку установки OpenVPN (по умолчанию, C:\Program Files\OpenVPN) и создаем каталог ssl.
После переходим в папку C:\Program Files\OpenVPN\easy-rsa, создаем файл vars.bat, открываем его на редактирование и приводим к следующему виду:
set «PATH=%PATH%;%ProgramFiles%\OpenVPN\bin»
set HOME=%ProgramFiles%\OpenVPN\easy-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:
Чистим каталоги от устаревшей информации:
Снова запускаем vars.bat (после clean переопределяются некоторые переменные):
Теперь генерируем последовательность центра сертификации:
На все запросы нажимаем Enter.
Запускаем build-dh.bat (сертификат с использованием алгоритма Диффи-Хеллмана):
openssl dhparam -out keys\dh.pem 2048
* команда может выполняться долго — это нормально.
Генерируем сертификат для сервера:
* где cert — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.
После переносим из папки C:\Program Files\OpenVPN\easy-rsa\keys в C:\Program Files\OpenVPN\ssl следующие файлы:
Настройка сервера
Переходим в папку C:\Program Files\OpenVPN\config и создаем файл server.ovpn. Открываем его на редактирование и приводим к следующему виду:
port 443
proto udp
dev tun
dev-node «VPN Server»
dh «C:\\Program Files\\OpenVPN\\ssl\\dh.pem»
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
cert «C:\\Program Files\\OpenVPN\\ssl\\cert.crt»
key «C:\\Program Files\\OpenVPN\\ssl\\cert.key»
server 172.16.10.0 255.255.255.0
max-clients 32
keepalive 10 120
client-to-client
comp-lzo
persist-key
persist-tun
cipher DES-CBC
status «C:\\Program Files\\OpenVPN\\log\\status.log»
log «C:\\Program Files\\OpenVPN\\log\\openvpn.log»
verb 4
mute 20
* где port — сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1194, занятые порты в Windows можно посмотреть командой netstat -a); dev-node — название сетевого интерфейса; server — подсеть, в которой будут работать как сам сервер, так и подключенные к нему клиенты.
** так как в некоторых путях есть пробелы, параметр заносится в кавычках.
*** при использовании другого порта необходимо проверить, что он открыт в брандмауэре или на время тестирования отключить его.
В сетевых подключениях Windows открываем управление адаптерами — TAP-адаптер переименовываем в «VPN Server» (как у нас указано в конфигурационном файле, разделе dev-node):
Теперь открываем службы Windows и находим «OpenVpnService». Открываем ее, настраиваем на автозапуск и включаем:
Ранее переименованный сетевой интерфейс должен включиться:
VPN-сервер работает. Проверьте, что сетевой адаптер VPN Server получил IP 172.16.10.1. Если он получает что-то, на подобие, 169.254. выключаем сетевой адаптер — перезапускаем службу OpenVpnService и снова включаем сетевой адаптер.
Настройка клиента
На сервере:
На сервере генерируем сертификат для клиента. Для этого сначала чистим файл index.txt в папке C:\Program Files\OpenVPN\easy-rsa\keys.
Затем запускаем командную строку от имени администратора:
Настройка OpenVPN. Подключение к бесплатным серверам VPN Gate
Настройка OpenVPN для Windows
Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate, используя клиент OpenVPN в системах Windows XP, 7, 8, 10, Server 2003, 2008, 2012.
1. Установите клиентское приложение OpenVPN для вашей операционной системы. Запустите установочный файл. Откроется мастер установки. Следуйте подсказкам на экране, чтобы выполнить установку приложения.
2. Скачайте и загрузите файл конфигурации подключения OpenVPN (файл. ovpn). Данная процедура требуется только при первичной настройке подключения.
Файл конфигурации формата *.ovpn понадобиться для подключения к серверу ретрансляции VPN Gate через протокол OpenVPN.
Загрузить файл конфигурации (OpenVPN Config file) можно на странице списка открытых бесплатных серверов ретрансляции http://www.vpngate.net/en/. Выберите VPN-сервер, к которому вы хотите подключиться и нажмите на соответствующий файл *.ovpn, чтобы скачать его на рабочий стол или папку загрузки.
После сохранения файла на компьютере, он будет отображаться как иконка OpenVPN. Тем не менее, вы не сможете установить подключение, просто дважды кликнув по файлу.
Нужно переместить файл *.ovpn в папку “config” основной директории установки OpenVPN.
Откройте папку C:\Program Files\OpenVPN\config и скопируйте файл *.ovpn в нее.
3. Подключение к VPN
Кликните правой кнопкой мыши по иконке “OpenVPN GUI” на рабочем столе и выберите опция “Запустить от имени администратора”. В противном случае, установить VPN подключение не удастся.
Иконка OpenVPN GUI появится в области уведомления панели задач (системном трее). В некоторых случаях иконка может быть скрытой, нажмите по значку стрелки, чтобы показать все скрытые иконки.
Щелкните правой кнопкой мыши по иконке OpenVPN GUI и нажмите “Подключить”.
Запуститься VPN подключение. Статус подключения будет отображаться на экране. Если вы увидите диалоговое окно запроса имени пользователя и пароля. Введите “vpn” в оба поля. Данное окно появляется очень редко.
Если VPN подключение успешно установлено, то появится всплывающее сообщение как на скриншоте.
4. Интернет без ограничений
Когда подключение VPN установлено, в системе Windows создается виртуальный сетевой адаптер TAP-Windows Adapter V9. Этот адаптер получит IP-адрес, который начинается с “10.211”. Виртуальный адаптер получит адрес шлюза по умолчанию.
Вы сможете проверить конфигурацию сети, запустив команду ipconfig /all в командной строке Windows.
Когда соединение установлено, весь сетевой трафик будет проходить проходить через VPN-сервер. Убедиться в этом вы сможете с помощью команды tracert 8.8.8.8 в командной строке Windows.
Как показано на скриншоте выше, если пакеты проходят через «10.211.254.254», значит ваше подключение ретранслируется через один из серверов VPN Gate. Вы также можете перейти на основную страницу VPN Gate, чтобы посмотреть глобальный IP-адрес.
Вы сможете увидеть видимое из сети местоположение, которое будет отличаться от вашей фактической локации.
Настройка OpenVPN для MacOS
Данная инструкция демонстрирует, как подключиться к серверу ретрансляции VPN Gate, используя приложение Tunnelblick. Tunnelblick является версий клиента OpenVPN с графической оболочкой. для систем MacOS.
1. Установите приложение Tunnelblick
Скачайте и установите последнюю версию приложения Tunnelblick. Во время установки на экране будут показываться инструкции.
После завершения установки появится следующий экран. Выберите опцию “У меня есть файлы конфигурации”.
На экране будет показана инструкция по добавлению конфигурации в Tunnelblick.
Нажмите ОК, чтобы закрыть окно.
2. Скачайте и загрузите файл конфигурации подключения OpenVPN (файл .ovpn). Данная процедура требуется только при первичной настройке подключения.
Файл конфигурации формата *.ovpn понадобиться для подключения к серверу ретрансляции VPN Gate через протокол OpenVPN.
Скачать файл конфигурации (OpenVPN Config file) можно на странице списка открытых бесплатных серверов ретрансляции http://www.vpngate.net/en/. Выберите VPN-сервер, к которому вы хотите подключиться и нажмите на соответствующий файл *.ovpn, чтобы его загрузить в папку загрузок (Downloads).
Чтобы установить файл конфигурации *.ovpn, перетащите его на значок Tunnelblick в строке меню, либо на список конфигураций во вкладке «Конфигурации» окна «Детали VPN». Если необходимо установить сразу несколько конфигурационных файлов — выделите их все, а затем перетащите.
Во время добавления нужно будет ввести имя пользователя и пароль от учетной записи MacOS.
3. Подключение к VPN
Нажмите по иконке Tunnelblick на верхней панели инструментов MacOS и выберите опцию “Соединить [название конфигурации]”. Будет запущено подключение к VPN.
Появится статус подключения к VPN, как показано на скриншоте. После успешной установки подключения, в основном окне Tunnelblick будет показываться состояние “Соединен”.
4. Интернет без ограничений
Когда соединение установлено, весь сетевой трафик будет проходить проходить через VPN-сервер. Вы также можете перейти на основную страницу VPN Gate, чтобы посмотреть глобальный IP-адрес. Вы сможете увидеть видимое из сети местоположение, которое будет отличаться от вашей фактической локации.
При подключении к VPN вы сможете посещать заблокированные веб-сайты и играть в заблокированные игры.
OpenVPN сервер на Windows: как настроить
В этой статье кратко и без лишнего описано, то, как быстро настроить OpenVPN сервер в Windows и сконфигурировать OpenVPN клиента.
Бывает необходимо построить защищенную, шифрованную связь между компьютерами без лишних затрат на оборудование и ПО.
В этом поможет такая бесплатная и известная программа, как OpenVPN — свободная реализация технологии виртуальной частной сети (VPN).
Установка OpenVPN Server на Windows
- Качаем инсталлятор OpenVPN: openvpn.net/index.php/open-source/downloads
- Устанавливаем: обязательно отметьте все пункты птичками, на предложение установить драйвер отвечаем утвердительно.
Создание сертификатов и ключей OpenVPN
- Запускаем консоль (командную строку) из под администратора
- Переходим в папку куда установили OpenVPN: cd «C:\Program Files\OpenVPN\easy-rsa»
- Запускаем: init-config.bat
- В папке «C:\Program Files\OpenVPN\easy-rsa» появится файл vars.bat, открываем его в блокноте.
Вот содержимое файла, которое вышло у меня:
В следующих строках указал вот такие данные:
Укажите что-либо свое, в строках где есть «server» ничего не меняйте.
В этой же папке открываем файл «openssl-1.0.0.cnf» и ищем строчку default_days 365, ставим 3650: теперь сертификаты будут действительны на протяжении 10 лет.
Снова переходим в командную строку которая запущена от имени администратора и выполняем команды:
- cd «C:\Program Files\OpenVPN\easy-rsa»
- vars
- clean-all — в ответ должно написать два раза «Скопировано файлов: 1». Значит, все хорошо
- build-dh — создаст ключ Диффи-Хельмана.
- build-ca — создаст основной сертификат. Будут заданы вопросы, просто нажимаем Enter пока работа команды не завершится.
- build-key-server server — опять таки будут вопросы: жмем Enter, когда увидим два вопроса «Sign the certificate?» и «1 out of 1 certificate requests certified, commit?», жмем Y. Сертификаты для сервера созданы.
- build-key client — создаем сертификат клиента.
- Жмем Enter, но.
- При вопросе Common Name (eg, your name or your server’s hostname) нужно ввести client.
- В конце также два раза Y.
- Для каждого клиента создается новый сертификат, только с другим именем, например, build-key client1 и также указывать его в common name.
- Из папки C:\OpenVPN\easy-rsa\keys копируем файлы: ca.crt, dh1024.pem, server.crt, server.key в папку C:\OpenVPN\config.
Создаем конфигурационные файлы для OpenVPN
Конфигурационный файл сервера OpenVPN
В папке «C:\Program Files\OpenVPN\config», создаем текстовой документ server.ovpn — это будет конфиг сервера, вставляем в файл текст:
Пробуем запустить сервер: Кликаем на рабочем столе по ярлыку OpenVPN Gui или запускаем файл «C:\Program Files\OpenVPN\bin\openvpn-gui.exe».
В панели задач возле к появится серый значок, кликаем по нему дважды, если через 10-20 секунд он загорелся зеленым, значит, все хорошо, если нет, тогда смотрим лог в папке log.
Конфигурация клиента OpenVPN
На компьютере клиента тоже устанавливаем OpenVPN, все галочки можно не отмечать.
Копируем из папки «C:\Program Files\OpenVPN\easy-rsa» на компьютере с сервером файлы:
на компьютер с OpenVPN клиентом в папку C:\Program Files\OpenVPN\config. В этой же папке создаем файл client.ovpn, в котором прописываем:
На клиентском компьютере запускаем 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-файл OpenVPN\easy-rsa\vars.bat.
Описание команд и параметров OpenVPN
Команды без — (двумя знаками дефиса) перед командой должны быть использованы в конфигурационном файле, команды с — в начале используются только из командной строки.
- remote — определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.
- local — определяет локальный ip или имя хоста, на котором будет работать OpenVPN. Актуально, если на локальной машине несколько адресов.
- dev — определяет какой использовать тип устройства tun или tap. Например: dev tun или dev tap. Так же можно явно указывать номер виртуального интрефейса, например tun0.
- port — указывает на каком порту будет работать OpenVPN (локально и удаленно).
- proto — какой протокол будет использоваться. Возможные значения: udp, tcp, tcp-client, tcp-server.
- tcp-client — сам пытается установить соединение
- tcp-server — только ждет подключений
- Использование протокола udp VPN будет работать чуть быстрее, чем tcp. Но в плане стабильности работы лучше выбирать tcp (как показывает практика, VPN-соединение более устойчиво)
- remote-random — если указана данная опция и в random перечисленно несколько удаленных хостов, то OpenVPN в случайном порядке будет к ним подключаться. Применяется для балансировки нагрузки.
- float — позволяет удаленному хосту изменять IP во время работы туннеля. Соединение при этом не разрывается.
- ipchange — выполняет скрипт или команду указанную в , если IP сменился. Пример: ipchange script-ip.sh
- connect-retry — пробует переподключиться через указанное время в секундах, если соединение было разорвано.
- connect-retry-max — максимальное количество повторов если соединение было разорвано
- resolv-retry — если OpenVPN не удалось узнать имя удаленного хоста по DNS, то через указанное количество секунд попытаться переподключиться.
- lport — указывает на локальный порт для использования OpenVPN
- rport — аналогично для удаленного порта. Пример: rport 8000 — OpenVPN будет пытаться подключится к удаленному порту 8000
- nobind — использовать динамический порт для подключения (только для клиента)
- shaper — указывает скорость передачи данных в байтах для исходящего трафика (только для клиента)
- tun-mtu — устанавливает максимальный размер MTU. По умолчанию tun-mtu равен 1500. Использование: tun-mtu 1200
- dev-node — устанавливает имя виртуального интерфейса. Например: dev-node openvpn1
- ifconfig — устанавливает локальный IP и маску подсети для туннельного интерфейса. Например: ifconfig 10.3.0.1 255.255.255.0
- server — автоматически присваивает адреса всем клиентам (DHCP) в указанном диапазоне с маской сети. Данная опция заменяет ifconfig и может работать только с TLS-клиентами в режиме TUN, соответственно использование сертификатов обязательно. Например: server 10.3.0.0 255.255.255.0 . Подключившиеся клиенты получат адреса в диапазоне между 10.3.0.1 и 10.3.0.254.
- server-bridge — сервер в режиме моста для 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 — передача клиенту конфигурационных параметров. Пример: 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 — указываем алгоритм шифрования. Например: cipher AES-256-CBC. Рекомендуется использование шифров в режиме CBC (Cipher Block Chaining).
- keysize — размер ключа в битах. Например: keysize 128
- auth — алгоритм хэширования. Пример: auth SHA1
- df — файл с ключем Диффи-Хелмана
- ca — файл сертификата для CA
- cert — сертификат локальной машины
- key — локальный ключ машины
- tls-server — явно указывает, что данный хост является tls-server
- tls-client — соответственно tls-client
- pkcs12 — указываем файл (PKCS12), который содержит в себе сертификат, ключ и CA в одном файле. Пример: pkcs12 /file
- crl-verify — список отозванных сертификатов, т.е. blacklist.
- no-replay — отключает защиту OpenVPN от атаки повторного воспроизведения (replay attack). Крайне не рекомендуется отключать!
- no-iv — отключает использование вектора инициализации шифра (IV). Крайне не рекомендуется отключать!
- secret — включает режим шифрования и аутентификации на статических ключах. В качестве параметра использует заранее сгенерированный, командой —genkey, файл. Например: secret key.txt
- Все доступные алгоритмы шифрования можно просмотреть выполнив из командной строки: openvpn —show-ciphers
- Алгоритмы хэширования: openvpn —show-digests
- Показать все доступные TLS-шифры (TLS используется только для шифрования канала управления): openvpn —show-tls
- Показать все доступные крипто-устройства в системе (если такие имеются): openvpn —show-engines
Команды для управления маршрутизацией
Обозначение: VPN-хост — удаленная сторона (удаленный хост)
- route — устанавливает указанную маршрутизацию на VPN-хосте, после успешного запуска туннеля. Пример: route 10.0.10.0 255.255.255.252
- route-gateway — устанавливает шлюз на VPN-хосте. Пример: route-gateway 192.168.0.22. После успешного запуска виртуального туннеля клиенту будет задан шлюз 192.168.0.22
- route-delay — указывает подождать n-секунд перед установкой маршрутов. Пример: route-delay 5 — через 5 секунд после установки туннеля будут заданы маршруты.
- route-up — выполнить скрипт или программу после установки маршрутов. Пример: route-up /script.sh
- redirect-gateway — установить шлюзом по умолчанию удаленный сервер. Т.е. когда удаленный пользователь подключается к нашему серверу, то ему будет задан шлюз по умолчанию на наш сервер.
Команды для управления туннелем
- ping — указывает отсылать ping на удаленный конец тунеля после указанных n-секунд, если по туннелю не передавался никакой трафик. Пример:
ping 10 - ping-restart — если за указанное время не было получено ни одного пакета с удаленной стороны, то перезапускать туннель. Пример: ping-restart 60 — если в течении 60 секунд не было получено ни одного пакета, то туннель будет перезапущен.
- ping-timer-rem — позволяет перезапускать туннель, только когда указан удаленный адрес.
- persist-tun — данная опция оставляет без изменения устройства tun/tap при перезапуске OpenVPN.
- persist-key — указывает не перечитавать файлы ключей при перезапуске туннеля.
- resolv-retry — устанавливает время в секундах для запроса об удаленном имени хоста. Актуально только если используется DNS-имя удаленного хоста. Пример: resolv-retry 86400
- inactive — после n-секунд неактивности устройство TUN/TAP автоматически отключется. Пример: inactive 120
- ping-exit — если за указанные n-секунд не было получено ни одного пакета, то отключать OpenVPN. Пример: ping-exit 120
- keepalive — является совмещением сразу двух команд — ping и ping-restart. Использует сразу два параметра в секундах, перечисленных через пробел. Пример: keepalive 10 180 — каждые 10 секунд посылать ping на удаленный хост, и, если за 180 секунд не было получено ни одного пакета — то перезапускать туннель.
- persist-local-ip — оставлять неизменными локальный IP адрес и номер порт, если туннель был перезапущен.
- persist-remote-ip — оставлять неизменными удаленный IP адрес и номер порт, если туннель был перезапущен. persist-remote-ip 192.168.50.1
Методы аутентификации
- auth-user-pass-verify — указывается только на серверной стороне.
- — путь к скрипту, который будет производить авторизацию. Скрипт должен возвращать 0 если авторизация успешна, и соответственно, 1 если авторизация не успешна.
- — метод авторизации, может быть двух типов: via-env и via-file
- auth-user-pass — указывается на клиентской стороне. Параметр не обязателен, если он отсутствует то будет предложено ввести пару логин/пароль. должен содержать имя пользователя и пароль в двух строчках: username и password
- client-cert-not-required — отключает авторизацию по сертификатам
Работа с прокси
OpenVPN без проблем может работать через http и socks прокси.
- http-proxy — указываем адрес и порт прокси-сервера. http-proxy 192.168.0.12 8080
- Если требуется авторизация на прокси-сервере: http-proxy — где authfile — файл содержащий две строки (имя пользователя и пароль) или stdin (будет запрошено имя пользователя и пароль). Так же после authfile требуется указать метод авторизации. Можно оставить auto для автоматического выбора метода авторизации или указать явно через auth-method. auth-method может быть трех видов «none», «basic» или «ntlm».
- http-proxy-retry — переподключаться, если соединение было разорвано.
- http-proxy-timeout — считать соединение с прокси-сервером разорванным после n-секунд неактивности. Например: http-proxy-timeout 5
- socks-proxy — указываем сокс-прокси сервер. Пример: socks-proxy 192.168.0.12 8080
- socks-proxy-retry — переподключаться, если соединение было разорвано.
- auto-proxy — автоматически определять прокси-сервер.