Pourquoi iptables -F me met-il hors de ma session ssh?

Nov 20 2020

Je voulais ajouter des règles à iptables à partir de https://askubuntu.com/questions/37412/how-can-i-ensure-transmission-traffic-uses-a-vpn questions et réponses pour acheminer le trafic du programme torrent Transmission via un VPN (surfshark dans mon cas).

Au moins deux des réponses permettent iptables -Fde vider les tables avant d'ajouter les règles personnalisées.

L'une de ces réponses fait spécifiquement référence à un serveur sans tête (comme le mien). Je soupçonne donc que cela devrait fonctionner.

Mais si j'utilise, iptables -Fje suis immédiatement expulsé de ma session ssh vers le serveur. Je ne peux pas taper de nouvelle commande sur le terminal et je dois redémarrer le serveur pour me reconnecter.

J'ai un pare-feu en cours d'exécution sur le serveur qui autorise le port 22 à chaque IP.


Pour clarifier, j'ajouterai des résultats avant et après avoir appliqué la réponse acceptée:

Avant (avis 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      

 

Après:

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

Réponses

3 DougSmythies Nov 20 2020 at 16:14

Oui, le iptables -F chainvidera toutes les règles iptables pour cette chaîne, et par conséquent seule la règle de stratégie par défaut sera utilisée.

Il semble probable que la stratégie par défaut pour vos références était ACCEPT, tandis que la stratégie par défaut sur votre ordinateur l'est DROP.

Vérifiez via sudo iptables -xvnL. Si vous souhaitez supprimer toutes vos règles dans une chaîne, tout en conservant votre session ssh, modifiez la stratégie par défaut en ACCEPTpremier. Vous pouvez le modifier à nouveau DROPaprès avoir mis en place les règles souhaitées et avoir confirmé que vos paquets ssh ne reposent plus sur la stratégie par défaut pour passer.

sudo iptables -P INPUT ACCEPT

Vous pourriez également en avoir besoin sur la chaîne OUTPUT.