ssh로 172.16.11.5 및 172.16.10.6에서 연결할 때 아래와 같이 비대칭 이중 브리지 토폴로지가 있지만 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 필터링"이 꺼져 있고 "ip 전달"이 켜져 있습니다. 토폴로지 중간에 "XXX"머신이라는 머신이 있습니다. XXX에는 두 개의 브릿지와 SynProxy가 있습니다.
XXX에서 SynProxy가 꺼져 있으면 172.16.11.5에서 172.16.10.6으로 ping을 수행 할 수 있으며 icmp 패킷은 br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0 경로를 따릅니다. 또한 ssh를 사용하여 172.16.11.5에서 172.16.10.6으로 액세스 할 수 있습니다. 따라서 TCP 트래픽은 예상대로 작동합니다.
그러나 SynProxy가 XXX에서 켜져 있으면 172.16.11.5에서 172.16.10.6으로 핑할 수 있으며 icmp 패킷은 동일한 경로를 따릅니다. 그러나 ssh를 사용하여 172.16.11.5에서 172.16.10.6으로 액세스 할 수 없습니다. synproxy가 br1 iface를 통해 syn ack 응답을 보낼 수 없기 때문입니다. XXX에서 synack 패킷에 대한 경로를 추가하면 ssh를 사용하여 172.16.11.5에서 172.16.10.6으로 연결할 수 있습니다.
경로 추가 172.16.11.5 dev enp10s0f0
XXX에 대한 SynProxy 규칙 :
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 네트워크가 클라우드이기 때문에 허용되지 않습니다. 그래서 모든 클라우드 네트워크를 라우팅 테이블에 라우팅 할 수 없으며 arp 테이블에 mac 주소를 추가 할 수 없습니다.
XXX에서 SynProxy가 켜져있을 때 ssh를 사용하여 172.16.11.5에서 172.16.10.6 시스템에 어떻게 연결할 수 있습니까? 또는 가능합니까?
미리 감사드립니다.
medium_id
synproxy의 브릿지 인터페이스 값이 어떤 값인지 알 수 있습니까 ? 또한 모든 테이블에서 실제 SYNPROXY 규칙은 무엇입니까?