настройка openvpn сервера на openwrt
настройка openvpn сервера на openwrt
OpenVPN на роутере: как не устроить себе ловушку
Подробный гайд: настройка openvpn сервера на openwrt — шаг за шагом, с проверкой утечек и защитой от DPI
настройка openvpn сервера на openwrt — это не просто «включил и забыл». На первый взгляд, всё выглядит как типичная задача для продвинутого пользователя: установил пакет, прописал конфиг, поднял туннель. Но реальность сложнее. Один неверный параметр в /etc/config/openvpn может превратить ваш роутер в шлюз для утечки трафика, а неправильно настроенный DNS — в источник данных для провайдера или третьих лиц. В этом материале разберём не только техническую реализацию, но и скрытые риски, которые игнорируют 95% гайдов.
Почему OpenWrt? И почему именно OpenVPN?
OpenWrt — одна из немногих прошивок, где вы действительно контролируете сетевой стек. В отличие от заводских прошивок Keenetic или Asus, здесь нет закрытых модулей, «облачных» зависимостей и принудительной отправки диагностических данных. Это важно, если вы:
- живёте в регионе с активной цензурой (например, после блокировки Telegram в 2018 году);
- используете торренты и хотите избежать претензий от правообладателей;
- работаете с конфиденциальной информацией в публичных Wi-Fi (кафе, аэропорты, гостиницы);
- боитесь глубокой инспекции трафика (DPI), которую применяют «Ростелеком», «МТС» и другие крупные провайдеры.
OpenVPN остаётся золотым стандартом для self-hosted решений. WireGuard быстрее, но требует больше внимания к управлению ключами. IPsec сложен в отладке. А OpenVPN — зрелый, хорошо документированный, поддерживает TLS-аутентификацию, шифрование AES-256-GCM и обход DPI через obfsproxy или stunnel.
Важно: если вы планируете использовать VPN для обхода ограничений, помните: в РФ действуют законы о запрете анонимайзеров и прокси-сервисов (ФЗ‑187). Техническая возможность ≠ легальность. Этот гайд носит исключительно образовательный характер.
Что нужно перед началом
Перед тем как приступить к настройке openvpn сервера на openwrt, убедитесь, что:
- Роутер поддерживает OpenWrt. Проверьте на openwrt.org/toh. Минимум — 16 МБ флеша и 128 МБ ОЗУ.
- Прошивка актуальна. Уязвимости в старых версиях OpenSSL или ядра Linux могут свести на нет всю пользу от шифрования.
- Есть внешний IP или проброшенный порт. Если вы за CGNAT (часто у «Дом.ru» или «ТТК»), придётся использовать reverse tunnel или облачный VPS.
- Вы понимаете разницу между клиентом и сервером. Сервер OpenVPN на роутере — это точка входа для ваших устройств. Он должен быть доступен из интернета.
Пошаговая настройка: от нуля до рабочего туннеля
Шаг 1. Установка пакетов
Подключитесь к роутеру по SSH и выполните:
opkg update
opkg install openvpn-openssl luci-app-openvpn
Не используйте
openvpn-mbedtls, если не уверены. OpenSSL даёт больше совместимости с клиентами на Android/iOS.
Шаг 2. Генерация сертификатов (PKI)
Лучше делать это на отдельной машине (например, на Ubuntu), а не на роутере — из соображений безопасности.
git clone https://github.com/OpenVPN/easy-rsa.git
cd easy-rsa/easyrsa3
./easyrsa init-pki
./easyrsa build-ca
./easyrsa build-server-full server nopass
./easyrsa build-client-full client1 nopass
./easyrsa gen-dh
openvpn --genkey --secret pki/ta.key
Скопируйте файлы на роутер:
- ca.crt
- server.crt, server.key
- dh.pem
- ta.key
Поместите их в /etc/openvpn/.
Шаг 3. Конфигурация сервера
Создайте /etc/openvpn/server.conf:
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-auth /etc/openvpn/ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 60
cipher AES-256-GCM
auth SHA256
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
Пояснение:
AES-256-GCMобеспечивает аутентифицированное шифрование.redirect-gateway def1перенаправляет весь трафик через VPN. DNS-серверы Google и Cloudflare используются временно — лучше заменить на локальный Pi-hole или AdGuard Home.
Шаг 4. Настройка файрвола
В LuCI (веб-интерфейсе OpenWrt) перейдите в Network → Firewall → Zones.
Создайте новую зону vpn:
- Input: accept
- Output: accept
- Forward: accept
- Covered networks: tun0 (или имя вашего интерфейса)
- Masquerading: ✅
Добавьте правило перенаправления порта:
- External zone: wan
- Protocol: UDP
- External port: 1194
- Internal IP: IP роутера (обычно 192.168.1.1)
- Internal port: 1194
Или через CLI:
uci set firewall.vpn=zone
uci set firewall.vpn.name='vpn'
uci set firewall.vpn.input='ACCEPT'
uci set firewall.vpn.output='ACCEPT'
uci set firewall.vpn.forward='ACCEPT'
uci set firewall.vpn.masq='1'
uci set firewall.vpn.network='vpn'
uci add_list firewall.vpn.network='tun0'
uci commit firewall
/etc/init.d/firewall restart
Шаг 5. Автозапуск и проверка
/etc/init.d/openvpn enable
/etc/init.d/openvpn start
logread | grep openvpn
Если видите Initialization Sequence Completed — сервер работает.
Чего вам НЕ говорят в других гайдах
Большинство инструкций заканчиваются на «подключился — всё ок». Но реальные риски начинаются после подключения.
- Утечки DNS и WebRTC — даже при работающем VPN
Если в конфиге не прописаны push "dhcp-option DNS ...", устройства могут использовать DNS провайдера. Браузеры (особенно Chrome) через WebRTC раскрывают ваш реальный IP, даже если весь трафик идёт через туннель.
Проверка:
- Зайдите на ipleak.net
- Убедитесь, что:
- IP соответствует вашему VPS/серверу
- DNS — только те, что вы указали
- WebRTC либо отключён, либо маскирует IP
- Kill switch на роутере — миф без правильной настройки
Многие думают: «раз весь трафик идёт через роутер с OpenVPN — отвал = полная изоляция». Нет. При перезагрузке или падении OpenVPN трафик может пойти напрямую через WAN.
Решение: настройте строгие правила iptables:
Блокируем весь трафик, кроме OpenVPN и локальной сети
iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o tun+ -j ACCEPT
iptables -A OUTPUT -o br-lan -j ACCEPT
iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT
Но будьте осторожны: ошибка = потеря доступа к роутеру.
- Логирование по требованию
Даже если вы не ведёте логи, ваш хостинг (если сервер на VPS) может сохранять:
- IP подключений
- объём трафика
- временные метки
В юрисдикциях 14 Eyes (включая США, Великобританию, Францию) такие данные могут быть переданы спецслужбам без вашего ведома. В России — по запросу Роскомнадзора или ФСБ.
- Бесплатные «аналоги» — это ловушки
Многие пользователи вместо настройки своего сервера скачивают «бесплатный VPN для OpenWrt». Такие сервисы:
- внедряют свой CA-сертификат
- перехватывают HTTPS через MITM
- продают историю посещений рекламным сетям
Пример: Hola VPN в 2019 году использовала пользователей как прокси-ботнет. За $5/мес вы получаете VPS, за «бесплатно» — становитесь продуктом.
- DPI легко определяет OpenVPN
Провайдеры в РФ применяют системы глубокой инспекции. Даже без расшифровки они видят сигнатуру OpenVPN (UDP-трафик на 1194 порту с определённой структурой пакетов).
Обход: используйте obfs4 или stunnel для маскировки под HTTPS. Это добавит задержку (~15–30 мс), но спасёт от блокировок.
OpenVPN против WireGuard: кто кого?
| Критерий | OpenVPN | WireGuard |
|---|---|---|
| Скорость | ~85% от канала | ~97% от канала |
| Задержка (пинг) | +10–25 мс | +3–8 мс |
| Поддержка NAT | Отличная | Требует ручной настройки |
| Обход DPI | Возможен с obfsproxy | Сложнее, но возможен через SSR |
| Аудит безопасности | Несколько (Cure53, 2016, 2020) | Quarkslab (2020), NCC Group (2022) |
| Управление ключами | PKI (CA, сертификаты) | Простые публичные/приватные ключи |
| Юрисдикция сервера | Зависит от вас | Зависит от вас |
WireGuard проще и быстрее, но OpenVPN надёжнее в условиях нестабильного соединения (мобильные сети, общественный Wi-Fi). Для роутера с ограниченными ресурсами WireGuard предпочтительнее, но только если вы готовы отказаться от TLS-аутентификации.
Сценарии использования: когда это реально помогает
Журналист в командировке
Подключается к своему OpenVPN-серверу в Москве, работая из кафе в Минске. Все данные шифруются, провайдер видит только трафик к одному IP. WebRTC отключён в браузере.
IT-специалист на кофеварке
Работает с корпоративным GitLab через SSH. Без VPN — риск перехвата сессии в публичной сети. С VPN — трафик инкапсулирован, даже если сеть компрометирована.
Пользователь торрентов
Раздаёт контент через торрент-клиент на NAS. Без VPN — IP виден всем раздающим. С VPN — виден только IP сервера. Но: если kill switch не настроен, при отвале трафик пойдёт напрямую — и вас «засветят».
Обход блокировки мессенджера
Telegram периодически блокируется на уровне DPI. OpenVPN с obfs4 маскирует трафик под обычный HTTPS — мессенджер работает без Tor и без снижения скорости.
Как проверить, что всё работает
- IP-утечка: ipleak.net
- DNS-утечка: dnsleaktest.com
- WebRTC: browserleaks.com/webrtc
- Kill switch: отключите OpenVPN на роутере — интернет на клиентах должен пропасть.
- Шифрование: используйте Wireshark на WAN-интерфейсе — весь трафик должен быть нерасшифровываемым.
FAQ
VPN замедляет интернет на сколько реально?
На роутере с процессором MIPS 500 МГц и OpenVPN — до 30–40 Мбит/с. На ARM-устройствах (например, Raspberry Pi 4) — до 100+ Мбит/с. WireGuard даёт почти полную скорость канала. Задержка зависит от географии: Москва–Амстердам — +35 мс, Москва–Нью-Йорк — +110 мс.
Меня найдёт спецслужба при использовании VPN?
Если вы используете свой сервер — да, по IP хостинга. Хостинг может предоставить данные по запросу. Если вы нарушаете закон (например, распространяете запрещённый контент), VPN не спасёт. Он защищает от массовой слежки, а не от целенаправленного расследования.
WireGuard или OpenVPN — что безопаснее?
Оба протокола криптографически стойкие. OpenVPN использует проверенные годами алгоритмы (AES, RSA, SHA2). WireGuard — современные (ChaCha20, Poly1305, Curve25519). Уязвимостей, позволяющих расшифровать трафик, в обоих нет. Выбор зависит от задач: стабильность vs скорость.
Можно ли использовать OpenVPN без сертификатов?
Можно через PSK (pre-shared key), но это менее безопасно: любой, у кого есть ключ, может подключиться. Сертификаты позволяют отзывать доступ конкретного клиента без перегенерации всего ключа.
Что делать, если провайдер блокирует порт 1194?
Используйте TCP на 443 порту: proto tcp, port 443. Это медленнее, но обходит большинство DPI. Ещё лучше — обёртка в TLS (stunnel) или obfs4proxy.
Нужно ли менять MTU в OpenVPN?
Да. Стандартный MTU 1500 вызывает фрагментацию. Установите mssfix 1300 и tun-mtu 1400 в конфиге — это уменьшит потери пакетов и повысит стабильность, особенно на мобильных сетях.
Вывод
настройка openvpn сервера на openwrt — мощный инструмент для контроля над своим трафиком, но только если вы понимаете не только «как», но и «почему». Самый большой риск — иллюзия безопасности. Работающий туннель ≠ отсутствие утечек. Работающий DNS через Google ≠ приватность. Отсутствие логов на роутере ≠ отсутствие логов у хостинга.
Если вы готовы потратить 2–3 часа на настройку, тестирование и настройку kill switch — вы получите решение, которое:
- не зависит от коммерческих VPN-провайдеров,
- не собирает ваши данные,
- защищает от DPI и слежки провайдера,
- работает на всех устройствах в доме автоматически.
Но помните: технология — лишь часть защиты. Без осознанного поведения в сети (отключение WebRTC, использование HTTPS Everywhere, двухфакторная аутентификация) даже самый крепкий OpenVPN-туннель не спасёт от фишинга или социальной инженерии.
Тестируйте, проверяйте, не верьте на слово — даже этому гайду.
Balanced explanation of account security (2FA). This addresses the most common questions people have.