Die iptables-Regeln auf dem Server unterbrechen die dynamische Weiterleitung von Ssh-Ports (SOCKS-Proxy) auf dem lokalen Computer

593
Dmitri

Ich benutze Debian 9 auf einem gemieteten VPS. Auf meinem Laptop verwende ich dynamisches SSH-Port-Forwarding (unter Verwendung des SOCKS-Protokolls), um den Verkehr einiger Anwendungen zu tunneln. Alles funktioniert gut, aber wenn ich die iptables-Regeln auf dem Server (dem VPS) lade, funktioniert jede Anwendung auf meinem Laptop, die die lokale Portweiterleitung verwendet hat, nicht mehr.

Dies ist der Befehl, den ich verwende, um den lokalen Port 8080 meines Laptops (debian 8) an meine VPS weiterzuleiten:

ssh -D 8080 -N username@30.123.234.6 

Der obige Befehl gibt folgende Fehler zurück:

channel 7: open failed: connect failed: Connection timed out channel 8: open failed: connect failed: Connection timed out channel 9: open failed: connect failed: Connection timed out channel 3: open failed: connect failed: Connection timed out etc... 

Hier ist die Ausgabe von iptables -L auf dem VPS. Kann jemand sehen, warum diese Regeln dieses Problem verursachen würden? Jede Idee sehr geschätzt.

Chain INPUT (policy DROP) target prot opt source destination  ACCEPT all -- google-public-dns-a.google.com anywhere  ACCEPT all -- resolver3.opendns.com anywhere  ACCEPT all -- resolver1.opendns.com anywhere  SYN_FLOOD_LOG_DROP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN UDP_FLOOD_LOG_DROP udp -- anywhere anywhere  ICMP_FLOOD_LOG_DROP icmp -- anywhere anywhere  tcp -- anywhere anywhere tcp dpt:ssh state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255 SSH_LOG_DROP tcp -- anywhere anywhere tcp dpt:ssh state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source mask: 255.255.255.255 tcp -- anywhere anywhere tcp dpt:xmpp-client state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255 XMPP_LOG_DROP tcp -- anywhere anywhere tcp dpt:xmpp-client state NEW recent: UPDATE seconds: 60 hit_count: 8 name: DEFAULT side: source mask: 255.255.255.255 tcp -- anywhere anywhere tcp dpt:http state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255 HTTP_LOG_DROP tcp -- anywhere anywhere tcp dpt:http state NEW recent: UPDATE seconds: 60 hit_count: 8 name: DEFAULT side: source mask: 255.255.255.255 ACCEPT tcp -- anywhere anywhere tcp dpt:xmpp-client ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- localhost anywhere tcp dpt:5582  Chain FORWARD (policy DROP) target prot opt source destination   Chain OUTPUT (policy ACCEPT) target prot opt source destination   Chain HTTP_LOG_DROP (1 references) target prot opt source destination  LOG all -- anywhere anywhere LOG level warning prefix "IPTables DROP:HTTPATTACK " DROP all -- anywhere anywhere   Chain ICMP_FLOOD_LOG_DROP (1 references) target prot opt source destination  RETURN all -- anywhere anywhere limit: avg 1/sec burst 3 LOG all -- anywhere anywhere LOG level warning prefix "IPTables DROP:ICMPFLOOD " DROP all -- anywhere anywhere   Chain SSH_LOG_DROP (1 references) target prot opt source destination  LOG all -- anywhere anywhere LOG level warning prefix "IPTables DROP:SSHATTACK " DROP all -- anywhere anywhere   Chain SYN_FLOOD_LOG_DROP (1 references) target prot opt source destination  RETURN all -- anywhere anywhere limit: avg 1/sec burst 3 LOG all -- anywhere anywhere LOG level warning prefix "IPTables DROP:SYNFLOOD " DROP all -- anywhere anywhere   Chain UDP_FLOOD_LOG_DROP (1 references) target prot opt source destination  RETURN all -- anywhere anywhere state NEW recent: UPDATE seconds: 1 hit_count: 20 name: DEFAULT side: source mask: 255.255.255.255 LOG all -- anywhere anywhere LOG level warning prefix "IPTables DROP:UDPFLOOD " DROP all -- anywhere anywhere   Chain XMPP_LOG_DROP (1 references) target prot opt source destination  LOG all -- anywhere anywhere LOG level warning prefix "IPTables DROP:XMPPATTACK " DROP all -- anywhere anywhere  

Vielen Dank.

0
Was ist das Logging? (Um Ihre Terminologie zu klären, verwenden Sie keinen socks5-Proxy für die vps, es handelt sich um eine dynamische Weiterleitung von ssh-Ports, die das Socks-Protokoll auf Ihrem lokalen Rechner verwendet.) Haben Sie versucht, auf diesem VPS ausgehende Verbindungen herzustellen? Könnte es versäumen, etablierte Pakete anzunehmen. Ich würde zuerst die Drop-Policy in eine Ablehnungs- / Protokollregel konvertieren, dann werden die fehlenden Pakete angezeigt. eckes vor 6 Jahren 0
Die Protokollierung dessen, was fallen gelassen wurde, hat sehr geholfen. Vielen Dank! Dmitri vor 6 Jahren 0

1 Antwort auf die Frage

1
Dmitri

Ich folgte dem Vorschlag von eckes und versuchte zu protokollieren, was durch die INPUT-Richtlinie DROPped ist. Also habe ich folgende Regel als letzte in der INPUT-Kette hinzugefügt:

iptables -A INPUT -j LOG --log-prefix "IPTables DROP: wrong drop " --log-level 4 

Dies zeigte, dass eine Menge Material tatsächlich fallen gelassen wurde, was wahrscheinlich nicht der Fall sein sollte. Ein Beispiel ist diese Zeile aus dem Protokoll:

12. Dez. 22:45:13 MyServername-Kernel: [41817.875804] IPTables DROP: falscher Drop IN = ens18 OUT = MAC = aa: 43: 9d: 07: 06: a7: 00: 1b: 21: ad: d0: 5d: 08 : 00 SRC = 149.56.134.238 DST = 30.123.234.6 LEN = 113 TOS = 0x00 PREC = 0x00 TTL = 49 ID = 471 DF PROTO = TCP SPT = 6667 DPT = 47054 WINDOW = 227 RES = 0x00 ACK PSH URGP = 0

Ich war zum Zeitpunkt des Tests von meinem Laptop aus mit dem IRC-Server 149.56.134.238 (cherryh.freenode.net) verbunden, wobei die dynamische Portweiterleitung von ssh wie beschrieben verwendet wurde. Ich habe die Verbindung verloren, nachdem iptables-Regeln auf dem Server (VPS) geladen wurden.

Also folgte ich erneut dem Rat von eckes und versuchte, ESTABLISHED, RELATED-Pakete zu akzeptieren, indem ich diese Zeile als letzte Regel der Kette hinzufügte (jedoch vor der oben genannten Debugging-LOG-Regel).

iptables -A INPUT -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT 

Problem gelöst. Ich denke, die Lektion ist, dass der erste Schritt bei iptables-Problemen ist, zu prüfen, was tatsächlich fallen gelassen wird!