J'ai suivi ce tutoriel pour configurer les règles IP sur Ubuntu 12.04. Tout a bien fonctionné lors de la configuration - mais maintenant, j'ai apporté des modifications au pare-feu qui ne persistent pas au redémarrage. Je ne comprends pas pourquoi. Voici une démonstration de la façon dont j'utilise iptables-persistent. Qu'est-ce que je fais mal?
$ sudo service iptables-persistent start
* Loading iptables rules... * IPv4... * IPv6...
$ sudo iptables -L //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L //shows rule has been deleted
$ sudo service iptables-persistent restart
* Loading iptables rules... * IPv4... * IPv6... [ OK ]
$ sudo iptables -L //rule is back
iptables
iptables-persistent
bernie2436
la source
la source
iptables -D INPUT
règle n'est pas là.sudo
Êtes-vous sûr qu'elle signale un succès? Le comportement change-t-il si vous l'exécutez à l'intérieursudo
?Réponses:
iptables-persistent
ne fonctionne pas de cette façon. Le redémarrage duiptables-persistent
"service" ne capture pas l'état actuel des iptables et ne le sauvegarde pas; il ne fait que rétablir les règles iptables qui ont été enregistrées lors de la dernière configuration du package.Pour configurer
iptables-persistent
, vous devez lui parler de votre ensemble de règles iptables actuel.Une façon d'y parvenir est la suivante:
Ou, de manière équivalente, le
iptables-persistent
package fournit également les éléments suivants:(Vous devrez répondre oui aux questions sur la sauvegarde des règles.)
Après cela, au prochain
iptables-persistent
démarrage / redémarrage, les règles iptables que vous attendez seront chargées.la source
Un moyen très simple de sauvegarder les règles actuelles d'iptables est d'utiliser la commande:
sudo service netfilter-persistent save
En utilisant ce qui précède, qui fonctionne au moins dans Ubuntu après l'installation du package
netfilter-persistent
(etiptables-persistent
), il n'est pas nécessaire d'exécuter manuellement les commandes iptables ou de reconfigurer le package (comme le suggère même la réponse acceptée ci-dessus).la source
sudo service netfilter-persistent save
ousudo service netfilter-persistent save .
? (Point à la fin.)Ce n'est pas ce que
DROP
signifie ou fait. Deman iptables
:Vous avez donc ajouté une nouvelle règle. Il peut effectivement remplacer n'importe quel nombre d'autres règles, mais ces règles existent toujours.
En vérifiant des trucs comme ça (votre
iptables -L
sortie), je le nourriraisgrep "string unique to this rule"
plutôt que d'utiliser vos yeux. C'est plus facile et plus rapide à faire, et moins sujet aux erreurs.Si vous souhaitez supprimer une règle, utilisez le
-D
commutateur; la page de manuel décrit deux formes de ceci:la source
-D
signifie «supprimer» et non «DROP». Utiliser le terme «DROP» pour signifier autre chose qu'une cible de saut lorsque l'on parleiptables
est déroutant.Comme expliqué par @ steven-monday , vous pouvez enregistrer vous-même votre ensemble de règles dans le répertoire approprié (à savoir:)
/etc/iptables/rules.v{4,6}
.Cependant, @OpenITeX a raison: appeler l'
save
action deservice netfilter-persistent
est mieux.À ce jour (en 18.10), iptables-save est intégré, mais
iptables-persistent
n'est pas installé. Par conséquent, le répertoire du plugin appelé parservice netfilter-persistent
est vide et le service affiche que l'ensemble de règles a été enregistré, alors qu'il ne l'était pas.TLDR: installez
iptables-persistent
et vérifiez que le répertoire/usr/share/netfilter-persistent/plugins.d
des plugins contient des plugins.Voici comment j'ai compris cela:
Vérifiez ensuite le
/usr/sbin/netfilter-persistent
script, notez qu'il appelle des scripts externes:Puis j'ai remarqué que
/usr/share/netfilter-persistent/plugins.d
c'était vide.la source
Installez iptables-persistent:
enregistrer les règles après avoir effectué les modifications souhaitées:
la source