LINUXTALKS.CO

Пустить весь https трафик через один из компьютеров в LAN

 

L


0

1

Сеть 192.168.0.0/24. В ней есть комп 192.168.0.101. На нём есть правило

iptables -t mangle -A FORWARD -p tcp -m tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass
Надо, чтобы он обрабатывал проходящие через него пакеты юзерспейсной программой. Для этого я хочу сделать его на остальных устройствах default gateway.

Добавил на 192.168.0.101 правило

iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 443 -s 192.168.0.103 -j SNAT --to-source 192.168.0.101
Тогда с 192.168.0.103 он не пингуется.

Что уже нашел

https://askubuntu.com/questions/907972/route-all-traffic-of-a-machine-through...

UPD

Попробовал добавить правила еще в FORWARD (см. комменты) - не работает. Пинги идут, а домены не резолвятся.


Пока сделал
echo «1» | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -j ACCEPT
sudo iptables -A FORWARD -s 0/0 -d 192.168.0.0/24 -j ACCEPT

[almalinux@almalinux ~]$
[almalinux@almalinux ~]$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  —  192.168.0.0/24       anywhere
ACCEPT     all  —  anywhere             192.168.0.0/24

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[almalinux@almalinux ~]$
[almalinux@almalinux ~]$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       tcp  —  192.168.0.0/24       anywhere             tcp dpt:https to:192.168.0.101

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[almalinux@almalinux ~]$
[almalinux@almalinux ~]$

Оно не совсем не пингуется, оно с 192.168.0.103 с винды
ping 192.168.0.101

Обмен пакетами с 192.168.0.101 по с 32 байтами данных:
Ответ от 192.168.0.101: число байт=32 время=2мс TTL=64
Ответ от 192.168.0.101: число байт=32 время=1мс TTL=64
Ответ от 192.168.0.101: число байт=32 время=1мс TTL=64
Ответ от 192.168.0.101: число байт=32 время=1мс TTL=64

Статистика Ping для 192.168.0.101:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 1мсек, Максимальное = 2 мсек, Среднее = 1 мсек

Ой, оно, кажется, магическим образом само заработало.
damix9    

Windows / Firefox (CY)
А вот и нет, пинги идут, а сайты не открываются. Домены не резолвятся. DNSы на локальном компе 8.8.8.8 и 1.1.1.1, они пингуются. А по доменным именам не пингуется ничего. Попробовал еще такие правила - то же самое.
iptables -t mangle -A FORWARD -p tcp -m tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass
echo «1» | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to-source 192.168.0.101
sudo iptables -A FORWARD -s 192.168.0.0/24 -d 0/0 -j ACCEPT
sudo iptables -A FORWARD -s 0/0 -d 192.168.0.0/24 -j ACCEPT
Если шлюз по умолчанию выбрать какой был - роутер (192.168.0.1) сайты открываются.
damix9    

Windows / Firefox (RU)