Application: Windows client OpenVPN v.2.3.
В операционной системе "MS Windows" встроенная поддержка протокола OpenVPN отсутствует, очевидно потому следуем на сайт разработчиков и загружаем необходимое клиентское программное обеспечение:
http://openvpn.net/ ;
"Community" ( http://openvpn.net/index.php/open-source.html );
"Community Downloads" ( http://openvpn.net/index.php/open-source/downloads.html );
Загружаем целевой дистрибутив: "Windows Installer (32-bit/64-bit)".
"Community" ( http://openvpn.net/index.php/open-source.html );
"Community Downloads" ( http://openvpn.net/index.php/open-source/downloads.html );
Загружаем целевой дистрибутив: "Windows Installer (32-bit/64-bit)".
Важно! Для того, чтобы клиент OpenVPN мог средствами операционной системы изменять сетевую конфигурацию интерфейсов - включаем встроенного клиента DHCP, если он был выключен ранее.
Запускаем установку, везде соглашаясь с замыслом разработчиков, одобряя все опции, кроме двух необязательных: "OpenSSL Utilites" и "OpenVPN RSA Certificate Management":
OpenVPN-client for MS Windows: выбираем компоненты для установки.
Инсталлятор OpenVPN озаботится поддержкой системой псевдо-устройства "tun" (в процессе установки драйверов будет создано новое устройство - виртуальный сетевой TUN/TAP интерфейс), наша задача состоит в том, чтобы не помешать ему в этом (предоставив по требованию привилегии суперпользователя системы). Мы будем использовать технологию "Layer 3 based IP" туннеля для пропускания IP-трафика между клиентом и окружением сервера VPN (OpenVPN поддерживает и "Layer 2 based Ethernet", но в нашем решении пропуск трафика уровня Ethernet не требуется):
OpenVPN-client for MS Windows: соглашаемся с установкой драйверов виртуальных сетевых устройств TUN/TAP.
Прежде всего, если мы желаем инициировать VPN-соединения вручную, с помощью графического интерфейса, следует подправить условия запуска GUI, указав работать ему от имени суперпользователя системы - иначе клиент OpenVPN не сможет создать виртуальный сетевой интерфейс и применить полученные с сервера маршруты следования трафика (если планируется использовать только фоновый сервис, то в модификации условий запуска клиента OpenVPN нет необходимости):
OpenVPN-client for MS Windows: переходим к редактированию свойств ярлыка запуска клиента OpenVPN.
OpenVPN-client for MS Windows: предписываем запускать клиента OpenVPN с привилегиями суперпользователя операционной системы.
Очень важно! Прежде чем производить дальнейшие работы с конфигурационными файлами, необходимо отключить маскировку расширений файлов в названиях таковых, заставив операционную систему "MS Windows" позволять явно указывать тип файла с помощью вручную задаваемых расширений. В нашем случае мы в процессе настройки создаём обычный текстовый файл (plain text), изменяя после его расширение с принятого в системе ".txt" на зарезервированный для OpenVPN ".ovpn". Так вот, если позволить системе "скрывать расширения для зарегистрированных типов файлов", то у нас получится не желаемое "client.name.ovpn", а "client.name.ovpn.txt" - только оконечивающего имя файла реального расширения ".txt" мы не увидим, потому как оно скрыто, а настраиваемый OpenVPN-клиент не примет конфигурации, потому что ожидает её хоть и в текстовом файле, но с расширением ".ovpn".
Снимаем "галочку" с пункта "скрывать расширения для зарегистрированных типов файлов" в наборе опций "Параметры папок" "Панели управления" системы:
OpenVPN-client for MS Windows: Снимаем "галочку" с пункта "скрывать расширения для зарегистрированных типов файлов" в наборе опций "Параметры папок".
Приложение не предоставляет никаких средств "интуитивно понятной" настройки. Единственный предусмотренный способ - создание конфигурационного файла VPN-соединения вручную в соответствующей предопределённой директории:
OpenVPN-client for MS Windows: переходим в предопределённую разработчиками директорию конфигураций VPN-туннелей.
Конфигураций может быть несколько - они различаются по именам файлов и могут быть использованы как все вместе одновременно, так и по отдельности. Для простоты разместим файлы конфигурации и сертификатов, используемые нашим пока единственным VPN-соединением в одном месте. В дальнейшем, в случае необходимости использования множественных соединений, не составит труда распределить файлы по выделенным директориям. А пока, копируем полученные от администратора VPN-сервера сертификаты и ключи в директорию "C:\Program Files\OpenVPN\config\" и там же создаём конфигурационный файл "сlient.name.ovpn" следующего содержания:
# Режим работы соединения: begin
# включаем режим работы в качестве клиента VPN
client
# ничего не прослушиваем, работаем только в качестве клиента
nobind
# включаем Layer 3 based IP туннель
dev tun
# используемый транспортный протокол
proto tcp
# Режим работы соединения: end
# IP или доменное имя сервера VPN и прослушиваемый сервером порт
remote vpn.example.net 443
# Сертификаты, шифрование и сжатие: begin
ca ca.crt
cert сlient.name.crt
key сlient.name.key
; tls-auth ta.key 1
# включаем сжатие трафика между сервером и клиентом
comp-lzo
# включаем шифрование повышенного уровня относительно стандартного
cipher AES-256-CBC
# Сертификаты, шифрование и сжатие: end
# Журналирование событий
verb 3
# Запрос дополнительной проверки подлинности по логину
; auth-user-pass
# включаем режим работы в качестве клиента VPN
client
# ничего не прослушиваем, работаем только в качестве клиента
nobind
# включаем Layer 3 based IP туннель
dev tun
# используемый транспортный протокол
proto tcp
# Режим работы соединения: end
# IP или доменное имя сервера VPN и прослушиваемый сервером порт
remote vpn.example.net 443
# Сертификаты, шифрование и сжатие: begin
ca ca.crt
cert сlient.name.crt
key сlient.name.key
; tls-auth ta.key 1
# включаем сжатие трафика между сервером и клиентом
comp-lzo
# включаем шифрование повышенного уровня относительно стандартного
cipher AES-256-CBC
# Сертификаты, шифрование и сжатие: end
# Журналирование событий
verb 3
# Запрос дополнительной проверки подлинности по логину
; auth-user-pass
Естественно, в вышеприведённой конфигурации адрес сервера удалённого доступа "vpn.example.net" заменяем на предоставленный администратором. Так же, вместо "ca.crt", "сlient.name.crt", "сlient.name.key" и "ta.key" подставляем имена файлов сертификатов и ключей созданных для обеспечения вашего VPN-подключения администратором (эти файлы вы уже должны были разместить рядом с "конфигом").
Конфигурационные файлы OpenVPN имеют единый формат для всех поддерживаемых версий операционных систем (Linux, Mac, Windows). Применительно к MS Windows отличие лишь в указании двойных "бэкслешей" в пути к файлам ключей и сертификатов и заключение полных путей к файлам в двойные кавычки.
Подключатся к удалённой сетевой инфраструктуре можно двумя способами: запуская клиента OpenVPN в качестве фоновой задачи при старте операционной системы в автоматическом режиме или вручную, через контекстное меню индикатора графического интерфейса "OpenVPN GUI for Windows", размещающегося в "трее":
OpenVPN-client for MS Windows: пример содержимого директории VPN-конфигураций и контекстного меню интерфейса клиента OpenVPN.
С установлением VPN-соединения индикатор клиента в "трее" приобретёт зеленоватую окраску. С этого момента доступ к удалённой сетевой инфраструктуре можно считать успешно осуществлённым. Ради интереса можете удостоверится в появлении дополнительно к основному интернет-подключению ещё одной ограниченной сетевой конфигурации VPN:
OpenVPN-client for MS Windows: перечень активных сетевых соединений, включающий VPN-туннель.
Я упоминал ранее, что для полноценной работы OpenVPN-клиента требуются права суперпользователя. В частности, высокий уровень доступа необходим для применения полученных от VPN-сервера маршрутов на частные сети удалённой инфраструктуры. Для расширения кругозора после первого подключения можно проверить, действительно ли маршруты приняты операционной системой в работу (в командной строке ввести и исполнить "route print"):
OpenVPN-client for MS Windows: таблица маршрутизации, включающая ссылки за шлюзы VPN-туннеля.
По умолчанию сразу после установки возможность автоматического запуска фонового сервиса OpenVPN неактивна - единожды исправляем это и больше не возвращаемся к подключению до истечения срока действия сертификатов:
OpenVPN-client for MS Windows: инициирование автоматического запуска фонового сервиса OpenVPN.
Если подключение используется эпизодически и в автоматизации процесса нет необходимости, то в качестве минимальной оптимизации можно настроить автозапуск графического интерфейса, индикатор которого будет размещён в "трее" и предоставит возможность инициировать VPN-туннель одним кликом мыши в контекстном меню:
OpenVPN-client for MS Windows: внесение в список автозапуска утилиты графического интерфейса клиента OpenVPN.
Если конфигураций VPN-туннелей несколько, то, в случае автоматического запуска фонового сервиса, все они будут инициированы одна за другой, последовательно. Естественно, что вручную можно запускать VPN-соединения в произвольном порядке, выбирая подпункты контекстного меню графического интерфейса "OpenVPN GUI for Windows" в "трее".