UFW Ctrl-C e iptables: a cadeia já existe

8

Eu fiz uma coisa idiota, então tenha paciência comigo.

Ao executar um comando ufw para adicionar uma regra, eu fiz um Ctrl-C, o que levou ao problema do seguinte erro sendo gerado toda vez que tento usar o UFW:

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

Eu fiz uma pesquisa e não consigo encontrar nada sobre como limpá-la, mas encontrei este relatório de erro em: erros ufw após interrupção de ctr + c

Enquanto vejo que foi confirmado, há algo que eu possa fazer para limpar isso até que seja corrigido? Sempre que tento adicionar uma regra, recebo esse erro.

Agradecemos antecipadamente por qualquer ajuda fornecida.

Edit: BTW, eu já tentei salvar o arquivo user.rules, desinstalar o UFW, reinstalar o UFW e mover o arquivo user.rules de volta. Eu pensei que poderia limpar iptables. Sem sucesso.

ZombieJerky
fonte

Respostas:

17

Isso funcionou para mim a partir daqui

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

Espero que seja útil para alguém, um dia.

Mahsa2
fonte
1
Eu tinha erros de ip6, então executei o seguinte # sudo ufw disable sudo iptables -F sudo iptables -X sudo ip6tables -F sudo ip6tables -X sudo ufw enable
sagesolutions
Obrigado! Apenas correu para esta questão
ksaylor11
4

Foi o que fiz para limpá-lo. Se o ufw estiver ativado, desative-o. Em seguida, remova todas as regras do ufw do iptables e 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
fonte
6
Encontrei esse mesmo problema quando tive um script adicionando / removendo regras muito rapidamente. Eu simplifiquei um pouco seu comando iptables com sudo iptables --list | awk '/^Chain ufw-/ {print $2}' | xargs. O xargscomando padrão BTW é /bin/echo. Eu realmente não me importo com as outras regras do meu iptables, então limpei tudo com clareza sudo ufw disable; sudo iptables -F; sudo iptables -X; sudo ip6tables -F; sudo ip6tables -X; sudo ufw enable. Há também outra abordagem mais sensível descrita aqui: blog.cloud66.com/ufw-shenanigans
Seis