Рассмотрим еще один способ маршрутизации локальной сети через «socks-прокси». В отличии от предыдущего способа с «redsocks», в этом, будет рассмотрена возможность маршрутизации на сетевом уровне (сетевой модели OSI), по средствам пакета «badvpn-tun2socks». Данная статья ориентирована на создание и постоянное использование такого маршрутизатора на базе ОС «Debian stretch».
Прежде чем перейти к описанию настройки системы, предоставлю ссылку на бинарники badvpn (может кому-то понадобится).
Итак, после скачивания и распаковки пакета, предлагаю сразу создать сервис systemd со следующим содержанием:
cat /etc/systemd/system/tun2socks.service
[Unit]
Description=Start tun2socks
[Service]
ExecStart=/путь/к/badvpn-tun2socks --tundev tun0 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:1080
[Install]
WantedBy=multi-user.target
+----------+ +-----------+ +----------------+ +------------+
| tun0 |____| tun2socks |___| socks |______| ssh-server |
| 10.0.0.1 | | 10.0.0.2 | | 127.0.0.1:1080 | | *pubic ip* |
+----------+ +-----------+ +----------------+ +------------+
|
+----------+ +-----------+ +----------------+
| NAT |____| dhcpd/ |___| LAN |
| iptables | | wlp6s0 | | 192.168.1.0/24 |
+----------+ +-----------+ +----------------+
cat /etc/network/interfaces
auto lo
auto wlp6s0
auto tun0
# Беспроводной интерфейс
iface wlp6s0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
pre-down systemctl stop tun2socks # Остановка службы tun2socks
pre-down ip tuntap del dev tun0 mode tun # Удаление виртуального интерфейса
pre-up ip tuntap add dev tun0 mode tun user root # Создание виртуального интерфейса
pre-up systemctl start tun2socks & # Запуск службы tun2socks
# Виртуальный интерфейс
iface tun0 inet manual
pre-up ip addr add dev tun0 10.0.0.1/24 # Назначить ip адрес
up ip route add <dns-server-ip-address> via 192.168.1.1 # Добавить действующий шлюз по умолчанию для DNS сервера
up ip route add <ssh-server-ip-address> via 192.168.1.1 # Тоже самое для SSH сервера
up ip route del default # Удалить действующий шлюз по умолчанию
up ip route add default via 10.0.0.2 # Добавить шлюз по умолчанию через интерфейс tun2socks
net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf
cat /etc/iptables.test.rules
*filter
-A FORWARD -i tun0 -o wlp6s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlp6s0 -o tun0 -j ACCEPT
COMMIT
*nat
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
iptables-restore < /etc/iptables.test.rules
iptables-save > /etc/iptables.rules
cat /etc/network/if-pre-up.d/iptables
#!/bin/sh
iptables-restore < /etc/iptables.rules
chmod +x /etc/network/if-pre-up.d/iptables
К сожалению, не доступен сервер mySQL