Обновлено: 04.01.2023
Опубликовано: 25.01.2017
OpenVPN позволяет настроить VPN-сервер как на платформе Windows Server, так и версии для рабочего компьютера (Windows 10, 8, 7).
Установка сервера
Создание сертификатов
Настройка OpenVPN
Настройка клиента
Доступ к локальной сети
Решение проблем
Установка OpenVPN Server
Переходим на официальный сайт OpenVPN и скачиваем последнюю версию программы для соответствующей версии Windows:
Запускаем скачанный файл — нажимаем Next — I Agree — и выставляем галочку EasyRSA 2/3 Certificate Management Scripts (нужен для возможности сгенерировать сертификаты):
* интерфейсы для старой версии OpenVPN и новой немного различаются. Нам нужно выбрать для установки все пункты.
… снова Next и Install — начнется установка. В процессе мастер может выдать запрос на подтверждение установки виртуального сетевого адаптера — соглашаемся (Install/Установить).
После завершения нажимаем Next — снимаем галочку Show Readme — Finish.
Создание сертификатов
Новая версия OpenVPN позволяет создавать сертификаты на основе Easy RSA 3, старая работает на базе 2-й версии. Наши действия будут различаться в зависимости от данной версии. Рассмотрим процесс формирования сертификата с использованием как RSA3, так и RSA2.
а) Создание сертификатов с RSA 3
1. Переходим в папку установки OpenVPN (по умолчанию, C:Program FilesOpenVPN) и создаем каталог ssl.
2. После переходим в папку C:Program FilesOpenVPNeasy-rsa, переименовываем файл vars.example в vars, открываем его на редактирование и правим одну строку:
set_var EASYRSA_TEMP_DIR «$EASYRSA_PKI/temp»
* мы снимаем комментарий и добавляем temp в конце $EASYRSA_PKI. Если это не сделать, то при попытке сформировать корневого сертификата мы получим ошибку Failed create CA private key.
3. Запускаем командную строку от имени администратора:
4. Переходим в каталог easy-rsa:
cd %ProgramFiles%OpenVPNeasy-rsa
5. Запускаем команду:
EasyRSA-Start.bat
Мы окажемся в среде EasyRSA Shell.
6. Инициализируем PKI:
./easyrsa init-pki
Если система вернет ошибку, выходим из оболочки EasyRSA Shell:
exit
И заходим снова:
EasyRSA-Start.bat
Мы должны увидеть:
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: C:/Program Files/OpenVPN/easy-rsa/pki
7. Генерируем корневой сертификат (CA):
./easyrsa build-ca
… после ввода Enter обязательно задаем пароль дважды. На запрос ввести Common Name можно просто нажать ввод или написать свое имя:
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
8. Создаем ключ Диффи-Хеллмана:
./easyrsa gen-dh
9. Для создания сертификата сервера необходимо сначала создать файл запроса:
./easyrsa gen-req cert nopass
* на запрос ввода Common Name просто вводим Enter.
… и на его основе — сам сертификат:
./easyrsa sign-req server cert
После ввода команды подтверждаем правильность данных, введя yes:
Confirm request details: yes
… и вводим пароль, который указывали при создании корневого сертификата.
10. Сертификаты сервера готовы и находятся в каталоге pki. Переносим в C:Program FilesOpenVPNssl следующие файлы:
- ca.crt
- issued/cert.crt
- private/cert.key
- dh.pem
б) Создание сертификатов с RSA 2 (для старых версий OpenVPN)
1. Переходим в папку установки OpenVPN (по умолчанию, C:Program FilesOpenVPN) и создаем каталог ssl.
2. После переходим в папку 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-сервера; остальные опции можно заполнить произвольно.
3. Запускаем командную строку от имени администратора:
4. Переходим в каталог easy-rsa:
cd %ProgramFiles%OpenVPNeasy-rsa
4. Запускаем vars.bat:
vars.bat
5. Чистим каталоги от устаревшей информации:
clean-all.bat
* данная команда выполняется один раз, когда на сервере нет информации по ранее созданным сертификатам.
6. Снова запускаем vars.bat (после clean переопределяются некоторые переменные):
vars.bat
Переходим к созданию ключей.
7. Генерируем последовательность центра сертификации:
build-ca.bat
На все запросы нажимаем Enter.
8. Запускаем build-dh.bat (сертификат с использованием алгоритма Диффи-Хеллмана):
openssl dhparam -out keysdh.pem 2048
* команда может выполняться долго — это нормально.
9. Генерируем сертификат для сервера:
build-key-server.bat cert
* где cert — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.
10. После переносим из папки C:Program FilesOpenVPNeasy-rsakeys в C:Program FilesOpenVPNssl следующие файлы:
- ca.crt
- cert.crt
- cert.key
- dh.pem
Настройка сервера
Переходим в папку C:Program FilesOpenVPNconfig-auto (или для старой версии C:Program FilesOpenVPNconfig) и создаем файл 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
compress
fast-io
cipher AES-256-GCM
persist-key
persist-tun
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 и снова включаем сетевой адаптер.
Если в нашей системе включен брандмауэр, необходимо открыть порт для OpenVPN. Это быстрее всего сделать из командной строки — открываем ее от администратора и вводим:
netsh advfirewall firewall add rule name=»ALLOW OpenVPN» dir=in action=allow protocol=UDP localport=443
* где 443 — наш порт, который мы решили задействовать под OpenVPN; UDP — протокол, который мы настроили в конфигурационном файле сервера.
Настройка клиента
На сервере
На сервере генерируем сертификат для клиента. Для этого сначала чистим файл index.txt в папке C:Program FilesOpenVPNeasy-rsakeys.
Затем запускаем командную строку от имени администратора:
Переходим в каталог easy-rsa:
cd %ProgramFiles%OpenVPNeasy-rsa
Далее наши действия зависят от версии RSA.
а) Создание сертификатов с RSA 3
Запускаем команду:
EasyRSA-Start.bat
Мы окажемся в среде EasyRSA Shell.
Создаем клиентский сертификат:
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
Мы должны увидеть запрос на подтверждение намерения выпустить сертификат — вводим yes:
Confirm request details: yes
* в данном примере будет создан сертификат для client1.
После вводим пароль, который указывали при создании корневого сертификата.
Теперь из папки pki копируем файлы:
- issued/client1.crt
- private/client1.key
- ca.crt
- dh.pem
… и переносим их на клиентский компьютер.
б) Создание сертификатов с RSA 2 (для очень старых версий OpenVPN)
Запускаем vars.bat:
vars.bat
И генерируем сертификат первого пользователя:
build-key.bat client1
* на все запросы наживаем Enter, кроме Common Name — в данном поле вводим имя клиента (в нашем случае, просто client1). В конце подтверждаем введенную информацию — y.
** На каждого клиента нужно сгенерировать свой сертификат, в противном случае, им будет присваиваться один и тот же IP-адрес, что будет приводить к конфликту.
Получиться, что-то на подобие:
Country Name (2 letter code) [RU]:
State or Province Name (full name) [Sankt-Petersburg]:
Locality Name (eg, city) [Sankt-Petersburg]:
Organization Name (eg, company) [Organization]:
Organizational Unit Name (eg, section) [DMOSK]:
Common Name (eg, your name or your server’s hostname) [DMOSK]:client1
Name [server.domain.ru]:
Email Address [master@dmosk.ru]:
По умолчанию, для Common Name будет подставляться значение из vars.bat — но с ним сертификат не будет создаваться. Необходимо при создании каждого ключа подставлять значение, равное имени сертификата. Например, как выше — подставлено client1.
Теперь из папки keys копируем файлы:
- client1.crt
- client1.key
- ca.crt
- dh.pem
… и переносим их на клиентский компьютер.
На клиенте
Заходим на официальную страницу загрузки openvpn и скачиваем клиента для Windows:
* по сути, это тот же файл, который скачивался для сервера.
Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».
Переходим в папку C:Program FilesOpenVPNconfig. И копируем в нее сертификаты, которые перенесли с сервера.
Теперь открываем блокнот от имени администратора и вставляем следующие строки:
client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
compress
fast-io
cipher AES-256-GCM
ca ca.crt
cert client1.crt
key client1.key
dh dh.pem
float
keepalive 10 120
persist-key
persist-tun
verb 0
* где 192.168.0.15 443 — IP-адрес OpenVPN-сервера и порт, на котором он принимает запросы. Для боевой среды это будет внешний адрес.
Сохраняем файл с именем config.ovpn в папке C:Program FilesOpenVPNconfig.
Запускаем с рабочего стола программу «OpenVPN GUI» от имени администратора (это важно).
Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:
Произойдет подключение и значок поменяет цвет с серого/желтого на зеленый.
Доступ к локальной сети
По инструкции выше мы сможем получить доступ только к серверу, на котором установлен 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. Разрешаем доступ к локальной сети
Заходим в управление сетевыми подключениями (Панель управленияСеть и ИнтернетСетевые подключения). Кликаем правой кнопкой мыши по адаптеру локальной сети — Свойства:
На вкладке Доступ ставим галочку Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера:
… и сохраняем настройки.
Возможные проблемы
Большая часть проблем решается при помощи логов, которые находятся в папке C:Program FilesOpenVPNlog. Уровень детализации лога контролируется параметром verb в конфигурационном файле сервера или клиента.
Также возможны следующие часто возникающие проблемы:
- Проблема: клиент постоянно пытается подключиться к серверу, но соединения не происходит или подключение зависает.
Причина: сервер блокирует подключения по настроенному порту VPN (в нашем примере, 443).
Решение: на сервере необходимо добавить 443 порт в исключения брандмауэра или отключить последний.
- Проблема: при попытке подключиться к серверу выскакивает ошибка «Не удалось подключиться к config».
Причина: ошибка в настройках.
Решение: перепроверьте каждую строчку файла конфигурации. Проверьте наличие всех файлов, на которые ссылаетесь в настройках.
- Проблема: клиенты получают одинаковые IP-адреса.
Причина: подключение выполняется под одним и тем же пользователем.
Решение: сервер выдает одинаковые адреса одинаковым клиентам. Необходимо настроить авторизацию на сервере и выдать каждому клиенту индивидуальные настройки.
- Проблема: соединение происходит, но через несколько минут связь прерывается.
Причина: дублирование IP-адресов.
Решение: данная проблема описана выше (пункт 3).
Возможно, Вы это тоже захотите попробовать
- Настройка OpenVPN-сервера с аутентификацией через LDAP (Active Directory) на Ubuntu Server
- Установка и настройка OpenVPN на Linux CentOS 7
В роутерах серии RTU есть возможность использования защищенного соединения через частную виртуальную сеть, под названием OpenVPN
Процесс настройки и конфигурирования данного пакета для рядового пользователя может сопровождаться достаточно большими трудностями из-за отсутствия необходимых знаний.
Практически всю часть конфигурирования можно произвести через WEB интерфейс, но некоторые элементы все же придется произвести через консоль!
Что такое OpenVPN и для чего он необходим можно ознакомиться в статье: OpenVPN
В данной статье мы ознакомимся с подготовительной частью, это генерация сертификатов и ключей шифрования для защиты нашего канала передачи.
1. Генерация сертификатов и ключей на Windows
Для генерации сертификатов и ключей шифрования на ОС Windows необходимо установить само приложение OpenVPN.
Скачать последнюю версию OpenVPN для ОС Windows можно по ссылке: https://openvpn.net/community-downloads/.
После скачивания и установки в указанную Вами папку в ней будет список файлов, по умолчанию OpenVPN устанавливается в директорию C:Program FilesOpenVPN.
Для генерации ключей будем использовать easy-rsa. Необходимо запустить командную строку от имени администратора и перейти в директорию с папкой easy-rsa. В примере используем команду для перехода в папку по умолчанию, у Вас данный путь может отличаться.
cd C:Program FilesOpenVPNeasy-rsa
1.1 Запускаем файл init-config.bat
C:Program FilesOpenVPNeasy-rsa>init-config.bat
C:Program FilesOpenVPNeasy-rsa>copy vars.bat.sample vars.bat
Скопировано файлов: 1.
В папке появится файл vars.bat, открываем его текстовым редактором, нас интересуют строчки в самом конце, их нужно заполнить.
Мы подставили свои параметры, у Вас данные параметры будут другие.
set KEY_COUNTRY=RU
set KEY_PROVINCE=Moscow
set KEY_CITY=Moscow
set KEY_ORG=TELEOFIS
set KEY_EMAIL=support@teleofis.ru
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=server
set PKCS11_MODULE_PATH=server
set PKCS11_PIN=12345
Там где написано server, не трогаем. Сохраняем файл.
1.2 Редактируем файл openssl-1.0.0.cnf
От имени администратора открываем блокнот, нам необходимо отредактировать файл openssl-1.0.0.cnf. По умолчанию данный файл находится в директории C:Program FilesOpenVPNeasy-rsa, у Вас данный путь также может отличаться.
Нам необходимо найти строчку:
default_days = 365
Далее необходимо заменить значение 365 на 3650, в более новых версиях OpenVPN значение 3650 может быть уже установлено по умолчанию.
1.3 Генерируем ключи и сертификаты
Подаем последовательно в консоль команды:
vars
clean-all
В ответ должно прийти
Скопировано файлов: 1.
Скопировано файлов: 1.
Если, мы это видим, значит все хорошо, продолжаем…
1.4 Создаем центр сертификации CA
Подаем команду:
build-ca
На данном моменте в некоторых случаях может возникнуть ошибка:
C:Program FilesOpenVP easy-rsa>build-ca "openssl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Для устранения ошибки открываем файл vars.bat от имени администратора и ищем строку
rem set "PATH=%PATH%;C:Program FilesOpenVPNbin"
Удаляем rem, после чего данная строка должна принять вид:
set "PATH=%PATH%;C:Program FilesOpenVPNbin"
Сохраняем, далее снова подаем последовательно команды
vars
clean-all
В ответ должно прийти
Скопировано файлов: 1.
Скопировано файлов: 1.
Подаем команду:
build-ca
При генерации основного сертификата в консоли будут отображаться вопросы. Просто нажимаем Enter, т.к. все эти параметры мы ввели в файле vars.bat
Нажимаем Enter до тех пор, пока не отобразиться строка приглашения
C:Program FilesOpenVPNeasy-rsa
1.5 Создаем ключ Диффи-Хелмана
Данный шаг не является обязательным, ключ Диффи-Хелмана необходим для реализации одноименного протокола
позволяющего использовать небезопасный канал для получения общего секретного ключа. Этот ключ будет в дальнейшем использоваться для защищенного обмена данными с помощью алгоритмов симметричного шифрования.
В применении к OpenVPN файл Диффи-Хелмана нужен для обеспечения защиты трафика от расшифровки, если ключи были похищены. Здесь имеется в виду тот трафик, который был записан и сохранен еще до похищения ключей.
Файл Диффи-Хелмана создается на сервере OpenVPN.
Для создания ключа необходимо подать команду:
build-dh
1.6 Создаем сертификат и ключ сервера
Подаем команду:
build-key-server server
На вопросы нажимаем Enter, но не торопимся, в самом конце будет задано два вопроса
Sign the certificate?
1 out of 1 certificate requests certified, commit?
На оба эти вопроса отвечаем Y
1.7 Создаем сертификат и ключ клиента
Подаем команду:
build-key client
Также не торопимся с ответами, как только увидим строку «Common Name (eg, your name or your server’s hostname)» нужно ответить client.
В самом конце также будут два вопроса, отвечаем также Y
Причем: для каждого клиента, нужно будет создать отдельные ключи и называть их client1, client2 или как-то иначе, все зависит от Вашего воображения.
Например:
build-key client1
build-key office1
На этом создание файлов сертификатов и ключей завершено.
Все файлы будут лежать в папке C:Program FilesOpenVPNeasy-rsakeys
2. Генерация сертификатов и ключей на Linux
Генерация сертификатов и ключей будет осуществляться на ОС Ubuntu Linux 20.04.
Для других систем на базе Linux, некоторые команды могут отличаться!
Первоначально необходимо обновить все пакеты ОС Linux, подаем в консоль команду:
sudo apt-get update
sudo apt-get upgrade
Установим пакет zip, если он не был установлен ранее:
sudo apt install zip
2.1 Установка утилиты Easy-RSA
Создадим нового пользователя ca и переведем его в домашний каталог:
sudo adduser ca
В ответ система выведет информацию и попросит ввести пароль:
Adding user 'ca' ... Adding new group 'ca' (1002) ... Adding new user 'ca' (1002) wuth group 'ca' ... Creating home directory '/home/ca' ... Coping files from '/etc/skel/' ... New password:
Вводим пароль, затем еще раз его повторяем, если все хорошо, система выведет следующую информацию:
passwd: password updated successfully Changing the user information for ca Enter the new value or press ENTER for the default Full name []: Room number []: Work phone []: Home Phone []: Other []: Is the information correct? [Y/n]
Нажимаем Y, пользователь успешно создан.
Делаем loging под пользователя ca:
su ca
cd
Далее необходимо загрузить дистрибутив программы утилитой wget:
$ wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
Распаковываем архив:
$ unzip master.zip
2.2 Создаем инфраструктуру публичных PKI, создание центра сертификации СА:
Создадим инфраструктуру публичных ключей (Public Key Infrastructure, PKI):
$ cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa init-pki
В ответ система оповестит, что PKI создан успешно:
init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/ca/easy-rsa-master/easyrsa3/pki
Далее создаем удостоверяющий центр сертификации:
$ ./easyrsa build-ca
В ответ система выдаст сообщение следующего вида:
Generating RSA private key, 2048 bit long modulus (2 primes) ..................................................................................+++++ ......................................................+++++ e is 65537 (0x010001) You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [Easy-RSA CA]:ca CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /home/ca/easy-rsa-master/easyrsa3/pki/ca.crt
Пароль будет защищать приватный ключ центра сертификации. Этот пароль потребуется каждый раз, когда Вы будете подписывать сертификаты для серверов и клиентов OpenVPN.
В конечном итоге у нас создадутся в системе два файла, которые нам в дальнейшем пригодятся: ca.crt и ca.key. Данные файлы находятся в директориях:
/home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key /home/ca/easy-rsa-master/easyrsa3/pki/ca.crt
Файл ca.key является секретным, его нельзя передавать на другие узлы Вашей сети.
Файл ca.crt открытый, его необходимо передавать на узлы серверов и клиентов сети OpenVPN.
2.3 Создаем список отзывов сертификатов
Если сотрудник уволился из компании и у него есть доступ в сети VPN компании, нам необходимо закрыть этот доступ путем отзыва сертификата CRL. Для создания сертификата проделаем следующее:
cd /home/ca/easy-rsa-master/easyrsa3
$ ./easyrsa gen-crl
Система запросит пароль для доступа к закрытому ключу ca.key. Список отзыва сертификатов будет доступен в файле crl.pem:
/home/ca/easy-rsa-master/easyrsa3/pki/crl.pem
Данный сертификат передается OpenVPN серверу. Также в конфиге сервера должен быть прописан путь до crl.pem, как правило данное правило прописывается в server.conf.
crl-verify /usr/local/etc/openvpn/crl.pem
Для блокировки доступа пользователю, заблокируем ранее выданный сертификат, используя команду:
$ ./easyrsa revoke test
В таблице ниже описана структура каталога PKI:
Файл или каталог |
Описание |
ca.crt | Сертификат удостоверяющего центра, передается как на сервер OpenVPN, так и на клиент OpenVPN |
crl.pem | Список отзыва сертификатов CRL |
issued | Каталог с сертификатами, созданными центром сертификации СА |
private | Каталог с секретными ключами |
Reqs | Каталог запросов на сертификаты |
2.4 Установка OpenVPN, создание каталога для конфигурации клиентов
Процесс создания сервера OpenVPN включает в себя установку пакета OpenVPN, создание сертификатов и ключей, а также подготовку рабочей конфигурации.
Установим пакет OpenVPN:
$ sudo apt-get install openvpn
Первоначально необходимо подготовить файлы конфигурации openssl.cnf и server.conf. Первый файл определяет конфигурацию OpenSSL, второй файл определяет конфигурацию сервера OpenVPN.
В комплекте с утилитой Easy-RSA поставляется пример файла конфигурации OpenSSL. Если Вы делали все действия по данному гайду, данный файл будет находиться по пути:
/home/ca/easy-rsa-master/easyrsa3/openssl-1.0.cnf
По умолчанию файл openssl-1.0.cnf содержит в себе следующую информацию:
# For use with Easy-RSA 3.0+ and OpenSSL or LibreSSL #################################################################### [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = $ENV::EASYRSA_PKI # Where everything is kept certs = $dir # Where the issued certs are kept crl_dir = $dir # Where the issued crl are kept database = $dir/index.txt # database index file. new_certs_dir = $dir/certs_by_serial # default place for new certs. certificate = $dir/ca.crt # The CA certificate serial = $dir/serial # The current serial number crl = $dir/crl.pem # The current CRL private_key = $dir/private/ca.key # The private key RANDFILE = $dir/.rand # private random number file
Чтобы запуск сервера OpenVPN прошел успешно, необходимо создать каталоги, в которых будут храниться сертификаты и ключи для сервера и клиентов OpenVPN:
Создадим каталог для конфигурации клиентов:
$ sudo mkdir /etc/openvpn/ccd
2.5 Подготовка сертификатов и ключей для сервера OpenVPN
Для организации OpenVPN нам потребуются файлы, перечисленные в таблице ниже:
Файл | Описание |
dh.pem | Ключ Диффи-Хелмана, используется для защиты трафика от расшифровки, необходимо загружать как на клиент, так и на сервер (опционально) |
ca.crt | Сертификат удостоверяющего центра CA, необходимо загружать на сервер и клиент OpenVPN |
server.crt | Сертификат сервера OpenVPN, необходимо загружать на сервер OpenVPN |
server.key | Приватный ключ сервера, секретный, необходимо загружать на сервер OpenVPN |
crl.pem | Cписок отзыва сертификатов CRL, необходимо загружать на сервер (опционально) |
ta.key | Ключ HMAC для дополнительной защиты от DoS-атак и флуда (опционально) |
client.crt | Сертификат клиента OpenVPN, необходимо загружать на клиент OpenVPN |
client.key | Приватный ключ клиента, секретный, необходимо загружать на клиента OpenVPN |
Так как центр сертификации мы уже сгенерировали, на следующем этапе сгенерируем сертификат и приватный ключ для сервера OpenVPN.
$ cd /home/ca/easy-rsa-master/easy-rsa3/
$ ./easyrsa gen-req server
В процессе создания, система запросит пароль, а также имя Common Name для сервера OpenVPN:
Generating a RSA private key .+++++ .......+++++ writing new private key to '/home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2258.QFUIV0/tmp.WadIoG' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [server]:server Keypair and certificate request completed. Your files are: req: /home/ca/easy-rsa-master/easyrsa3/pki/reqs/server.req key: /home/ca/easy-rsa-master/easyrsa3/pki/private/server.key
Если же Вы хотите создать данные файлы без защиты паролем, используем команды:
$ cd /home/ca/easy-rsa-master/easy-rsa3/
$ ./easyrsa gen-req server nopass
Таким образом, в системе создадутся два файла: server.req и server.key, первый из них является открытым, его необходимо будет в дальнейшем подписать удостоверяющим центром СА, второй является секретым, его необходимо хранить на сервере OpenVPN.
Следующим шагом необходимо подписать данный сертификат (server.req) на стороне удостоверяющего центра СА:
$ ./easyrsa sign-req server server
При создании сертификата система запросит пароль (если при формировании server.req сертификат создавался с паролем). Необходимо будет ответить на сообщение yes, после чего ввести пароль от сертификата server.req. После успешного создания сертификата, система также уведомит об этом.
You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender. Request subject, to be signed as a server certificate for 825 days: subject= commonName = server Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes Using configuration from /home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2714.b10rbG/tmp.y76kMH Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'server' Certificate is to be certified until Oct 19 13:09:57 2022 GMT (825 days) Write out database with 1 new entries Data Base Updated Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/server.crt
Отлично! Теперь необходимо загрузить на сервер OpenVPN сертификат server.crt, который был только что создан, а также ключ server.key.
По умолчанию и ключ находятся в следующих директориях:
/home/ca/easy-rsa-master/easyrsa3/pki/issued/server.crt /home/ca/easy-rsa-master/easyrsa3/pki/private/server.key
2.6 Подготовка сертификатов и ключей для клиента OpenVPN
Генерировать сертификат будем под пользователем ca:
su ca
cd /etc/home/ca/easy-rsa-master/easy-rsa3
./easyrsa gen-req client nopass
Если к защите данных предъявляются повышенные требования, сертификат можно создать с паролем:
./easyrsa gen-req client
Далее система попросит ввести Common Name, я назову данный сертификат client1, после генерации ключа система дополнительно оповестит нас об этом:
Generating a RSA private key ....................................................................+++++ ........................+++++ writing new private key to '/home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2221.ChEcsT/tmp.gWTNPO' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Common Name (eg: your user, host, or server name) [client]:client1 Keypair and certificate request completed. Your files are: req: /home/ca/easy-rsa-master/easyrsa3/pki/reqs/client.req key: /home/ca/easy-rsa-master/easyrsa3/pki/private/client.key
Таким образом, в системе создадутся два файла: client.req и client.key, первый из них является открытым, его необходимо будет в дальнейшем подписать удостоверяющим центром СА, второй является секретым, его необходимо будет в дальнейшем загрузить на клиент OpenVPN.
Далее необходимо только что созданный сертификат client.req подписать в удостоверяющем центре СА:
./easyrsa sign-req client client
При создании сертификата система запросит пароль (если при формировании server.req сертификат создавался с паролем). Необходимо будет ответить на сообщение yes, после чего ввести пароль от сертификата client.req. После успешного создания сертификата, система также уведомит об этом.
You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender. Request subject, to be signed as a client certificate for 825 days: subject= commonName = client1 Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes Using configuration from /home/ca/easy-rsa-master/easyrsa3/pki/easy-rsa-2951.3DJoCJ/tmp.AqABm4 Enter pass phrase for /home/ca/easy-rsa-master/easyrsa3/pki/private/ca.key: Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows commonName :ASN.1 12:'client1' Certificate is to be certified until Oct 20 07:26:18 2022 GMT (825 days) Write out database with 1 new entries Data Base Updated Certificate created at: /home/ca/easy-rsa-master/easyrsa3/pki/issued/client.crt
Отлично! Теперь необходимо загрузить на клиент OpenVPN сертификат client.crt, который был только что создан, а также ключ client.key.
По умолчанию и ключ находятся в следующих директориях:
/home/ca/easy-rsa-master/easyrsa3/pki/private/client.key
/home/ca/easy-rsa-master/easyrsa3/pki/issued/client.crt
2.7 Создаем ключ Диффи-Хелмана
Для генерации ключа Диффи-Хелмана будем использовать команду:
$ cd /home/ca/easy-rsa-master/easy-rsa3/
$ ./easyrsa gen-dh
Создание ключа Диффи-Хелмана может занять достаточно продолжительное время, по окончании данного процесса система оповестит об этом:
DH parameters of size 2048 created at /home/ca/easy-rsa-master/easyrsa3/pki/dh.pem
Данный ключ находится в директории:
/home/ca/easy-rsa-master/easyrsa3/pki/dh.pem
2.8 Создание статического ключа HMAC
Для создания ключа HMAC используется команда openvpn с опциями —genkey и —secret. Данный ключ необходимо создавать не от обычного пользователя, а от пользователя с правами администратора.
cd /etc/openvpn
su teleofis
Система попросит ввести пароль от админской учетки, после ввода пароля необходимо выдать себе права на владение:
sudo chown -R teleofis:teleofis .
openvpn —genkey —secret ta.key
Ключ сгенерирован, он будет находиться в директории:
/etc/openvpn/ta.key
На этом моменте создание сертификатов закончено, далее переходим к следующей статье:
OpenVPN режим мультиклиента: Часть 2 — Настройка RTU сервера (tun)
Сопутствующие статьи:
Как подключиться к роутеру RTU?
Описание WEB-интерфейса роутера RTU
Дополнительная информация:
Wiki на GitHub
OpenVPN — популярная технология для создания защищенных частных сетей (VPN), использующих аутентификацию и шифрование на основе протокола SSL/TLS. Для упрощения процедуры создания необходимых ключей и сертификатов традиционно используется утилита Easy-RSA, которая позволяет легко управлять локальным центром сертификации (CA) инфраструктуры открытых ключей (PKI). Сегодня мы поговорим о работе с новой версией утилиты Easy-RSA 3, которая серьезно отличается по синтаксису от используемой ранее Easy-RSA 2 и входит в состав новых дистрибутивов Debian и Ubuntu.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
На первый взгляд может показаться, что разработчики Easy-RSA серьезно все поменяли, но это не так, если вы понимаете, как устроена инфраструктура открытых ключей, то вам будет ясно, что работа утилиты изменилась только по форме, но не по сути. Она стала более целостной и простой в использовании, но в тоже время приобрела ряд новых функции, свойственных более «взрослым» продуктам. В настоящий момент Easy-RSA 3 входит в состав Debian 10, а также Ubuntu 18.10 и новее.
Установка Easy-RSA и создание центра сертификации
Для установки Easy-RSA 3 выполним:
apt install easy-rsa
После чего убедимся, что установлена именно третья версия утилиты:
dpkg -l easy-rsa
Обычно затем директорию с easy-rsa копируют в конфигурационную папку OpenVPN, но на наш взгляд CA лучше располагать отдельно, поэтому мы скопируем директорию просто в /etc, однако это ни не что не влияет, и вы можете поступить по своему разумению.
cp -r /usr/share/easy-rsa /etc
Затем изменим рабочую директорию на скопированную нами папку:
cd /etc/easy-rsa
Если вас устраивают параметры по умолчанию, то следующий шаг можно пропустить и сразу перейти к созданию инфраструктуры PKI. Однако мы советуем потратить немного времени на тонкую настройку вашего CA.
Прежде всего скопируем шаблон файла настроек:
cp vars.example vars
и откроем файл vars на редактирование. Строки вида #set_var содержат значения по умолчанию, для их именения строку нужно раскомментировать и указать собственное значение. Начнем с опции EASYRSA_DN, она предусматривает два режима: упрощенный cn_only, при котором сертификат содержит только CN (имя того, кому выдан сертификат) и традиционный org, при котором заполняются все реквизиты организации. Для OpenVPN можно использовать любой режим. Мы установим традиционный:
set_var EASYRSA_DN "org"
После чего раскомментируйте и заполните блок ниже своими данными (в примере указаны наши):
set.var EASYRSA_REQ_COUNTRY "RU"
set.var EASYRSA_REQ_PROVINCE "31"
set.var EASYRSA_REQ_CITY "BELGOROD"
set.var EASYRSA_REQ_ORG "Interface LLC"
set_var EASYRSA_REQ_EMAIL "admin@example.org"
set.var EASYRSA_REQ_OU "IT"
Заметьте, что если вы оставили cn_only, то редактировать вышеуказанные опции не имеет смысла.
Параметр EASYRSA_KEY_SIZE указывает размер ключа, на сегодняшний день безопасным считается размер начиная с 2048, если вы ставите на первое место безопасность, то можете увеличить его до 3072 или 4096. Если криптографическая стойкость не играет роли, например, туннель будет использован для доступа в интернет и предполагается использование слабых устройств, то можно уменьшить размер ключа до 1024.
Опции EASYRSA_CA_EXPIRE и EASYRSA_CERT_EXPIRE задают срок действия корневого сертификата CA и сертификатов пользователей (сервера и клиентов), их значения установлены в днях как 3650 (10 лет) и 1080 (5 лет), опция EASYRSA_CERT_RENEW задает количество дней до истечения сертификата, когда становится доступным его продление, по умолчанию это 30 дней. При необходимости вы можете изменить эти значения.
Сохраним внесенные изменения. Теперь инициализируем наш CA и выпустим корневую пару ключей. Обратите внимание, что данные действия следует выполнять единожды, повторное выполнение указанных команд уничтожит существующий CA и потребует повторного создания всех ключей и сертификатов.
./easyrsa init-pki
Данная команда инициализирует новую структуру центра сертификации с очисткой всех данных. После чего создадим файл для генерации случайных данных:
touch pki/.rnd
и активируем наш CA:
./easyrsa build-ca
При создании закрытого ключа центра сертификации вам будет предложено ввести пароль, не следует пренебрегать этой возможностью, так как закрытый ключ — основа вашей инфраструктуры открытых ключей и его компрометация приведет к компрометации всех выпущенных ключей и сертификатов. Также не забудьте указать собственное наименование центра сертификации в опции Common Name.
После выполнения этих команд будет выполнено создание структуры директорий CA, публичный сертификат центра сертификации ca.crt вы сможете найти в директории pki, а закрытый ключ ca.key в pki/private. Закрытый ключ является секретным и не при каких обстоятельствах не должен покидать свое расположение и тем более не должен передаваться по открытым каналам связи, доступ третьих лиц к закрытому ключу также следует ограничить.
Также не забудем сформировать файл параметров Диффи-Хеллмана dh.pem, он также будет расположен в директории pki:
./easyrsa gen-dh
На этом создание центра сертификации (CA) можно считать законченным.
Создание ключа и сертификата для сервера
В Easy-RSA 3 все «по-взрослому», сначала нам нужно создать запрос на сертификат:
./easyrsa gen-req ovpn-server nopass
где ovpn-server — имя вашего сервера, nopass означает, что закрытый ключ следует создать без пароля. При выполнении данной команды будет создан запрос на сертификат и сгенерирован закрытый ключ сервера ovpn-server.key, который будет располагаться в pki/private. Закрытый ключ является секретным и не должен передаваться по открытым каналам связи и доступ к нему также должен быть ограничен.
Для выпуска сертификата выполните:
./easyrsa sign-req server ovpn-server
Опция server обозначает выпуск сертификата для сервера. Для подтверждения выпуска вам нужно будет явно выразить свое согласие указав yes в ответ на соответствующий запрос, любый иные действия приведут к отмене действия. Затем потребуется ввести пароль закрытого ключа центра сертификации.
Выпущенные сертификаты будут располагаться в pki/issued.
Теперь скопируем необходимые сертификаты и ключи в конфигурационную директорию OpenVPN, предварительно создав там папку keys:
mkdir /etc/openvpn/keys
cp pki/ca.crt pki/dh.pem /etc/openvpn/keys
cp pki/private/ovpn-server.key pki/issued/ovpn-server.crt /etc/openvpn/keys
Дальнейшая настройка OpenVPN-сервера ничем не отличается от описанной нами ранее, и вы можете воспользоваться любой нашей инструкцией, смотрите блок Дополнительные материалы внизу статьи.
Создание ключа и сертификата для клиента
Точно также начнем с формирования запроса на сертификат:
./easyrsa gen-req ivanov_ivan nopass
где ivanov_ivan — имя клиента, а nopass предписывает создать закрытый ключ без пароля. Мы рекомендуем давать клиентам осмысленные имена, чтобы потом не пришлось долго гадать, кто именно скрывается под псевдонимом типа client123.
На основании запроса выпустим сертификат:
./easyrsa sign-req client ivanov_ivan
В данном случае используется опция client для указания формирования клиентского сертификата, вам также потребуется явно подтвердить действие и указать пароль от закрытого ключа CA.
Для передачи на клиент вам потребуется скопировать в доступную пользователю директорию закрытый ключ, сертификат клиента и сертификат CA. В нашем случае файлы будут скопированы в домашнюю директорию пользователя andrey.
cp pki/ca.crt pki/private/ivanov_ivan.key pki/issued/ivanov_ivan.crt /home/andrey
Затем изменим их владельца, чтобы файлы можно было скопировать, подключившись к системе с правами пользователя:
chown andrey:andrey ca.crt ivanov_ivan.key ivanov_ivan.crt
Закрытый ключ пользователя также является секретным и следует исключить его передачу по открытым каналам.
Списки отзыва и отзыв сертификатов
Если вы используете OpenVPN для организации связи между офисами или доступа в интернет, то вряд ли у вас возникнет потребность в отзыве сертификата. Другое дело, если вы предоставляете удаленный доступ к корпоративной сети с домашних ПК сотрудников, подрядчикам или аутсорсерам. Здесь может возникнуть масса ситуаций, когда доступ отдельных лиц следует прекратить: сотрудник уволился, истек срок договора с подрядчиком, сменили аутсорсера и т.д. и т.п.
Прежде всего создадим список отозванных сертификатов (CRL):
./easyrsa gen-crl
Затем создадим символьную ссылку на список в директории с ключами OpenVPN:
ln -s /etc/easy-rsa/pki/crl.pem /etc/openvpn/keys/
И внесем в конфигурационный файл сервера OpenVPN следующую строку:
crl-verify keys/crl.pem
После чего сервер OpenVPN потребуется перезапустить.
Теперь отзовем какой-либо сертификат:
./easyrsa revoke horns_and_hooves
Где horns_and_hooves — имя сертификата клиента (СN), после отзыва следует повторно опубликовать список отозванных сертификатов:
./easyrsa gen-crl
Посмотреть список сертификатов можно командой:
cat pki/index.txt
Действующие сертификаты имеют статус V в начале строки, отозванные — R.
Как видим, работа с Easy-RSA 3 не представляет каких-либо сложностей и надеемся, что данная статья будет вам полезна.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Easy-RSA 3 Quickstart README
This is a quickstart guide to using Easy-RSA version 3. Detailed help on usage
and specific commands can be found by running ./easyrsa -h. Additional
documentation can be found in the doc/ directory.
If you’re upgrading from the Easy-RSA 2.x series, there are Upgrade-Notes
available, also under the doc/ path.
Setup and signing the first request
Here is a quick run-though of what needs to happen to start a new PKI and sign
your first entity certificate:
-
Choose a system to act as your CA and create a new PKI and CA:
./easyrsa init-pki ./easyrsa build-ca
-
On the system that is requesting a certificate, init its own PKI and generate
a keypair/request. Note that init-pki is used only when this is done on a
separate system (or at least a separate PKI dir.) This is the recommended
procedure. If you are not using this recommended procedure, skip the next
import-req step../easyrsa init-pki ./easyrsa gen-req EntityName
-
Transport the request (.req file) to the CA system and import it. The name
given here is arbitrary and only used to name the request file../easyrsa import-req /tmp/path/to/import.req EntityName
-
Sign the request as the correct type. This example uses a client type:
./easyrsa sign-req client EntityName
-
Transport the newly signed certificate to the requesting entity. This entity
may also need the CA cert (ca.crt) unless it had a prior copy. -
The entity now has its own keypair, signed cert, and the CA.
Signing subsequent requests
Follow steps 2-6 above to generate subsequent keypairs and have the CA return
signed certificates.
Revoking certs and creating CRLs
This is a CA-specific task.
To permanently revoke an issued certificate, provide the short name used during
import:
./easyrsa revoke EntityName
To create an updated CRL that contains all revoked certs up to that point:
After generation, the CRL will need to be sent to systems that reference it.
Generating Diffie-Hellman (DH) params
After initializing a PKI, any entity can create DH params that needs them. This
is normally only used by a TLS server. While the CA PKI can generate this, it
makes more sense to do it on the server itself to avoid the need to send the
files to another system after generation.
DH params can be generated with:
Showing details of requests or certs
To show the details of a request or certificate by referencing the short
EntityName, use one of the following commands. It is an error to call these
without a matching file.
./easyrsa show-req EntityName
./easyrsa show-cert EntityName
Changing private key passphrases
RSA and EC private keys can be re-encrypted so a new passphrase can be supplied
with one of the following commands depending on the key type:
./easyrsa set-rsa-pass EntityName
./easyrsa set-ec-pass EntityName
Optionally, the passphrase can be removed completely with the ‘nopass’ flag.
Consult the command help for details.
Установим и настроим OpenVPN сервер. На сервере используется операционная система Windows Server 2019.
OpenVPN — бесплатная реализация технологии виртуальной частной сети (VPN) для создания зашифрованных каналов связи между компьютерами типа точка-точка или сервер-клиенты за NAT и Firewall.
Установка OpenVPN Server
Скачиваем дистрибутив для установки OpenVPN:
Прокручиваем вниз, выбираем стабильную версию. Я буду использовать версию 2.4.9.
Для операционной системы Windows доступны два пакета:
- WINDOWS 7/8/8.1/SERVER 2012R2 INSTALLER (NSIS)
- WINDOWS 10/SERVER 2016/SERVER 2019 INSTALLER (NSIS)
Для Windows Server 2019 подходит второй вариант, скачиваю.
Запускаем инсталлятор OpenVPN.
Открывается мастер установки. Next.
Принимаем лицензионное соглашение. I Agree.
Выбираем компоненты. Выделите EasyRSA 2 Certificate Management Scripts. Для сервера OpenVPN GUI можно не устанавливать, если вы планируете запускать OpenVPN в качестве службы. Next.
Выбираем путь установки, я оставляю по умолчанию C:Program FilesOpenVPN. Install.
Начинается процесс установки OpenVPN.
Установка успешно завершена. Next.
Finish.
Установка выполнена в директорию C:Program FilesOpenVPN.
После установки у нас появляется новый сетевой адаптер TAP-Windows Adapter V9.
Адаптер отключён. Если по каким-то причинам нужно добавить несколько таких адаптеров, то загляните в папку C:Program FilesTAP-Windowsbin.
Здесь есть скрипты для установки адаптера, добавления адаптера и удаления всех адаптеров.
Пример установки адаптера. В командной строке под администратором:
cd "C:Program FilesTAP-Windowsbin"
"C:Program FilesTAP-Windowsbintapinstall.exe" install "C:Program FilesTAP-WindowsdriverOemVista.inf" tap0901
В большинстве случаев дополнительно настраивать сетевой адаптер не требуется.
Создание ключей и сертификатов
Запускаем командную строку под администратором и переходим в рабочую директорию C:Program FilesOpenVPNeasy-rsa.
cd C:Program FilesOpenVPNeasy-rsa
В этой папке есть всё необходимое для генерации сертификатов.
Выполняем:
init-config.bat
copy vars.bat.sample vars.bat
Создаётся файл vars.bat с настройками и примером готовых параметров для создания CSR запроса сертификатов. Заполним его. Открываем vars.bat блокнотом.
notepad vars.bat
Открывается vars.bat.
Здесь стоит обратить внимание на пути к рабочим директориям. Например, вы можете указать свой путь к openssl.exe, если установили OpenVPN в другую директорию. Здесь же можно изменить длину ключей шифрования.
Заполняем переменные в нижней части файла, указываем:
- KEY_COUNTRY — страна
- KEY_PROVINCE — область
- KEY_CITY — город
- KEY_ORG — организация
- KEY_EMAIL — e-mail
- KEY_CN — (Common Name) имя сервера
- KEY_NAME — (Name) имя сервера
- KEY_OU — (Organization Unit) отдел
- PKCS11_MODULE_PATH — для токенов двухфакторной аутентификации, нам не требуется, укажу имя сервера
- PKC11_PIN — ПИН для токенов двухфакторной аутентификации, нам не требуется, укажу 1234
Для каждого сертификата нужно будет указывать свои NAME и COMMON NAME, можно их не указывать в vars.bat, потому как при генерации все параметры будут запрашивать.
Обращаем внимание на строку:
set KEY_KONFIG=openssl-1.0.0.cnf
Это имя конфигурационного файла. Находим его в рабочей директории.
Откроем блокнотом.
Внутри есть параметр default_days, в котором можно указать срок действия будущих сертификатов. По умолчанию у меня стоит 3650 дней, это 10 лет. Меня устраивает. Вероятно, кому-то при генерации клиентских сертификатов может понадобиться уменьшить этот срок.
Сохраняем все изменения и возвращаемся к командной строке. Подгружаем утверждённые нами переменные:
vars.bat
Очищаем директорию с ключами:
clean-all.bat
Сертификаты, которые мы будем создавать, появятся в папке C:Program FilesOpenVPNeasy-rsakeys. Сейчас эта папка очистилась, в ней два файла: index.txt и serial.
Генерируем ключ и сертификат центра сертификации:
build-ca.bat
В процессе генерации сертификата нас будут спрашивать все те же параметры, которые мы указали в vars.bat. Если параметр нас устраивает (а он нас устраивает), просто нажимаем ввод и переходим к следующему вопросу. После завершения работы скрипта в папке C:Program FilesOpenVPNeasy-rsakeys появляется два файла:
- ca.crt — сертификат центра сертификации
- ca.key — ключ центра сертификации
Ключ секретный, никому не передавайте, он будет храниться на сервере.
Генерируем ключ Диффи-Хеллмана:
build-dh.bat
В папке C:Program FilesOpenVPNeasy-rsakeys появляется файл:
- dh2048.pem
Генерируем ключ и сертификат сервера, назовём сервер именем «server«:
build-key-server.bat server
В процессе генерации серверного сертификата нас будут спрашивать те же параметры, которые мы указали в vars.bat. Если параметр нас устраивает (а он нас снова устраивает), просто нажимаем ввод и переходим к следующему вопросу. На вопрос Sign the certificate отвечаем y. На вопрос 1 out of 1 certificate requests certified, commit отвечаем y.
После завершения работы скрипта в папке C:Program FilesOpenVPNeasy-rsakeys появляется четыре файла:
- 01.pem — не понадобится
- server.crt — сертификат сервера
- server.csr — запрос сертификата сервера, не понадобится
- server.key — ключ сервера
Ключ секретный, никому не передавайте, он будет храниться на сервере.
Генерируем ключ и сертификат первого клиента. Для каждого клиента нужно указывать своё имя файла, Name и Common Name. Назовём первого клиента именем «client«:
build-key.bat client
В процессе генерации клиентского сертификата нас будут спрашивать те же параметры, которые мы указали в vars.bat. Нас устраивают все параметры кроме NAME и COMMON NAME, на них отвечаем client. Помним, что для другого клиента имя должно быть другим. На вопрос Sign the certificate отвечаем y. На вопрос 1 out of 1 certificate requests certified, commit отвечаем y.
После завершения работы скрипта в папке C:Program FilesOpenVPNeasy-rsakeys появляется четыре файла:
- 02.pem — не понадобится
- client.crt — сертификат первого клиента
- client.csr — запрос сертификата первого клиента, не понадобится
- client.key — ключ первого клиента
Для каждого нового клиента, который будет подключаться к серверу OpenVPN необходимо сгенерировать свой клиентский сертификат. Но это можно сделать позже, пока добьёмся подключения хотя бы одного клиента.
В настройках сервера можно потом включить настройку duplicate-cn, которая позволяет подключаться всем клиентам по одному общему сертификату, но это небезопасно и не рекомендуется. Используйте только в тестовых целях.
# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names. This is recommended
# only for testing purposes. For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE «COMMON NAME»,
# UNCOMMENT THIS LINE OUT.
;duplicate-cn
Я на сервере собираюсь использовать tls-auth для дополнительной проверки целостности, это обеспечит дополнительный уровень безопасности протокола SSL/TLS при создании соединения:
- Сканирование прослушиваемых VPN-сервером портов
- Инициация SSL/TLS-соединения несанкционированной машиной на раннем этапе
- DoS-атаки и флуд на порты OpenVPN
- Переполнение буфера SSL/TLS
При использовании tls-auth на клиенте не понадобится ключ Диффи-Хеллмана, но пусть будет. Генерируем ключ tls-auth:
openvpn --genkey --secret keys/ta.key
В папке C:Program FilesOpenVPNeasy-rsakeys появляется файл:
- ta.key
Минимальный набор сертификатов сгенерирован.
Настройка OpenVPN сервера
Чтобы случайно всё не удалить, создадим папку C:Program FilesOpenVPNssl и скопируем в неё сертификаты. Это будет рабочая папка сервера.
mkdir "C:Program FilesOpenVPNssl"
copy "C:Program FilesOpenVPNeasy-rsakeys" "C:Program FilesOpenVPNssl"
Создадим конфигурационный файл сервера C:Program FilesOpenVPNconfigserver.ovpn:
copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNconfigserver.ovpn"
Открываем блокнотом и редактируем:
notepad "C:Program FilesOpenVPNconfigserver.ovpn"
Лучше изучить конфигурационный файл, я предлагаю свой вариант конфига:
port 1194
proto udp
dev tun
ca "C:\Program Files\OpenVPN\ssl\ca.crt"
cert "C:\Program Files\OpenVPN\ssl\server.crt"
key "C:\Program Files\OpenVPN\ssl\server.key" # This file should be kept secret
dh "C:\Program Files\OpenVPN\ssl\dh2048.pem"
server 10.8.0.0 255.255.255.0
tls-auth "C:\Program Files\OpenVPN\ssl\ta.key" 0 # This file is secret
keepalive 10 120
comp-lzo
persist-key
persist-tun
cipher AES-256-CBC
status "C:\Program Files\OpenVPN\log\status.log"
log "C:\Program Files\OpenVPN\log\openvpn.log"
verb 4
mute 20
Указываем параметры сервера, пути к ключам и сертификатам. Здесь же пути к логам. Для тестирования можно использовать tcp протокол:
proto tcp
Переходим к службам:
services.msc
Находим службу OpenVPNService.
Настраиваем на автоматический запуск при загрузке сервера.
Запускаем службу.
Согласно настройкам сервера в папке C:Program FilesOpenVPNlog должны появиться логи. Это один из инструментов администратора OpenVPN сервера.
Активировался сетевой адаптер TAP-Windows Adapter V9.
Согласно настройкам сервера IP адрес 10.8.0.1.
Проверяем поднялся ли порт tcp 1194:
netstat -tan | find "1194"
Порт должен прослушиваться.
Теперь нужно настроить firewall. Открываем Windows Defender Firewall with Advanced Security.
Переходим в Inbound Rules.
Создаём правило — New Rule…
Тип правила — Port. Next.
Протоколы и порты — UDP 1194. Как в настройках сервера. Next.
Действия — Allow the connection. Next.
Для всех сетей. Next.
Указываем название правила — OpenVPN. Next.
Правило создано, теперь firewall не блокирует входящие UDP соединения на 1194 порту.
Настройка OpenVPN клиента
На компьютере клиента устанавливаем OpenVPN точно также как на сервер. Галку EasyRSA 2 Certificate Management Scripts не указываем. Галку OpenVPN GUI указываем.
Я устанавливаю OpenVPN на клиенте в папку по умолчанию. C:Program FilesOpenVPN.
Копируем в отдельную папку for_client (её содержимое отправим потом на компьютер клиента) на сервере файлы для клиента:
- ca.crt
- client.crt
- client.key
- dh2048.pem
- ta.key
Туда же из папки C:Program FilesOpenVPNsample-config копируем client.ovpn
Переименовываю client.ovpn в config.ovpn. Можно использовать любое имя, лучше созвучное с названием организации. Вот такой получился набор.
Редактируем файл config.ovpn.
client
dev tun
proto udp
remote internet-lab.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\Program Files\OpenVPN\config\ca.crt"
cert "C:\Program Files\OpenVPN\config\client.crt"
key "C:\Program Files\OpenVPN\config\client.key"
tls-auth "C:\Program Files\OpenVPN\config\ta.key" 1
#dh "C:\Program Files\OpenVPN\config\dh2048.pem"
cipher AES-256-CBC
comp-lzo
verb 0
connect-retry-max 25
Здесь указываем пути к ключам и сертификатам клиента. Не забываем про адрес и порт сервера, куда подключаться, для примера я указал internet-lab.ru UDP 1194.
Отправляем подготовленные файлы на компьютер клиента и копируем в C:Program FilesOpenVPNconfig.
На клиента запускаем OpenVPN GUI.
В трее появляется значок OpenVPN.
Правой кнопкой — подключиться.
Устанавливается соединение.
Значок позеленел, назначен адрес 10.8.0.6.
Можно подключаться к серверу, если есть доступы.
Для второго и последующего клиента генерируем свой набор клиентских сертификатов.
Отзыв сертификата
Иногда нужно отозвать сертификат, выданный клиенту. Кто-то увольняется, кто-то палит сертификаты.
cd "C:Program FilesOpenVPNeasy-rsa"
vars.bat
revoke-full client
Где client — это имя клиента.
В папке C:Program FilesOpenVPNkeys появляется файл:
- crl.pem
Копируем его с заменой в рабочую директорию сервера C:Program FilesOpenVPNssl.
Добавляем строчку в конфигурационный файл сервера:
crl-verify "C:\Program Files\OpenVPN\keys\crl.pem"
Перезапускаем службу OpenVPN сервера.
net stop OpenVPNService
net start OpenVPNService
Если в конфигурационном файле уже был ранее указан путь к crl.pem, то службу можно не перезапускать, OpenVPN перечитывает CRL один раз в час. Но в течении этого часа клиенты с отозванными сертификатами смогут продолжать подключаться и работать.
Для клиента с отозванным сертификатом процесс подключения будет «зависать». В логе можно увидеть:
TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity) TLS Error: TLS handshake failed
Чтобы клиент не стучался постоянно на сервер, у него в конфиге есть опция:
connect-retry-max 25
Передать эту опцию при отзыве сертификата нельзя, поэтому указывайте её всем клиентам заранее.
Ссылки
OpenVPN 2.5.1 сервер на Windows
В этой статье я рассмотрю процесс настройки OpenVPN клиента (client) и сервера (server) на примере версии 2.4.7. используемая операционная система — Windows 10, но таким же образом можно настроить OpenVPN на Windows 7.
OpenVPN – механизм реализации виртуальных частных сетей (Virtual Private Network, VPN) с открытым исходным кодом. Используется для создания защищенных (шифрованных) каналов связи между сервером и клиентом, а так же между двумя точками.
OpenVPN позволяет создавать безопасные соединения между компьютерами, которые находятся за пределами фаервола, при этом не требуется изменять настройки фаервола.
Создателем системы является Джеймсом Йонаном (James Yonan).
Что бы создать защищенный канал используется библиотека OpenSSL. Весь набор шифров доступный в библиотеке используется в системе.
Система предлагает пользователю несколько способов аутентификации:
- Аутентификация с помощью предустановленного ключа – наиболее простой метод.
- Серверная аутентификация – более сложный, но при этом более гибкий в настройках метод.
- При помощи ввода логина и пароля. Может использоваться без создания сертификата клиента, при этом сертификат сервера все равно необходим.
Давайте разберемся на примере. Я настрою OpenVPN на двух компьютерах под управлением Windows 10. Они будут находиться в одной локальной сети. Так как для настроек через интернет необходим хотя бы один статический IP-адрес.
На этом примере мы разберемся, как создавать ключи и сертификаты безопасности, а так же научимся настраивать конфигурационный файл VPN-сервера и VPN-клиента.
Установка и настройка OpenVPN
Один компьютер будет играть роль сервера. Второй – клиента. На сервере при установке OpenVPN нужно установить флажок EasyRSA – для генерации сертификатов и ключей.
Переходим на официальный сайт OpenVPN http://openvpn.net/community-downloads/ и скачиваем программу. В моем случае OpenVPN 2.4.7 для Windows 10 (openvpn-install-2.4.7-I607-Win10).
В теории можно скачать и более поздний релиз, но лучше скачивать проверенную версию. Так как я не настраивал последние версии. Если дойдут руки, то дополню статью.
После запуска программы установки включаем EasyRSA (на сервере) и устанавливаем. Программа устанавливается просто и не требует каких-либо специфических настроек при установке.
Затем устанавливаем программу втором компьютере который будет играть роль клиента.
Далее нужно настроить компьютеры, что бы они видели друг друга в сети. Этот процесс зависит от установленной у вас операционной системы. Фактически вам нужно включить сетевое обнаружение.
Создание сертификатов и генерация ключей
Ключи и сертификаты создаются на сервере OpenVPN. Для их создания необходимо выполнить следующие действия:
Запустите командную строку от имени администратора.
С помощью команды cd перейдите в папку C:Program FilesOpenVPNeasy-rsa и выполните команду init-config.bat, после чего в папке easy-rsa появиться файл vars.bat.
Откройте vars.bat с помощью блокнота или иного текстового редактора. Я открыл в Notepad++. Укажите свои данные.
Данные можно указывать в процессе работы с OpenVPN.
Вернитесь в командную строку и по очереди выполните команды vars и clean-all поочередно.
Выполните команду build-dh. Если у вас появиться ошибка «openssl» не является внутренней или внешней командой, исполняемой программой или пакетный файлом, то нужно добавить в переменные среды путь OpenVPNbin.
Для этого нужно в переменную среды Path создать путь C:Program FilesOpenVPNbin.
Затем заново откройте командную строку и выполните пункты 4-5 заново.
Подождите до завершения процесса. В результате в паке OpenVPNeasy-rsakeys появиться файл dh2048.pem.
Создайте новый сертификат Certificate Authority (CA) и ключ, для чего введите команду build-ca. После завершения процесса в папке keys появятся два файла ca.crt и ca.key.
Создайте сертификат и ключ сервера. Для этого введите команду build-key-server к которой нужно добавить [CommonName] (в моем случае abuzov-name), то есть моя команда будет build-key-server abuzov-name. В конце дайте положительный ответ (y) на два вопроса.
Создайте сертификат и ключ для клиента. Введите команду build-key [CommonNameClient], например build-key ClientVPN1.
Создайте ключ для аутентификации пакетов, для этого выполните команду openvpn —genkey —secret keys/ta.key. В результате в папке easy-rsakeys появится файл ta.key
Имя | Где применяется | Назначение | Секретность |
---|---|---|---|
ca.crt | Сервер + все клиенты | Корневой сертификат (Root CA certificate) | Нет |
ta.key | Сервер + все клиенты | Файл аутентификации пакетов | Да |
ca.key | Сервер | Корневой ключ (Root CA key) | Да |
dh2048.pem | Сервер | Файл параметров | Нет |
abuzov-name.csr | Сервер | Сертификат сервера | Нет |
abuzov-name.key | Сервер | Ключ сервера | Да |
ClientVPN1.csr | Только на ClientVPN1 | Сертификат клиента | Нет |
ClientVPN1.key | Только на ClientVPN1 | Ключ клиента | Да |
Теперь нужно скопировать соответствующие ключи на сервер и клиент в папку config (в моем случае это C:Program FilesOpenVPNconfig).
Создание и настройка файлов конфигурации OpenVPN
Конфигурация основывается на файлах типовой конфигурации, которые находятся в C:Program FilesOpenVPNsample-config.
Настройка конфигурации сервера
Копируете файл server.ovpn из папки sample-config в папку config. Открываете и редактируете его. Обратите внимание на двойные слеши.
- Найдите строку, которая начинается на ca и укажите путь к своему ca файлу. В моем случае это ca «C:\Program Files\OpenVPN\config\ca.crt».
- Найдите cert и отредактируйте соответственно, в моем случае это cert «C:\Program Files\OpenVPN\config\abuzov-name.crt».
- По аналогии с key — key «C:\Program Files\OpenVPN\config\abuzov-name.key».
- Аналогично с dh — dh «C:\Program Files\OpenVPN\config\dh2048.pem»
- Аналогично tls-auth — «C:\Program Files\OpenVPN\config\ta.key».
Я приведу полный код конфигурации сервера, на всякий случай, что бы его можно было просто скопировать. Так как знаю что такое первая настройка OpenVPN.
mode server port 1194 dev tap proto tcp-server tls-server tls-auth "C:\Program Files\OpenVPN\config\ta.key" 0 duplicate-cn auth MD5 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 ca "C:\Program Files\OpenVPN\config\ca.crt" cert "C:\Program Files\OpenVPN\config\abuzov-name.crt" key "C:\Program Files\OpenVPN\config\abuzov-name.key" # This file should be kept secret dh "C:\Program Files\OpenVPN\config\dh2048.pem" server 10.10.10.0 255.255.255.0 client-to-client keepalive 10 120 comp-lzo persist-key persist-tun verb 3 route-delay 10 route-method exe route 10.10.10.0 255.255.255.0 route 192.168.0.0 255.255.0.0 route-gateway 10.10.10.1
Сохраните файл конфигурации сервера.
Запустите OpenVPN от имени администратора (и сразу сделайте так, что бы он всегда запускался от имени администратора).
После этого подключитесь к северу как показано на рисунке.
Настройка конфигурации клиента
Копируете файл client.ovpn из папки sample-config в папку config. Открываете и редактируете его аналогии. В моем случае это:
- ca «C:\Program Files\OpenVPN\config\ca.crt»
- cert «C:\Program Files\OpenVPN\config\ClientVPN1.crt»
- key «C:\Program Files\OpenVPN\config\ClientVPN1.key»
- remote IP_адрес_сервера
Опять, лучше приведу полный код.
remote IP-адрес-вашего-сервера client port 1194 dev tap proto tcp-client tls-client tls-auth "C:\Program Files\OpenVPN\config\ta.key" 1 remote-cert-tls server route-delay 2 auth MD5 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 ca ca.crt cert ClientVPN.crt key ClientVPN.key pull cipher AES-128-CBC comp-lzo persist-key persist-tun verb 3 route-method exe route-delay 3
Единственное что нужно сделать — указать IP-адрес сервера.
Далее подключаем клиент OpenVPN.
Если клиент не подключается к серверу, тогда нужно на сервере необходимо запустить regedit.exe, затем перейти по адресу: «КомпьютерHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters» и изменить IPEnableRouter на 1. После чего перезагрузить сервер и подключиться к OpenVPN заново.
После этого можно подключаться по защищенному соединению.
Материал из Xgu.ru
Перейти к: навигация, поиск
Данная страница находится в разработке. Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной. Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом. |
Автор: Сергей Черепенин
- Короткий URL: openvpn/windows
Содержание
- 1 Организация соединения с использованием статических ключей
- 2 Создание сертификатов на Windows с использованием easy-rsa
- 3 Создание сертификатов на Debian с использованием easy-rsa
- 4 Настройка пула адресов для получения их клиентами
- 5 Настройка парольной аутентификации системных пользователей для установки подключения
- 6 Настройка OpenVPN для работы в качестве сервера
- 7 Openvpn FreeBSD
- 8 Дополнительная информация
- 9 Материалы по OpenVPN на xgu.ru
[править] Организация соединения с использованием статических ключей
В данной главе рассматривается подготовка и организация vpn соединения с использованием статического ключа. В качестве сервера используется компьютер с операционной системой Debian GNU/Linux Etch на ядре 2.6.18-4-686, а в качестве клиента — Windows 2003 SP2.
Настройки сетевых интерфейсов сервера и клиента:
- сервер
$ /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:04:76:A1:EF:BB inet addr:10.0.17.1 Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: fe80::204:76ff:fea1:efbb/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5663951 errors:0 dropped:0 overruns:1 frame:0 TX packets:2928925 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1850432381 (1.7 GiB) TX bytes:330532572 (315.2 MiB) Interrupt:169 eth1 Link encap:Ethernet HWaddr 00:60:08:20:7B:0B inet addr:192.168.16.15 Bcast:192.168.16.255 Mask:255.255.255.0 inet6 addr: fe80::260:8ff:fe20:7b0b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:104476 errors:0 dropped:0 overruns:0 frame:0 TX packets:120582 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:19294593 (18.4 MiB) TX bytes:48250297 (46.0 MiB) Interrupt:185 Base address:0xc400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:64752 errors:0 dropped:0 overruns:0 frame:0 TX packets:64752 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:43343011 (41.3 MiB) TX bytes:43343011 (41.3 MiB)
- клиент
C:Documents and SettingsAdministrator>ipconfig /all Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : net.nt Description . . . . . . . . . . . : 3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX) Physical Address. . . . . . . . . : 00-04-75-75-46-C1 DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.16.197 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.16.15 DHCP Server . . . . . . . . . . . : 192.168.16.15 DNS Servers . . . . . . . . . . . : 192.168.16.15 Lease Obtained. . . . . . . . . . : 12 июля 2011 г. 11:49:13 Lease Expires . . . . . . . . . . : 12 июля 2011 г. 11:59:13
Теперь необходимо проинсталлировать необходимое программное обеспечение принятым, для каждой операционной системы, способом.
На сервере под управлением ОС Debian GNU/Linux достаточно выполнить команду:
$ sudo apt-get install openvpn -y
Список файлов, входящих в состав пакета openvpn_2.0.9-4_i386.deb можно просмотреть с помощью команды:
$ sudo dpkg -L openvpn
Кроме этого, проверьте имеет ли Ваше ядро поддержку TUN/TAP устройств. Сделать это можно выполнив следующую команду:
$ grep CONFIG_TUN /boot/config-`uname -r` CONFIG_TUN=m
Если Ваше ядро не поддерживает эти устройства:
$ grep CONFIG_TUN /boot/config-`uname -r` # CONFIG_TUN is not set
то для продолжения Вам необходимо скомпилировать этот модуль.
На клиенте, под управлением ОС Windows 2003 SP2, необходимо в первую очередь получить инсталляционный файл. Скачать его можно с помощью ссылки. На момент написания статьи текущая версия OpenVPN — 2.0.9. Затем необходимо проинсталлировать полученное программное обеспечение обычным вызовом .exe файла. Во время инсталляции оставьте все значения по умолчанию.
После установки необходимо сгенерировать статический ключ на любом компьютере — сервере или клиенте, скопировать его на другой компьютер и отредактировать конфигурационные файлы сервера и клиента.
- Для генерации статического ключа в ОС Debian необходимо выполнить следующую команду:
$ sudo openvpn --genkey --secret /etc/openvpn/static.key
- Для генерации статического ключа в ОС Windows необходимо запустить следующую команду: Пуск -> Программы -> OpenVPN -> Generate a static OpenVPN key. В результате будет создан файл C:Program FilesOpenVPNconfigkey.txt. Затем необходимо скопировать этот ключ на другого участника соединения.
Далее отредактируйте конфигурационные файлы сервера и клиента:
- конфигурационный файл сервера /etc/openvpn/sample.conf:
cat /etc/openvpn/sample.conf dev tap ifconfig 172.16.0.1 255.255.255.0 secret key.txt comp-lzo
- конфигурационный файл клиента C:Program FilesOpenVPNconfigsample.ovpn:
remote 192.168.16.15 dev tap ifconfig 172.16.0.2 255.255.255.0 secret key.txt comp-lzo
Из указанных выше конфигурационных файлов видно, что различие серверного и клиентского конфигов очень мало, и сервером будет тот компьютер, у которого не указан параметр remote
Выполним команду на сервере:
sudo openvpn --config /etc/openvpn/sample.conf Tue Jul 12 11:54:44 2011 OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Jan 21 2007 Tue Jul 12 11:54:44 2011 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Tue Jul 12 11:54:44 2011 WARNING: file 'key.txt' is group or others accessible Tue Jul 12 11:54:44 2011 TUN/TAP device tap0 opened Tue Jul 12 11:54:44 2011 /sbin/ifconfig tap0 172.16.0.1 netmask 255.255.255.0 mtu 1500 broadcast 172.16.0.255 Tue Jul 12 11:54:44 2011 UDPv4 link local (bound): [undef]:1194 Tue Jul 12 11:54:44 2011 UDPv4 link remote: [undef] Tue Jul 12 11:54:57 2011 Peer Connection Initiated with 192.168.16.197:1194 Tue Jul 12 11:54:58 2011 Initialization Sequence Completed
Затем на windows:
Запустить сервис OpenVPN под Windows можно и из cmd:
C:Documents and SettingsAdministrator>cd "c:Program FilesOpenVPNconfig" C:Program FilesOpenVPNconfig>openvpn --config sample.ovpn Tue Jul 12 12:52:24 2011 us=640078 Current Parameter Settings: Tue Jul 12 12:52:24 2011 us=640364 config = 'sample.ovpn' Tue Jul 12 12:52:24 2011 us=640535 mode = 0 Tue Jul 12 12:52:24 2011 us=640688 show_ciphers = DISABLED Tue Jul 12 12:52:24 2011 us=640852 show_digests = DISABLED Tue Jul 12 12:52:24 2011 us=641022 show_engines = DISABLED Tue Jul 12 12:52:24 2011 us=641192 genkey = DISABLED Tue Jul 12 12:52:24 2011 us=641358 key_pass_file = '[UNDEF]' Tue Jul 12 12:52:24 2011 us=641529 show_tls_ciphers = DISABLED Tue Jul 12 12:52:24 2011 us=641706 proto = 0 Tue Jul 12 12:52:24 2011 us=641863 NOTE: --mute triggered... Tue Jul 112 12:52:24 2011 us=642076 178 variation(s) on previous 10 message(s) su ppressed by --mute Tue Jul 12 12:52:24 2011 us=642346 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built o n Oct 1 2006 Tue Jul 12 12:52:24 2011 us=643308 IMPORTANT: OpenVPN's default port number is n ow 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta1 6 and earlier used 5000 as the default port. Tue Jul 12 12:52:24 2011 us=643684 WARNING: --ping should normally be used with --ping-restart or --ping-exit Tue Jul 12 12:52:24 2011 us=644588 Static Encrypt: Cipher 'BF-CBC' initialized w ith 128 bit key Tue Jul 12 12:52:24 2011 us=644902 Static Encrypt: Using 160 bit message hash 'S HA1' for HMAC authentication Tue Jul 12 12:52:24 2011 us=645257 Static Decrypt: Cipher 'BF-CBC' initialized w ith 128 bit key Tue Jul 12 12:52:24 2011 us=645528 Static Decrypt: Using 160 bit message hash 'S HA1' for HMAC authentication Tue Jul 12 12:52:24 2011 us=645839 LZO compression initialized Tue Jul 12 12:52:24 2011 us=650456 TAP-WIN32 device [Local Area Connection 2] op ened: \.Global{59380ED2-2769-41B0-97F6-C4BC571471CA}.tap Tue Jul 12 12:52:24 2011 us=650817 TAP-Win32 Driver Version 8.4 Tue Jul 12 12:52:24 2011 us=651030 TAP-Win32 MTU=1500 Tue Jul 12 12:52:24 2011 us=651244 Notified TAP-Win32 driver to set a DHCP IP/ne tmask of 172.16.0.2/255.255.255.0 on interface {59380ED2-2769-41B0-97F6-C4BC5714 71CA} [DHCP-serv: 172.16.0.0, lease-time: 31536000] Tue Jul 12 12:52:24 2011 us=687896 Successful ARP Flush on interface [65540] {59 380ED2-2769-41B0-97F6-C4BC571471CA} Tue Jul 12 12:52:24 2011 us=694501 Data Channel MTU parms [ L:1577 D:1450 EF:45 EB:135 ET:32 EL:0 AF:3/1 ] Tue Jul 12 12:52:24 2011 us=698395 Local Options String: 'V4,dev-type tap,link-m tu 1577,tun-mtu 1532,proto UDPv4,ifconfig 172.16.0.0 255.255.255.0,comp-lzo,ciph er BF-CBC,auth SHA1,keysize 128,secret' Tue Jul 12 12:52:24 2011 us=704162 Expected Remote Options String: 'V4,dev-type tap,link-mtu 1577,tun-mtu 1532,proto UDPv4,ifconfig 172.16.0.0 255.255.255.0,com p-lzo,cipher BF-CBC,auth SHA1,keysize 128,secret' Tue Jul 12 12:52:24 2011 us=710006 Local Options hash (VER=V4): '94889dd0' Tue Jul 12 12:52:24 2011 us=712199 Expected Remote Options hash (VER=V4): '94889 dd0' Tue Jul 12 12:52:24 2011 us=716063 Socket Buffers: R=[8192->8192] S=[8192->8192] Tue Jul 12 12:52:24 2011 us=720016 UDPv4 link local (bound): [undef]:1194 Tue Jul 12 12:52:24 2011 us=722180 UDPv4 link remote: 192.168.16.15:1194 Tue Jul 12 12:52:30 2011 us=303168 Peer Connection Initiated with 192.168.16.15: 1194 Tue Jul 12 12:52:31 2011 us=54350 TEST ROUTES: 0/0 succeeded len=-1 ret=1 a=0 u/ d=up Tue Jul 12 12:52:31 2011 us=58342 Initialization Sequence Completed
Теперь проверьте состояние интерфейсов при помощи команды /sbin/ifconfig на сервере:
/sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:04:76:A1:EF:BB inet addr:10.0.17.1 Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: fe80::204:76ff:fea1:efbb/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5663951 errors:0 dropped:0 overruns:1 frame:0 TX packets:2928925 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1850432381 (1.7 GiB) TX bytes:330532572 (315.2 MiB) Interrupt:169 eth1 Link encap:Ethernet HWaddr 00:60:08:20:7B:0B inet addr:192.168.16.15 Bcast:192.168.16.255 Mask:255.255.255.0 inet6 addr: fe80::260:8ff:fe20:7b0b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:104476 errors:0 dropped:0 overruns:0 frame:0 TX packets:120582 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:19294593 (18.4 MiB) TX bytes:48250297 (46.0 MiB) Interrupt:185 Base address:0xc400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:64752 errors:0 dropped:0 overruns:0 frame:0 TX packets:64752 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:43343011 (41.3 MiB) TX bytes:43343011 (41.3 MiB) tap0 Link encap:Ethernet HWaddr 86:FA:EC:53:C3:84 inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0 inet6 addr: fe80::84fa:ecff:fe53:c384/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:83 errors:0 dropped:0 overruns:0 frame:0 TX packets:63 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:10893 (10.6 KiB) TX bytes:9344 (9.1 KiB)
И на windows-клиенте при помощи команды ipconfig /all:
C:Documents and SettingsAdministrator>ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : win0 Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : net.nt Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : net.nt Description . . . . . . . . . . . : 3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX) Physical Address. . . . . . . . . : 00-04-75-75-46-C1 DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.16.197 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.16.15 DHCP Server . . . . . . . . . . . : 192.168.16.15 DNS Servers . . . . . . . . . . . : 192.168.16.15 Lease Obtained. . . . . . . . . . : 12 июля 2011 г. 12:14:14 Lease Expires . . . . . . . . . . : 12 июля 2011 г. 12:24:14 Ethernet adapter Local Area Connection 2: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : TAP-Win32 Adapter V8 Physical Address. . . . . . . . . : 00-FF-59-38-0E-D2 DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 172.16.0.2 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : DHCP Server . . . . . . . . . . . : 172.16.0.0 Lease Obtained. . . . . . . . . . : 12 июля 2011 г. 12:15:23 Lease Expires . . . . . . . . . . : 12 июля 2011 г. 12:15:23
И проверьте только что установленный туннель :
ping 172.16.0.2 -c 4 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=128 time=4.57 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=128 time=0.813 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=128 time=0.950 ms 64 bytes from 172.16.0.2: icmp_seq=4 ttl=128 time=1.11 ms --- 172.16.0.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 0.813/1.863/4.578/1.571 ms
На этом организация vpn соединения с использованием статических ключей завершена.
[править] Создание сертификатов на Windows с использованием easy-rsa
В первую очередь необходимо создать каталог c:Progam FilesOpenVPNeasy-rsakeys и скопировать в него файлы serial.start и index.txt.start без суффикса .start. Сделать это можно при помощи следующей команды запущенной в cmd:
C:Documents and SettingsAdministrator>cd "c:Program FilesOpenVPNeasy-rsa" && mkdir keys && copy serial.start keysserial && copy index.txt.start keysindex.txt 1 file(s) copied. 1 file(s) copied.
Затем необходимо скопировать файлы vars.bat.sample и openssl.cnf.sample в vars.bat и openssl.cnf соответственно. Сделать это можно, выполнив batch файл C:Program FilesOpenVPNeasy-rsainit-config.bat при помощи следующей команды:
C:Documents and SettingsAdministrator>cd "c:Program FilesOpenVPNeasy-rsa" && init-config.bat C:Program FilesOpenVPNeasy-rsa>copy vars.bat.sample vars.bat 1 file(s) copied. C:Program FilesOpenVPNeasy-rsa>copy openssl.cnf.sample openssl.cnf 1 file(s) copied.
Файл openssl.cnf — >>>>
Файл vars.bat ——>>>
Затем необходимо отредактировать файл vars.bat:
@echo off set HOME=%ProgramFiles%OpenVPNeasy-rsa set KEY_CONFIG=openssl.cnf set KEY_DIR=keys set KEY_SIZE=1024 set KEY_COUNTRY=UA set KEY_PROVINCE=Kiev set KEY_CITY=Kiev set KEY_ORG=TechExpert set KEY_EMAIL=otradnyi@mail.ru
Затем необходимо внести изменения в среду окружения согласно файла vars.bat. Сделать это можно из cmd при помощи следующей команды:
C:Documents and SettingsAdministrator>cd "c:Program FilesOpenVPNeasy-rsa" && vars.bat
- Затем необходимо создать Diffie-Hellman key:
C:Program FilesOpenVPNeasy-rsa>vars.bat C:Program FilesOpenVPNeasy-rsa>build-dh.bat Loading 'screen' into random state - done Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ..................+...............................................................................+..........+....................... .....+.....+.............+........................................................+.........+........................................ +.........+...................................................................................+...................................... .................................................................+...................................................+............... .........+............................................................................+........+............................+........ ....................+........................................+.........+............................+................................ .......................+...........+.................................................................+..........+.................... ............................................+......+.........................+.......................+.....................+......... ........................................................+....+....................................................................... .............................+..........................................+............................................................ ..................................+...........+....................................................+................................. .............................................................+......................................+.............................+.. .................................................................................................................+................... .....++*++*++*
В результате в каталоге C:Program FilesOpenVPNeasy-rsakeys появится файл dh1024.pem:
C:Program FilesOpenVPNeasy-rsa>dir keys Volume in drive C has no label. Volume Serial Number is 508A-A105 Directory of C:Program FilesOpenVPNeasy-rsakeys 13.07.2011 13:22 <DIR> . 13.07.2011 13:22 <DIR> .. 13.07.2011 13:22 245 dh1024.pem 13.07.2011 13:06 0 index.txt 13.07.2011 13:06 3 serial 3 File(s) 248 bytes 2 Dir(s) 7 517 777 920 bytes free
- Теперь необходимо создать Certificate Authority. Создается он путем выполнения файла build-ca.bat:
C:Program FilesOpenVPNeasy-rsa>vars.bat C:Program FilesOpenVPNeasy-rsa>build-ca.bat Loading 'screen' into random state - done Generating a 1024 bit RSA private key .......++++++ ...................++++++ writing new private key to 'keysca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [UA]:UA State or Province Name (full name) [Kiev]:Kiev Locality Name (eg, city) [Kiev]:Kiev Organization Name (eg, company) [TechExpert]:TechExpert Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:win0 Email Address [otradnyi@mail.ru]:otradnyi@mail.ru
В результате выполнения этой команды в каталоге keys было создано два файла ca.crt и ca.key:
C:Program FilesOpenVPNeasy-rsa>dir keys Volume in drive C has no label. Volume Serial Number is 508A-A105 Directory of C:Program FilesOpenVPNeasy-rsakeys 13.07.2011 13:38 <DIR> . 13.07.2011 13:38 <DIR> .. 13.07.2011 13:38 1 224 ca.crt 13.07.2011 13:38 887 ca.key 13.07.2011 13:22 245 dh1024.pem 13.07.2011 13:06 0 index.txt 13.07.2011 13:06 3 serial 5 File(s) 2 359 bytes 2 Dir(s) 7 517 769 728 bytes free
ca.crt —>>>
ca.key —->>>
- Далее необходимо создать ключи сервера и клиента.
Для этого необходимо выполнить файл build-key-server.bat с параметром имени сервера, в нашем случае это win0:
C:Program FilesOpenVPNeasy-rsa>vars.bat C:Program FilesOpenVPNeasy-rsa>build-key-server.bat win0 Loading 'screen' into random state - done Generating a 1024 bit RSA private key ............................................++++++ ....................++++++ writing new private key to 'keyswin0.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [UA]: State or Province Name (full name) [Kiev]: Locality Name (eg, city) [Kiev]: Organization Name (eg, company) [TechExpert]: Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:win0 Email Address [otradnyi@mail.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from openssl.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'UA' stateOrProvinceName :PRINTABLE:'Kiev' localityName :PRINTABLE:'Kiev' organizationName :PRINTABLE:'TechExpert' organizationalUnitName:PRINTABLE:'IT' commonName :PRINTABLE:'win0' emailAddress :IA5STRING:'otradnyi@mail.ru' Certificate is to be certified until Jul 13 11:25:57 2017 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
В результате в каталоге:
C:Program FilesOpenVPNeasy-rsa>dir keys Volume in drive C has no label. Volume Serial Number is 508A-A105 Directory of C:Program FilesOpenVPNeasy-rsakeys 13.07.2011 14:26 <DIR> . 13.07.2011 14:26 <DIR> .. 13.07.2011 14:26 3 629 01.pem 13.07.2011 13:38 1 224 ca.crt 13.07.2011 13:38 887 ca.key 13.07.2011 13:22 245 dh1024.pem 13.07.2011 14:26 99 index.txt 13.07.2011 14:26 21 index.txt.attr 13.07.2011 14:26 3 serial 13.07.2011 14:26 3 629 win0.crt 13.07.2011 14:25 680 win0.csr 13.07.2011 14:25 887 win0.key 10 File(s) 11 304 bytes 2 Dir(s) 7 517 663 232 bytes free
- Теперь создадим ключ клиента:
C:Program FilesOpenVPNeasy-rsa>build-key.bat roman Loading 'screen' into random state - done Generating a 1024 bit RSA private key ........++++++ ........++++++ writing new private key to 'keysroman.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [UA]: State or Province Name (full name) [Kiev]: Locality Name (eg, city) [Kiev]: Organization Name (eg, company) [TechExpert]: Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:roman Email Address [otradnyi@mail.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from openssl.cnf Loading 'screen' into random state - done DEBUG[load_index]: unique_subject = "yes" Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'UA' stateOrProvinceName :PRINTABLE:'Kiev' localityName :PRINTABLE:'Kiev' organizationName :PRINTABLE:'TechExpert' organizationalUnitName:PRINTABLE:'IT' commonName :PRINTABLE:'roman' emailAddress :IA5STRING:'otradnyi@mail.ru' Certificate is to be certified until Jul 13 11:37:01 2017 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
В результате в каталоге:
C:Program FilesOpenVPNeasy-rsa>dir keys Volume in drive C has no label. Volume Serial Number is 508A-A105 Directory of C:Program FilesOpenVPNeasy-rsakeys 13.07.2011 14:37 <DIR> . 13.07.2011 14:37 <DIR> .. 13.07.2011 14:26 3 629 01.pem 13.07.2011 14:37 3 531 02.pem 13.07.2011 13:38 1 224 ca.crt 13.07.2011 13:38 887 ca.key 13.07.2011 13:22 245 dh1024.pem 13.07.2011 14:37 199 index.txt 13.07.2011 14:37 21 index.txt.attr 13.07.2011 14:37 3 serial 13.07.2011 14:37 3 531 roman.crt 13.07.2011 14:37 680 roman.csr 13.07.2011 14:37 887 roman.key 13.07.2011 14:26 3 629 win0.crt 13.07.2011 14:25 680 win0.csr 13.07.2011 14:25 887 win0.key 14 File(s) 20 033 bytes 2 Dir(s) 7 517 650 944 bytes free
- Теперь необходимо скопировать roman.crt, roman.key и ca.crt в каталог /etc/openvpn.
- mkdir /etc/openvpn/keys
- Теперь необходимо поправить конфиги:
—Винда:
###remote 192.168.16.15 ###secret key.txt dev tap ifconfig 172.16.0.2 255.255.255.0 ###comp-lzo tls-server dh keys/dh1024.pem ca keys/ca.crt cert keys/win0.crt key keys/win0.key
— Linux
remote 192.168.16.197 dev tap tls-client ifconfig 172.168.0.1 255.255.255.0 dh dh1024.pem ca ca.crt cert roman.crt key roman.key
Если при старте сервера на Windows возникнет ошибка:
system library:fopen:No such file or directory
Необходимо переместить каталог c:Progam FilesOpenVPNeasy-rsakeys в с:keys и после этого модифицировать конфиг:
dev tap ifconfig 172.16.0.2 255.255.255.0 tls-server dh c:\keys\dh1024.pem ca c:\keys\ca.crt cert c:\keys\win0.crt key c:\keys\win0.key
Теперь запустим сервер vpn из cmd под Windows с помощью следующей команды:
C:Documents and SettingsAdministrator>openvpn --config "c:Program FilesOpenVPNconfigsample.ovpn" Tue Jul 12 17:02:23 2011 us=612115 Current Parameter Settings: Tue Jul 12 17:02:23 2011 us=612409 config = 'c:Program FilesOpenVPNconfigsample.ovpn' Tue Jul 12 17:02:23 2011 us=612634 mode = 0 Tue Jul 12 17:02:23 2011 us=612791 show_ciphers = DISABLED Tue Jul 12 17:02:23 2011 us=612953 show_digests = DISABLED Tue Jul 12 17:02:23 2011 us=613112 show_engines = DISABLED Tue Jul 12 17:02:23 2011 us=613270 genkey = DISABLED Tue Jul 12 17:02:23 2011 us=613427 key_pass_file = '[UNDEF]' Tue Jul 12 17:02:23 2011 us=613591 show_tls_ciphers = DISABLED Tue Jul 12 17:02:23 2011 us=613753 proto = 0 Tue Jul 12 17:02:23 2011 us=613910 NOTE: --mute triggered... Tue Jul 12 17:02:23 2011 us=614111 178 variation(s) on previous 10 message(s) suppressed by --mute Tue Jul 12 17:02:23 2011 us=614331 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2006 Tue Jul 12 17:02:23 2011 us=615260 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment . OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Tue Jul 12 17:02:23 2011 us=615596 WARNING: --ping should normally be used with --ping-restart or --ping-exit Tue Jul 12 17:02:23 2011 us=671943 Diffie-Hellman initialized with 1024 bit key Tue Jul 12 17:02:23 2011 us=675391 Control Channel MTU parms [ L:1573 D:138 EF:38 EB:0 ET:0 EL:0 ] Tue Jul 12 17:02:23 2011 us=680475 TAP-WIN32 device [Local Area Connection 4] opened: \.Global{DDA59CFF-B7AE-4F0E-91DA-C111AF5139B Tue Jul 12 17:02:23 2011 us=680823 TAP-Win32 Driver Version 8.4 Tue Jul 12 17:02:23 2011 us=681026 TAP-Win32 MTU=1500 Tue Jul 12 17:02:23 2011 us=681234 Notified TAP-Win32 driver to set a DHCP IP/netmask of 172.16.0.2/255.255.255.0 on interface {DDA59 E-4F0E-91DA-C111AF5139B5} [DHCP-serv: 172.16.0.0, lease-time: 31536000] Tue Jul 12 17:02:23 2011 us=716919 Successful ARP Flush on interface [196612] {DDA59CFF-B7AE-4F0E-91DA-C111AF5139B5} Tue Jul 12 17:02:23 2011 us=725976 Data Channel MTU parms [ L:1573 D:1450 EF:41 EB:4 ET:32 EL:0 ] Tue Jul 12 17:02:23 2011 us=726302 Local Options String: 'V4,dev-type tap,link-mtu 1573,tun-mtu 1532,proto UDPv4,ifconfig 172.16.0.0 .255.0,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server' Tue Jul 12 17:02:23 2011 us=726626 Expected Remote Options String: 'V4,dev-type tap,link-mtu 1573,tun-mtu 1532,proto UDPv4,ifconfig 1 .0 255.255.255.0,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client' Tue Jul 12 17:02:23 2011 us=726987 Local Options hash (VER=V4): '79e31c21' Tue Jul 12 17:02:23 2011 us=727192 Expected Remote Options hash (VER=V4): '5a258ee1' Tue Jul 12 17:02:23 2011 us=727475 Socket Buffers: R=[8192->8192] S=[8192->8192] Tue Jul 12 17:02:23 2011 us=727723 UDPv4 link local (bound): [undef]:1194 Tue Jul 12 17:02:23 2011 us=727898 UDPv4 link remote: [undef]
Затем на клиенте дадим команду:
sudo openvpn --config /etc/openvpn/sample.conf
И смотрим на продолжение вывода на сервере:
Tue Jul 12 17:05:23 2011 us=993139 TLS: Initial packet from 192.168.16.15:1194, sid=76cd5180 622a0d09 Tue Jul 12 17:05:24 2011 us=505011 VERIFY OK: depth=1, /C=UA/ST=Kiev/L=Kiev/O=TechExpert/OU=IT/CN=win0/emailAddress=otradnyi@mail.ru Tue Jul 12 17:05:24 2011 us=506441 VERIFY OK: depth=0, /C=UA/ST=Kiev/O=TechExpert/OU=IT/CN=roman/emailAddress=otradnyi@mail.ru Tue Jul 12 17:05:24 2011 us=567168 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key Tue Jul 12 17:05:24 2011 us=567435 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Tue Jul 12 17:05:24 2011 us=567739 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key Tue Jul 12 17:05:24 2011 us=567977 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Tue Jul 12 17:05:24 2011 us=569802 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA Tue Jul 12 17:05:24 2011 us=570075 [roman] Peer Connection Initiated with 192.168.16.15:1194 Tue Jul 12 17:05:26 2011 us=153485 TEST ROUTES: 0/0 succeeded len=-1 ret=1 a=0 u/d=up Tue Jul 12 17:05:26 2011 us=153796 Initialization Sequence Completed
И проверяем
ping 172.16.0.2 -c 4 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=128 time=8.91 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=128 time=1.00 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=128 time=1.23 ms 64 bytes from 172.16.0.2: icmp_seq=4 ttl=128 time=1.34 ms
[править] Создание сертификатов на Debian с использованием easy-rsa
ls -l /usr/share/doc/openvpn/examples/easy-rsa/ итого 80 drwxr-xr-x 2 root root 4096 2011-07-13 00:18 2.0 -rwxr-xr-x 1 root root 242 2011-07-13 13:06 build-ca -rwxr-xr-x 1 root root 228 2011-07-13 13:06 build-dh -rwxr-xr-x 1 root root 529 2011-07-13 13:06 build-inter -rwxr-xr-x 1 root root 516 2011-07-13 13:06 build-key -rwxr-xr-x 1 root root 424 2011-07-13 13:06 build-key-pass -rwxr-xr-x 1 root root 695 2011-07-13 13:06 build-key-pkcs12 -rwxr-xr-x 1 root root 662 2011-07-13 13:06 build-key-server -rwxr-xr-x 1 root root 466 2011-07-13 13:06 build-req -rwxr-xr-x 1 root root 402 2011-07-13 13:06 build-req-pass -rwxr-xr-x 1 root root 280 2011-07-13 13:06 clean-all -rw-r--r-- 1 root root 264 2011-07-13 13:06 list-crl -rw-r--r-- 1 root root 268 2011-07-13 13:06 make-crl -rw-r--r-- 1 root root 7487 2011-07-13 13:06 openssl.cnf -rw-r--r-- 1 root root 2619 2011-07-13 13:06 README.gz -rw-r--r-- 1 root root 268 2011-07-13 13:06 revoke-crt -rwxr-xr-x 1 root root 593 2011-07-13 13:06 revoke-full -rwxr-xr-x 1 root root 411 2011-07-13 13:06 sign-req -rw-r--r-- 1 root root 1266 2011-07-13 13:06 vars
sudo mkdir /usr/share/doc/openvpn/examples/easy-rsa/keys
sudo touch /usr/share/doc/openvpn/examples/easy-rsa/keys/index.txt sudo touch /usr/share/doc/openvpn/examples/easy-rsa/keys/serial sudo sh -c "echo 01 > /usr/share/doc/openvpn/examples/easy-rsa/keys/serial"
egrep -v '^ *$|^#' vars export D=`pwd` export KEY_CONFIG=$D/openssl.cnf export KEY_DIR=$D/keys echo NOTE: when you run ./clean-all, I will be doing a rm -rf on $KEY_DIR export KEY_SIZE=1024 export KEY_COUNTRY=UA export KEY_PROVINCE=Kiev export KEY_CITY=Kiev export KEY_ORG="TechExpert" export KEY_EMAIL="otradnyi@mail.ru"
# . vars NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn/examples/easy-rsa/keys
# echo $KEY_ $KEY_CITY $KEY_COUNTRY $KEY_EMAIL $KEY_PROVINCE $KEY_CONFIG $KEY_DIR $KEY_ORG $KEY_SIZE # echo $KEY_CITY Kiev # echo $KEY_CONFIG /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf
# ./build-dh Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time ..................................................+.+............. .................................................................. ........................................+..+...................... ............+........+............................................ ........+.........................................+............... ...............................................+.................. .................................................................. .................................................................. ..........................+....................................... ...................................................+.............. ....+.......................................................+..... .......................................+...........+.............. ....+........+.................................................... ..................+........+...............+...................... ..................+............................................... ........................................................+.......+. ...................................+..........+....+..........+... ...............+..................................+............... .........................................................+........ ....................+...++*++*++*
# ./build-ca Generating a 1024 bit RSA private key .....................................................++++++ ..........++++++ writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [UA]: State or Province Name (full name) [Kiev]: Locality Name (eg, city) [Kiev]: Organization Name (eg, company) [TechExpert]: Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:roman Email Address [otradnyi@mail.ru]:
# ls keys/ ca.crt ca.key dh1024.pem index.txt serial
# ./build-key-server roman Generating a 1024 bit RSA private key .............++++++ ........++++++ writing new private key to 'roman.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [UA]: State or Province Name (full name) [Kiev]: Locality Name (eg, city) [Kiev]: Organization Name (eg, company) [TechExpert]: Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:roman Email Address [otradnyi@mail.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'UA' stateOrProvinceName :PRINTABLE:'Kiev' localityName :PRINTABLE:'Kiev' organizationName :PRINTABLE:'TechExpert' organizationalUnitName:PRINTABLE:'IT' commonName :PRINTABLE:'roman' emailAddress :IA5STRING:'otradnyi@mail.ru' Certificate is to be certified until Jul 13 09:00:09 2017 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
# ls keys/ 01.pem ca.crt ca.key dh1024.pem index.txt index.txt.attr index.txt.old serial serial.old roman.crt roman.csr roman.key
# ./build-key student Generating a 1024 bit RSA private key .++++++ ....................++++++ writing new private key to 'student.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [UA]: State or Province Name (full name) [Kiev]: Locality Name (eg, city) [Kiev]: Organization Name (eg, company) [TechExpert]: Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:student Email Address [otradnyi@mail.ru]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/openssl.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'UA' stateOrProvinceName :PRINTABLE:'Kiev' localityName :PRINTABLE:'Kiev' organizationName :PRINTABLE:'TechExpert' organizationalUnitName:PRINTABLE:'IT' commonName :PRINTABLE:'student' emailAddress :IA5STRING:'otradnyi@mail.ru' Certificate is to be certified until Jul 13 10:06:23 2017 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
cp keys/student1.crt ; keys/student1.key ; keys/ca.crt и keys/dh1024.pem на Windows
Конфиг сервера:
# cat /etc/openvpn/student1.conf dev tap ifconfig 172.16.0.1 255.255.255.0 tls-server dh keys/dh1024.pem ca keys/ca.crt cert keys/roman.crt key keys/roman.key
Конфиг клиента:
dev tap tls-client dh c:\keys\dh1024.pem ca c:\keys\ca.crt cert c:\keys\student.crt key c:\keys\student.key ifconfig 172.16.0.2 255.255.255.0
Запуск openvpn на сервере:
# openvpn --config /etc/openvpn/student1.conf Wed Jul 13 13:11:59 2011 OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Jan 21 2007 Wed Jul 13 13:11:59 2011 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Wed Jul 13 13:12:00 2011 TUN/TAP device tap0 opened Wed Jul 13 13:12:00 2011 /sbin/ifconfig tap0 172.16.0.1 netmask 255.255.255.0 mtu 1500 broadcast 172.16.0.255 Wed Jul 13 13:12:00 2011 UDPv4 link local (bound): [undef]:1194 Wed Jul 13 13:12:00 2011 UDPv4 link remote: [undef]
Запуск на Windows клиенте из cmd:
C:Documents and SettingsAdministrator>openvpn --config "c:Program FilesOpenV PNconfigclient.ovpn"
Проверка:
# ping 172.16.0.2 -c 4 PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data. 64 bytes from 172.16.0.2: icmp_seq=1 ttl=128 time=3.72 ms 64 bytes from 172.16.0.2: icmp_seq=2 ttl=128 time=1.35 ms 64 bytes from 172.16.0.2: icmp_seq=3 ttl=128 time=1.44 ms 64 bytes from 172.16.0.2: icmp_seq=4 ttl=128 time=1.49 ms --- 172.16.0.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3052ms rtt min/avg/max/mdev = 1.353/2.004/3.727/0.996 ms # ifconfig tap0 tap0 Link encap:Ethernet HWaddr 42:FC:5B:E3:33:D2 inet addr:172.16.0.1 Bcast:172.16.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:42 errors:0 dropped:0 overruns:0 frame:0 TX packets:11 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:6199 (6.0 KiB) TX bytes:902 (902.0 b)
[править] Настройка пула адресов для получения их клиентами
Для этого необходимо использовать tun устройство или с использованием tap устройства необходимо будет прописывать для каждого клиента адрес и маску:
- на сервере:
# cat /etc/openvpn/student1.conf dev tap ifconfig 172.16.0.1 255.255.0.0. ifconfig-pool 172.16.0.2 172.16.0.253 255.255.0.0 mode server tls-server dh keys/dh1024.pem ca keys/ca.crt cert keys/serzh.crt key keys/serzh.key plugin /usr/lib/openvpn/openvpn-auth-pam.so login
- на клиенте:
pull auth-user-pass dev tap remote 10.0.17.1 tls-client dh c:\keys\dh1024.pem ca c:\keys\ca.crt cert c:\keys\student1.crt key c:\keys\student1.key
[править] Настройка парольной аутентификации системных пользователей для установки подключения
Для этого необходимо в файле /etc/openvpn/student1.conf дописать следующие строки:
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
А в клиентском конфиге:
pull auth-user-pass
[править] Настройка OpenVPN для работы в качестве сервера
- Во-первых, необходимо создать конфигурационный файл сервера. Его можно скопировать из каталога /usr/share/doc/openvpn/examples/sample-config-files/ и затем распаковать:
gzip -cd /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz >> /etc/openvpn/server.conf
- Затем необходимо отредактировать этот файл:
# egrep -v '^ *$|^#|;' /etc/openvpn/server.conf port 1194 proto tcp-server dev tap ca keys/ca.crt cert keys/serzh.crt key keys/serzh.key dh keys/dh1024.pem ifconfig-pool-persist ipp.txt ifconfig 172.16.0.1 255.255.255.0 server-bridge 172.16.0.1 255.255.255.0 172.16.0.2 172.16.0.253 client-config-dir ccd client-to-client keepalive 10 120 persist-key persist-tun status openvpn-status.log 3500 verb 3 plugin /usr/lib/openvpn/openvpn-auth-pam.so login
- port 1194 — порт для прослушивания демоном openvpn
- proto tcp-server — указание протокола соединения. Если опция не указана, то используется протокол не гарантированной доставки udp. Для tcp соединения необходимо указать онду из опций tcp-server или tcp-client для сервера и клиента соответственно. Демон, запущенный с опцией tcp-server ожидает входящие соединения. Демон, запущенный с опцией tcp-client, будет инициировать соединение и в случае неудачи будет производить повторные попытки подключения через каждые 5 секунд (определяется connect-retry опцией, 5 секунд — значение по умолчанию).
- dev tap
.
.
.
- ca keys/ca.crt — Опция ca определяет корневой (root) сертификат, которым подписаны клиентские пары сертификат/ключ. Значение этой опции keys/ca.crt указывает месторасположение этого сертификата относительно каталога /etc/openvpn. (Или, иными словами, это открытый ключ сервера)
- cert keys/serzh.crt — Каждый участник OpenVPN соединения в TLS режиме должен иметь собственный сертификат и файл с закрытым ключом. Каждый сертификат должен быть подписан закрытым ключом центра сертификатов, чей открытый ключ указывается в опции ca.
- key keys/serzh.key — Закрытый ключ, который генерируется вместе с сертификатом, указанным в опции cert
- dh keys/dh1024.pem — Файл, содержащий параметры Diffie Hellman
.
.
.
- ifconfig-pool-persist ipp.txt — Файл ассоциаций client <-> virtual IP.
Например:
# cat ipp.txt student1,172.16.0.2 natali,172.16.0.5
где первое поле — имя используемого с TLS режиме сертификата.
- ifconfig 172.16.0.1 255.255.255.0 — IP-адрес, присваиваемый серверу на устройстве /dev/tap
- server-bridge 172.16.0.1 255.255.255.0 172.16.0.2 172.16.0.253 — Использование сервера в режиме моста. Это дает возможность видеть клиетам не только сервер но и других клиентов (при указании опции client-to-client).
- client-config-dir ccd — Опция определяет каталог в /etc/openvpn/ с конфигурационными файлами клиентов. В этих файлах могут быть переопределены опции основного конфигурационного файла для каждого из клиентов.
- keepalive 10 120
- persist-key — Не перечитывать заново файлы ключей при получении сигнала SIGUSR1 (переустановка соединения) или через интервал, указанный опцией ping-restart n (переустановить соединение через n секунд после отправки последнего icmp пакета клиенту, который остался без ответа)
- persist-tun — Не закрывать или переоткрывать устройства TUN/TAP при получении сигнала SIGUSR1 или по прошествию интервала n опции ping-restart n.
- status openvpn-status.log 3500 — В файл /etc/openvpn/openvpn-status.log будет записываться статус активных подключений каждые 5 минут
- verb 3 — Уровень вывода отладочной информации.
- plugin /usr/lib/openvpn/openvpn-auth-pam.so login — Подключение модуля аутентификации openvpn-auth-pam.so и использование программы login для аутентификации пользователей во время установки соединения.
Конфигурационный файл клиента:
pull auth-user-pass dev tap proto tcp-client remote 10.0.17.1 tls-client dh c:\keys\dh1024.pem ca c:\keys\ca.crt cert c:\keys\student1.crt key c:\keys\student1.key
[править] Openvpn FreeBSD
Инсталляция:
$ cd /usr/ports/security/openvpn $ sudo make install clean ___________________________________ Options for openvpn 2.0.6_4 [X] PW_SAVE Interactive passwords may be read from a file ___________________________________
Настройка:
$ sudo mkdir /usr/local/etc/openvpn $ sudo openvpn --genkey --secret /usr/local/etc/openvpn/static.key $ sudo sh -c 'cat << CONF >> /usr/local/etc/openvpn/sample.conf dev tun ifconfig 172.16.0.1 172.16.0.2 secret /usr/local/etc/openvpn/static.key comp-lzo CONF'
Копируем на Windows static.key в C:Program FilesOpenVPNstatic.key
Затем создаем конфигурационный файл клиента openvpn — C:Program FilesOpenVPNconfig на Windows:
remote 192.168.15.238 dev tun ifconfig 172.16.0.2 172.16.0.1 secret "C:\Program Files\OpenVPN\config\static.key" comp-lzo
Запускаем на сервере FreeBSD openvpn:
$ sudo openvpn --config /usr/local/etc/openvpn/sample.conf Wed Aug 29 19:42:16 2007 OpenVPN 2.0.6 i386-portbld-freebsd6.2 [SSL] [LZO] built on Aug 29 2007 Wed Aug 29 19:42:16 2007 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port. Wed Aug 29 19:42:16 2007 LZO compression initialized Wed Aug 29 19:42:16 2007 TUN/TAP device /dev/tun0 opened Wed Aug 29 19:42:16 2007 /sbin/ifconfig tun0 172.16.0.1 172.16.0.2 mtu 1500 netmask 255.255.255.255 up Wed Aug 29 19:42:16 2007 UDPv4 link local (bound): [undef]:1194 Wed Aug 29 19:42:16 2007 UDPv4 link remote: [undef] . . .
И подключаемся с Windows клиентом:
C:Documents and SettingsAdministrator>openvpn --config "C:Program FilesOpenV PNconfigsample.ovpn" Wed Aug 29 19:44:50 2007 OpenVPN 2.0.9 Win32-MinGW [SSL] [LZO] built on Oct 1 2 006 Wed Aug 29 19:44:50 2007 IMPORTANT: OpenVPN's default port number is now 1194, b ased on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earl ier used 5000 as the default port. Wed Aug 29 19:44:50 2007 LZO compression initialized Wed Aug 29 19:44:50 2007 TAP-WIN32 device [??????????? ?? ????????? ???? 3] open ed: \.Global{338C1B96-AA76-4B7F-8E7F-489452A64B06}.tap Wed Aug 29 19:44:50 2007 Notified TAP-Win32 driver to set a DHCP IP/netmask of 1 72.16.0.2/255.255.255.252 on interface {338C1B96-AA76-4B7F-8E7F-489452A64B06} [D HCP-serv: 172.16.0.1, lease-time: 31536000] Wed Aug 29 19:44:50 2007 Successful ARP Flush on interface [131076] {338C1B96-AA 76-4B7F-8E7F-489452A64B06} Wed Aug 29 19:44:50 2007 UDPv4 link local (bound): [undef]:1194 Wed Aug 29 19:44:50 2007 UDPv4 link remote: 192.168.15.238:1194 Wed Aug 29 19:45:01 2007 Peer Connection Initiated with 192.168.15.238:1194 Wed Aug 29 19:45:02 2007 Initialization Sequence Completed
И проверяем:
C:Documents and SettingsAdministrator>ping 172.16.0.1 Pinging 172.16.0.1 with 32 bytes of data: Reply from 172.16.0.1: bytes=32 time=1ms TTL=64 Reply from 172.16.0.1: bytes=32 time<1ms TTL=64 Reply from 172.16.0.1: bytes=32 time<1ms TTL=64 Reply from 172.16.0.1: bytes=32 time<1ms TTL=64 Ping statistics for 172.16.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 1ms, Average = 0ms
[править] Дополнительная информация
- OpenVPN HOWTOs
- OpenVPN Static Key Mini-HOWTO
- VPN Tunnelling through HTTP Proxy
[править] Материалы по OpenVPN на xgu.ru
- OpenVPN
- Два шлюза в Интернет и OpenVPN
- OpenVPN в Windows
- OpenVPN Bridge — передача тегированного трафика через VPN
- OpenVPN Proxy ARP