Warum wirft mich iptables -F aus meiner SSH-Sitzung?

Nov 20 2020

Ich wollte iptables von einige Regeln hinzufügen https://askubuntu.com/questions/37412/how-can-i-ensure-transmission-traffic-uses-a-vpn Fragen und Antworten zum Routenverkehr vom Torrent-Programm Übertragung über einen VPN (in meinem Fall Surfshark).

Mindestens zwei der Antworten werden verwendet iptables -F, um die Tabellen zu leeren, bevor die benutzerdefinierten Regeln hinzugefügt werden.

Eine dieser Antworten bezieht sich speziell auf einen Headless-Server (wie meinen). Ich vermute also, dass dies funktionieren sollte.

Aber wenn ich benutze, werde iptables -Fich sofort aus meiner SSH-Sitzung auf den Server geworfen. Ich kann keinen neuen Befehl auf dem Terminal eingeben und muss den Server neu starten, um mich erneut anzumelden.

Auf dem Server läuft eine Firewall, die Port 22 für jede IP zulässt.


Zur Verdeutlichung werde ich einige Ausgaben hinzufügen, bevor und nachdem ich die akzeptierte Antwort angewendet habe:

Vorher (Hinweis policy DROP):

     $ sudo iptables -xvnL
Chain INPUT (policy DROP 21 packets, 5628 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
     387    31969 f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22
   27008 50413306 ufw-before-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
   27008 50413306 ufw-before-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     153    26176 ufw-after-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
      21     5628 ufw-after-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
      21     5628 ufw-reject-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
      21     5628 ufw-track-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 ufw-before-logging-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
       0        0 ufw-before-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
       0        0 ufw-after-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
       0        0 ufw-after-logging-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
       0        0 ufw-reject-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
       0        0 ufw-track-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 7 packets, 324 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
    7130   870596 ufw-before-logging-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    7130   870596 ufw-before-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     997   113175 ufw-after-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     997   113175 ufw-after-logging-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     997   113175 ufw-reject-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
     997   113175 ufw-track-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0      

 

Nach:

 $ sudo iptables -L -v
Chain INPUT (policy ACCEPT 12648 packets, 12M bytes)

Antworten

3 DougSmythies Nov 20 2020 at 16:14

Ja, The iptables -F chainlöscht alle iptables-Regeln für diese Kette, und daher wird nur die Standardrichtlinienregel verwendet.

Es ist wahrscheinlich, dass die Standardrichtlinie für Ihre Referenzen war ACCEPT, während die Standardrichtlinie auf Ihrem Computer lautet DROP.

Überprüfen Sie über sudo iptables -xvnL. Wenn Sie alle Ihre Regeln in einer Kette löschen möchten, aber Ihre SSH-Sitzung beibehalten möchten, ändern Sie die Standardrichtlinie in " ACCEPTErste". Sie können es wieder ändern, DROPnachdem Sie die gewünschten Regeln festgelegt haben, und Sie bestätigen, dass Ihre SSH-Pakete nicht mehr auf die Standardrichtlinie angewiesen sind, um durchzukommen.

sudo iptables -P INPUT ACCEPT

Möglicherweise benötigen Sie es auch in der OUTPUT-Kette.