Mam łańcuch dołączony z wieloma zasadami, takimi jak:
> :i_XXXXX_i - [0:0]
> -A INPUT -s 282.202.203.83/32 -j i_XXXXX_i
> -A INPUT -s 222.202.62.253/32 -j i_XXXXX_i
> -A INPUT -s 222.202.60.62/32 -j i_XXXXX_i
> -A INPUT -s 224.93.27.235/32 -j i_XXXXX_i
> -A OUTPUT -d 282.202.203.83/32 -j i_XXXXX_i
> -A OUTPUT -d 222.202.62.253/32 -j i_XXXXX_i
> -A OUTPUT -d 222.202.60.62/32 -j i_XXXXX_i
> -A OUTPUT -d 224.93.27.235/32 -j i_XXXXX_i
kiedy próbuję usunąć ten łańcuch za pomocą:
iptables -X XXXX
ale dostał błąd jak (wcześniej próbowałem iptables -F XXXXX):
iptables: Zbyt wiele linków.
Czy istnieje prosty sposób na usunięcie łańcucha za pomocą polecenia jednorazowego?
linux
iptables
linux-networking
czasowo
źródło
źródło
iptables-save | grep -v i_XXXXX_i | iptables-restore
Odpowiedzi:
Nie można usuwać łańcuchów, gdy odnoszą się do nich reguły z „-j CHAINTODELETE”. Dowiedz się, do czego odnosi się Twój łańcuch (link), i usuń to. Ponadto spłucz, a następnie zabij.
źródło
Jest to potencjalnie nie na temat, ale zrobiłem to po znalezieniu tego postu! W niektórych przypadkach przydatna może być opcja iptables -D. Ponieważ pozwala wyczyścić reguły odsyłania dodane programowo za pomocą -A (jeśli dokładnie wiesz, jak je dodałeś).
Na przykład
można odwrócić za pomocą
źródło
Potrzebujesz dwóch kroków, ale robi to za pomocą jednego polecenia.
Utwórz plik i umieść go w nim.
Zapisz plik jako „wyczyść wszystkie reguły”. Teraz wykonaj to polecenie:
Teraz możesz go wyczyścić w dowolnym momencie za pomocą jednego polecenia.
źródło
Oto alternatywny plan. Obejmuje trzy polecenia, a nie jedno, ale przy odrobinie szczęścia powinno działać.
Zrzuć
iptables
zestaw reguł do pliku:Usuń WSZYSTKIE zastosowania (i odniesienia do) przestępczego łańcucha:
Następnie ponownie załaduj zestaw reguł:
źródło
Coś wzdłuż tych linii zgromadzi je wszystkie w jednym wierszu, bez jakiegokolwiek obniżania iptables.
źródło
W pliku man iptables jest opcja
-S
Za pomocą
iptables -S | grep <CHAINNAMEHERE>
. Dla przykładów:możesz wtedy zobaczyć, które reguły blokują usunięcie łańcucha ze stołu. Przejdź przez każdą regułę (z wyjątkiem
iptables -N <CHAINNAMEHERE>
i usuń regułę za pomocą-D
opcji)Na przykład
iptables -D FORWARD -i eth0 -j TRAFFICLOG
. Po usunięciu każdej reguły dla spłukiwania łańcucha łańcucha z-F
opcjiiptables -F <CHAINNAMEHERE>
.Następnie usuń swój łańcuch z
-X
opcją,iptables -X <CHAINNAMEHERE>
Iptables to skomplikowany zestaw narzędzi, dlatego potrzebny jest idealny samouczek. Możesz go wypróbować na www.iptables.info
źródło
Spowoduje to wyplucie łańcuchów i ich usunięcie
źródło
Odkryłem, że możesz usunąć reguły i łańcuch, edytując plik reguł w /etc/iptables/rules.v4. Jeśli usuniesz niechciany łańcuch z tego pliku, a następnie przeładujesz iptables, nie powinieneś już widzieć łańcucha podczas robienia iptables -L.
źródło