Эта статья - продолжение `Настройка маршрутизации в сети с неподконтрольным роутером`. Итак имеем домашнюю локальную сеть, роутер от провайдера без возможности прошивки и настройки. Ставим в локальной сети сервер. Настраиваем на сервере Wireguard VPN и связываем две локальные сети. Другая локальная сеть - маршрутизатор Xiaomi Mi Router 3G с прошивкой Padavan и Entware. В принципе инструкций по настройке Wireguard - масса. Лично я долго не мог понять, да и сейчас не понимаю, зачем нужно каждому wg устройству назначать адрес из частного диапазона. Могу понять зачем это нужно для одного клиента - ему же нужен какой-то адрес. Но зачем это нужно если связывать две разных сети - непонятно. У специалистов настройка wireguard вообще не вызывает никаких проблем, но я не они. Кстати мне больше всего понравилась инструкция на сайте keenetic - по ней я все и делал.
Параметры
- Локальная сеть - 192.168.2.0/24
- Роутер - 192.168.2.1
- Сервер - 192.168.2.4, ethernet интерфейс - enp1s0
- Другая локальная сеть (за xiaomi mi router) - 192.168.3.0/24
- wireguard device network (частный диапазон IP адресов из которого назначаются адреса wireguard интерфейсам) - 10.253.1.0/24
- сервер wireguard address - 10.253.1.2
- android клиент - 10.253.1.10
- xiaomi mi router wireguard - 10.253.1.3
Dnsmasq
Чтобы все работало в локальной сети необходимо добавить два новых маршрута, которые мы анонсируем через DHCP, чтобы трафик в другую локальную сеть и wireguard device network шел через наш сервер:
Wireguard сервер
Ставим пакет wireguard.
Генерируем пару ключей (открытый + закрытый) для сервера:
```
cd /etc/wireguard
wg genkey > private-key
wg pubkey > public-key < private-key
```
Запускаем `systemctl start wg-quick@wg0.service`
Включаем автозапуск `systemctl enable wg-quick@wg0.service`
В ubuntu все работает - создается интерфейс wg0, создаются маршруты.
Проверить статус можно командой `wg showconf wg0`, `wg show`, маршруты командой `ip route`.
Andoid client
Entware + Padavan
Файлы настроек:
Ставим пакет wireguard-go: `opkg install wireguard-go`. Теоретически можно использовать утилиту `wg-quick` для настройки интерфейса и маршрутизатора, но у меня оно почему-то не заработало :(.
```
wireguard-go wg0
ip address add dev wg0 10.253.1.3/24
wg setconf wg0 /opt/etc/wireguard/wg0.conf
ip link set up dev wg0
ip route add 192.168.2.0/24 dev wg0 src 192.168.3.1
iptables -t filter -A INPUT -i wg0 -j ACCEPT
iptables -t filter -A FORWARD -i wg0 -j ACCEPT
```
По какой-то причине
эту строчку конфигурации из секции [Interfaces] конфига `wg setconf` не принял, поэтому я ее закоментировал:
```
[Interfaces]
Address = 10.253.1.3/24
```
Примечание:
Маршрут `ip route add 10.253.1.0/24 dev wg0 src 10.253.1.3` добавился сам.
Настройка iptables
После некоторых обновлений конфигурации маршрутизатора (например обновление правил белых/черных списков по mac адресу - web интерфейс маршрутизатора -> Advanced settings -> Firewall -> MAC Filter) маршрутизатор с прошивкой padavan сбрасывает правила iptables. Чтобы все продолжало работать в прошивке есть файлик `
/opt/etc/init.d/S10iptables` (softlinkg) -> `
/opt/bin/update_iptables.sh`, который запускается после обновления конфигурации. В него заносим все правила iptables - у меня там правила для wireguard и правила, которые я настроил для
прозрачного использования tor в локальной сети, который настроил по
этой инструкции.
Доступ к роутеру из VPN
Поскольку на роутере таблицу маршрутизации мы настроить не можем, то не можем и получить к нему доступ из VPN напрямую. Чтобы получить web доступ к роутеру можно добавить
nginx reverse proxy configuration. Например на порту
8081. Ссылку на файл колнфигурации надо добавить в директорию /etc/nginx/sites-enabled - `ln -s /etc/nginx/sites-available/local ./`.
Перезагружаем конфигурацию nginx: `systemctl reload nginx`.
Теперь роутер доступен по адресу `http://192.168.2.4:8081`.
Комментариев нет:
Отправить комментарий