Iptables -F supprime-t-il définitivement toutes les règles iptables?

8

Dans un document de formation RHEL, l'auteur dit:

... exécutez la commande suivante pour désactiver le pare-feu sur le système actuel: iptables -F

Il utilise explicitement le mot "désactiver" ce qui pour moi suggère qu'il sera simple de réactiver. En lisant la page de manuel pour iptables, je vois ceci:

Rincez la chaîne sélectionnée (toutes les chaînes du tableau si aucune n'est indiquée). Cela revient à supprimer toutes les règles une par une.

Puis-je obtenir des éclaircissements sur le comportement attendu?

Mike B
la source
2
Notez que iptables -Fvide toutes les règles de la table "filtre", il ne vide pas les autres tables (nat, mangle ...) et ne restaure pas les politiques à leurs valeurs par défaut, donc on ne peut pas vraiment dire qu'elles désactivent le pare-feu .
Stéphane Chazelas

Réponses:

13

Les iptablesrègles sont stockées à deux endroits sur les systèmes Red Hat:

  • En mémoire dans le noyau en cours d'exécution, où le code du pare-feu les vérifie sur les E / S réseau. Rincer les règles avec iptables -Fsupprime uniquement cet ensemble de règles.

  • Dans /etc/sysconfig/iptableslequel ils sont chargés au démarrage. Vous pouvez forcer un rechargement sans redémarrer avec service iptables reloadou ...restart.

La réponse est donc non, vider les règles iptables -Fn'est pas permanent.

Lorsque vous allez dans setupet modifiez les règles de pare-feu, il les enregistre /etc/sysconfig/iptables. Vous n'êtes pas censé modifier ce fichier directement, mais si vous connaissez le iptablesformat de la ligne de commande, vous pouvez assez facilement comprendre le format de ce fichier.

Warren Young
la source
Réponse fantastique. J'apprécie les détails et les clarifications. Merci Warren.
Mike B
9

En outre, comme point de référence, voici comment vider TOUTES les règles iptables actuelles:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
Steve Dibb
la source
4
Il y a en fait plus de tables que ça. Au moins -t rawet -t security. Au lieu de coder en dur, utilisez/proc/net/ip_tables_names
derobert