Настройка OpenVPN-сервера на Windows 2008/2012
Это пошаговое руководство о том, как настроить OpenVPN-сервер в операционных системах Windows Server 2008/2012 и подключить клиентов к созданной виртуальной частной сети.
OpenVPN — открытая реализация технологии VPN — Virtual Private Network, которая предназначена для создания виртуальных частных сетей между группой территориально удаленных узлов поверх открытого канала передачи данных (интернет). OpenVPN подходит для таких задач, как безопасное удаленное сетевое подключение к серверу без открытия интернет-доступа к нему, как будто вы подключаетесь к хосту в своей локальной сети. Безопасность соединения достигается шифрованием OpenSSL.
Содержание:
Как это работает?
По окончанию настройки OpenVPN сервер сможет принимать внешние защищенные SSL сетевые подключения к созданному при запуске VPN-сервиса виртуальному сетевому адаптеру (tun/tap), не затрагивая правила обработки трафика других интерфейсов (внешний интернет-адаптер и др.) Имеется возможность настроить общий доступ клиентов OpenVPN к конкретному сетевому адаптеру из присутствующих на сервере. Во второй части инструкции рассмотрено такое туннелирование интернет-трафика пользователей. При этом способе переадресации обрабатывающий VPN-подключения хост будет выполнять и функцию прокси-сервера (Proxy) — унифицировать правила сетевой активности пользователей и осуществлять маршрутизацию клиентского интернет-трафика от своего имени.
Установка OpenVPN на сервер
Скачайте и установите актуальную версию OpenVPN, соответствующую вашей операционной системе. Запустите установщик, убедитесь что на третьем шаге мастера установки выбраны все компоненты для установки.
Обратите внимание, что в этой инструкции дальнейшие команды приведены из расчета, что OpenVPN установлен в директорию по-умолчанию
Разрешаем добавление виртуального сетевого адаптера TAP в ответ на соответствующий запрос и дожидаемся завершения установки (может занять несколько минут).
Генерация ключей (PKI) центра сертификации, сервера, клиента; алгоритм Диффи-Хеллмана
Для управления парами «ключ/сертификат» всех узлов создаваемой частной сети используется утилита easy-rsa, работающая через командную строку по аналогии с консолью Linux. Для работы с ней откройте запустите командую строку (Сочетание клавиш Win+R, затем наберите cmd и нажмите Enter)
Файлы конфигурации
Скачайте наши файлы конфигурации и скрипты и замените их в каталоге C:\Program Files\OpenVPN\easy-rsa.
Если пути по умолчанию не совпадают, откорректируйте их во всех файлах.
В файле конфигурации openssl-1.0.0.conf обязательно задайте значения переменным, соответствующие вашим данным: countryName_default
stateOrProvinceName_default
localityName_default
0.organizationName_default
emailAddress_default
Примечание: если значение переменной содержит пробел, то заключите ее в кавычки.
Генерация ключей Центра Сертификации и Сервера
- Переименуйте файл index.txt.start в index.txt, serial.start в serial с помощью следующих команд:
cd "C:\Program Files\OpenVPN\easy-rsa"
ren index.txt.start index.txt
ren serial.start serialПерейдем к созданию ключа/сертификата центра сертификации. Запустите скрипт:
.\build-ca.bat
В ответ на появляющиеся запросы вы можете просто нажимать Enter. Единственное исключение — поле KEY_CN (Common Name) — обязательно укажите уникальное имя и такое же имя вставьте в поле name.
- Аналогичным образом генерируем сертификат сервера. Здесь значение полей Common Name и Name — SERVER:
.\build-key-server.bat server
Примечание: аргумент server — имя будущего файла.
Для всех генерируемых ключей теперь будет задаваться вопрос о том, подписать ли создаваемый сертификат (Sign the certificate) от имени центра сертификации. Отвечаем y (yes).
Генерация клиентских ключей и сертификатов
Для каждого клиента VPN необходимо сгенерировать отдельный SSL-сертификат.
В конфигурации OpenVPN присутствует опция, включив которую вы можете использовать один сертификат для нескольких клиентов (см. файл server.ovpn -> опция «dublicate-cn»), но это не рекомендуется с точки зрения безопасности. Сертификаты можно генерировать и в дальнейшем, по мере подключения новых клиентов. Поэтому сейчас создадим только один для клиента
Выполните следующие команды для генерации клиентских ключей: cd \
cd "C:\Program Files\OpenVPN\easy-rsa"
.\build-key.bat client1
Примечание: аргумент client1 — имя будущего файла.
В поле Common Name указываем имя клиента (в нашем случае client1).
Параметры Diffie Hellman
Для завершения настройки шифрования, необходимо запустить скрипт генерации параметров Диффи-Хеллмана: .\build-dh.bat
Отображение информации о создании параметров выглядит так:
Перенос созданных ключей/сертификатов
Сгенерированные сертификаты находятся в директории
- ca.crt
- dh3048.pem/dh2048.pem
- server.crt
- server.key
Конфигурация сервера OpenVPN
В дереве найдите каталог HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. В правой части окна найдите переменную IPEnableRouter, двойным щелчком мыши перейдите в окно редактирования значения и измените его на 1, тем самым разрешив адресацию на VPS.
- Перейдем к настройке непосредственно VPN-сервера, используйте наш файл конфигурации с именем server.ovpn и поместите его в директорию C:\Program Files\OpenVPN\config.
port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh3048.pem"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
comp-lzo
persist-key
persist-tun
verb 3Сохраняем файл.
-
Теперь необходимо разрешить пересылку трафика между адаптерами. Выполните следующие шаги: Панель управления -> Сеть и интернет -> Центр управления сетями и общим доступом -> Изменение параметров адаптера. Выберете адаптер который смотрит во внешнюю сеть Интернет (TAP-адаптер отвечает за VPN соединение). В нашем примере это Ethernet 2.
С помощью двойного щелчка мыши откройте Свойства адаптера и перейдите во вкладку Доступ, отметьте галочкой все пункты. Сохраните изменения.
- Далее нужно включить IP-адресацию.
С помощью поиска Windows найдите приложение REGEDIT.exe.
Автозапуск OpenVPN
Сразу настроим службу OpenVPN на автозапуск при старте системы. Открываем «Службы»(Services) Windows. Находим в списке OpenVPN -> ПКМ -> Свойства (Properties) -> Запуск: Автоматически
На этом базовая настройка сервера виртуальной частной сети завершена. Найдите файл C:\Program Files\OpenVPN\config\server.ovpn -> кликните правой кнопкой мыши -> «Start OpenVPN on this config» для запуска сервера виртуальной частной сети и подготовленного нами файла настроек.
Конфигурация клиента OpenVPN
Клиентские приложения OpenVPN доступны для всех популярных ОС: Windows / Linux / iOS / Android. Для MacOS используется клиент Tunnelblick. Все эти приложения работают с одними и теми же файлами конфигурации. Возможны лишь некоторые различия нескольких опций. Узнать о них вы можете, изучив документацию к своему клиенту OpenVPN. В этом руководстве мы рассмотрим подключение Windows-клиента с использованием того же дистрибутива программы, который мы устанавливали на сервер. При использовании приложений для других операционных систем логика настройки аналогична.
- Устанавливаем актуальную версию OpenVPN на клиентский компьютер.
- Копируем в директорию C:\Program Files\OpenVPN\config созданные ранее на сервере файлы клиентских сертификатов (2 сертификата с расширением .crt и ключ с расширением .key) и используем наш файл конфигурации клиента client.ovpn. Последний файл после копирования на устройство пользователя удаляем с сервера или переносим из папки config во избежание путаницы в будущем.
- Откройте файл client.ovpn. Найдите строку remote my-server-1 1194 и укажите в ней ip-адрес или доменное имя vpn-сервера:
remote <ip-address> 1194</ip-address>
Например:
remote 111.222.88.99 1194
- Находим пути до сертификатов. Указываем в нем пути до скопированных ранее сертификатов
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\client1.crt"
key "C:\\Program Files\\OpenVPN\\config\\client1.key"
# This file should be kept secret - Сохраните файл. Настройка клиентской части завершена.
Проверка правил Брандмауэра Windows
Внимание! Для корректной работы сервиса OpenVPN требуется, чтобы на севере были открыты соответствующие порты (по-умолчанию UDP 1194). Проверьте соответствующее правило в вашем Firewall’е: Брандмауэре Windows или стороннем антивирусном ПО.
Проверка OpenVPN-соединения
Запустите OpenVPN сервер, для этого перейдите в директорию C:\Program Files\OpenVPN\config и выберите файл конфигурации сервера (у нас server.ovpn -> ПКМ -> «Start OpenVPN on this config file»).
Запустите клиент, для этого перейдите в директорию C:\Program Files\OpenVPN\config и выберите файл конфигурации клиента (у нас client.ovpn -> ПКМ -> «Start OpenVPN on this config file»).
На экране отобразится окно статуса подключения. Через несколько секунд оно будет свернуто в трей. Зеленый индикатор ярлыка OpenVPN в области уведомлений говорит об успешном подключении.
Проверим доступность с клиентского устройства сервера OpenVPN по его внутреннему адресу частной сети:
- Нажимаем клавиши Win+R и появившемся окне вводим cmd для открытия командной строки.
- Выполняем команду ping до адреса нашего сервера в виртуальной частной сети (10.8.0.1):
ping 10.8.0.1
- В случае корректной настройки VPN начнется обмен пакетами с сервером
- С помощью утилиты tracert проверим по какому маршруту идут пакеты от клиента. В консоли введите следующую команду:
tracert ya.ru
Из результата работы утилиты мы видим, что сначала пакеты отправляются на сервер VPN, а уже потом во внешнюю сеть.
Теперь вы имеете готовую к работе виртуальную частную сеть, позволяющую осуществлять безопасные сетевые подключения между ее клиентами и сервером, используя открытые и территориально удаленные точки подключения к сети интернет.
P. S. Другие инструкции:
Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже
Настройка OpenVPN Windows 7: инструкция
OpenVPN – тип частной виртуальной сети, позволяющий создать зашифрованный канал для обмена файлами между ее участниками и точку подключения для их выхода в интернет, используя общий шлюз. Чтобы создать VPN server или подключиться в качестве клиента к существующей сети понадобятся:
- ОС Windows 7, Server 2008 r2 или новее;
- администраторские привилегии для запуска клиента;
- программа OpenVPN;
- файл конфигурации, полученный от провайдера, для подключения до сервера;
- доступ к роутеру – возможно потребуется его настройка (переброс портов).
Технология, используемая в данной программе, позволяет создавать подключения «точка-точка» или клиента до сервера, даже расположенного за сетевым экраном. Причем никакая настройка последнего не потребуется.
Основные преимущества приложения для Windows 7 и Server 2008 r2:
- простая настройка в Windows – новичок после прочтения инструкции сможет поднять server самостоятельно или подключиться в качестве клиента к уже созданному;
- повышенная безопасность – разработчик предлагает 3 метода аутентификации для пользователя;
- нет нужды в покупке дополнительного оборудования;
- практически не влияет на скорость подключения и отличается высокой стабильностью.
Инструкция по установке и настройке
- Заходим на официальный ресурс разработчика и загружаем редакцию приложения, подходящую под разрядность вашей Windows.
- Запускаем инсталлятор, чтобы началась установка программы.
- Жмем на кнопку «Next».
- Знакомимся с условиями лицензии, после чего жмем «I Agree».
- Отмечаем галочками все компоненты для установки и кликаем по кнопке «Далее».
- Задаем каталог установки, если стандартные настройки не устраивают, и жмем «Установить».
Установку выполняем в каталог «OpenVPN», расположенный в корневой папке системного раздела.
- Подтверждаем установку драйвера.
- По окончании инсталляции жмем «Next».
- По завершению установки сервера для создания VPN жмем «Finish».
- Полученный у провайдера конфигурационный файл размещаем в каталоге «config».
Чтобы server правильно функционировал, его необходимо запускать с администраторскими привилегиями.
- Вызываем «Свойства» ярлыка OpenVPNGUI.
- Во вкладке «Совместимость» ставим флажок возле опции, как показано на скриншоте.
- Запускаем client.
- В трее вызываем контекстное меню приложения и жмем «Connect».
Установка OpenVPN на Windows завершена.
Далее выполняется настройка сервера и клиента.
Конфигурируем сервер
Настроить server немногим сложнее, чем клиента, потому выполняйте инструкции очень внимательно.
- Создаем каталог «SSL», где будут сохраняться сертификаты с ключами для аутентификации и шифрования данных, в папке с программой.
- Создаем текстовый файл в блокноте и помещаем в него следующий код (Ссылка на копирование):
- Сохраняем документ с указанными параметрами.
Если Windows не позволяет сохранить файл в указанную папку, запускаем текстовый редактор с администраторскими привилегиями и повторяем процедуру.
- Аналогичным способом создаем bat-ник с «vars.bat» в «easy-rsa», расположенной в каталоге с программой, чтобы настроить client.
В него помещаем следующий код (Ссылка на копирование):
Конфигурируем клиент
Дабы настроить client необходимо выполнить всего несколько действий, по сравнению с конфигурированием сервера, ведь не нужно генерировать сертификаты и ключи.
- Создаем каталог «SSL» в директории с приложением и перемещаем в него файлы ca.crt, ta.key, client 1.crt и client1.key.
- Создаем в этой папке файл «Clientovpn» следующего содержания (Ссылка на копирование):
Здесь x.x –доменное имя или IP-адрес сервера OpenVPN, к которому подключается client, а 777 – порт сервера.
- Пишем «services.msc» в строке командного интерпретатора (Win+R) и запускаем службу OpenVPN.
- При успешном выполнении операции вызываем диалог свойств и изменяем тип запуска на «Авто».
- Заходим в «Свойства» отображенного ниже подключения через «Центр управления сетями» в Windows и проверяем, получил ли ваш client IP-адрес от сервера.
Обращаем внимание на строку «Адрес IPv4».
(Visited 12 135 times, 1 visits today)
Руководство по организации удалённого подключения к промышленному ПЛК посредством OpenVPN
В этой статье я хочу рассказать о полученном опыте организации удалённого доступа к промышленному программируемому логическому контроллеру (далее — ПЛК) посредством бюджетного решения на базе интернет-центра KEENETIC 4G.
Данная статья будет особенно интересна специалистам в области АСУТП, которые задались вопросом организации удалённого доступа, но не знали с чего начать.
Итак, начнём!
В данном примере рассмотрим наиболее часто встречающийся вариант, а именно:
- Локальный компьютер, который будет являться OpenVPN сервером с установленным пакетом TIA Portal для программирования ПЛК. (локальная сеть 192.168.1.0)
- Маршрутизатор предприятия с внешним белым IP — адресом (например, 217.196.58.128).
- Интернет-центр KEENETIC 4G с установленным клиентом OpenVPN подключенный к мобильной связи.
- Программируемый логический контроллер SIMATIC S7-1500 (локальная сеть 192.168.112.0).
Наличие внешнего белого IP — адреса на одной из сторон является необходимым условием работы OpenVPN сервера (сервер OpenVPN должен быть расположен на стороне белого IP — адреса).
Для организации VPN соединения между Интернет-центром KEENETIC и рабочем местом нам необходимо установить следующее ПО:
- OpenVPN — программа для создания безопасных виртуальных частных сетей, удаленного подключения к серверу
- XCA — программа для лёгкого создания сертификатов с графическим интерфейсом
- Notepad++ — текстовый редактор (необязательно)
Установка пакета OpenVPN на Windows.
Устанавливаем компонент EasyRSA (для создания сертификатов встроенными средствами (необязательно).
В случае вывода сообщения об установке драйвера, нажимаем «установить».
В случае, если требуется установить несколько виртуальных адаптеров или если виртуальный адаптер был некорректно установлен, то переходим по нижеприведённому адресу и запускаем «addtab.bat» скрипт:
C:\Program Files\TAP-Windows\bin
Создание X.509 сертификатов
1. Устанавливаем XCA
XCA — программа для лёгкого создания сертификатов с графическим интерфейсом
2. Создаём БД
«Файл» -> «Новая база данных», далее программа запросит ввод пароля, вводим пароль или оставляем поля пустыми и нажимаем «ОК».
3. Создаём сертификат удостоверяющего центра (CA)
Для этого переключаемся на вкладку «Сертификаты» и нажимаем на кнопку «Новый сертификат»
Далее переключаемся на вкладку «Субъект» и заполняем необходимые поля (то, что выделено красным должно иметь уникальное имя).
Нажимаем «Сгенерировать новый ключ» и подтверждаем действие нажатием кнопки «создать».
Переключаемся на вкладку «Расширения», выбираем тип сертификата «Центр Сертификации» и настраиваем срок действия сертификата (сертификат CA должен иметь более длительный срок действия, чем сертификаты компьютера, которые будут созданы позже.)
Нажимаем «ОК» и теперь мы можем приступить к настройке сертификатов компьютера.
4. Создание шаблонов сертификатов компьютера
Для упрощения создания машинных сертификатов будем использовать заранее приготовленный шаблон. Переключаемся на вкладку «Шаблоны» и нажимаем на кнопку «Новый шаблон».
Выбираем «Пустой шаблон» и переходим к редактированию нашего шаблона, имена в угловых скобках в будущем должны быть уникальными.
Переходим на вкладку «Расширения», задаём тип «Конечный субъект» и настраиваем период действия сертификата компьютера (должен быть не больше чем у сертификата удостоверяющего центра).
Нажимаем «Ок» для создания шаблона.
Данный шаблон теперь может быть использован как базовый в качестве создания машинных сертификатов, подписанных нашим удостоверяющим центром.
5. Создания сертификатов компьютера с использованием шаблона
Переключаемся на вкладку «сертификаты» и нажимаем на кнопку «Новый сертификат», выбираем опцию «Использовать этот сертификат для подписи», в качестве шаблона выбираем наш шаблон и нажимаем на кнопку «Применить всё».
Далее переходим на вкладку «Субъект» вводим уникальное имя, например, «My_Server», генерируем ключ.
Таким образом мы создали сертификат сервера. Проделываем туже самую процедуру для сертификата клиента (My_Client).
6. Экспорт машинных сертификатов и ключей
Для создания конфигурационного файла OpenVPN клиента (KEENETIC) и сервера (ПК Windows) нам потребуется экспортировать сертификат удостоверяющего центра, сертификат сервера, сертификат клиента, закрытый ключ сервера, закрытый ключ клиента.
Для этого переходим на вкладку «Сертификаты» выбираем сертификат удостоверяющего центра My_CA нажимаем на кнопку «Экспорт» и выгружаем в заранее созданную папку, например My_Keys, расположенную на рабочем столе.
Проделываем тоже самое для сертификата клиента (My_Client) и сертификата сервера (My_Server).
Переключаемся на вкладку «Закрытые ключи» выбираем ключ My_Client, нажимаем экспорт и выгружаем в нашу папку.
Проделываем туже самую процедуру для ключа сервера.
7. Создания параметра Диффи-Хэллмана
Для конфигурации параметров сервера нам также потребуется параметр Диффи-Хэллмана
Для создания параметра нажимаем на вкладку «Дополнительно» и выбираем пункт «Сгенерировать параметры Дифии-Хэллмана».
Далее выбираем длину параметра, например, 2048. Далее выгружаем наш параметр в папку с ключами.
В итоге в нашей папке должны находиться следующее файлы:
- Сертификат удостоверяющего центра My_CA.crt
- Сертификат клиента My_Client.crt
- Сертификат сервера My_Server.crt
- Закрытый ключ клиента My_Client.pem
- Закрытый ключ сервера My_Server.pem
- Параметр Дифии-Хэллмана dh3048.pem
Создание файлов конфигурации клиента и сервера
Т.к. протоколом промышленной связи S7-1500 является Profinet, то для установления соединения с ПЛК нам потребуется организовать L2 соединение, которым в данном случае является TAP-интерфейс.
Настройка конфигурации OpenVPN сервера
Для создания файла конфигурации сервера перейдите в папку с конфигурационными файлами OpenVPN [ C:\Program Files\OpenVPN\config ] и создайте файл TAP_Server с расширением .ovpn
Откройте файл TAP_Server.ovpn программой просмотра текстовых файлов (например, Notepad++) и скопируйте следующий текст:
# Указываем работу на L2 уровне
dev tap
# Параметр, используемый в Windows системах
# Указываем имя нашего TAP-Windows адаптера
dev-node MyTap
# Конфигурируем сервер в режиме моста для TAP устройств
server-bridge
# Указываем протокол работы сервера и версию IP
proto udp4
# Указываем номер порта, на котором будет работать OpenVPN
port 50501
# Пинговать каждые 10 секунд сервер и если в течение 120 секунд
# не будут получены ответные пакеты, перезапустить подключение.
keepalive 10 120
# Указывает алгоритм шифрования
cipher AES-256-CBC
# Уровень детализации лога
verb 3
# Во внутрь копируем сертификат удостоверяющего центра
<ca>
</ca>
# Во внутрь копируем сертификат ключа
<cert>
</cert>
# Во внутрь копируем закрытый ключ
<key>
</key>
# Во внутрь копируем параметр (ключ) Diffie-Hellman (Диффи-Хеллмана).
<dh>
</dh>
Затем откройте программой просмотра текстовых файлов My_CA.crt, My_Server.crt, My_Server.pem, dh3048.pem и скопируйте текст из:
My_CA.crt в <ca> </ca>
My_Server.crt в <cert> </cert>
My_Server.pem в <key> </key>
dh3048.pem в <dh> </dh>
в результате получим следующее:
dev tap
dev-node MyTap
server-bridge
proto udp4
port 50501
keepalive 10 120
cipher AES-256-CBC
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MIIDqjCCApKgAwIBAgIIJJ8tf67Csf4wDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNV
BAYTAlJVMRQwEgYDVQQIEwtLUkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFS
U0sxDjAMBgNVBAoTBU15T1JHMQ4wDAYDVQQLEwVNeU9SRzEOMAwGA1UEAwwFTXlf
Q0ExIDAeBgkqhkiG9w0BCQEWEW15ZW1haWxAbXlob3N0Lnh5MB4XDTE5MTIxMzAw
MDAwMFoXDTQ5MTIxMjIzNTk1OVowgYsxCzAJBgNVBAYTAlJVMRQwEgYDVQQIEwtL
UkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFSU0sxDjAMBgNVBAoTBU15T1JH
MQ4wDAYDVQQLEwVNeU9SRzEOMAwGA1UEAwwFTXlfQ0ExIDAeBgkqhkiG9w0BCQEW
EW15ZW1haWxAbXlob3N0Lnh5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEA3dJoAVl7foXZMavZIr9RTB59h+El26OYll7KMBHritf+x8DEVjcg86uyDSf0
yzLtAR+8J013W3SRDVpl3gqdk3t1qb7Paz1OUrV2Hu3N5Ws1s4elpENTQAe1HFZS
u0NRhXBCxTTyToNdb1pKcIJziVNLXdTL+pud0T8FNs6q37t14XFkfDOw85m7y3py
vU8+ucmQEd5vOKPjcY1jklVZkQJKcGTI77x/R2k6HK7ryul5uIepi/RrVrgTNe5W
rYWuk6wlmmFLvgdzoVaBJO8edo89M7oJIQFMNN9x3cpbths6/3ZummBktfgVa7xy
3fs//M5v1pjnYeJ5wd5tiCXkpQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqG
SIb3DQEBCwUAA4IBAQDbNhPy3IftjPVNyaUH/5AW6R0Fjqoct/55ZMDrdWlLY1mo
iTTxhFPv1DbilUE/nr+SwGvZV2MQs4G1hi9PgGqY5a+lJCSios8BJ7zlrt/LLQQ/
st0r2wzpCYROxoi+zu9YNGZJPP9GI3KdcVye9Rt3vbLbL8LQ8kKKwn3Ju5i1SUMy
gzvGTNUPtqOKVJid39IIdva3iMUBspfMGv2EcaGaRWekW9Pni/gBS2eHkBh2/X6n
KiopjtZw7A4RPHzC58jp+ypT/X63tPwf5+kWsMDeLG1XTKnLoPeAVNtszMhGsgzE
DoZUuL4pb8XbpcnrPlgp0WSkrf1RJrJGuArvUDLu
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIDyzCCArOgAwIBAgIIINPrUqBedY8wDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNV
BAYTAlJVMRQwEgYDVQQIEwtLUkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFS
U0sxDjAMBgNVBAoTBU15T1JHMQ4wDAYDVQQLEwVNeU9SRzEOMAwGA1UEAwwFTXlf
Q0ExIDAeBgkqhkiG9w0BCQEWEW15ZW1haWxAbXlob3N0Lnh5MB4XDTE5MTIxMzAw
MDAwMFoXDTQ5MTIxMjIzNTk1OVowgY8xCzAJBgNVBAYTAlJVMRQwEgYDVQQIEwtL
UkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFSU0sxDjAMBgNVBAoTBU15T1JH
MQ4wDAYDVQQLEwVNeU9SRzESMBAGA1UEAwwJTXlfU2VydmVyMSAwHgYJKoZIhvcN
AQkBFhFNeUVtYWlsQE15SG9zdC54eDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBAJhJYVC8WJneQTTO9p7NJvS803W1lq/8Z78Vx8J5jejVhXXZa0NYfXX8
iiXUr26vdhXN5htSNgktz9Tr5zUHwKhzpq+yYICPS44AmzMJByPBhjHUq7/HjnOA
e78k80OTzqL5XH8olrQc7690K1GW3b0PduH+bYykDGijQ8vlkwBKQhgxeo7zkTrm
VWsgmFJEbrdGoZPnwyHrStMHM0f6UMkEWqooughphaxtJWzS4GJES09z3VSN/3CV
FuV2Jn3UGyoEHKrZUa/kFgRx9j9AqRx3//WFusm2KPUim+IA4SLoXP5M6pZXaxvA
Z4y5b2xIc/OFFX5DfaCSpAMFwzZFYXkCAwEAAaMtMCswCQYDVR0TBAIwADAeBglg
hkgBhvhCAQ0EERYPeGNhIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBCwUAA4IBAQAZ
EXHnqu9Ilz6+w4SB/wfl5HG3UyS2n8oNpTHbFkX1Sn2+2FFuSCZlxhQYyhZKUjRq
NsbWMMcwRDST9V6cPw6iaTPfz2G8zaBFjsemnyYD6YttNmdqXgv5wiik3btP2Jk2
3msmg8MlA/EgeZWSFe0ee4yE+L145JgtEQeg0xb7t8J9OOt3W1GVnoX1hQa2GePH
PlKqc5ooPAuzIW4kWzxQefqcV5j1Rof98/dQJwJwCatRYgFciOZe26rcsu0R1iKF
yS6NB+HwJxZY1ExPcSDmiVu5cyeasSLp1bxcqb9V7a3e9YxNZ8AVmjh/NfOcb2a/
/Mx8QxPEP7g+B6tWfF/Q
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAmElhULxYmd5BNM72ns0m9LzTdbWWr/xnvxXHwnmN6NWFddlr
Q1h9dfyKJdSvbq92Fc3mG1I2CS3P1OvnNQfAqHOmr7JggI9LjgCbMwkHI8GGMdSr
v8eOc4B7vyTzQ5POovlcfyiWtBzvr3QrUZbdvQ924f5tjKQMaKNDy+WTAEpCGDF6
jvOROuZVayCYUkRut0ahk+fDIetK0wczR/pQyQRaqii6CGmFrG0lbNLgYkRLT3Pd
VI3/cJUW5XYmfdQbKgQcqtlRr+QWBHh3P0CpHHf/9YW6ybYo9SKb4gDhIuhc/kzq
lldrG8BnjLlvbEhz84UVfkN9oJKkAwXDNkVheQIDAQABAoIBAGZFmapr4yDqx2Xc
vHmnk0r3aRf7LMjhvRbyXKZ5ldlRVIDx0/x1eER9ppWDgZHXGnnIPooIqyt87b+z
8iGGJFe826vRIsgT9AzY0WHz5SyZMjNS/Ukdjsh5+CJFgW3X3QVMbFclfhhV+o4d
eV4g8KegtBlQEmhKX98CDmznr9KYAxBtiMODkG3gi523+8qgOH5Nqgr+0CGxwcJU
4fDHadjbSj7+12ZrY3TVZm451fEzgh3nPAseyAoNYe0CM9hExmq4jeNxjZFQHNBv
refghZaPmyuRWSOfzNbEwRsLCZeLUHDdrNvsPRnFvmLcFhtFKwctngvkGK5lPs1w
dCgs8pUCgYEAyJOsi+ZTAWTjJC1pCr3FRJEjoqfqZGw/OLCKV7PBF8Yf2DIB+LDD
gfgoMi39sK/Hkah2H6CqD1Gter8WE67gAURvo5UjK4vFAGhmQSbiwhRUCRKRljwT
zB4k649XpD8fiOzd9S12uKyr8EvvDbOz9x1XcxQELcqURIunTuDh5CsCgYEAwl3F
twSkSOPYG2AeLnuwf8sYtFbcvSYL/8cGovOuZ0GlSLpHO2k1qhUzl6HrpIhEyVom
IQRJW9S5lB7z5lU/CVcbGmYLwu4y5/tl4MeG8NOEj1o8FR9RzUw92dSSKoMfCMad
lz/RmOrBnX4pwqICs7r7h7VsnOsr/AYn5H04zusCgYEAwHHv+8rhmVTTGsL3Jfcu
brtTFZ1Gp1O01Q+NrNgrTEQsCaLxgUsYSntvFbZK0lvVf0WFivL8N/aGHF97Lyd6
hbzD4JAXTpCsU9fXRGuq5cvbVVkblqnN1OqXQewmitCF0TpzO+qDHm2OCuDQXLUu
1sqwPRnXaJgV6i6UOHozTEECgYEAgmguFqxrmWgdf8iOl3tvoV5f1eeNtO7JEDS1
1DEQ68CUp+YrksX1NoeBFRSTqNGw7TOp728T1SQ12xalZ/38DEVALwcWjxQIXbND
2HumowAXqaLOOxHHbangub0w0IsnEFlKNMeh2ipz+zpBxI+0pmgnCReFpwb2fOKY
c2o86j8CgYAWTWn/Y1/bNgtStzya6fbxpc4Mc2nCZu6bTQpAgA44r+nRJuHpVm0T
cGDKj4NZ8h5wqMmk58GoOreAVsX4qXeN9QkdfAR5dA8eWVz42faC328W3G4VA5cc
GvTqDMzq0j3bz+4csHMn3BHatHymjgsg0sgc8FshuD6dQk0NNruk9A==
-----END RSA PRIVATE KEY-----
</key>
<dh>
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEAlpVUnvCTJ1XF9mnwhf+P+QZhVWsNyRaqEgLuO2a/fGUqPESU9KRo
bDa489awzJs6j/JCKh2xR5H5JLE+Ho6XdgIXH9LTr03BV3PsPQiA28ZiluekBGGY
ps7dTLr0Ex4V6Ae3+E+Z7lM/Yhsa4w6fl+GNRkastD42Nx4g4iN+cIerLMFCRPl1
P7Go36VbEtO/aNX/zNExmcDsYSqiLkBeGrNxXen2Loqex5AlwE9WOliUbak6Ra/W
vf21Wi03TvBBfjEDKtM/Bsyo8Ar2lgBYIrANvylU/0Gg8OyRWqcIoQjwPyjavAHd
v14V1igYDa1xP9WQ262DMHfHLhqwjOW2GwIBAg==
-----END DH PARAMETERS-----
</dh>
Настройка конфигурации OpenVPN клиента
Для создания файла конфигурации клиента перейдите в папку с конфигурационными файлами OpenVPN [ C:\Program Files\OpenVPN\config ] и создайте файл TAP_Client с расширением .ovpn
Откройте файл TAP_Server.ovpn программой просмотра текстовых файлов (например Notepad++) и скопируйте следующий текст:
# Указываем, что мы используем клиентское подключение
client
# Указываем работу на L2 уровне
dev tap0
# Указываем протокол работы сервера и версию IP
proto udp4
# Указываем номер порта, на котором будет работать OpenVPN
port 50501
# Задает сервер, к которому должен подключаться клиент
# могут использоваться записи IP и DNS.
remote 217.196.58.128
# Указывает алгоритм шифрования
cipher AES-256-CBC
# Уровень детализации лога
verb 3
# Во внутрь копируем сертификат удостоверяющего центра
<ca>
</ca>
# Во внутрь копируем сертификат клиента
<cert>
</cert>
# Во внутрь копируем закрытый ключ клиента
<key>
</key>
Затем откройте программой просмотра текстовых файлов My_CA.crt, My_Client.crt, My_Client.pem и скопируйте текст из:
My_CA.crt в <ca> </ca>
My_Client.crt в <cert> </cert>
My_Client.pem в <key> </key>
в результате получим следующее:
client
dev tap0
proto udp4
port 50501
remote 217.196.58.128
cipher AES-256-CBC
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MIIDqjCCApKgAwIBAgIIJJ8tf67Csf4wDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNV
BAYTAlJVMRQwEgYDVQQIEwtLUkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFS
U0sxDjAMBgNVBAoTBU15T1JHMQ4wDAYDVQQLEwVNeU9SRzEOMAwGA1UEAwwFTXlf
Q0ExIDAeBgkqhkiG9w0BCQEWEW15ZW1haWxAbXlob3N0Lnh5MB4XDTE5MTIxMzAw
MDAwMFoXDTQ5MTIxMjIzNTk1OVowgYsxCzAJBgNVBAYTAlJVMRQwEgYDVQQIEwtL
UkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFSU0sxDjAMBgNVBAoTBU15T1JH
MQ4wDAYDVQQLEwVNeU9SRzEOMAwGA1UEAwwFTXlfQ0ExIDAeBgkqhkiG9w0BCQEW
EW15ZW1haWxAbXlob3N0Lnh5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEA3dJoAVl7foXZMavZIr9RTB59h+El26OYll7KMBHritf+x8DEVjcg86uyDSf0
yzLtAR+8J013W3SRDVpl3gqdk3t1qb7Paz1OUrV2Hu3N5Ws1s4elpENTQAe1HFZS
u0NRhXBCxTTyToNdb1pKcIJziVNLXdTL+pud0T8FNs6q37t14XFkfDOw85m7y3py
vU8+ucmQEd5vOKPjcY1jklVZkQJKcGTI77x/R2k6HK7ryul5uIepi/RrVrgTNe5W
rYWuk6wlmmFLvgdzoVaBJO8edo89M7oJIQFMNN9x3cpbths6/3ZummBktfgVa7xy
3fs//M5v1pjnYeJ5wd5tiCXkpQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqG
SIb3DQEBCwUAA4IBAQDbNhPy3IftjPVNyaUH/5AW6R0Fjqoct/55ZMDrdWlLY1mo
iTTxhFPv1DbilUE/nr+SwGvZV2MQs4G1hi9PgGqY5a+lJCSios8BJ7zlrt/LLQQ/
st0r2wzpCYROxoi+zu9YNGZJPP9GI3KdcVye9Rt3vbLbL8LQ8kKKwn3Ju5i1SUMy
gzvGTNUPtqOKVJid39IIdva3iMUBspfMGv2EcaGaRWekW9Pni/gBS2eHkBh2/X6n
KiopjtZw7A4RPHzC58jp+ypT/X63tPwf5+kWsMDeLG1XTKnLoPeAVNtszMhGsgzE
DoZUuL4pb8XbpcnrPlgp0WSkrf1RJrJGuArvUDLu
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIDyzCCArOgAwIBAgIII6a7Y3h+sS0wDQYJKoZIhvcNAQELBQAwgYsxCzAJBgNV
BAYTAlJVMRQwEgYDVQQIEwtLUkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFS
U0sxDjAMBgNVBAoTBU15T1JHMQ4wDAYDVQQLEwVNeU9SRzEOMAwGA1UEAwwFTXlf
Q0ExIDAeBgkqhkiG9w0BCQEWEW15ZW1haWxAbXlob3N0Lnh5MB4XDTE5MTIxMzAw
MDAwMFoXDTQ5MTIxMjIzNTk1OVowgY8xCzAJBgNVBAYTAlJVMRQwEgYDVQQIEwtL
UkFTTk9ZQVJTSzEUMBIGA1UEBxMLS1JBU05PWUFSU0sxDjAMBgNVBAoTBU15T1JH
MQ4wDAYDVQQLEwVNeU9SRzESMBAGA1UEAwwJTXlfQ2xpZW50MSAwHgYJKoZIhvcN
AQkBFhFNeUVtYWlsQE15SG9zdC54eDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBAM1xGkTl0fTge3jacEgSkrMoN3wgIr94Y1uD574XqxKYdh21hEdldTLa
gx8MGLIYaXN/HQTEYuhxpk+EX0Mqns9TazGouvE2/poP4KiO8iSHVO9PaaKO0OKq
Y7ctt4TVBdnD2UjiHCq5DfQ/T6UGv4bOR61RCqymyBnnVQ/KyR0DX4/U+jLx9wxS
d5OLD0SSqOjdLTnI1gBpEphRuPo6705I+eM7cATyoL17GMgAQ1W4zLzq3ojNPCo3
U/P0tPvQi6hHoJv5Rj8EfgK7eID7kUqvCrG4Vvg+iKjC7m1ABweOjBXVpk7UsKin
97I/Gz0PGOwnsh4a3J/WNZu1DuPfw9UCAwEAAaMtMCswCQYDVR0TBAIwADAeBglg
hkgBhvhCAQ0EERYPeGNhIGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBCwUAA4IBAQDd
v4iq13jCqRI6yeFlB8ouMVtuVpI+p7w6KBYyc+phbDuzqI4iFkMyhj0H+cx/760M
ziQMuLR/pRrSPKPI03JgFI5dFh2txnNFkelQutZ+6qe4c1y9OhKhwg3n6jS2PevG
Tvlrl1utoiNOVXhcvH0CxuD5AJEyQa9SH/vO3TRQC9g5zbfULTgOhpUmaVPYBkX/
tBnvnKFdmsLqwgrKvdqfJF3WqJuQSdHtyp4MVZN1d/T+HoQ5YfN5nGXpLLgLdGaq
KvtAtFACkltO0A7R2WeLw1WNiXGHNxd3OFuVedapub1zXCSiYZNC+8MX7PkQnV9e
p1JB/AWXg/Z7uQSua3+c
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAzXEaROXR9OB7eNpwSBKSsyg3fCAiv3hjW4PnvherEph0fXWE
R2V1MtqDHwwYshhpc38dBMRi6HGmT4RfQyqez1NrMai68Tb+mg/gqI7yJIdU709p
oo7Q4qpjty23hNUF2cPZSOIcKrkN9D9PpQa/hs5HrVEKrKbIGedVD8rJHQNfj9T6
Mvh4DFJ3k4sPRJKo6N0tOcjWAGkSmFG4+jrvTkj54ztwBPKgvXsYyABDVbjMvOre
iM08KjdT8/S0+9CLqEegm/lGPwR+Art4gPuRSq8KsbhW+D6IqMLubUAHB46MFdWm
TtSwqKf3sj8bPQ8Y7CeyHdrcn9Y1m7UO49/D1QIDAQABAoIBAQC6dsyL+jf9VX5b
6497qvfhikAJ9jTzqjYsCuXcwCiygRNCB9ae4rRkCrZ2CImlo8iaXqYc/I51QSnd
BF1eXiG0NZeWg/nhE7Q0avLSqqOWigqKBn7vX0ayZEqLKQBnnN1pkHv3zdoY4MuM
g6YrN5vApBukcGkK2XnHIRMweTLek9/qAeDgcE4ZVXIgHkNjqAc9y/kd5Sx+fL+N
k/dGQeTne2xgzJZsiu4uoS9jnBE7g1hQpfLpbyoREaRjWob/KP2IDFIjInjnHrb9
mO5Xuqsv8mHp4+67Ium8IN5jDldoObayEd8giE6x3r/3x60RSmV8IDHKPIs507qD
2hoCXz8hAoGBAObhKqowjp5TuqPt9Nrm+cVZKroDvz8bXb8ejOMn22Wj171cdNy3
gxbt5ksLXsHmjPWm9fK5ZL8m33U+uMwcgqIUbHILo40AQK9FtwkjyeTQne1OBjJa
2tjCc3ySo0icEswRFJrCu9Rcszehj56WlJzmvE0CiM2QGG3ExOxl8LNtAoGBAOPL
Zv5nkG0RAuOg5w+tLi2h24BcD1ICpPcq232mXdqzEeeXSysvgpwDaOWPGXtgWvIK
ScIw9xqW7tonk5EjKnsgPajV8OvG+vAqC2liHy00IxZ+YB+vzE66uUEpYXUpzI2n
F+pb+rQDSQo3beyamjeL1wYEjntDyWqfRmQfQSkJAoGAMP1CIk6fVHULu1D4jaJJ
CVj8OfAlmmxiHfWLi3+fjBeR5XpCybqetDTSksXc22PiMRW2RkSUXgMPkz810wmR
pnaS9DgIAhk1oHs4dVYEtuqVOA9APVsN6MSJ4Lr0rql/S5GsP5JmbI8m7/z2Dn6B
FjHXbrfE82lJ5bDE4CxZQJkCgYAvmtJrWDlWkbeI2pdvL0h4QexHZvXMrcDL5qj4
GUyD5+hV/cg3vjYNZKkHUGCC6CAZdQz1CEabx+8iqCKusiqukI5SOmOe4naOujqo
S1k4mSy8Bq0P8i1ARsVwWLWFRrb443KcB5zdAdLBz9OpHqYb9Z16JHmiSQhOv/p1
8hIsAQKBgQCvHQu6NKsdNDogXCiwEt52jlqBRs4NEjspupOKzV+HlEfek6ijKMce
P9o4U+vpiG5ZmIYPzgTfAlaWxoMi5ynRZhiMA8dFzX53uyJiYJetXm+zb71l9BW8
kmsch0B5z5yAjEA+CWIqDJ05O7QTLMLC69QU4UICswbyJy1MFUfrbg==
-----END RSA PRIVATE KEY-----
</key>
На этом создание файлов конфигурации клиента и сервера будем считать завершенным.
Настройка маршрутизатора предприятия
Т.к. наш персональный компьютер подключен не напрямую к линии с внешним белым IP, а через маршрутизатор предприятия, то для доступа к компьютеру с локальным IP-адресом из внешней сети необходимо пробросить порт, который мы указали в конфигурации сервера (50501).
В зависимости от модели маршрутизатора процедура проброса портов может отличаться.
На скриншоте ниже приведён пример по настройке маршрутизатора предприятия (не нашего KEENETIC 4G).
Запуск OpenVPN сервера на персональном компьютере
Наши файлы конфигурации готовы, осталось перейти к нюансам по настройке OpenVPN на системе под управлением Windows, для этого перейдём к настройке параметров адаптера и переименуем TAP-Windows Adapter V9 как MyTap (в соответствии с именем dev-node).
А также настроим локальный адрес нашему адаптеру (должен быть назначен на не занятый IP адрес нашей локальной сети контроллера, например 192.168.112.230)
Далее запускаем в работу сервер OpenVPN:
1. Запускаем приложение, расположенное по адресу C:\Program Files\OpenVPN\bin\openvpn-gui.exe (или нажимаем на ярлык на рабочем столе)
2. Переходим в трей, выбираем созданный файл конфигурации «TAP_Server» и нажимаем «подключиться»
3. Убедимся, что наш сервер работает и перейдём к настройке интернет-центра KEENETIC 4G
Настройка интернет-центра KEENETIC 4G
По-умолчанию в KEENETIC 4G не входит клиент OpenVPN, поэтому сначала нам следует его установить. Для этого подключаем KEENETIC 4G к интернету различным способом (по кабелю, по Wi-Fi или с помощью 4G модема), далее переходим в «Общие настройки» и нажимаем кнопку «Изменить набор компонентов».
Выбираем нужные нам компоненты (в данном случае Клиент OpenVPN уже был установлен, поэтому для примера показывается другой компонент) и нажимаем кнопку «Установить обновление».
Далее перейдём к настройке нашей сети, для этого выбираем «Домашняя сеть» и настраиваем IP-адрес нашего маршрутизатора, например 192.168.112.101 (так же должен быть свободным).
Далее нам следует настроить наше OpenVPN подключение, для этого выбираем «Другие подключения», нажимаем кнопку «добавить подключение».
Вводим имя подключения (произвольное, например, TAP_Client_PLC), выбираем тип подключения (OpenVPN), в конфигурацию OpenVPN копируем текст из нашего созданного файла для клиента (TAP_Client.ovpn) и нажимаем кнопку сохранить для применения изменений.
Далее нам следует включить интерфейс OpenVPN в основной мост, но прежде чем сделать данную процедуру нам придётся установить клиент telnet. Для этого перейдём в панель управления, далее «Включение или отключение компонентов Windows», выберем Telnet Client и нажмём «ОК».
После того, как telnet клиент будет установлен — подключаемся к нашему KEENETIC 4G: на клавиатуре жмём сочетание клавиш WIN+R, вводим cmd
Вводим команду telnet [IP_нашего_KEENETIC] (например, telnet 192.168.112.101)
Пройдём процесс авторизации (введём логин и пароль (если он был настроен)) и введём следующие команды:
interface Bridge0
include OpenVPN0
system configuration save
Проверим правильность нашей конфигурации:
show
running-config
В итоге мы должны увидеть нечто подобное:
Отмечу, что интерфейс OpenVPN0 создаётся только после создания OpenVPN подключения.
Включаем в работу наш OpenVPN клиент.
Видим, что KEENETIC 4G осуществил подключение к нашему серверу и переходим к настройке нашего контроллера S7-1500.
Настройка программируемого логического контроллера S7-1500
В настройках нашего контроллера достаточно установить локальный адрес нашего маршрутизатора:
- Устанавливаем галочку «Use router»
- Вбиваем адрес домашней сети нашего KEENETIC 4G (192.168.112.101)
После прогрузки конфигурации, контроллер станет доступен для доступа по удалённому подключению.
На этом настройка нашего удалённого подключения завершена.
Благодарю за внимание!
Настройка OpenVPN клиента на Windows — База знаний JustHost.ru
Инструкция предназначена для настройки подключения к серверу OpenVPN с клиентских машин, под управлением ОС Windows.
Скачиваем клиент https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.2-I601.exe
Устанавливаем OpenVPN приложение
Соглашаемся с установкой драйвера
После установки не запускаем. Переходим в директорию с установленной программой в папку C:\Program Files\OpenVPN\config
Копируем на клиентскую машину файлы ca.crt, client1.crt и client1.key с вашего сервера.
Создаём конфигурационный файл client.ovpn. Если вы настраивали сервер по нашей инструкции, то файл конфигурации на клиенте будет выглядеть следующим образом:
client tls-client dev tun proto udp remote IPorSERVERNAME 1194 ;redirect-gateway def1 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client1.crt key client1.key comp-lzo user nobody group nobody cipher AES-256-CBC verb 3
Сохраняем и запускаем программу. Кликаем правой кнопкой мышки по ярлыку OpenVPN в системном трее и указываем необходимые параметры в меню Настройки…
Подключаемся. При правильной настройке значок в OpenVPN станет зелёного цвета, значит настройка прошла успешно и Вы можете пользоваться защищённым соединением.
Поделиться ссылкой:
Похожее
Установка OpenVPN в несколько кликов / Habr
Привет, Geektimes!
Не так давно мне пришла в голову мысль, что подключение к Linux-серверу по SSH, установка пакетов, запуск скриптов — все это однотипная рутина, для которой не нужно участие человека, ее может сделать робот. Конечно, я пользуюсь Ansible, но он ведь тоже «не для всех».
В результате была написана программа «для всех» в которой просто есть одна кнопка «сделать хорошо». Программа с открытым исходным кодом и доступна для изучения и скачивания на GitHub.
Но одной программы для того, чтобы нести личный OpenVPN в массы, не достаточно. Поэтому была написана эта статья, в которой просто и по шагам расписано все, от создания аккаунта в облачном сервисе, до подключения с мобильного телефона.
Всего нужно выполнить 4 простых шага:
- Создать сервер (обычно достаточно просто нажать кнопку «Создать»)
- Установить и запустить приложение SSHeller
- Нажать кнопку
Install
и дождаться завершения установки - Скачать
ovpn
файл и подключиться к VPN с его помощью
Подойдет практически любой виртуальный (VPS, VDS) или физический сервер (у виртуального должен быть tun
интерфейс). Для примера, ниже приведена инструкция по использованию DigitalOcean, как наиболее стабильного, простого и удобного в использовании облачного провайдера.
Подготовка
Для активации аккаунта необходимо одно из двух:
- аккаунт PayPal
- кредитная карта (именно кредитная, по которой можно уйти в минус, зарплатная/дебетовая не подойдет)
Если будете использовать PayPal — нужно будет внести $5. С кредитной карты-же заблокируют $1 и вернут.
Регистрация на DigitalOcean
Лучше всего регистрироваться по реферальной ссылке — тогда будет автоматически применён промокод на $10. А можно зарегистрироваться заполнив форму на главной странице и позже ввести любой промокод — он легко ищется через google. Их много разных и все по $10.
Перейдя по ссылке, достаточно ввести e-mail и придумать пароль.
После нажатия на кнопку, придет письмо с ссылкой для подтверждения регистрации — по ней нужно будет перейти.
Далее нужно ввести данные кредитной карты, либо PayPal. Это обязательное требование для подтверждения аккаунта. PayPal есть практически у каждого.
После нажатия на кнопку подтверждения, запустится стандартный процесс оплаты. Но есть важная особенность, которая позволит немного сэкономить: ваш банк конвертирует рубли в доллары по более выгодному курсу, нежели PayPal
Нужно нажать View conversion options
и выбрать вариант Convert with card issuer
После окончания оплаты, вы попадете на главную страницу Dashboard
. Можно перейти в Settings
-> Billing
чтобы посмотреть баланс.
Здесь Your credit $15
— внесенный аванс. А Usage $0.00
— сумма, которую нужно оплатить. Оплата обычно производится по факту — сколько потратили за месяц, столько вас и попросят оплатить(после исчерпания аванса). В самом низу можно посмотреть, какие были начисления.
Запуск сервера
Сверху-справа нажимаем Create
-> Droplets
Откроется страница создания сервера. Нужно задать 3 основных параметра.
Операционная система: Fedora 27
. Это самая маленькая, быстрая и стабильная из доступных. Хотя Debian 9
— тоже хороший выбор. Более того, поддерживаются все доступные ОС, кроме FreeBSD
и Debian 7
.
Размер: будет достаточно самого маленького за $5.
Регион — нужно выбрать тот, который территориально к вам ближе. Для Европейской части России — это Amsterdam
.
Этого достаточно. В самом низу можно изменить имя, но можно оставить по умолчанию и нажать большую зеленую кнопку Create
. Виртуальная машина начнет создаваться, и вскоре вам придет e-mail с ее адресом и паролем.
Для установки достаточно перейти на страницу релизов, скачать соответствующий файл и запустить его.
- Для Windows:
SSHeller.Setup.X.X.X.exe
- Для macOS:
SSHeller-X.X.X.dmg
- Для Linux:
SSHeller-X.X.X-x86_64.AppImage
— после загрузки сделать исполняемым и запустить
Теперь SSHeller можно запустить из списка приложений.
Письмо от DigitalOcean уже должно было прийти. Из него нам нужны 4 параметра.
Запускаем SSheller
и жмем Add
Копируем параметры из письма:
Droplet Name
->Name
IP Address
->Host
Username
->User
Password
->Password
Нажатием Save
возвращаемся к списку серверов.
В списке выбираем созданный сервер и нажимаем Connect
. Первое подключение займет немного больше времени, так как DigitalOcean создает виртуальные машины с истекшим паролем, и приложению будет необходимо его обновить. После подключения отобразится состояние сервера (Dashboard). Слева сверху нужно открыть меню и выбрать OpenVPN
.
На экране OpenVPN, достаточно нажать зеленую кнопку Install
и подождать.
Сколько нужно ждать — невозможно предсказать. Иногда это может быть 3 минуты, а иногда — доходить до получаса. Зависит от сервера, на котором запускается ваша виртуальная машина. Чем меньше у сервера заполнен пул энтропии — тем дольше ждать. Если простыми словами: компьютер очень медленно создает новые случайные числа, но делает это постоянно и копит их. А для создания ключей шифрования нужно очень много случайных чисел. Если их кто-то уже использовал — придется подождать.
По окончанию будет выведен отчет. Если интересно, его можно посмотреть.
Сразу будет создан профиль по умолчанию и соответствующий ему файл настроек — client.ovpn
. Можно скачать его, а можно создать еще один, или несколько, введя имя нового профиля и нажав кнопку Add
.
Для загрузки достаточно кликнуть на соответствующий файл профиля.
- Для
Windows
иLinux
нужно установитьOpenVPN
- Для
macOS
—Tunnelblick
- Для
Android
иiOS
—OpenVPN Connect
из магазина приложений
Windows
- Скачиваем
openvpn-install-X.X.X-I601.exe
c официального сайта и устанавливаем - Сохраненный файл
client.ovpn
нужно скопировать в папкуC:\Program Files\OpenVPN\config
— потребуется подтверждение прав Администратора - В меню «Пуск» выбрать
OpenVPN
->OpenVPN GUI
- В трее (иконки возле часов) нажать правой клавишей мыши на иконку монитора с замком и выбрать
Подключиться
Если в папке config
будет несколько файлов, то появится подменю для каждого файла.
macOS
- Скачиваем
Tunnelblick_XXX.dmg
с официального сайта (Stable) и запускаем - В открывшемся окне два раза кликаем по иконке с подписью
Tunnelblick
- Появится предупреждение, что эта программа скачена из интернета — нажимаем
Открыть
- В окне приветствия нажимаем
Продолжить
- Далее будет необходимо ввести пароль Администратора
- На вопрос о файле конфигурации ответить:
У меня ЕСТЬ файл конфигурации
, а в следующем окне нажатьOK
- Через Finder найти
client.ovpn
файл и открыть его; указать хотите ли только вы пользоваться им, либо также разрешить другим пользователям компьютера - В трее (иконки возле часов) нажать левой клавишей мыши на иконку ворот и выбрать
соединить client
- Может быть выведено сообщение «Unrecognized option or missing or extra parameter(s)» — оно не влияет на работоспособность
Linux
- Установите пакет OpenVPN пакетным менеджером. Например в Debian и Ubuntu достаточно выполнить:
sudo apt-get install -y openvpn
- Подключение устанавливается командой
sudo openvpn --config client.ovpn
iOS
- Установите
OpenVPN Connect
из App Strore - Отправьте файл на свое мобильное устройство. Например, можно самому себе с компьютера отправить письмо
- Запустите приложение
OpenVPN Connect
, выберитеImport you Private Tunnel Profile
- Выберите сохраненный
client.ovpn
файл - Переместите появившийся переключатель в положение
On
Android
- Установите
OpenVPN Connect
из Google Play - Отправьте файл на свое мобильное устройство. Например, можно самому себе с компьютера отправить письмо
- Запустите приложение
OpenVPN Connect
, выберитеOVPN Profile
- Выберите сохраненный
client.ovpn
файл (обычно он сохраняется в папкуDownloads
) и нажмитеIMPORT
- Введите отображаемое имя профиля или оставьте без изменений, нажмите
ADD
- Переместите появившийся переключатель в положение
On
В DigitalOcean почасовая оплата
Т.е. можно платить только за то время, которым реально пользуешься. И здесь есть два важных замечания:
- Доступный трафик пропорционален времени работы сервера. Если сервер работал только 1/10 месяца (3 дня), то будет доступно только 1/10 трафика (100Гб). За превышение придется доплачивать (1 цент за каждый Гб)
- Чтобы деньги перестали списываться за сервер, его нужно не просто остановить, а полностью уничтожить, нажав на меню возле сервера и далее
Destroy
, а на появившейся странице сервера еще раз нажатьDestroy
. В следующий раз нужно будет заново повторять всю настройку, создавать новыеovpn
файлы и отправлять их на устройства.
Делитесь с родными и друзьями
Чисто технически, вы можете создать множество профилей, как для разных устройств, так и для разных людей. Вдвоем цена для каждого уже будет $2.5, впятером — $1.
Важно, что по каждому профилю может быть только одно одновременное подключение. Так что, как минимум, нужно создавать отдельные профили для разных устройств.
1 мая 2018 начали появляться комментарии, что некоторые российские провайдеры блокируют Digital Ocean. Есть отличная альтернатива — Linode (сравнение).
- Регистрируемся на главной странице.
- После ввода e-mail, логина и пароля (нужно придумать), придет письмо со ссылкой для подтверждения, переходим по ней
- Откроется расширенная форма регистрации, нужно ввести фамилию, имя, адрес, промо код и данные карты
- промокод на $10 или $20 легко ищется в google, 01.05.2018 работал
PodcastInIt2018
на $20 - карта подойдет любая, нет особых требований как у DigitalOcean
- в самом низу выбираем первоначальное пополнение, минимум $5
- промокод на $10 или $20 легко ищется в google, 01.05.2018 работал
- После оправки формы, сразу попадаем на страницу создания сервера, в самом низу выбираем Linode 1024 (стоит те же $5 в месяц), ниже выбираем локацию, для Европейской части России ближе всего Frankfurt, DE
- После создания сервера, выбираем его из списка и нажимаем Deploy an Image
- выбираем дистрибутив, например Fedora 27 или Debian 9
- придумываем, запоминаем и вводим пароль сервера
- жмем Deploy
- Нажимаем кнопку Boot чтобы запустить сервер
- Переключаемся на вкладку Remote Access копируем самый первый Public IP, например
172.104.130.238
- Запускаем SSHeller, нажимаем Add
- придумываем и вводим Name
- в Host вставляем скопированный IP
- в User вводим
root
- в Password вводим пароль, придуманный на шаге 5
- Сервер грузится не мгновенно, если быстро ввели параметры доступа к серверу, то придется подождать секунд 30
Дальше все по основной инструкции.
OpenVPN сервер на Windows: как настроить
В этой статье кратко и без лишнего описано, то, как быстро настроить OpenVPN сервер в Windows и сконфигурировать OpenVPN клиента.
Бывает необходимо построить защищенную, шифрованную связь между компьютерами без лишних затрат на оборудование и ПО.
В этом поможет такая бесплатная и известная программа, как OpenVPN — свободная реализация технологии виртуальной частной сети (VPN).
Установка OpenVPN Server на Windows
- Качаем инсталлятор OpenVPN: openvpn.net/index.php/open-source/downloads
- Устанавливаем: обязательно отметьте все пункты птичками, на предложение установить драйвер отвечаем утвердительно.
Создание сертификатов и ключей OpenVPN
- Запускаем консоль (командную строку) из под администратора
- Переходим в папку куда установили OpenVPN: cd «C:\Program Files\OpenVPN\easy-rsa»
- Запускаем: init-config.bat
- В папке «C:\Program Files\OpenVPN\easy-rsa» появится файл vars.bat, открываем его в блокноте.
Вот содержимое файла, которое вышло у меня:
@echo off rem Edit this variable to point to rem the openssl.cnf file included rem with easy-rsa. set HOME=%ProgramFiles%\OpenVPN\easy-rsa set KEY_CONFIG=openssl-1.0.0.cnf rem Edit this variable to point to rem your soon-to-be-created key rem directory. rem rem WARNING: clean-all will do rem a rm -rf on this directory rem so make sure you define rem it correctly! set KEY_DIR=keys rem Increase this to 2048 if you rem are paranoid. This will slow rem down TLS negotiation performance rem as well as the one-time DH parms rem generation process. set KEY_SIZE=1024 rem These are the default values for fields rem which will be placed in the certificate. rem Change these to reflect your site. rem Don't leave any of these parms blank. set KEY_COUNTRY=UA set KEY_PROVINCE=Kiev set KEY_CITY=Kiev set KEY_ORG=OpenVPN set [email protected] set KEY_CN=server set KEY_NAME=server set KEY_OU=ouou set PKCS11_MODULE_PATH=changeme set PKCS11_PIN=1234
В следующих строках указал вот такие данные:
set KEY_COUNTRY=UA set KEY_PROVINCE=Kiev set KEY_CITY=Kiev set KEY_ORG=OpenVPN set [email protected] set KEY_CN=server set KEY_NAME=server set KEY_OU=ouou
Укажите что-либо свое, в строках где есть «server» ничего не меняйте.
В этой же папке открываем файл «openssl-1.0.0.cnf» и ищем строчку default_days 365, ставим 3650: теперь сертификаты будут действительны на протяжении 10 лет.
Снова переходим в командную строку которая запущена от имени администратора и выполняем команды:
- cd «C:\Program Files\OpenVPN\easy-rsa»
- vars
- clean-all — в ответ должно написать два раза «Скопировано файлов: 1». Значит, все хорошо
- build-dh — создаст ключ Диффи-Хельмана.
- build-ca — создаст основной сертификат. Будут заданы вопросы, просто нажимаем Enter пока работа команды не завершится.
- build-key-server server — опять таки будут вопросы: жмем Enter, когда увидим два вопроса «Sign the certificate?» и «1 out of 1 certificate requests certified, commit?», жмем Y. Сертификаты для сервера созданы.
- build-key client — создаем сертификат клиента.
- Жмем Enter, но…
- При вопросе Common Name (eg, your name or your server’s hostname) нужно ввести client.
- В конце также два раза Y.
- Для каждого клиента создается новый сертификат, только с другим именем, например, build-key client1 и также указывать его в common name.
- Из папки C:\OpenVPN\easy-rsa\keys копируем файлы: ca.crt, dh2024.pem, server.crt, server.key в папку C:\OpenVPN\config.
Создаем конфигурационные файлы для OpenVPN
Конфигурационный файл сервера OpenVPN
В папке «C:\Program Files\OpenVPN\config», создаем текстовой документ server.ovpn — это будет конфиг сервера, вставляем в файл текст:
dev tun # Поднимаем L3-туннель proto udp # Протокол port 12345 # Порт который слушает впн # Ключи и сертификаты: ca ca.crt cert server.crt key server.key dh dh2024.pem topology subnet # Грубо говоря экономим адреса server 10.9.0.0 255.255.255.0 # Пул адресов cipher AES-128-CBC # Метод шифрования comp-lzo # Сжатие mssfix # Немного улучшит пинг keepalive 10 120 # Время жизни клиентов, если не откликнулся — отключает verb 3 # Уровень отладки
Пробуем запустить сервер: Кликаем на рабочем столе по ярлыку OpenVPN Gui или запускаем файл «C:\Program Files\OpenVPN\bin\openvpn-gui.exe».
В панели задач возле к появится серый значок, кликаем по нему дважды, если через 10-20 секунд он загорелся зеленым, значит, все хорошо, если нет, тогда смотрим лог в папке log.
Конфигурация клиента OpenVPN
На компьютере клиента тоже устанавливаем OpenVPN, все галочки можно не отмечать.
Копируем из папки «C:\Program Files\OpenVPN\easy-rsa» на компьютере с сервером файлы:
- ca.crt
- client.crt
- client.key
на компьютер с OpenVPN клиентом в папку C:\Program Files\OpenVPN\config. В этой же папке создаем файл client.ovpn, в котором прописываем:
client dev tun proto udp remote АДРЕС_СЕРВЕРА 12345 # Адрес и порт сервера ca ca.crt cert client.crt key client.key cipher AES-128-CBC nobind comp-lzo persist-key persist-tun verb 3
На клиентском компьютере запускаем OpenVPN Gui или client.ovpn.
Если подключились, пробуем проверить связь: в командной строке набираем ping 10.9.0.1. Если пинг проходит, значит все настроено верно.
На OpenVPN сервере можно настроить автоматический запуск OpenVPN службы:
- переходим в Панель Управления — Администрирование — Службы
- Ищем OpenVPN Service и выставляем тип запуска «Автоматически»
Ошибка «WARNING: can’t open config file: /etc/ssl/openssl.cnf «
Если при попытке создать сертификат для OpenVpn вы видите эту ошибку, то скорее всего вы не запустили перед этим действием bat-файл OpenVPN\easy-rsa\vars.bat.
Описание команд и параметров OpenVPN
Команды без — (двумя знаками дефиса) перед командой должны быть использованы в конфигурационном файле, команды с — в начале используются только из командной строки.
- remote < host > — определяет удаленный конец туннеля. Могут использоваться записи IP и DNS.
- local < host > — определяет локальный ip или имя хоста, на котором будет работать OpenVPN. Актуально, если на локальной машине несколько адресов.
- dev < device > — определяет какой использовать тип устройства tun или tap. Например: dev tun или dev tap. Так же можно явно указывать номер виртуального интрефейса, например tun0.
- port < port number > — указывает на каком порту будет работать OpenVPN (локально и удаленно).
- proto < proto > — какой протокол будет использоваться. Возможные значения: udp, tcp, tcp-client, tcp-server.
- tcp-client — сам пытается установить соединение
- tcp-server — только ждет подключений
- Использование протокола udp VPN будет работать чуть быстрее, чем tcp. Но в плане стабильности работы лучше выбирать tcp (как показывает практика, VPN-соединение более устойчиво)
- remote-random — если указана данная опция и в random перечисленно несколько удаленных хостов, то OpenVPN в случайном порядке будет к ним подключаться. Применяется для балансировки нагрузки.
- float — позволяет удаленному хосту изменять IP во время работы туннеля. Соединение при этом не разрывается.
- ipchange < cmd > — выполняет скрипт или команду указанную в < cmd >, если IP сменился. Пример: ipchange script-ip.sh
- connect-retry < seconds > — пробует переподключиться через указанное время в секундах, если соединение было разорвано.
- connect-retry-max < n > — максимальное количество повторов если соединение было разорвано
- resolv-retry < seconds > — если OpenVPN не удалось узнать имя удаленного хоста по DNS, то через указанное количество секунд попытаться переподключиться.
- lport < port > — указывает на локальный порт для использования OpenVPN
- rport < port > — аналогично для удаленного порта. Пример: rport 8000 — OpenVPN будет пытаться подключится к удаленному порту 8000
- nobind — использовать динамический порт для подключения (только для клиента)
- shaper < bytes > — указывает скорость передачи данных в байтах для исходящего трафика (только для клиента)
- tun-mtu < mtu size > — устанавливает максимальный размер MTU. По умолчанию tun-mtu равен 1500. Использование: tun-mtu 1200
- dev-node < interface name > — устанавливает имя виртуального интерфейса. Например: dev-node openvpn1
- ifconfig — устанавливает локальный IP и маску подсети для туннельного интерфейса. Например: ifconfig 10.3.0.1 255.255.255.0
- server < network > < mask > — автоматически присваивает адреса всем клиентам (DHCP) в указанном диапазоне с маской сети. Данная опция заменяет ifconfig и может работать только с TLS-клиентами в режиме TUN, соответственно использование сертификатов обязательно. Например: server 10.3.0.0 255.255.255.0 . Подключившиеся клиенты получат адреса в диапазоне между 10.3.0.1 и 10.3.0.254.
- server-bridge < gateway > < mask > < pool > — сервер в режиме моста для TAP устройств. Пример: server bridge 10.3.0.1 255.255.255.0 10.3.0.128 10.3.0.254 Клиентам будут выданы адреса в диапазоне 10.3.0.128 — 10.3.0.254, в качестве шлюза будет указан 10.3.0.1.
- mode server — переключает OpenVPN в режим сервера (начиная с 2-й версии)
- mode p2p — данная опция идет по умолчанию.
Опции в режиме сервера
- push < options > — передача клиенту конфигурационных параметров. Пример: push «route 192.168.0.0 255.255.255.0». Аналогично с помощью push клиенту могут передаваться следующие параметры: route, route-gateway, route-delay, redirect-gateway, inactive, ping, ping-exit, ping-restart, persist-key, persist-tun, comp-lzo, dhcp-option, ip-win32. Последние две опции применимы только для Window-клиентов. Например передадим Windows-клиенту адрес DNS-сервера 11.11.11.11: push «dhcp-option DNS 11.11.11.11»
- ifconfig-pool-persist ipp.txt — в файле ipp.txt назначаем клиентам статические IP-адреса. В файле в каждой строке пишем «название_сертификата,айпи_адрес», например: «demyanovich,172.16.25.10»
- comp-lzo — параметр сжатия трафика, идущего через виртуальный туннель. Может принимать значения yes, no, adaptive. Последнее используется по умолчанию.
- comp-lzo yes — принудительно включить сжатие
- comp-lzo no — принудительно отключить сжатие
- comp-lzo adaptive — адаптивный режим.
Команды и параметры при работе с сертификатами x509 и параметрами шифрования
- cipher < alg > — указываем алгоритм шифрования. Например: cipher AES-256-CBC. Рекомендуется использование шифров в режиме CBC (Cipher Block Chaining).
- keysize < n > — размер ключа в битах. Например: keysize 128
- auth < alg > — алгоритм хэширования. Пример: auth SHA1
- df < file > — файл с ключем Диффи-Хелмана
- ca < file > — файл сертификата для CA
- cert < file > — сертификат локальной машины
- key < file > — локальный ключ машины
- tls-server — явно указывает, что данный хост является tls-server
- tls-client — соответственно tls-client
- pkcs12 < file > — указываем файл (PKCS12), который содержит в себе сертификат, ключ и CA в одном файле. Пример: pkcs12 /file
- crl-verify < file > — список отозванных сертификатов, т.е. blacklist.
- no-replay — отключает защиту OpenVPN от атаки повторного воспроизведения (replay attack). Крайне не рекомендуется отключать!
- no-iv — отключает использование вектора инициализации шифра (IV). Крайне не рекомендуется отключать!
- secret < file > — включает режим шифрования и аутентификации на статических ключах. В качестве параметра использует заранее сгенерированный, командой —genkey, файл. Например: secret key.txt
- Все доступные алгоритмы шифрования можно просмотреть выполнив из командной строки: openvpn —show-ciphers
- Алгоритмы хэширования: openvpn —show-digests
- Показать все доступные TLS-шифры (TLS используется только для шифрования канала управления): openvpn —show-tls
- Показать все доступные крипто-устройства в системе (если такие имеются): openvpn —show-engines
Команды для управления маршрутизацией
Обозначение: VPN-хост — удаленная сторона (удаленный хост)
- route < network > — устанавливает указанную маршрутизацию на VPN-хосте, после успешного запуска туннеля. Пример: route 10.0.10.0 255.255.255.252
- route-gateway < IP > — устанавливает шлюз на VPN-хосте. Пример: route-gateway 192.168.0.22. После успешного запуска виртуального туннеля клиенту будет задан шлюз 192.168.0.22
- route-delay < seconds > — указывает подождать n-секунд перед установкой маршрутов. Пример: route-delay 5 — через 5 секунд после установки туннеля будут заданы маршруты.
- route-up < cmd > — выполнить скрипт или программу < cmd > после установки маршрутов. Пример: route-up /script.sh
- redirect-gateway — установить шлюзом по умолчанию удаленный сервер. Т.е. когда удаленный пользователь подключается к нашему серверу, то ему будет задан шлюз по умолчанию на наш сервер.
Команды для управления туннелем
- ping < seconds > — указывает отсылать ping на удаленный конец тунеля после указанных n-секунд, если по туннелю не передавался никакой трафик. Пример:
ping 10 - ping-restart < seconds > — если за указанное время не было получено ни одного пакета с удаленной стороны, то перезапускать туннель. Пример: ping-restart 60 — если в течении 60 секунд не было получено ни одного пакета, то туннель будет перезапущен.
- ping-timer-rem — позволяет перезапускать туннель, только когда указан удаленный адрес.
- persist-tun — данная опция оставляет без изменения устройства tun/tap при перезапуске OpenVPN.
- persist-key — указывает не перечитавать файлы ключей при перезапуске туннеля.
- resolv-retry < seconds > — устанавливает время в секундах для запроса об удаленном имени хоста. Актуально только если используется DNS-имя удаленного хоста. Пример: resolv-retry 86400
- inactive < seconds > — после n-секунд неактивности устройство TUN/TAP автоматически отключется. Пример: inactive 120
- ping-exit < seconds > — если за указанные n-секунд не было получено ни одного пакета, то отключать OpenVPN. Пример: ping-exit 120
- keepalive < seconds > < seconds > — является совмещением сразу двух команд — ping и ping-restart. Использует сразу два параметра в секундах, перечисленных через пробел. Пример: keepalive 10 180 — каждые 10 секунд посылать ping на удаленный хост, и, если за 180 секунд не было получено ни одного пакета — то перезапускать туннель.
- persist-local-ip < IP > — оставлять неизменными локальный IP адрес и номер порт, если туннель был перезапущен.
- persist-remote-ip < IP > — оставлять неизменными удаленный IP адрес и номер порт, если туннель был перезапущен. persist-remote-ip 192.168.50.1
Методы аутентификации
- auth-user-pass-verify < script > < method > — указывается только на серверной стороне.
- < script > — путь к скрипту, который будет производить авторизацию. Скрипт должен возвращать 0 если авторизация успешна, и соответственно, 1 если авторизация не успешна.
- < method > — метод авторизации, может быть двух типов: via-env и via-file
- auth-user-pass < file >- указывается на клиентской стороне. Параметр не обязателен, если он отсутствует то будет предложено ввести пару логин/пароль. должен содержать имя пользователя и пароль в двух строчках: username и password
- client-cert-not-required — отключает авторизацию по сертификатам
Работа с прокси
OpenVPN без проблем может работать через http и socks прокси.
- http-proxy < server port [auth] > — указываем адрес и порт прокси-сервера. http-proxy 192.168.0.12 8080
- Если требуется авторизация на прокси-сервере: http-proxy < server port authfile > — где authfile — файл содержащий две строки (имя пользователя и пароль) или stdin (будет запрошено имя пользователя и пароль). Так же после authfile требуется указать метод авторизации. Можно оставить auto для автоматического выбора метода авторизации или указать явно через auth-method. auth-method может быть трех видов «none», «basic» или «ntlm».
- http-proxy-retry — переподключаться, если соединение было разорвано.
- http-proxy-timeout < seconds > — считать соединение с прокси-сервером разорванным после n-секунд неактивности. Например: http-proxy-timeout 5
- socks-proxy < server port > — указываем сокс-прокси сервер. Пример: socks-proxy 192.168.0.12 8080
- socks-proxy-retry — переподключаться, если соединение было разорвано.
- auto-proxy — автоматически определять прокси-сервер.
Скриптинг
- up < command >- выполнить команду после запуска устройства TUN/TAP. Пример: up script-up.sh
- up-delay < seconds > — подождать n-секунд перед запуском команды указанной в up. Пример: up-delay 5
- down < command > — выполнить команду когда интерфейс TUN/TAP выключится. Пример: down script-down.sh
- down-pre — выполнить команду, указанную в down перед выключением интерфейса TUN/TAP
- up-restart < command > — выполнить команду после каждого реконнекта
- route-up < command > — выполнить команду после установки сетевых маршрутов. Пример: route-up script.sh
- learn-address < command > — выполнить указанную команду, если ip удаленной стороны изменился.
- ipchange < command > — выполнить команду, если ip сервера изменился.
- client-connect < command > — выполнить команду, когда клиент подключился.
- client-disconnect < command > — выполнить команду, когда клиент отключился.
Команды отладки и поиска неисправностей
- verb < verbosity level > — устанавливает уровень информативности отладочных сообщений. Может принимать параметр от 0 до 11. По умолчанию verb равен 1.
При уровне verb 5 и выше в логе будут встречаться подобные записи: RwrW. R (read), W (write) — соответственно чтение и запись. Большая буква обозначает, что пакет был считан (R) или записан (W) на виртуальном устройстве TUN/TAP, а маленькие — считан (r) и записан (w) в туннеле. - mute < number of messages > — если значение установлено в 10, то в лог будет записываться только по 10 сообщений из одной категории.
- log < file > — указываем лог-файл. Если данный параметр не указан, то весь вывод openvpn будет производиться в stdout.
- log-append < file > — дописывать сообщения в лог-файл, а не перезаписывать.
- status < file > — указывает путь к статус-файлу, в котором содержится информация о текущих соединениях и информация о интерфейсах TUN/TAP.
Чем отличаются виртуальные устройства tun и tap?
- TUN — туннель, соединение по которому указывается по типу: локальный IP < — > удаленный IP. Например, при явном указании ifconfig: —ifconfig 10.3.0.2 10.3.0.1. В этом примере 10.3.0.2 — локальный IP, 10.3.0.1 — удаленный IP
- TAP — эмулирует виртуальную ethernet карточку, для которой требуется указывать локальный IP и маску подсети. Например: —ifconfig 10.3.0.2 255.255.255.0
Полезные ссылки:
Понравилось? =) Поделись с друзьями:
Настройка OpenVPN на Windows Server 2008/2012
Ниже мы детально разберем все, что касается серверных настроек на Win Server2008 и Server2012, а также покажем, как сделать подключения юзеров к созданной сети.
OpenVPN – это представление открытой (от англ. «open» — «открыть») частной виртуальной сети (от англ. «Virtual Private Network»). Данная технология помогает создавать виртуальные подключения групп клиентов к расположенных на расстоянии машинам посредством передачи данных по открытому каналу, то есть интернету.
При помощи OpenVPN возможно безопасно удалить или отключить заданные сетевые подключения к серверу, не задействуя прямые доступы через интернет. А благодаря шифрованию OpenSSL соединению будет обеспечен повышенный уровень безопасности.
Принципы работы
Произведенная настройка позволит серверу взаимодействовать с внешним защищенным шифрованием SSL и создавать безопасное подключение к виртуальной сетевой машине (tun/tap). При этом не нужно будет волноваться об обработке трафика, поступающего от внешнего адаптера и аналогичных интерфейсов. Для серверных машин можно будет создать общий доступ к одному из указанных серверных адаптеров.
Дополнительно будет рассказываться о туннелировании входящих/исходящих от юзеров данных. Подобная переадресация позволит хосту, который обрабатывает подключения к виртуальной сети, осуществить передачу данных от своего лица и одновременно выступить в качестве прокси, чтобы привести к единому виду всю интернет-активность пользователя.
Способы установки виртуальной сети
Для начала нужно зайти на официальный сайт и скачать последнюю версию OpenVPN, которая подойдет под требования ОС. Двумя кликами запустить инсталлятор.
Когда откроется окно установок, на третьем этапе необходимо отметить галочками все предлагаемые компоненты.
Когда всплывает вопрос о сетевом адаптере TAP, следует разрешить его установку.
Стандартно OpenVPN загружается в папку с программными файлами, расположенную на диске C. Поэтому в ходе инструкции мы будем ссылаться к папке «C:Program FilesOpenVPN». Вы хотите изменить месторасположение файлов? Тогда учитывайте этот нюанс в дальнейшем.
Как сгенерировать ключи и выполнить их шифрование, алгоритм Diffie-Hellman
Для каждой пары ключей существуют свои собственные сертификаты, обеспечивающие безопасность передачи информации. Управлять ими можно специальным приложением Easy-rsa, которое запускается и работает в командной строке, аналогично консоли Линукс. Консоль открывается через нажатие клавиш Win + R и ввода в появившемся окне слова cmd.
Как работать с конфигурационным файлом
Загрузив соответствующий конфигурационный файл, нужно внести его вместо одноименного файла/скрипта, найти который можно в папке OpenVPNeasy-rsa. Директория располагается на диске C в Program Files. Или укажите тот путь, куда вы запланировали установку виртуальной частной сети.
В папке необходимо найти конфигурационный файл openssl-1.0.0.conf, его значения должны соответствовать вашим данным:
countryName_default stateOrProvinceName_default localityName_default 0.organizationName_default emailAddress_default
Важный нюанс: в значении данных могут содержаться пробелы, такие переменные стоит обособить кавычками.
Как генерировать ключи в Центре Сертификации
1. Для начала следует переименовать два файла при помощи командной строки:
cd cd "C:Program FilesOpenVPNeasy-rsa" ren index.txt.start index.txt ren serial.start serial
2. Затем, чтобы создать новый ключ/сертификат, понадобится запуск скрипта:
.build-ca.bat
В окне будут возникать различные предложения, большинство из них можно подтверждать кнопкой Enter. А для поля KEY_CN (Common Name) следует ввести оригинальное название и его же продублировать для поля name.
3. Так же генерируются сертификаты серверу. В этой строке вместе server нужно ввести оригинальное имя:
.build-key-server.bat server
4. Система начнет спрашивать, следует ли подписывать сертификаты для создаваемых ключей от имени Центра сертификации? Введите «да» — y (yes).
Как генерировать клиентский ключ и сертификат
Всем юзерам виртуальной сети понадобится генерировать свои индивидуальные SSL-сертификаты.
Можно воспользоваться специальной опцией, которая позволяет присваивать 1 сертификат сразу нескольким пользователям. Она называется «dublicate-cn» и размещается в файле server.ovpn. Однако такой ход небезопасен.
Рассмотрим, как сгенерировать сертификат клиенту client2:
cd cd "C:Program FilesOpenVPNeasy-rsa" .build-key.bat client2
Внимание: под переменной client2 подразумевается вносимое название файла. Далее следует ввести client2 в запрос строчки Common Name.
Работа с алгоритмом Диффи-Хеллмана
В завершение всех действий понадобится запуск шифрования, чтобы сгенерировать группу параметров по Диффи-Хеллману:
.build-dh.bat
Перенос сгенерированных ключей/сертификатов
Все созданные данные располагаются в подпапке easy-rsakeys. Следующие наименования файлов следует перенести в другую подпапку — config, которая располагается в том же месте:
• dh3048.pem/dh2048.pem
• server.key
• ca.crt
• server.crt
Настройка конфигурации на сервере
Запустите редактор реестра и отыщите в нем:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters.
Справа вы увидите IPEnableRouter. Кликните по переменной два раза – откроется новое окошко для изменения параметров. В поле «Значение» поставьте единицу:
1. Настраивать сервер мы будем через конфигурационный файл server.ovpn. Перед работой его следует переместить в папку config.
Открыв его, необходимо проверить правильность построение маршрутов к перенесенным сертификатам:
port 1194 proto udp dev tun server 10.8.0.0 255.255.255.0 ca "C:Program FilesOpenVPNconfigca.crt" cert "C:Program FilesOpenVPNconfigserver.crt" key "C:Program FilesOpenVPNconfigserver.key" dh "C:Program FilesOpenVPNconfigdh3048.pem" push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" keepalive 10 120 comp-lzo persist-key persist-tun verb 3
Если нужно, то меняем пути на правильные и пересохраняем.
2. Чтобы успешно пересылать трафик от одного адаптера к другому, нужно зайти в раздел сети и интернета, который находится в панели управления ПК. В нем найти центр сетевого управления и кликнуть по предложению изменить параметры интернет адаптера.
Из нескольких предложенных вариантов надо взять тот, что отвечает за внешние подключения, то есть не TAP-тип, так как он работает с VPN-соединениями.
В свойствах зайдите на вкладку доступа и поставьте галочки на обоих пунктах:
3. Следующим шагом включается айпи-переадресация.
Зайдите в стандартный поиск ОС си введите следующее имя приложения:
Настройка автозапуска
Чтобы служба стартовала при включении компьютера, нужно зайти в базовую папку «Службы», в открывшемся окне среди прочих программ найти OpenVPN, кликнуть по нему правой кнопкой, а в свойствах в значениях запуска выставить режим «Автоматически».
Стандартные настройки окончены. Чтобы запустить сервер и его новые настройки, надо еще раз войти в файл server.ovpn и написать в него следующую строчку:
Start OpenVPN on this config
Настройки клиентской конфигурации
Виртуальная частная сеть имеет свое клиентское приложение, которое одинаково хорошо загружается для любой существующей операционной системы за исключением Mac – к нему разработан Tunnelblick. Версии приложений функционируют одинаково, затрагивают определенные конфигурационные файлы. В зависимости от версий, могут различаться отдельные опции. Более подробная информация расписана в документации OpenVPN.
Далее мы расскажем, как подключить клиентов на ОС Виндовс, применяя те же дистрибутивы, которые до этого инсталлировались на сервере. В случае с другими операционными системами методы и шаги будут примерно такими же.
1. Для начала на ПК клиента ставится актуальная версия (желательно последняя) OpenVPN.
2. Конфигурационные файлы клиента client.ovpn вместе с сертификатами *.crt и ключами *.key, которые перед этим мы сгеренировали, необходимо поместить в подпапку config, хранящуюся в разделе OpenVPN. При этом желательно файл клиента удалить с директории сервера, чтобы не запутаться при будущих настройках.
3. При открытии client.ovpn необходимо отыскать строчку remote my-server-1 1194. Задайте ей айпи и домен работающего сервера:
remote 1194
Например:
remote 111.222.88.99 1194
4. Ниже в файле обозначен путь к каждому сертификату, меняем их на путь к скопированным версиям:
# See the server config file for more # description. It's best to use # a separate .crt/.key file pair # for each client. A single ca # file can be used for all clients. ca "C:Program FilesOpenVPNconfigca.crt" cert "C:Program FilesOpenVPNconfigclient2.crt" key "C:Program FilesOpenVPNconfigclient2.key" # This file should be kept secret
5. После сохранения базовые настройки будут окончены.
Как проверить правила брендмауэра
Чтобы функционирование виртуальной частной сети проходило корректно, на стороне сервера необходимо открыть соответствующий порт. Стандартно его имя UDP 1194.
Зайдите в установленный системный Firewall и посмотрите, разрешен ли доступ к порту антивирусным программным обеспечением и брендмауэром.
Как проверить OpenVPN-подключение
После запуска сервера потребуется зайти в папку config. В ней нужно отыскать конфигурационный server.ovpn файл. Кликнуть по нему правой кнопкой, вызвать контекстное меню и внести новую строчку:
Start OpenVPN on this config file
Те же действия необходимо проделать для клиента. Только в этот раз открывается client.ovpn. Остальные действия аналогичны.
Следом должно показаться окно, где отобразится статус соединения. Окно самостоятельно свернется в трею, там же загорится ярлык компьютера с зеленым индикатором (это будет свидетельствовать об успешно проведенной настройке).
Чтобы проверить, доступен ли сервер с компьютера клиента, проведем следующие действия:
1. Запустим командную строку комбинацией клавиш Win + R и введением команды cmd.
2. Осуществим пинг к выбранному серверу (10.8.0.1). Для этого введем:
ping 10.8.0.1
3. Если настройка прошла отлично, в окне строки покажется передача пакетов ПК клиента к серверу:
4. Специальная утилита Tracert покажет маршрут, по которому происходит передача клиентских пакетов. Для этого в консоль вводится команда:
tracert ya.ru
Как показывает результат, клиентский пакет отправляется к виртуальному серверу, после чего перенаправляется к внешней сети:
После таких действий вы получаете VPN, которая полностью настроена и готова работать. С ее помощью владельцу сервера доступно быстро создание безопасного сетевого подключения типа клиент-сервер, использование открытых и территориально удаленных точек подключения к сети интернет.