LinuxForum.Fans
Тема

Iptables — проксирование socks5 на eth0 внутри VPN - нужна помощь в на

Автор: joebloest 3 сообщений 850 просмотров
25.09.2021 00:08 #436768

Мне нужна помощь, платная или бесплатная - все равно!

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

К интернету расбери подключается по вайфай wlan0
Внутри развернут openvpn и тор поверх vpn, дальше трафик через Тор маршрутизируется на разьем LAN eth0

Комп подключенный по LAN к расбери получает интернет через тор, а тор в свою очередь идет через впн.
При обрыве тора или впн, на eth0 интернет обрывается

Мануалов по обратной настройке, когда к расбери по проводу подключен интернет, а через вайфай раздается впн - много.

В качестве проксируещего ПО я выбрал REDSOCKS

Tor работает на локальном порту 127.0.0.1:1080

Iptables я настроил таким образом, чтобы трафик не шел в обход OpenVPN, поэтому Тор работает только когда подключен ВПН.

Далее я проверил, самый простой вариант без redsocks - маршрутизировал трафик с tun0 на eth0 - комп через eth0 подключился, пинг проходит, но это через vpn.

Осталось правильно маршрутизировать трафик приходящий и исходящий на eth0 в redsocks.

text
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

ipv6 - отключен

Рабочий вариант Iptables - маршрутизация VPN на eth0

xtables-save
text
# Generated by xtables-save
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
# Completed
# Generated by xtables-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -s 185.111.111.111/32 -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
-A OUTPUT -d 185.111.111.111/32 -o wlan0 -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed

Не рабочий вариант, когда eth0 должен маршрутизироваться на redsocks

xtables-save 2
text
# Generated by xtables-save
*nat
:PREROUTING ACCEPT [2:143]
:INPUT ACCEPT [1:67]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [4:268]
:REDSOCKS - [0:0]
-A PREROUTING -i eth0 -p tcp -j REDSOCKS
-A PREROUTING -i eth0 -p udp -m udp --dport 53 -j REDSOCKS
-A POSTROUTING -o tun0 -j MASQUERADE
-A OUTPUT -p tcp -m tcp --dport 53 -j REDSOCKS
-A REDSOCKS -d 0.0.0.0/8 -j RETURN
-A REDSOCKS -d 10.0.0.0/8 -j RETURN
-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 172.16.0.0/12 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN
-A REDSOCKS -p tcp -j REDIRECT --to-ports 10080
-A REDSOCKS -p udp -m udp --dport 53 -j REDIRECT --to-ports 1053
COMMIT
# Completed
# Generated by xtables-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -s 185.111.111.111/32 -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
-A OUTPUT -d 185.111.111.111/32 -o wlan0 -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed

Конфиг REDSOCKS
Редсокс скомплирован без shadowsocks, но для socks5 он и не нужен

Показать
text
base {
    log_debug = off;
    log_info = on;
    log = stderr;
    daemon = off;
    redirector = iptables;
    reuseport = off;
}

redsocks { bind = "0.0.0.0:10080"; relay = "127.0.0.1:1080"; type = socks5; autoproxy = 0; timeout = 10; }

tcpdns {

bind = "0.0.0.0:1053"; // Local server to act as DNS server tcpdns1 = "8.8.4.4:53"; // DNS server that supports TCP DNS requests tcpdns2 = "8.8.8.8" ; // DNS server that supports TCP DNS requests timeout = 4; // Timeout value for TCP DNS requests }

Как правильно настроить iptables для второго нерабочего варианта или дело в чем то другом?
Кто может помочь в решинии задачи?

25.09.2021 02:20 #436769
joebloest написал:

Мануалов по обратной настройке, когда к Raspberry по проводу подключен интернет, а через вайфай раздается впн - много.

А что значит прямой и обратный?
Есть два интерфейса eth* и wlan* и меняются они местами.
Суть от этого не меняется провод это или радио.
По сути два сетевых интерфейса с разными способами передачи данных на расстояние.

25.09.2021 06:11 · отредактировано #436770
MozgFx написал:
[quote=joebloest]
Мануалов по обратной настройке, когда к Raspberry по проводу подключен интернет, а через вайфай раздается впн - много.

А что значит прямой и обратный?
Есть два интерфейса eth* и wlan* и меняются они местами.
Суть от этого не меняется провод это или радио.
По сути два сетевых интерфейса с разными способами передачи данных на расстояние.[/quote]

Они не просто меняются местами
Я не перенаправляю трафик с wlan на eth, а оборачиваю весь трафик в впн, запускаю тор внутри впн, а тор перенаправляю на eth

Войдите или зарегистрируйтесь, чтобы ответить.