OpenVPN сервер на маршрутизаторах D-Link серии DSR

Ранее, на страницах блога, я говорил о настройке OpenVPN сервера на базе FreeBSD. Но, существуют и аппаратные ответа для реализации аналогичного шифрованного канала связи. Мне известны два таких решения — Microtik c их RouterOS и маршрутизаторы D-Link серии DSR. О последних сейчас и отправится обращение.

За базу забрана вот эта статья http://www.dlink.ua/dsr_openvpn_settings с маленькими дополнениями уже от меня.

ВНИМАНИЕ! Функционал OpenVPN отсутствует в прошивках _RU

Последняя стабильная firmware DSR-500N_A1_FW1.08B88_WW для DSR-500N ревизии A1 (firmware вторых моделей маршрутизаторов имеете возможность отыскать самостоятельно на том же ftp) 1. Установка дистрибутива OpenVPN и создание сетевого моста

Загружаем OpenVPN http://openvpn.net/index.php/open-source/downloads.html

Устанавливаем приложение (все опции оставляем по умолчанию). При появлении запроса на установку TAP адаптера, соглашаемся.

2. Создание SSL сертификатов

OpenVPN применяет SSL сертификаты для обоюдной аутентификации узлов:

Корневой сертификат — Certificate Authority

Сертификат сервера — Server

Сертификат клиента — Client

Выполним кое-какие предварительные действия для предстоящей генерации сертификатов. Запускаем командную строчок (нужно от имени администратора), переходим в папку C:\program files\OpenVPN\easy-rsa\ где делаем init-config.bat:

Заменяем переменные в файле vars.bat (C:\program files\OpenVPN\easy-rsa\vars.bat) приблизительно так:

set KEY_COUNTRY=RU set KEY_PROVINCE=NN set KEY_CITY=NNovgorod set KEY_ORG=OOO_Roga&Kopyta set KEY_EMAIL=mail@rogakopyta.ru set KEY_CN=changeme set KEY_NAME=changeme set KEY_OU=changeme set PKCS11_MODULE_PATH=changeme set PKCS11_PIN=1234

Эти переменные будут употребляться при генерации сертификатов.

Последовательно делаем скрипты vars.bat и clean-all.bat (по большому счету, кому весьма интересно, процедура создания сертификатов обрисована в файле Readme.txt в папке C:\program files\OpenVPN\easy-rsa\)

C:\Program Files\OpenVPN\easy-rsa>vars.bat C:\Program Files\OpenVPN\easy-rsa>clean-all.bat Скопировано файлов: 1. Скопировано файлов: 1. C:\Program Files\OpenVPN\easy-rsa>

Создаем корневой сертификат CA командой build-ca (сохраняется в папку c:\Program Files\OpenVPN\easy-rsa\keys\). На все вопросы отвечаем нажатием клавиши Enter:

Создаем dh-key командой build-dh:

Сейчас генерируем ключ сервера, что подписывается отечественным корневым сертификатом CA. Введите build-key-server server. На вопросы о подписании сертификата и на загрузке его в базу сертификатов отвечаем “Y”.

Подобно генерируем сертификат клиента командой build-key client.

Создаем TLS Authentication Key командой год — —secret ta.key:

C:\Program Files\OpenVPN\easy-rsa\keys>openvpn —genkey —secret ta.key

Затем в папке keys должны находиться все нужные сертификаты.

3. Настройка маршрутизатора DSR

В адресной строке браузера набираем: https://192.168.10.1 (пароль и имя пользователя по умолчанию admin/admin)

Переходим в раздел Setup / VPN Settings / OpenVPN / OpenVPN Authentication

В каждом разделе выбираем соответствующий сертификат и загружаем кнопкой Upload:

Trusted Certificate (CA Certificate) ca.crt

Server / Client Certificate server.crt

Server / Client Key server.key

DH Key dh1024.pem

Tls Authentication Key ta.key

Переходим в раздел Setup / VPN Settings / OpenVPN / OpenVPN Configuration

Ставим галочку Enable Openvpn и выбираем режим Server.

Поля Vpn Network / Vpn Netmask – определяют сеть, применяемую для VPN (оставляем как имеется по умолчанию).

Поле Port определяет на каком порту отечественный VPN-сервер будет принимать соединения (советую применять обычный 1194).

Определяем метод шифрования AES-128, Hash Algorithm – SHA-1.

В случае если станете применять другие, не забудьте внести трансформации в файл настройки клиента client.ovpn.

Tunnel Type рекомендуется установить в режим Split Tunnel. Как написано в мануале на сайте dlink.ua, в режиме Full Tunnel в VPN будет маршрутизироваться лишь сеть 0.0.0.0/1 и Vpn_Network/Vpn_Netmask. По всей видимости firmware еще требует доработки.

Опция Enable Client to Client Communication включается в том случае, если предполагается обмен данными между «клиентами».

Отмечаем галочкой применяемые сертификаты.

Enable TLS Authentication Key необходимо установить для шифрование сертификатов, в другом случае сертификаты будут передаваться в открытом виде.

Переходим в раздел Setup / VPN Settings / OpenVPN / OpenVPN Local Networks (Split Tunneling) и нажимаем кнопку Add

Добавляем отечественную локальную сеть (либо сети, в случае если их пара).

Эти сети будут машинально добавлены клиенту в таблицу маршрутизации с направлением в туннель.

4. Настройка «клиента»

Про настройку openvpn клиента в windows и mac я уже писал ранее.

Коротко продублирую данные тут, трансформации лишь в интерфейсе, вместо tap употребляется tun. Создаем файл client.ovpn следующего содержания (###.###.###.### заменяете на собственный внешний ip):

client dev tun proto udp remote ###.###.###.### 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key ns-cert-type server cipher AES-128-CBC auth SHA1 verb 3

В каталог C:\Program Files\OpenVPN\config копируем файлы ca.crt, client.crt, client.key, dh1024.pem и ta.key (в случае если употребляется TLS). Настройка закончена, возможно контролировать.

Кликаем правой кнопкой мыши по значку OpenVPN и выбираем Соединиться (Connect). Откроется диагностическое окно поднятия туннеля. При успешного соединения с сервером окно закроется, а значок OpenVPN «позеленеет».

Не пробуйте устанавливать соединение с VPN сервером из той же локальной сети либо сети, применяющей такую же адресацию — адреса сетей не должны пересекаться.

Пара замечаний по firmware

Не отображаются введенные ключи и сертификаты, нет возможности взглянуть установлены они либо нет.

К сожалению пока не отыскал ответа на вопрос как возможно отзывать клиентские сертификаты с маршрутизатора.

И еще была досадная проблема — в один раз было нужно заново прописать все сертификаты, поскольку маршрутизатор совсем отказывался принимать соединения. Обстоятельство для того чтобы поведения установить не удалось.

Но, это наблюдалось всего один раз за всё полугодовое применение DSR-500.

Комментарии и уведомления в настоящее время закрыты..

Комментарии закрыты.