W tym samouczku użyjemy różnych metod wiersza poleceń w Linux, aby usunąć reguły IPTABLE niezwiązane z żądaną konfiguracją.
Notatka: Zdecydowanie zaleca się, aby nie zablokować serwera poprzez blokowanie ruchu SSH (domyślnie port 22). Załóżmy, że przypadkowo stracisz dostęp z powodu ustawień zapory. W takim przypadku możesz powrócić do niego, odzyskując dostęp za pośrednictwem konsoli.
Przed usunięciem zasad IPTABLES najpierw wymienimy zasady. Istnieją dwa sposoby przeglądania reguł IPTABLES, w których reguły można przeglądać w specyfikacjach lub jako lista w tabeli. Oba wyświetlają podobne informacje na różne sposoby.
Metoda 1: Lista według specyfikacji
Z opcją -s IPTABLES wymienia wszystkie swoje aktywne zasady.
sudo iptables -s
Możesz zobaczyć, że wyjście jest jak polecenia używane do ich tworzenia bez poprzedzania polecenia IPTABLES. Wygląda również podobnie do plików konfiguracyjnych reguł IPTABLES, jeśli używasz zapisu iptables lub iptables-persistent.
Wymień określony łańcuch
Załóżmy, że chcesz określonej serii w wyjściu. Zgodnie z opcją -s nazwa łańcucha może być umieszczona bezpośrednio po jej określeniu nazwy serii.
Tutaj, na przykład, uruchomimy następujące polecenie w terminalu, aby zobaczyć wszystkie specyfikacje reguł w łańcuchu „wyjściowe”.
sudo iptables -s wyjście
Metoda 2: Lista jako tabele
Teraz omówimy kolejny alternatywny sposób przeglądania aktywnych iptables, w którym zobaczymy je jako tabelę zasad. Wymień reguły IPTABLES w widoku tabeli okazuje się bardzo przydatne do porównywania innych reguł ze sobą. Korzystając z opcji -l polecenia IPTABLES, możesz wyświetlać wszystkie aktywne reguły IPTABLES w formacie tabelarycznym.
sudo iptables -l
LUB
sudo iptables -lista
Będzie to wyprowadzić wszystkie istniejące reguły według serii. Załóżmy, że chcesz zobaczyć ograniczoną określoną serię jako wyjście. W takim przypadku możesz określić nazwę tej serii bezpośrednio po opcji -l.
Tutaj wracamy do przykładu. Prowadzimy polecenie w terminalu, określając łańcuch „wyjściowy”, aby zobaczyć wszystkie specyfikacje reguł w serii.
sudo iptables -l wyjście
Pokazanie liczby pakietów i kruszywa
Możliwe jest wyświetlenie lub listę reguł IPTABLES jako bajtów pokazujących całkowity rozmiar pakietów i liczbę pakietów pasujących do każdej reguły. Okazuje się to przydatne, gdy zgadujesz, które reguły pasują do pakietu. Najlepiej byłoby użyć opcji - l i - v razem w terminalu. Na przykład łańcuch wyjściowy zostanie ponownie sprawdzony z opcją -v.
sudo iptables -l wyjściowe -v
Bajty i PKT, na liście istnieją dwie dodatkowe kolumny. Następny krok będzie obejmował zresetowanie liczników danych bajtów i pakietów po wymierzeniu aktywnych reguł zapory.
Resetowanie liczby pakietów i kruszywa
Możesz ustawić bajt i licznik pakietu na zero lub opróżnić dla swoich reguł, używając opcji -z w poleceniu. Po ponownym uruchomieniu jest również ponownie resetowanie. Okazuje się to przydatne, gdy chcesz sprawdzić, czy Twój serwer otrzymuje nowy ruch pasujący do twoich zasad, czy nie. Możesz wyczyścić liczniki ze wszystkich reguł i łańcuchów z opcją -z.
sudo iptables -z
Na przykład uruchomimy poniższe polecenie w terminalu, aby wyczyścić licznik łańcucha wyjściowego.
sudo iptables -z wejście
Określenie numeru reguły i nazwy łańcucha może wyczyścić licznik dla określonej reguły. W tym celu run następujące polecenie.
sudo iptables -z wejście 1
Do tej pory musisz wiedzieć, jak zresetować liczniki i pakiety bajtów iptables. Teraz rzucimy światło na sposób ich usuwania. Aby je przezwyciężyć, stosowane są głównie dwie metody, które omówimy dalej.
Usuwanie zasad według specyfikacji
Specyfikacja reguły to jeden ze sposobów usunięcia reguł IPTABLES. Pomogłoby to, gdybyś użył opcji -D podczas uruchamiania polecenia tabeli IP, aby uruchomić tę regułę. Możesz wybrać niektóre określone reguły wyjściowe za pomocą iptables -s i usunąć je za pomocą następującego polecenia.
sudo iptables -d wejście -m contrack --ctState nieprawidłowy -j upuść
Opcja -a pokazująca pozycję reguły w momencie tworzenia jest wykluczona stąd.
Usuwanie zasad według łańcuchów i liczb
Numer linii i łańcuch mogą również usunąć reguły IPTABLES. Opcja -line -nomistów jest dodawana do ustawienia numeru wiersza dowolnej reguły, wymieniając reguły w formacie tabeli.
sudo iptables -l - -line -numbers
Korzystając z tego numeru, system doda numer wiersza do nagłówka NUM dla każdego wiersza reguły.
Kiedy zdecydujesz, którą regułę chcesz usunąć, najlepiej odnotować numer linii i łańcuch reguły. Następnie uruchom polecenie -D po numerze reguły i łańcuchu. Tutaj na przykład usuniemy regułę wejściową, która upuszczała nieprawidłowe pakiety. Uruchomymy następujące polecenie zgodnie z dowolnej reguły, włączona jest łańcuch wejściowy.
sudo iptables -d wejście 3
Po usunięciu zasad zapory zobaczymy, jak spłukać łańcuch reguł.
Łańcuchy spłukiwające
IPTABLES zapewniają sposób usunięcia wszystkich zasad z łańcucha lub spłukanie łańcucha osobno. Zobaczmy teraz, jak spłukać łańcuch IPTABLES na różne sposoby.
Notatka: Nie spłukiwanie łańcucha domyślną zasadą upuszczania lub odmowy może zablokować Cię z serwerów za pośrednictwem SSH. Możesz się z nim połączyć, naprawiając dostęp przez konsolę, jeśli to zrobisz.
Spłukiwanie pojedynczego łańcucha
Możesz użyć łańcucha i nazwy opcji z -f lub równoważnym -Flush, aby wypłukać dowolny konkretny łańcuch, który chcesz usunąć. Aby usunąć wszystkie reguły łańcucha wejściowego, uruchom następujące polecenie.
sudo iptables -f wejście
Spłukiwanie wszystkich łańcuchów
Możesz usunąć wszystkie reguły zapory za pomocą opcji F lub równoważnej, -flush.
sudo iptables -f
sudo iptables -flush
Usuń wszystkie łańcuchy, spłucz wszystkie zasady i akceptuj wszystkie. Zobaczmy, jak pozwolić na ruch sieciowy, spłukiwając wszystkie łańcuchy, tabele i zasady zapory.
Notatka: Uważaj, aby to skutecznie wyłączyło zaporę ogniową. Jedynym powodem, dla którego należy przestrzegać tej sekcji, jest tylko rozpoczęcie konfiguracji zapory.
Aby nie zablokować serwera za pośrednictwem SSH, musisz najpierw ustawić domyślne zasady, które należy zaakceptować dla każdego łańcucha bazowego.
sudo iptables -p wejście akceptuj
sudo iptables -p do przodu akceptuj
sudo iptables -p wyjście akceptuj
Spłukuje wszystkie tabele mangle i netto, (-x) usuwa wszystkie łańcuchy bez zdefiniowania i (-f) spłukuje wszystkie łańcuchy.
sudo iptables -t nat -f
sudo iptables -t mangle -f
sudo iptables -f
sudo iptables -x
Teraz Twoja zapora pozwoli na cały ruch sieciowy. Jeśli wymieniłeś wszystkie reguły, nie widać żadnych reguł, z wyjątkiem trzech domyślnych łańcuchów (wyjście, naprzód, wejście).
Zresetuj wszystkich konfiguracji IPTABLES
Możesz zresetować wszystkie konfiguracje IPTABLE, aby domyślnie za pomocą wszystkich następujących poleceń w połączeniu. Oczyszcza wszystkie reguły z każdego tabeli i resetuje domyślne zasady łańcucha, a także usuwanie wszystkich pustych łańcuchów z każdego stołu.
sudo iptables -p wejście akceptuj
sudo iptables -p do przodu akceptuj
sudo iptables -p wyjście akceptuj
sudo iptables -f
sudo iptables -x
sudo iptables -t nat -f
sudo iptables -t nat -x
sudo iptables -t mangle -f
sudo iptables -t mangle -x
Wniosek
Po przeczytaniu tego samouczka musiałeś wiedzieć, w jaki sposób iptables usuwają i wymieniają zasady zapory. Zgodnie z najprostszymi zadaniami nauka usuwania dowolnej reguły w iptables jest uważana za krzywą uczenia się. Możemy użyć wielu opcji, aby usunąć tylko jedną regułę i indywidualnie wyczyścić wszystkie reguły dla serii lub określonych tabel.
Zauważ, że wszelkie zmiany w IPTables dokonane za pośrednictwem polecenia IPTABLES są przejściowe i będą musiały zostać zapisane, aby przetrwać po ponownym uruchomieniu serwera. Samouczek obejmował również sekcję zasad zapisu i ogólne zasady zapory.