UFW Ctrl-C i iptables: Łańcuch już istnieje

8

Zrobiłem głupią rzecz, więc trzymaj się mnie.

Podczas uruchamiania polecenia ufw w celu dodania reguły zrobiłem Ctrl-C, co spowodowało problem z generowaniem następującego błędu przy każdej próbie użycia UFW:

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

Przeprowadziłem wyszukiwanie i nie mogę znaleźć niczego, jak to wyczyścić, ale znalazłem ten raport o błędzie pod adresem: błędy ufw po przerwaniu ctr + c

Chociaż widzę, że zostało to potwierdzone, czy jest coś, co mogę zrobić, aby to wyczyścić, dopóki nie zostanie naprawione? Za każdym razem, gdy próbuję dodać regułę, pojawia się ten błąd.

Z góry dziękuję za wszelką udzieloną pomoc.

Edycja: BTW, już próbowałem zapisać plik user.rules, odinstalować UFW, ponownie zainstalować UFW i przenieść plik user.rules z powrotem. Myślałem, że to może oczyścić iptables. Bez powodzenia.

ZombieJerky
źródło

Odpowiedzi:

17

To zadziałało dla mnie stąd

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

Mam nadzieję, że kiedyś komuś się przyda.

Mahsa2
źródło
1
Miałem błędy IP6, więc uruchomiłem następujące sudo ufw disable sudo iptables -F sudo iptables -X sudo ip6tables -F sudo ip6tables -X sudo ufw enable
sagesolutions
Dziękuję Ci! Właśnie
natknąłem się
4

Tak zrobiłem, aby to wyczyścić, jeśli ufw jest włączony, wyłącz go. Następnie usuń wszystkie reguły ufw z iptables i 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
źródło
6
Ten sam problem napotkałem, gdy skrypt zbyt szybko dodawał / usuwał reguły. Uprościłem trochę twoje polecenie iptables sudo iptables --list | awk '/^Chain ufw-/ {print $2}' | xargs. xargsDomyślne polecenie BTW to /bin/echo. Tak naprawdę nie przejmowałem się innymi zasadami na moim iptables, więc po prostu to wyczyściłem sudo ufw disable; sudo iptables -F; sudo iptables -X; sudo ip6tables -F; sudo ip6tables -X; sudo ufw enable. Istnieje także inne bardziej wrażliwe podejście opisane tutaj: blog.cloud66.com/ufw-shenanigans
6