Verbindungsanfragen bleiben nach einigen Versuchen mit SYN_SENT hängen

Verbindungsanfragen bleiben nach einigen Versuchen mit SYN_SENT hängen

Wir sind umgezogen und haben am neuen Standort die LAN/WAN-Infrastruktur eingerichtet.

Wenn ich SSH-Verbindungen zu meinem Server initiiere (der sich in der Cloud befindet, nicht im LAN), funktioniert es bei den ersten 3 oder 4 Anfragen in kurzen Abständen (etwa 4 Anrufe innerhalb von 5 Sekunden) einwandfrei, weitere Verbindungen bleiben im Status SYN_SENT hängen. Spätere Anfragen bleiben alle mit SYN_SENT hängen, bis es anscheinend zu einem Timeout kommt. Danach funktioniert es wieder einige Male.

Es wurden keine Änderungen am Server vorgenommen und verschiedene lokale Clients verhalten sich auf diese Weise. Ich vermute also, dass der Unterschied in der IT-Infrastruktur liegt und nicht in den beiden Endpunkten.

Welche möglichen Erklärungen gibt es für dieses Verhalten? Wo sollte ich nach einer Lösung suchen?

Wir verwenden eine Zyxel ZyWall-Firewall, die wir zurücksetzen mussten – verfügt diese über einen Filter, der dieses Verhalten erklären könnte?

Antwort1

Die iptables-Regeln auf dem Server hatten eine „Anti-SSH-Bruteforce“-Regelkette, die das „recent“-Modul verwendet, um Verbindungen nach 4 Versuchen innerhalb von 1 Minute abzubrechen. Diese Regel hatte eine Ausnahme in der INPUTKette, um alle SSH von unserer Face-IP zuzulassen. Als wir umgezogen sind, hat sich die Face-IP geändert und die Regel musste angepasst werden. Als Referenz habe ich das so gemacht

Alle iptables-Regeln auflisten

# iptables -L --line-numbers

Beachten Sie die Akzeptanzregel in der INPUTKette, die so eingestellt ist, dass alle SSH-Verbindungen von unserer (vorherigen) Face-IP-Adresse akzeptiert werden, und die Anti-Bruteforce-Regel, die SSH-Verbindungen nach mehreren Versuchen in der SSH_CHECKKette abbricht:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
...
14   ACCEPT     tcp  --  old.myISP.com      anywhere tcp dpt:ssh
...
Chain SSH_CHECK (1 references)
num  target     prot opt source               destination
...
3    DROP       all  --  anywhere             anywhere            recent: UPDATE seconds: 60 hit_count: 4 TTL-Match name: RECENT_SSH side: source

Bearbeiten der Regeln in/etc/iptables.rules

Ändern

-A INPUT -s 123.45.67.8/32 -p tcp -m tcp --dport 22 -j ACCEPT

Zu

-A INPUT -s 111.222.33.44 -p tcp -m tcp --dport 22 -j ACCEPT

wobei 111.222.33.44 die neue Face-IP ist. Und lesen Sie in den angepassten Regeln:

 # iptables-restore < /etc/iptables.rules 

verwandte Informationen