Это старая версия документа.
Содержание
Установка и настройка приложения OpenVPN
Генерация ключей для OpenVPN
Первый этап настройки OpenVPN - генерация ключей для серверной и клиентской частей OpenVPN, необходимых для безопасного подключения. Мы рассмотрим самый распространенный вариант работы - один ключ сервера и неограниченное количество ключей клиентов. Для их создания понадобится установочный файл OpenVPN для систем Windows, который можно взять по ссылке: Windows Installer (32-bit или 34-bit). После его установки необходимо перейти в папку с установленным OpenVPN (по умолчанию: «C:\Program Files\OpenVPN»), открыть папку «easy-rsa», скопировать файл «vars.bat» (или если его нет, то файл «vars.bat.sample») и переименовать в «vars-server.bat», открыть его в любом блокноте для редактирования и заменить строки как в примере (или просто нажать на имя файла в примере для того, чтобы скачать его себе на компьютер):
- vars-server.bat
@echo off set HOME=%ProgramFiles%\OpenVPN\easy-rsa set KEY_CONFIG=openssl.cnf set KEY_DIR=keys set KEY_SIZE=1024 set KEY_COUNTRY=RU set KEY_PROVINCE=Область set KEY_CITY=Город set KEY_ORG=Организация set KEY_EMAIL=Почтовый_адрес set KEY_OU=Имя_сервера set KEY_CN=Имя_сервера set KEY_NAME=Имя_сервера set PKCS11_MODULE_PATH=path set PKCS11_PIN=pin
Далее необходимо еще раз скопировать файл «vars.bat», но в этот раз дать ему имя «vars-client.bat», открыть его и заменить строки (будьте внимательны - несколько строк отличаются от предыдущего блока кода):
- vars-client.bat
@echo off set HOME=%ProgramFiles%\OpenVPN\easy-rsa set KEY_CONFIG=openssl.cnf set KEY_DIR=keys set KEY_SIZE=1024 set KEY_COUNTRY=RU set KEY_PROVINCE=Область set KEY_CITY=Город set KEY_ORG=Организация set KEY_EMAIL=Почтовый_адрес set KEY_OU=Имя_сервера set KEY_CN=Имя_клиента set KEY_NAME=Имя_клиента set PKCS11_MODULE_PATH=path set PKCS11_PIN=pin
Далее нужно запустить Командную строку Windows (можно сделать с помощью сочетания клавиш Win+R, или выбрать в меню Пуск > Все программы > Стандартные) ввести в нее последовательно:
cd C:\Program Files\OpenVPN\easy-rsa md keys vars-server.bat clean-all.bat build-dh.bat build-ca.bat
Далее после ввода команды, через пробел, необходимо ввести Имя_сервера, которое мы вводили в коде файла «vars-server», после чего в консоли могут возникать вопросы на которые нужно отвечать «yes» (если предоставляется выбор «y/n» или просто жать «Enter» когда запрашиваются данные (мы их уже указали в файле «vars-server»).
vars-server.bat build-key-server.bat Имя_сервера
Следующие действия очень похожи на предыдущие - после ввода команды, через пробел, необходимо ввести Имя_клиента, которое мы вводили в коде файла «vars-client», после чего в консоли могут возникать вопросы на которые нужно отвечать «yes» (если предоставляется выбор «y/n» или просто жать «Enter» когда запрашиваются данные (мы их уже указали в файле «vars-client»).
vars-client.bat build-key.bat Имя_клиента
После чего для проверки создания ключей зайдите в папку C:\Program Files\OpenVPN\easy-rsa\keys, там должны быть следующие файлы:
ca.crt dh1024.pen Имя_сервера.crt Имя_сервера.key Имя_клиента.crt Имя_клиента.key
Если все они там присутствуют, то можно смело приступать к следующему этапу.
Установка пакетов необходимых для работы OpenVPN
Для установки пакетов OpenVPN необходимо подключившись по SSH к консоли ввести следующую команду:
opkg install openvpn-openssl
Подготовка OpenVPN
Если планируется постоянное использование OpenVPN, то удобнее всего будет настроить его автозапуск, для чего нужно ввести следующую команду в консоли:
mv /media/DISK_A1/system/etc/init.d/K11openvpn /media/DISK_A1/system/etc/init.d/S11openvpn
Первое что необходимо сделать - это скопировать файлы сгенерированных ключей в папку /media/DISK_A1/system/etc/openvpn/keys.
Набор ключей для сервера: dh1024.pem ca.crt server.crt server.key
Набор ключей для клиента: ca.crt client.crt client.key
Настройка сервера OpenVPN
Необходимо отредактировать основной файл настроек OpenVPN, находящийся по адресу /media/DISK_A1/system/etc/openvpn/openvpn.conf Рассмотрим обязательные настройки: Порт на который будут поступать соединения
port 1194
Протокол, по которому будет идти соединение
proto udp
Тип интерфейса и режим работы: tun = L3-туннель, tap = L2-туннель
dev tun
Опция ca определяет корневой (root) сертификат, которым подписаны клиентские пары сертификат/ключ. Значение этой опции keys/ca.crt указывает месторасположение этого сертификата относительно каталога openvpn. (Или, иными словами, это открытый ключ сервера).
ca keys/ca.crt
Каждый участник OpenVPN соединения в TLS режиме должен иметь собственный сертификат и файл с закрытым ключом. Каждый сертификат должен быть подписан закрытым ключом центра сертификатов, чей открытый ключ указывается в опции ca.
cert keys/serzh.crt
Закрытый ключ, который генерируется вместе с сертификатом, указанным в опции cert.
key keys/serzh.key
Файл, содержащий параметры Diffie Hellman.
dh keys/dh1024.pem
Задание правил IPTABLES
Для успешного функционирования OpenVPN нам понадобится добавить правила в IPTABLES.
Проще всего это будет сделать создав (изменив) файл /media/DISK_A1/system/etc/firewall.d/fw.sh, в который внести необходимые строки.
Обязательна только первая строка,а далее в зависимости от настроек:
#!/bin/sh
Если наш OpenVPN настроен на порт 1194 и использует для соединения tcp:
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
Если наш OpenVPN настроен на порт 1194 и использует для соединения udp:
iptables -A INPUT -p udp --dport 1194 -j ACCEPT