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

Октябрь, 16th 2014Рубрика: Железо | Безопасность. Вирусы | Soft 10191
Подписаться на комментарии по RSS

маршрутизатор D-Link DSR-500N

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

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

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

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

1. Установка дистрибутива OpenVPN и создание сетевого моста

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

скачиваем OpenVPN с официального сайта

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

установка OpenVPN клиента на Windows

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

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

  • Корневой сертификат - Certificate Authority
  • Сертификат сервера - Server
  • Сертификат клиента - Client

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

подготовка к созданию сертификатов OpenVPN

Заменяем переменные в файле 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:

создание корневого сертификата CA

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

создание ключа dh-key

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

создание ключа сервера openvpn

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

создание сертифика клиента openvpn

Создаем TLS Authentication Key командой openvpn --genkey --secret ta.key:

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

После этого в папке keys должны присутствовать все необходимые сертификаты.

ключа и сертификаты openvpn

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

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

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

настройка маршрутизатора DSR-500N

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

настройка OpenVPN на DSR-500N. Прописываем сертификаты

  • 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

настройка OpenVPN на DSR-500N. Конфигурируем сервер.

Ставим галочку 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. Видимо прошивка еще требует доработки.

Опция 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

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

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

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

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

И еще была досадная неприятность - однажды пришлось заново прописать все сертификаты, так как маршрутизатор напрочь отказывался принимать соединения. Причину такого поведения установить не удалось. Впрочем, это наблюдалось всего один раз за всё полугодовое использование DSR-500.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 2

  1. 2015-03-14 в 19:23:58 | Аноним

    Всё еще на закрыт вопрос: "Как отозвать пользовательский сертификат?" Или уже решили данную проблему?

  2. 2015-03-15 в 10:33:40 | dre@mer]]>avatar]]>

    К сожалению, после очередного внезапного отключения электричества маршрутизатор перестал принимать openVPN-соединения. Перпрошивка не помогла, гарантия кончилась.

    В общем сделал классически на FreeBSD - так оно стабильнее http://mdex-nn.ru/page/usb-flash-freebsd-osx.html

Без регистрации
ваш комментарий будет опубликован после проверки
Регистрация на сайте

На указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.