aviaangel: (Default)
[personal profile] aviaangel
После долгих мучений с этим чудом техники удалось настроить на нем OpenVPN сервер с одновременной поддержкой site to site туннеля и режима клиент iPhone-iPad.
Site to site мне необходим для связи с системой видеонаблюдение на даче, а настроить клиент на iPhone для OpenVPN хотел давно для удобства авторизации по сертификатам без паролей и режима автоподключения.

Конфетку пришлось делать из того, что было, поэтому есть некие ограничения - у меня не получилось нормальное использование TLS ключей (коннект был, но не шел трафик через iPhone и роутер на даче). Все необходимые сертификаты и ключи будем зашивать в файл конфигурации - этого требует теперь уже OpenVPN клиент на iOS.
Что нам понадобится:

  1. Продать DSR-1000N купить DFL-860 Статический IP на одном из WAN интерфейсов DSR.

  2. Прошивка 1.08B51_WW (на других  работу по этой инструкции не обещаю) . WorldWide прошивки ставятся через консоль: http://kadmin.ru/dlinkdsr/

  3. Установить на iOS устройства клиент http:// https://itunes.apple.com/ru/app/openvpn-connect/id590379981?mt=8

  4. Сгенерированные ключи и сертификаты по этой инструкции - http://dlink.ua/dsr_openvpn_settings . Только TLS ключ можно не делать - все равно с ним не работает. В роутер их можно уже заранее ввести.

Приступаем:
Планировка сетей у меня такая (вы расчитывайте свою)
Локальная сеть на даче за черным IP 3G роутера IRZ RUH 3  - 192.168.0.0
Локальная сеть дома за белым IP роутера          DSR-1000N  - 192.168.1.0
Локальная сеть которую строит iMac подключенный к роутеру - 192.168.2.0
Чтобы сшить эти сетки в одну я выбрал VPN  сеть                   - 192.168.3.0

Переходим к настройкам:

Меню Setup - VPN Settings - OpenVPN - OpenVPN Configuration

Снимок экрана 2013-07-10 в 19.06.51




Меню Setup - VPN Settings - OpenVPN - Local Networks (Split Tunnelig)
Здесь мы объединяем сети за DSR-ом

Снимок экрана 2013-07-10 в 19.00.40



Меню Setup - VPN Settings - OpenVPN - Remote Networks
Здесь мы присоединяем удаленную локальную сеть на даче. Обратите внимание - здесь важно правильно указать Common Name который вы указывали в корневом и серверном-клиентских сертификатах (я их указываю обычно одинаковыми прописывая статический IP адрес - поэтому в инструкции замазываю его прямоугольниками) иначе соединения не получится.

Снимок экрана 2013-07-10 в 19.01.00



Далее я вам предлагаю - поменять порт 1194 по умолчанию на 443. Все конечно знают зачем это, но инженеры Dlink считают себя умнее нас и в web интерфейсе это делать запретили.

Снимок экрана 2013-07-10 в 18.42.43
Но можно это сделать через сохранение файла конфигурации и его изменения с последующей обратной загрузкой. Для этого нам придется обойти защиту файла конфигурации по MD5-хэшу.
Если хорошенько порыться в GPL исходниках прошивки роутера, то можно обнаружить файл config.lua который и отвечает за генерацию строчки systemConfig[1]["checksum"] = ... в файле конфигурации такой вот функцией:
function config.getChecksum (fileName)
local pfile = io.popen ("cat " .. fileName .. " | grep -v 'checksum' | md5sum  | cut -d' ' -f1")
...
Как видно используется стандартная командная строка linux. Производится построчный расчет md5 суммы исключая саму строку содержащую эту сумму.
Изменяем файл DSR.cfg строку OpenVpn[1]["Port"] = "1194" на OpenVpn[1]["Port"] = "443"
Далее можно поступить 2 способами - или посчитать эту сумму в специальной программе коих немало. При этом предварительно надо будет удалить полностью строку systemConfig[1]["checksum"] = "...". Либо в OSX можно использовать вышеприведенную команду с некоторыми изменениями:
ao:Downloads oval$ cat DSR.cfg | grep -v 'checksum' | md5  | cut -d' ' -f1
ddfa28879ce0e70b17b4fbd95010caf8
ao:Downloads oval$

Результат расчета необходимо вставить обратно в файл конфигурации в строку systemConfig[1]["checksum"] = "..."
Обратите внимание, что шестнадцетиричные символы должны быть обязательно в нижнем регистре.
Измененную конфигурацию без проблем загружаем обратно в роутер в меню Tools - System - Restore Saved Settings
Этот механизм можно использовать и для других подобных целей где в web интерфейсе стоит излишняя блокировка.


Продолжение следует...
From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

aviaangel: (Default)
aviaangel

March 2016

S M T W T F S
  12345
67 89101112
13141516171819
20212223242526
2728293031  

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 26th, 2017 09:35 pm
Powered by Dreamwidth Studios