UFW Ctrl-C et iptables: la chaîne existe déjà


8

J'ai fait une chose stupide, alors soyez indulgent avec moi.

Lors de l'exécution d'une commande ufw pour ajouter une règle, j'ai fait un Ctrl-C, cela a conduit au problème de l'erreur suivante générée chaque fois que j'essaie d'utiliser UFW:

ERROR: initcaps
[Errno 2] iptables: Chain already exists.

J'ai fait une recherche et je ne trouve rien sur la façon de le nettoyer, mais j'ai trouvé ce rapport de bogue à: erreurs ufw après l'interruption de ctr + c

Bien que je vois que cela a été confirmé, puis-je faire quelque chose pour nettoyer cela jusqu'à ce qu'il soit réparé? Chaque fois que j'essaie d'ajouter une règle, j'obtiens cette erreur.

Merci d'avance pour toute aide fournie.

Edit: BTW, j'ai déjà essayé d'enregistrer le fichier user.rules, de désinstaller UFW, de réinstaller UFW et de déplacer le fichier user.rules en arrière. Je pensais que ça pourrait nettoyer iptables. Sans succès.

Réponses:


17

Cela a fonctionné pour moi d' ici

sudo ufw disable
sudo iptables -F
sudo iptables -X
sudo ip6tables -F
sudo ip6tables -X
sudo ufw enable

J'espère que cela sera utile à quelqu'un, un jour.


1
J'ai eu des erreurs ip6, j'ai donc exécuté ce qui suit sudo ufw disable sudo iptables -F sudo iptables -X sudo ip6tables -F sudo ip6tables -X sudo ufw enable
sagesolutions

Je vous remercie! Je viens de rencontrer ce problème
ksaylor11

4

C'est ce que j'ai fait pour le nettoyer, si ufw est activé, désactivez-le. Supprimez ensuite toutes les règles ufw d'iptables et ip6tables.

#! /usr/bin/env bash
set -e
set -o pipefail

iptables --flush
rules=($(iptables --list | grep Chain | grep -Eo "ufw-[a-z-]+" | xargs echo))
for i in "${rules[@]}"
do
  iptables --delete-chain $i
done

ip6tables --flush
rules6=($(ip6tables --list | grep Chain | grep -Eo "ufw6-[a-z-]+" | xargs echo))
for i in "${rules6[@]}"
do
  ip6tables --delete-chain $i
done

6
J'ai rencontré ce même problème lorsque j'avais un script ajoutant / supprimant des règles trop rapidement. J'ai simplifié un peu votre commande iptables avec sudo iptables --list | awk '/^Chain ufw-/ {print $2}' | xargs. La xargscommande BTW par défaut est /bin/echo. Je ne me souciais pas vraiment des autres règles sur mes iptables, donc je l'ai effacé avec sudo ufw disable; sudo iptables -F; sudo iptables -X; sudo ip6tables -F; sudo ip6tables -X; sudo ufw enable. Il existe également une autre approche plus sensible décrite ici: blog.cloud66.com/ufw-shenanigans
Six
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.