J'ai une topologie asymétrique à double pont comme indiqué ci-dessous lorsque je me connecte à partir de 172.16.11.5 et 172.16.10.6 avec ssh mais je ne peux pas me connecter à cause de 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
| |
-------
Sur toutes les machines entre 172.16.11.5 et 172.16.10.6, le "filtrage rp" est désactivé et le "transfert IP" est activé. Il y a une machine au milieu de la topologie qui s'appelle une machine "XXX". XXX a deux ponts et un SynProxy.
Lorsque SynProxy est désactivé sur XXX, je peux envoyer une requête ping de 172.16.11.5 à 172.16.10.6 et les paquets icmp suivent ce chemin: br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0. De plus, je peux accéder de 172.16.11.5 à 172.16.10.6 avec ssh. Le trafic TCP fonctionne donc comme je m'y attendais.
Cependant, lorsque SynProxy est activé sur XXX, je peux envoyer une requête ping de 172.16.11.5 à 172.16.10.6 et les paquets icmp suivent le même chemin. Mais je ne peux pas accéder de 172.16.11.5 à 172.16.10.6 en utilisant ssh. En effet, synproxy ne peut pas envoyer de réponses syn ack via br1 iface. Si j'ajoute une route pour les paquets synack sur XXX, je peux me connecter de 172.16.11.5 à 172.16.10.6 avec ssh.
route add 172.16.11.5 dev enp10s0f0
Règles SynProxy pour 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
Mais ce n'est pas acceptable car le réseau 172.16.11.0 est cloud. Donc, je ne pouvais pas ajouter l'itinéraire tout le réseau cloud à la table de routage et je ne pouvais pas ajouter l'adresse mac à la table arp.
Comment puis-je me connecter de 172.16.11.5 à la machine 172.16.10.6 à l'aide de ssh lorsque SynProxy est activé sur XXX? ou est-ce possible?
Merci d'avance,
medium_id
des interfaces de pont sur le synproxy? En outre, quelles sont vos règles SYNPROXY réelles dans toutes les tables?