У меня есть асимметричная топология двойного моста, как показано ниже, когда я соединяюсь с 172.16.11.5 и 172.16.10.6 с ssh, но я не могу соединиться из-за SynProxy.
-------
| |
---o--- 172.16.11.5
|
|
-----o----- 172.16.11.6
| |
| | default gw 1.1.1.1
| |
1.1.1.2/30 --o----o--- 2.2.2.2/30
| |
| |
| | (enp10s0f0)
----o----o-----
| |
| XXX |
| |
| br1 br0 | synproxy
| |
----o----o-----
| |
| |
| |
1.1.1.1/30 --o----o--- 2.2.2.1/30
| |
| | default gw 2.2.2.2
| |
-----o----- 172.16.10.1
|
|
---o--- 172.16.10.6
| |
-------
На всех машинах между 172.16.11.5 и 172.16.10.6 «rp filtering» выключен, а «ip forwarding» включен. В середине топологии находится машина, которая называется машиной "ХХХ". XXX имеет два моста и SynProxy.
Когда SynProxy выключен на XXX, я могу пропинговать с 172.16.11.5 до 172.16.10.6 и пакеты icmp следуют по этому пути: br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0. Кроме того, я могу получить доступ с 172.16.11.5 по 172.16.10.6 с помощью ssh. Так что трафик TCP работает как я ожидаю.
Однако, когда SynProxy включен в XXX, я могу пропинговать с 172.16.11.5 до 172.16.10.6, и пакеты icmp следуют по тому же пути. Но я не могу получить доступ с 172.16.11.5 по 172.16.10.6, используя ssh. Это потому, что synproxy не может отправлять syn ack ответы через br1 iface. Если я добавлю маршрут для пакетов synack в XXX, я могу подключиться с 172.16.11.5 до 172.16.10.6 с помощью ssh.
добавление маршрута 172.16.11.5 dev enp10s0f0
Правила SynProxy для XXX:
iptables -t raw -A PREROUTING -i br0 -p tcp -m physdev --physdev-in
enp10s0f0 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j CT --notrack
iptables -t raw -A PREROUTING -i br1 -p tcp -m physdev --physdev-in
enp11s0f0 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j CT --notrack
iptables -t filter -A FORWARD -i br0 -p tcp -m physdev --physdev-in
enp10s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br0 -m physdev --physdev-in enp10s0f0
-m state --state INVALID -j DROP
iptables -t filter -A FORWARD -i br1 -p tcp -m physdev --physdev-in
enp11s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br1 -m physdev --physdev-in enp11s0f0
-m state --state INVALID -j DROP
Но это неприемлемо, потому что сеть 172.16.11.0 является облачной. Поэтому я не мог добавить маршрут всей облачной сети в таблицу маршрутов и не мог добавить MAC-адрес в таблицу arp.
Как я могу подключиться с 172.16.11.5 к машине 172.16.10.6, используя ssh, когда SynProxy включен на XXX? или это возможно?
Заранее спасибо,
medium_id
имеют мостовые интерфейсы в synproxy? Кроме того, каковы ваши действительные правила SYNPROXY во всех таблицах?