OpenVPN настройка клиента на роутере Asus RT-N10U, с прошивкой DD-WRT

Настройка OpenVPN на роутере Asus N10U В статье Настройка OpenVPN я описал общие принципы настройки OpenVPN сервера и клиента.

В этой статье опишу процесс настройки OpenVPN на конкретном примере, в данном случае роутер компании Asus RT-N10U

По умолчанию данный роутер OpenVPN не поддерживает. Но с помощью прошивки DD-WRT и расширения openVPN мы это исправим.

Для начала несколько ссылок:

База роутеров которые поддерживают прошивку:
http://www.dd-wrt.com/site/support/router-database

в строке поиска вводишь N10U, выбираешь роутер и качаешь прошивки:

Собственно прошивка для этого роутера:
http://www.dd-wrt.com/routerdb/de/download/Asus/RT-N10U/-/dd-wrt.v24-21061_NEWD-2_K2.6_mini_RT-N10U.trx/3909
Расширение Опен-ВПН
http://www.dd-wrt.com/routerdb/de/download/Asus/RT-N10U/-/dd-wrt.v24-21061_NEWD-2_K2.6_openvpn.bin/3906

Тут инструкция по установке на английском:
http://www.dd-wrt.com/wiki/index.php/Asus_RT-N10U
Огромное преимущество этого роутера в том, что его можно перепрошить прямо через админку, буквально в несколько шагов — красота.

UPD

Asus RT-N10U D1 + dd-wrt OpenVPN

 

Основные шаги:

  • Сбросить настройки роутера   (Clear NVRAM)
  • Установить прошивку подходящую версию прошивки DD-WRT  (файл с расширением .trx)
  • Еще раз сбросить настройки роутера (Clear NVRAM)
  • Установить необходимые расширения,  в нашем случае OpenVpn (файл с расширением .bin)
  • Еще раз сбросить настройки роутера (Clear NVRAM)
Установка dd-wrt через web-консоль 
  • В браузере набрать адрес: http://192.168.1.1
  • Сбросить настройки роутера: Advanced settings -> Administration -> Restore/Save/Upload Setting -> кнопка Restore
  • Загрузить .trx файл: Advanced settings -> Administration -> Firmware upgrade
  • Дождаться пока роутер перезагрузится. Питание не отключать, кнопок на роутере не нажимать, процесс длительный может занять от 3 до 15 минут.
  • После того как роутер загрузится опять открываем в браузере: http://192.168.1.1
  • Собственно вот она прошивка. Установите для администатора имя root  и пароль на ваш выбор.
  • Еще раз сбросим настройки, в DD-WRT web-консоли это можно сделать здесь так: Administration -> Factory Defaults -> yes -> Apply settings
  • Теперь загрузим дополнение с OpenVPN(.bin): Advanced settings -> Administration -> Firmware upgrade
  • И еще раз сбросим настройки DD-WRT: Administration -> Factory Defaults -> yes -> Apply settings
  • Собственно всё. Осталось задать имя пользователя и пароль и можно переходить к настройке OpenVPN

Настройка OpenVPN на роутере с DD-WRT

настройка OpenVPN на роутере с помощью прошивки DD-WRT

Если всё было сделано правильно, тогда в разделе Services ->VPN появятся  OpenVPN Client, и OpenVPN Server.

Включаем клиента:

Start OpenVPN Client — Enable

 

настройка OpenVPN Сlient на роутере Asus N10U с помощью прошивки DD-WRT

настройка OpenVPN Сlient на роутере Asus N10U с помощью прошивки DD-WRT

 

Server Ip/Name — тут вводим адрес или DNS имя сервера OpenVPN

Port — Номер порта по которому поднят сервер, по умолчания 1194

Tunnel Device — TUN либо TAP. TAP — это виртуальный адаптер локальной сети, TUN виртуальная IP соединение типа точка-точка (point-to-point). Выбираем в зависимости от того что у нас в настройках сервера.

Tunnel Protocol — TCP либо UDP, опять же должно соответствовать настройкам сервера.

Encryption Cipher — тип шифрования используемый на сервере

Hash Algorithm — алгоритм криптографического хеширования, должен соответствовать тому который применяется на сервере. В моем случа SHA-1

После применения всех настроек во вкладке Status \ OpenVPN  можно посмотреть текущее состояние OpenVPN подключения. Если всё верно то в первом блоке будет что то типа этого:

dd-wrt openvpn статус - подключено

нас больше всего интересует CONNECTED: SUCCESS — значит подключение прошло успешно совершено. Local Address: XX.XX.XX.XX — сообщает о том какой адрес был присвоен устройству VPN Server’ом.

Если при это сервер не пингует новый адрес, то поможет следующий пункт:

Отключаем SPI фаервол

идем во вкладку Security\Firewall, и отключаем SPI Firewall, после этого сервер увидит и будет пинговать клиента.

настройка openVPN на dd-wrt - отключаем SPI Firewall

 

 Ошибки openVPN:

Authenticate/Decrypt packet error: packet HMAC authentiction failed

Вылечил изменением Hash Algorithm на SHA1.

TLS Error: Unroutable control packet received

Эта ошибка связана с синхронизацией времени на сервере и клиенте OpenVPN. Соответственно нужно убедится в том, что время синхронизированно.

Поменять дату и время на роутере с прошивкой dd-wrt в Administraton\Commands с помощью комманды вида:

date -s YYMMDDHHMM

date -s 1504021101

Thu Apr  2 11:01:00 UTC 2015

 UPDATE:

Подключение dd-wrt роутера с openVPN через NAT

Итак есть роутер с openVPN который стучит на удаленный хост. Путь его пролегает через другой роутер с натом, где заблокировано все кроме доступа к хосту. Т.е. разрешены udp пакеты, и собственно всё. Результат — openVPN подключается но соединение не устанавливается.

Одна из возможных причин — ntpd. Если проанализировать сетевую активность роутера сразу после запуска можно обнаружить, что он очень активно стучится сразу по трем десяткам адресов. Потом лишние соединения выключается и роутер работает в нормальном режиме. Большая часть из них является обращением к известным серверам времени для синхронизации. Соответственно, роутер после перезагрузки сбрасывает значение на 1970й год, и пытается синхронизироваться. Если ему это не удается, на борту так и остается 1970, из-за чего openVPN не может установить правильное соединение.

Решение:

Разрешить доступ устройства кроме хоста еще и к серверу времени, либо прописать свой сервер, в базовых настройках

Setup\Basic Setup\Time Settings\ServerIP(name)

если прописать вместо айпи адреса — DNS имя, то так же нужно разрешить устройству доступ к dns.

Еще одна полезная статья по работе:

Настройка файрвола для работы openvpn сервера — команды из статьи подходят и для применения на dd-wrt роутерах.

UPD

О чем еще часто забывают — если машина с openvpn клиентом не является шлюзом для данной сети, то на шлюзе нужно добавить маршрут
route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.11.2