LINUX.ORG.RU

Сообщения Coffee

 

Перенаправить локальный трафик (IMAP/HTTP) соединения по другому маршруту в Ubuntu?

Форум — Admin

Здравствуйте! В Ubuntu нужно перенаправить локальный трафик с 80 порта (или например 995) на другой интерфейс, т. е. НЕ через дефолтный маршрут.

В системе: eth0: 192.168.15.20 подсеть 255.255.255.0 шлюз дефолтный 192.168.15.1 Нужно перенаправить на VPN-соединение PPP2: 192.168.50.2 шлюз 192.168.10.1

Пробовал так:

создал таблицу в /etc/iproute2/rt_tables "100 redir"
ip route add default via 192.168.10.1 dev ppp2 table 100
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 80 -j MARK --set-mark 0x2
ip rule add fwmark 0x2/0x2 lookup 100
(взято отсюда: https://habrahabr.ru/post/108690/)
Так же пробовал маскарадить трафик:
iptables -t nat -A POSTROUTING -o ppp2 -j MASQUERADE
Для теста использовал броузер - после применения вышенаписаного перестает открывать страницы. Смотрел tcpdump -i ppp2 port 80 - пакеты уходят с интерфейса. И приходят ответы! Если прописать дефолтным маршрут «ip route add default via 192.168.10.1 dev ppp2» все работает отлично. -------------------------------------------------------- Пробовал с соединением на 995 порт. Ввел команды:
ip route add default via 192.168.10.1 table 100
iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 995 -j MARK --set-mark 0x3
ip rule add fwmark 0x3/0x3 lookup 100
iptables -t nat -A POSTROUTING -o ppp2 -j MASQUERADE
Командой «openssl s_client -connect pop.ukr.net:995» gsnfkcz установить соединение. Вот фрагмент дампа:
# tcpdump -i ppp2 port 995
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ppp2, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
17:47:02.926110 IP 192.168.50.2.50747 > frv240.fwdcdn.com.pop3s: Flags [S], seq 2992313097, win 29200, options [mss 1460,sackOK,TS val 18945796 ecr 0,nop,wscale 7], length 0
17:47:03.206217 IP frv240.fwdcdn.com.pop3s > 192.168.50.2.50747: Flags [S.], seq 171551312, ack 2992313098, win 65535, options [mss 1200,nop,wscale 6,sackOK,TS val 2030069827 ecr 18945796], length 0
17:47:03.925211 IP 192.168.50.2.50747 > frv240.fwdcdn.com.pop3s: Flags [S], seq 2992313097, win 29200, options [mss 1460,sackOK,TS val 18946046 ecr 0,nop,wscale 7], length 0
17:47:04.204445 IP frv240.fwdcdn.com.pop3s > 192.168.50.2.50747: Flags [S.], seq 171551312, ack 2992313098, win 65535, options [mss 1200,nop,wscale 6,sackOK,TS val 2030069827 ecr 18946046], length 0
17:47:05.929222 IP 192.168.50.2.50747 > frv240.fwdcdn.com.pop3s: Flags [S], seq 2992313097, win 29200, options [mss 1460,sackOK,TS val 18946547 ecr 0,nop,wscale 7], length 0
17:47:06.206005 IP frv240.fwdcdn.com.pop3s > 192.168.50.2.50747: Flags [S.], seq 171551312, ack 2992313098, win 65535, options [mss 1200,nop,wscale 6,sackOK,TS val 2030069827 ecr 18946547], length 0
17:47:09.205870 IP frv240.fwdcdn.com.pop3s > 192.168.50.2.50747: Flags [S.], seq 171551312, ack 2992313098, win 65535, options [mss 1200,nop,wscale 6,sackOK,TS val 2030069827 ecr 18946547], length 0
17:47:09.933251 IP 192.168.50.2.50747 > frv240.fwdcdn.com.pop3s: Flags [S], seq 2992313097, win 29200, options [mss 1460,sackOK,TS val 18947548 ecr 0,nop,wscale 7], length 0
17:47:10.216299 IP frv240.fwdcdn.com.pop3s > 192.168.50.2.50747: Flags [S.], seq 171551312, ack 2992313098, win 65535, options [mss 1200,nop,wscale 6,sackOK,TS val 2030069827 ecr 18947548], length 0
17:47:13.216328 IP frv240.fwdcdn.com.pop3s > 192.168.50.2.50747: Flags [S.], seq 171551312, ack 2992313098, win 65535, options [mss 1200,nop,wscale 6,sackOK,TS val 2030069827 ecr 18947548], length 0
17:47:16.231110 IP frv240.fwdcdn.com.pop3s > 192.168.50.2.50747: Flags [S.], seq 171551312, ack 2992313098, win 65535, options [mss 1200,nop,wscale 6,sackOK,TS val 2030069827 ecr 18947548], length 0
Товарищ «Nick: vel, Полное имя: vel21ripn» с этого форума писал здесь подскажите правило для iptables для форварда нужных пакетов (комментарий) Не понимаю куда установить net.ipv4.conf.all.rp_filter=2?

Незнаю что делать - ответы приходят - дампом они видятся. Но приложения (openssl, firefox) их не воспринимают. Судя по нулевой длинне пакетов - клиент и сервер немогут договориться. Скорее все-го из-за того, что клиент отсылает запрос по дефолтному маршруту, а ответ приходит с другого интерфейса. Может нужно сменить адрес отправителя в источнике ответа? Правильна ли команда - iptables -t nat -A POSTROUTING --src 192.168.50.2 -p tcp --dport 80 -j SNAT --to-source 192.168.15.1 ???

 , ,

Coffee
()

RSS подписка на новые темы