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.

ZombieJerky
la source

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.

Mahsa2
la source
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
btobolaski
la source
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