1. Главная страница » Компьютеры » Dd wrt openvpn client

Dd wrt openvpn client

Автор: | 16.12.2019

Не секрет, что большинство домашних роутеров имеет множество скрытых возможностей. Производители, по разным причинам, не захотели реализовать или просто предоставить к ним доступ в штатной прошивке. Про альтернативную прошивку DD-WRT, я уже рассказывал, хоть и довольно давно, в посте о настройке D-link DIR-300 в режиме Wi-Fi повторителя. Данная прошивка, как раз и позволяет задействовать весь скрытый потенциал роутера, выжав всё, на что способно устройство, в том числе сделать его клиентом или сервером OpenVPN.

Откуда взялась прошивка DD-WRT и где её можно скачать?

В основе DD-WRT лежит Linksys WRT, прошивка, разработанная компанией Linksys для собственных маршрутизаторов серии WRT54G. Приставка «DD» в названии DD-WRT не что иное, как автомобильный код города Дрезден в Германии, где живет главный разработчик проекта DD-WRT.

Сейчас в продаже имеются маршрутизаторы, с уже установленной DD-WRT, например от той же Linksys или других производителей. Кроме того, на большинстве роутеров, можно самостоятельно заменить проприетарную прошивку на DD-WRT. Полный список поддерживаемых устройств можно найти на официальном сайте https://www.dd-wrt.com.

Преимущества настройки маршрутизатора в качестве клиента или сервера OpenVPN

Давайте разберемся в чём заключается преимущество использования клиента OpenVPN на маршрутизаторе перед обычным клиентским приложением (например tunnelblick на macOS), которое можно установить на компьютере или смартфоне.

Итак, при поднятии VPN канала на роутере, устанавливается только одно подключение к VPN-серверу, вместо нескольких для каждого устройства, что существенно снижает нагрузку на VPN сервер. VPN канал всегда включен и доступен для устройств за ним, также не стоит забывать, что далеко не на каждом устройстве имеется возможность установить OpenVPN клиент.

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

Настройка DD-WRT маршрутизатора в качестве клиента OpenVPN

Заходим в панель управления маршрутизатора (обычно адрес 192.168.0.1 или 1.1), зависит от того какую подсеть вы настроили у себя. Переходим на вкладку Services -> VPN.

Для примера, сделаем настройку подключения к абстрактному OpenVPN серверу провайдера. Существенной разницы в настройке подключения к любому другому серверу быть не должно. Для начала активируем настройку клиента OpenVPN.

Большинство поставщиков VPN, использующих OpenVPN, предоставляют конфигурационный файл для подключения. Конечно, содержимое файлов конфигурации OpenVPN клиента может отличаться, например режимом шифрования, использованием сжатия данных, авторизацией и т.д., но принцип везде остаётся одинаковым.

Пример файла настроек OpenVPN, и соответствующих ему полей на маршрутизаторе DD-WRT можно увидеть на скриншоте:

В приведенном примере нужно дополнительно ввести имя пользователя и пароль в соответствующие поля. Остальные настройки должны быть скопированы и вставлены в поле Additional Config (Дополнительные настройки) маршрутизатора DD-WRT.

Cохраняем настройки, нажав кнопку Save. Теперь весь ваш трафик проходящий через VPN соединение будет зашифрован. Некоторые VPN сервисы дополнительно предоставляют собственные DNS, вы можете настроить маршрутизатор и на использование любых DNS-серверов, какие пожелаете Setup -> Basic Setup.

Чтобы запустить VPN, возвращаемся на вкладку Services -> VPN и нажимаем кнопку Apply Settings. На вкладке Status -> OpenVPN, должно появиться сообщение Client: CONNECTED SUCCESS. Обратите внимание, что вкладка состояния OpenVPN не появится до тех пор, пока не будет включена служба OpenVPN.

Настройка DD-WRT в качестве OpenVPN сервера

Первым делом нам понадобится создать сертификаты и ключи шифрования для использования сервером OpenVPN. Для этого установим OpenVPN на компьютер и создадим необходимые файлы. Я уже рассказывал о генерации ключей для OpenVPN сервера на FreeBSD (как это сделать в Windows, можно почитать на сайте OpenVPN или у меня в блоге). Пользователи Linux могут использовать приведенные ниже команды (взято из первоисточника, ссылка будет в конце поста).

Читайте также:  Huawei ascend p6s характеристики

Для Ubuntu и других пользователей на базе Debian следует установить пакеты openvpn и easy-rsa:

Создадим рабочий каталог и назовём его openvpn:

И выполним команды генерации сертификатов:

При создании сертификатов будет запрашиваться информация о местоположении, которая включается в сертификат (можно писать всякую лабуду). Если желаете настроить её заранее, измените нужные поля в файле CA/vars:

Также будет предложено придумать кодовую фразу (passphrase). Я не рекомендую её устанавливать, иначе вы не сможете запустить OpenVPN сервер без ввода пароля. Это касается и создания клиентских ключей, задав пароль вы будете вынуждены вводить его всякий раз при подключении к серверу. Так что при генерации ключей, на соответствующий запрос пароля просто нажимаем клавишу ввода, если вам это не нужно.

Если всё сделано правильно, то в каталоге CA/keys получили кучу файлов с ключами и сертификатами:

Нам понадобятся только некоторые из них. Открываем их в текстовом редакторе и помещаем содержимое файлов в соответствующие поля на странице DD-WRT OpenVPN Server / Daemon. Переходим в раздел Services -> VPN и активируем OpenVPN Server/Daemon.

  • ca.crt соответствует полю CA Cert
  • server.crt соответствует полю Public Server Cert
  • server.key соответствует полю Private Server Key
  • dh2048.pem соответствует полю DH PEM
  • pfs.key соответствует полю TLS Auth Key

Нажав кнопку Apply settings (Применить настройки), наш VPN-сервер должен начать работу. Перейдя на страницу Status -> OpenVPN, можно проверить статус соединения. Обратите внимание, что на этот раз в сообщении говорится о сервере: CONNECTED SUCCESS.

Остаётся настроить конфигурационный файл для клиента, в данном случае выглядит примерно так:

Проверяем подключение клиента к нашему openvpn серверу для командной строки Linux:

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

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

From DD-WRT Wiki

Contents

[edit] Введение

В DD-WRT в сборках с суффиксом -vpn включен демон openvpn. В GUI его настройки располагаются на странице "services" — "VPN", есть два раздела: "OpenVPN daemon" и "OpenVPN Client". В nvram им соответствую параметры, начинающиеся с "openvpn_" и "openvpncl_" соответственно.

Почему-то разработчики dd-wrt сделали так, что openvpn в режиме клиента создаёт маршрут по умолчанию через туннель: именно команды изменения маршрута помимо команд, разрешающих трафик через VPN, содержат скрипты route-down.sh и route-up.sh, указанные в командной строке запуска openvpn:

Из-за этого, когда нужно просто связать две локальные сети или подключить дистанционного клиента к локальной сети, приходится мудрить. Причём типовые рекомендации заключаются в создании собственного "пользовательского" скрипта, который должен сформировать конфигурацию и запустить openvpn.

В этой статье описан способ сделать клиентское подключение средствами GUI-конфигуратора без дополнительных скриптов.

[edit] Условия

  • Для организации клиентского подключения openvpn используются настройки "openvpn daemon"
  • Чтобы на страничке статуса openvpn ("Status"-"OpenVPN") была информация, а также для управления демоном, используется локальный порт 5001/TCP (см. файлы /etc/openvpnlog.sh, /etc/openvpnstate.sh и /etc/openvpnstatus.sh в файловой системе маршрутизатора).
  • Используется особенность dd-wrt, что в режиме openvpn-сервера конфиг openvpn не генерируется, как в случае с openvpn-клиентом, а в явном виде хранится в nvram.
  • Подключаемся, используя сертификаты (сертификат CA, свой сертификат клиента и свой секретный ключ, все в формате PEM)
  • Настраиваем синхронизацию часов маршрутизатора с мировым временем (часовой пояс не важен, хотя и удобен при анализе протокола работы).

[edit] Настройка

  1. Включаем переключатель Start OpenVPN Daemon
  2. Переключатель "Start Type" не трогаем либо переключаем в "WAN Up" — делаем с ним то, что кажется лучшим.
  3. Поля ""Certificate Revoke List"", ""DH PEM"", ""OpenVPN TLS Auth"" оставляем пустым.
  4. В поле ""CA Cert"" вставляем сертификат удостоверяющего центра в формате PEM. При загрузке маршрутизатора он будет записан в файл /tmp/openvpn/ca.crt.
  5. В поле ""Public Client Cert"" вставляем свой сертификат клиента. При загрузке маршрутизатора он будет записан в файл /tmp/openvpn/cert.pem.
  6. В поле ""Private Client Key"" вставляем свой секретный ключ. При загрузке маршрутизатора он будет записан в файл /tmp/openvpn/key.pem.
  7. В поле ""OpenVPN Config"" вставляем свой конфиг, в котором указаны упомянутые файлы и порт управления, например:
Читайте также:  Fx audio d802c отзывы

Теперь нужно не забыть нажать ""Save"" и затем ""Apply Changes"". Если у маршрутизатора маленькая флешка, после перезапуска обязательно нужно проверить, что записалось всё нужное. Если нет — скорее всего не хватило места в nvram, его можно попробовать почистить , соединившись с маршрутизатором по SSH. Описывать процесс чистки не буду: если самостоятельно разобраться знаний не хватает, лучше не соваться :).

Если всё сделано правильно, на странице статуса будет видно, что соединение OpenVPN установилось.

—Grumbler 21:43, 10 March 2014 (CET)

[edit] P.S. Параметры openvpn_* в nvram.

""Для справки: параметры openvpn_* в nvram.""

Все о BIM, CAD, ERP

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

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

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

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

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

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

UPD

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

  • Сбросить настройки роутера (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

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

Start OpenVPN Client — Enable

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 подключения. Если всё верно то в первом блоке будет что то типа этого:

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

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

Читайте также:  Pc doctor for windows

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

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

Ошибки openVPN:

Authenticate/Decrypt packet error: packet HMAC authentiction failed

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

TLS Error: Unroutable control packet received

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

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

date -s YYMMDDHHMM

date -s 1504021101

UPDATE:

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

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

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

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

SetupBasic SetupTime SettingsServerIP(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

12 комментариев

После настройки всех параметров впн не поднимается. можно как то с вами связаться и показать логи?

Отписался по указанному почтовому адресу. 🙂

У меня возникла странная проблема. После настройки openvpn клиента на роутере я могу выйти в интернет только с одного компьютера, а со всех остальных устройств — нет. openvpn клиент настраивался так, чтобы дать доступ в интернет через vpn как для компьютеров, так и для телевизора на который клиента не поставишь. Не могу найти в чем причина. если отключаю на роутере openvpn client — все сразу же работает

Т.е. компьютер через шлюз и впн интернет видит, а телевизор нет?
Как вариант какие-то различия в сетевых настройках телевизора и компа.

Здравствуйте
все делал по инструкции ничего не получилось.

как с вами связаться

Здравствуйте!
Статья помогла, но есть одно но! Роутер к серверу подключается, пинги на все адреса проходят. А вот с компов из локалки роутера ни в какую. Дайте направление куда копать.
Заранее благодарен.

Судя по описанию в роутере не настроен проброс трафика к VPN серверу. Ищи по OpenVPN у меня на сайте, где-то были примеры настройки маршрута на роутере через админку.

Здравствуйте
Готов оплатить ваши услуги по настройке Open VPN (или PPTP) клиента на моем Asus RT-N10U B
Предоставлю доступ на роутер а так же доступ на VPS на которой настроены Open VPN и PPTP серверы

К сожалению я этим давно уже не занимаюсь. Собственно процесс прошивки настройки описан в этой и других статьях. Дело нудное сложно и полное ошибок. Но получите удовольствие когда всё заработает ) дерзайте и просто не сдавайтесь, тогда всё получится.
Но может уйти пара другая недель.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

×