Perché iptables -F mi esclude dalla mia sessione ssh?
Volevo aggiungere alcune regole a iptables da https://askubuntu.com/questions/37412/how-can-i-ensure-transmission-traffic-uses-a-vpn domanda e risposte per instradare il traffico dal programma torrent Trasmissione attraverso una VPN (surfshark nel mio caso).
Almeno due delle risposte utilizzano iptables -Fper svuotare le tabelle prima di aggiungere le regole personalizzate.
Una di queste risposte fa riferimento in modo specifico a un server headless (come il mio). Quindi sospetto che dovrebbe funzionare.
Ma se uso iptables -Fvengo immediatamente espulso dalla mia sessione ssh al server. Non riesco a digitare alcun nuovo comando sul terminale e devo riavviare il server per accedere nuovamente.
Ho un firewall in esecuzione sul server che consente la porta 22 a ogni IP.
Per chiarimenti aggiungerò alcuni output da prima e dopo aver applicato la risposta accettata:
Prima (avviso 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
Dopo:
$ sudo iptables -L -v
Chain INPUT (policy ACCEPT 12648 packets, 12M bytes)
Risposte
Sì, iptables -F chaincancellerà tutte le regole di iptables per quella catena, e quindi verrà utilizzata solo la regola della politica predefinita.
Sembra probabile che il criterio predefinito per i tuoi riferimenti fosse ACCEPT, mentre il criterio predefinito sul tuo computer lo è DROP.
Controlla tramite sudo iptables -xvnL. Se vuoi eliminare tutte le tue regole in una catena, ma mantenere la tua sessione ssh, cambia prima la politica predefinita ACCEPT. Puoi cambiarlo di nuovo in DROPdopo aver impostato le regole che desideri e aver confermato che i tuoi pacchetti ssh non si basano più sulla politica predefinita per passare.
sudo iptables -P INPUT ACCEPT
Potrebbe essere necessario anche sulla catena OUTPUT.