Mam asymetryczną topologię podwójnego mostu, jak pokazano poniżej, gdy łączę się z 172.16.11.5 i 172.16.10.6 z ssh, ale nie mogę się połączyć z powodu 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
| |
-------
Na wszystkich komputerach między 172.16.11.5 a 172.16.10.6 „filtrowanie rp” jest wyłączone i „przekazywanie ip” jest włączone. Na środku topologii znajduje się maszyna o nazwie „XXX”. XXX ma dwa mosty i SynProxy.
Kiedy SynProxy jest WYŁĄCZONE w XXX, mogę pingować od 172.16.11.5 do 172.16.10.6, a pakiety icmp podążają tą ścieżką: br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0. Ponadto mogę uzyskać dostęp od 172.16.11.5 do 172.16.10.6 za pomocą ssh. Tak więc ruch TCP działa zgodnie z oczekiwaniami.
Jednak gdy SynProxy jest włączony w XXX, mogę pingować od 172.16.11.5 do 172.16.10.6, a pakiety icmp podążają tą samą ścieżką. Ale nie mogę uzyskać dostępu od 172.16.11.5 do 172.16.10.6 za pomocą ssh. Wynika to z faktu, że synproxy nie może wysyłać odpowiedzi synchronizacyjnych za pośrednictwem br1 iface. Jeśli dodam trasę dla pakietów synchronicznych w XXX, mogę połączyć się z 172.16.11.5 do 172.16.10.6 za pomocą ssh.
Dodaj trasę 172.16.11.5 dev enp10s0f0
Reguły SynProxy dla 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
Jest to jednak nie do przyjęcia, ponieważ sieć 172.16.11.0 jest chmurą. Nie mogłem więc dodać trasy całej sieci w chmurze do tablicy tras i nie mogłem dodać adresu mac do tablicy arp.
Jak połączyć się z 172.16.11.5 z maszyną 172.16.10.6 za pomocą ssh, gdy SynProxy jest WŁĄCZONE w XXX? czy jest to możliwe?
Z góry dziękuję,
medium_id
mają interfejsy mostkowe na synproxy? Jakie są Twoje rzeczywiste reguły SYNPROXY we wszystkich tabelach?