50% zniżki wszystkie plany, oferta czasowa. Od $2.48/mo
14 min pozostało
Bezpieczeństwo i Sieć

Wyświetlanie i usuwanie reguł Iptables w Linux – ściągawka dla początkujących

Lilia Carnell By Lilia Carnell 14 minut czytania Zaktualizowano 18 września 2023
Przewodnik po wyświetlaniu i usuwaniu reguł Iptables

Nieautoryzowany dostęp i włamania na serwery to poważne zagrożenia, dlatego wdrożenie zapory jako część strategii bezpieczeństwa sieci jest kluczowe. Umiejętność pracy z regułami iptables to jeden z podstawowych elementów zmniejszających te ryzyka na systemach Linux. Ten poradnik introduce Cię z podstawowymi pojęciami zapory, takimi jak wyświetlanie reguł iptables i usuwanie reguł iptables w Ubuntu, co pozwoli Ci uruchomić proste polecenia, aby to osiągnąć. Zanim omówimy, jak wyświetlić reguły iptables lub je usunąć, wyjaśnijmy, czym są reguły iptables i dlaczego ich używamy.

Co to jest Iptables?

iptables to narzędzie firewalla działające z wiersza poleceń, które pozwala lub blokuje ruch poprzez łańcuchy polityk. Kiedy system próbuje nawiązać połączenie, iptables szuka reguły na liście, która się do niego pasuje, stanowiąc pomocnika w bezpieczeństwie sieci. Jeśli nie znajdzie pasującej reguły, zastosuje domyślne działanie.

iptables prawie zawsze przychodzą preinstalowane na każdym Dystrybucja Linux. Aby go zaktualizować lub zainstalować, użyj poniższego polecenia:

sudo apt-get install iptables

Po co używamy Iptables?

Jako zaporą ogniową działającą z wiersza poleceń, iptables umożliwia administratorom systemów zarządzanie ruchem przychodzącym i wychodzącym za pośrednictwem konfigurowalnych reguł tabel. Iptables wykorzystują zestaw tabel z łańcuchami zawierającymi wbudowane lub zdefiniowane przez użytkownika reguły.

Jak wspomniano w poprzedniej sekcji, iptables odgrywają istotną rolę w bezpieczeństwie sieci dla większości systemów Linux. Pozostała część tego artykułu skupia się głównie na opisie wyświetlania wszystkich reguł iptables, obejmując pojęcia takie jak wyświetlanie iptables i usuwanie reguł iptables.

Artykuł opisuje podstawowe zadania iptables: wyświetlanie reguł, usuwanie liczników pakietów i bajtów, usuwanie reguł iptables, opróżnianie łańcuchów oraz usuwanie wszystkich łańcuchów i akceptowanie całego ruchu.

Kompletny przewodnik po Iptables w Ubuntu

Zanim przystąpisz do wyświetlania reguł iptables, pamiętaj, że musisz korzystać z serwera Linux z zainstalowanym poleceniem iptables. Oprócz tych wymagań niezbędne są uprawnienia sudo. Pracując z firewallem, uważaj, aby się nie zablokować na swoim serwerze, blokując ruch SSH (port: 22, domyślnie). Jeśli stracisz dostęp z powodu ustawień zapory, może być konieczne nawiązanie połączenia za pośrednictwem konsoli out-of-band, aby to naprawić.

Przeczytaj również: Jak zmienić port SSH w Linux | Szybki przewodnik krok po kroku

Wyświetlanie reguł według specyfikacji

Możesz wyświetlić aktywne reguły iptables w tabeli lub jako lista specyfikacji reguł. Obie metody dostarczają praktycznie tych samych informacji w różnych formatach. Aby wyświetlić wszystkie reguły aktywnego iptables według specyfikacji, uruchom polecenie iptables z opcją opcja -S:

sudo iptables -S

Po uruchomieniu tego polecenia wyświetlania reguł iptables zobaczysz wynik podobny do tego:

wynik uruchomienia polecenia wyświetlania listy reguł
wynik uruchomienia polecenia wyświetlania listy reguł

Wyświetlanie konkretnego łańcucha

Jeśli chcesz ograniczyć wynik wyświetlania iptables do konkretnego łańcucha, takiego jak INPUT, OUTPUT, lub TCP, możesz określić nazwę łańcucha bezpośrednio po opcji -S. Na przykład poniższe polecenie wyświetlania reguł iptables pomaga określić łańcuch TCP:

sudo iptables -S TCP

wynik wyświetlenia łańcucha TCP
wynik wyświetlenia łańcucha TCP

Jak już wspomnieliśmy, istnieje inny sposób na wyświetlenie reguł iptables: przeglądanie reguł iptables jako tabeli. Przejdziemy przez tę technikę.

Reguły jako tabele

Użycie polecenia do wyświetlenia reguł iptables w formacie tabelarycznym pomaga porównywać różne reguły. Musisz uruchomić poniższe polecenie wyświetlania iptables z opcją opcja -L aby wyświetlić wszystkie aktywne reguły w tabeli:

sudo iptables -L

To polecenie wyświetli wszystkie bieżące reguły posortowane według łańcuchów. Możesz ograniczyć wynik do konkretnego łańcucha, takiego jak INPUT, OUTPUT, TCP itp., określając nazwę łańcucha bezpośrednio po opcji -L. Oto przykład ograniczenia wyświetlania reguł iptables do łańcucha INPUT:

sudo iptables -L INPUT

wynik wyświetlenia reguł iptables ograniczony do łańcucha INPUT
wynik wyświetlenia reguł iptables ograniczony do łańcucha INPUT

Pierwszy wiersz powyższego wyniku pokazuje nazwę łańcucha (INPUT w tym przypadku) i jego domyślną politykę (DROP). Następny wiersz zawiera nagłówki każdej kolumny w tabeli oraz reguły łańcucha. Przejdziemy przez nie, aby się ich nauczysz:

  • Target: Jeśli pakiet odpowiada regule, target określa, co z nim zrobić. Pakiet może być zaakceptowany, odrzucony, zalogowany lub wysłany do innego łańcucha w celu porównania z dodatkowymi regułami.
  • prot: Protokół (taki jak TCP, udp, ICMP lub all)
  • opt: wskazuje opcje IP (rzadko używane)
  • source: pokazuje źródłowy adres IP/podsieć ruchu 
  • destination: pokazuje docelowy adres IP/podsieć ruchu

Kolumna bez etykiety sugeruje opcje reguły i obejmuje dowolną część reguły, która nie została wskazana w poprzednich kolumnach. Te informacje mogą dotyczyć portów źródłowych i docelowych lub stanu połączenia pakietu.

Przeczytaj również: Instalacja OpenVPN na VPS – konfiguracja klienta OpenVPN 🔑

Jak wyświetlić liczby pakietów i rozmiar agregacji?

Podczas wyświetlania reguł iptables możemy pokazać liczbę pakietów i łączny rozmiar pakietów w bajtach, które odpowiadają każdej konkretnej regule iptables. Jest to często przydatne do zrozumienia, które reguły dopasowują pakiety. Musisz użyć -L i wraz z opcją to.

Oto przykład, w którym ponownie użyjemy łańcucha INPUT z opcją -v:

sudo iptables -L INPUT -v

Wyświetlanie liczby pakietów i łącznego rozmiaru
wynik Wyświetlania liczby pakietów i łącznego rozmiaru

Zwróć uwagę, że nasza lista ma teraz dwie dodatkowe kolumny o nazwach pkts i bytes. Poznaliśmy już różne sposoby na wykonanie poleceń iptables pokaż wszystkie reguły, a teraz czas dowiedzieć się, jak resetować liczniki pakietów i łączny rozmiar.

Jak zresetować liczby pakietów i rozmiar agregacji?

Musisz użyć opcji -Z, jeśli chcesz wyzerować liczniki pakietów i bajtów dla swoich reguł. Resetują się one również po ponownym uruchomieniu, co jest przydatne, jeśli chcesz sprawdzić, czy serwer odbiera nowy ruch pasujący do istniejących reguł.

Możesz wyczyścić liczniki dla wszystkich łańcuchów i reguł za pomocą opcja -Z samodzielnie:

sudo iptables -Z

Aby usunąć liczniki dla wszystkich reguł w określonym łańcuchu, musisz użyć opcji -Z i określić łańcuch. Na przykład następujące polecenie służy do wyczyszczenia liczników łańcucha INPUT:

sudo iptables -Z INPUT

Jeśli chcesz usunąć liczniki dla określonej reguły, musisz dokładnie podać nazwę łańcucha i numer reguły. Na przykład możesz wykonać następujące polecenie, aby wyzerować liczniki pierwszej reguły w łańcuchu INPUT:

sudo iptables -Z INPUT 1

Oprócz znajomości poleceń iptables pokaż wszystkie reguły i sposobów resetowania liczników pakietów i bajtów iptables, warto wiedzieć, jak usunąć regułę iptables.

Przeczytaj również: Jak zainstalować serwer PPTP VPN na VPS

Jak usunąć reguły iptables?

Możesz użyć wielu poleceń do usunięcia reguł Iptables lub nawet usunąć wszystkie reguły w łańcuchu. Tutaj omawiamy te metody.

Usuwanie reguł według specyfikacji

Jednym ze sposobów usunięcia reguł iptables jest ich usunięcie poprzez specyfikację reguły. Umożliwia to uruchomienie polecenia iptables z opcją opcja -D i specyfikacją reguły. Jeśli chcesz usunąć reguły za pomocą tej techniki, możesz wykorzystać dane wyjściowe listy reguł, iptables -S, do pomocy.

Na przykład, aby usunąć regułę, która odrzuca nieprawidłowe przychodzące pakiety (-A INPUT -m conntrack –ctstate INVALID -j DROP), możesz wykonać następujące polecenie:

sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

Zwróć uwagę, że opcja -A służy do wskazania pozycji reguły w momencie utworzenia i powinna być tutaj wykluczona.

Usuwanie reguł według łańcucha i numeru

Inną metodą, którą możesz użyć do usunięcia reguł iptables, jest użycie jej łańcucha i numeru linii. Wpisz następujące polecenie, aby wybrać numer linii reguły, wyświetlić reguły w formacie tabeli i dodać opcję –line-numbers:

sudo iptables -L --line-numbers

Usuwanie reguł według łańcucha i numeru
wynik Usuwanie reguł według łańcucha i numeru

Po uruchomieniu tego polecenia wszystkie reguły iptables mają swój numer linii, wyświetlany w nagłówku num.

Gdy wiesz, która regułę chcesz usunąć, miej w pamięci jej łańcuch i numer linii. Musisz użyć polecenia iptables -D z łańcuchem i numerem reguły. Na przykład, jeśli chcesz usunąć regułę wejściową, która odrzuca nieprawidłowe pakiety, możesz zobaczyć, że jest to reguła 3 łańcucha INPUT. Uruchom więc to polecenie:

sudo iptables -D INPUT 3

Jak opróżnić łańcuchy?

Istnieje sposób na usunięcie wszystkich reguł Iptables w łańcuchu, który nazywamy opróżnianie łańcucha. Tutaj omawiamy różne metody, aby to zrobić. Zanim pójdziesz dalej, zwróć uwagę, aby nie zostać zablokowanym na serwerze poprzez SSH podczas czyszczenia łańcucha z domyślną polityką drop lub deny. Jeśli to zrobisz, możesz potrzebować połączenia się przez konsolę, aby naprawić dostęp.

Czyszczenie pojedynczego łańcucha

Aby wyczyścić określony łańcuch, czyli usunąć wszystkie reguły w łańcuchu, możesz użyć opcji -F lub równoważne --opcja flush i nazwy wybranego łańcucha. Powiedzmy, że chcesz usunąć wszystkie reguły w łańcuchu INPUT. Cóż, to łatwe, uruchom następujące polecenie:

sudo iptables -F INPUT

Czyszczenie wszystkich łańcuchów

Aby usunąć wszystkie łańcuchy lub je wyczyścić, możesz użyć opcji -F lub równoważnej –flush sam:

sudo iptables -F

Jak opróżnić wszystkie reguły, usunąć wszystkie łańcuchy i zaakceptować wszystko?

W tym miejscu opiszemy, jak wyczyścić wszystkie reguły zapory, tabele i łańcuchy oraz zezwolić na cały ruch sieciowy. Zwróć uwagę, że proces ten skutecznie wyłączy zaporę. Powinieneś postępować zgodnie z tą sekcją tylko wtedy, gdy chcesz zacząć konfigurację zapory od nowa.

Najpierw musisz ustawić domyślne zasady dla każdego wbudowanego łańcucha na ACCEPT. Główny powód, dla którego to robimy, to upewnienie się, że nie zostaniesz zablokowany na serwerze SSH:

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Następnie musisz wyczyścić tabele nat i mangle oraz wszystkie łańcuchy (-F)i usunąć wszystkie niestandardowe łańcuchy (-X) w ten sposób:

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

Po uruchomieniu poprzednich poleceń zapora zezwoli na cały ruch sieciowy. Jeśli chcesz teraz wyświetlić swoje reguły, zobaczysz, że nie ma żadnych; pozostają tylko trzy domyślne łańcuchy: INPUT, FORWARD i OUTPUT.

Jak ustawić iptables w Ubuntu?

Podobnie jak w przypadku każdego podstawowego zachowania zapory, reguły iptables są odczytywane w kolejności wymienionej w każdym łańcuchu, co oznacza, że musisz ustawić reguły w prawidłowej kolejności. Po dodaniu nowych reguł zostaną one dodane na koniec listy reguł. Nowe reguły można dodać do konkretnej pozycji na liście, wstawiając je za pomocą iptables -I <index> -command. Trwałość <index> to numer porządkowy, w którym chcesz wstawić regułę w tym poleceniu. Możesz użyć następującego polecenia, aby zrozumieć, który numer indeksu wpisać:

sudo iptables -L --line-numbers

Numer na początku każdej linii reguły pokazuje pozycję w łańcuchu. Aby dodać nową regułę powyżej określonej istniejącej reguły, musisz użyć numeru indeksu tej istniejącej reguły. Na przykład, jeśli chcesz dodać nową regułę na górze łańcucha, musisz użyć następującego polecenia z numerem indeksu 1:

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

Czym iptables różni się od firewalld?

Zarówno iptables jak i firewalld są praktycznymi narzędziami do zarządzania zaporami w różnych systemach Linux, specjalnie zaprojektowanych do filtrowania pakietów (filtrowanie statyczne). Filtrowanie pakietów to strategia zapory, która umożliwia użytkownikom kontrolowanie dostępu do określonej sieci poprzez zarządzanie przychodzącymi i wychodzącymi pakietami informacyjnymi. Pozwalają im przejść lub je blokują na podstawie wstępnie ustawionych reguł zapory dotyczących ich protokołów źródłowych i docelowych, portów oraz adresów IP. Reguły te zapewniają bardzo wydajne mechanizmy bezpieczeństwa, co czyni filtrowanie pakietów informacyjnych doskonałą obroną przed urządzeniami routowanymi poza siecią LAN (sieć lokalna).

Zwróć uwagę, że firewalld został pierwotnie wprowadzony jako oprogramowanie obsługujące iptables, aby ułatwić użytkownikowi nawigację. Mając to wprowadzenie firewalld i iptables, porównajmy je bardziej szczegółowo.

iptables vs firewalld: konfiguracja systemu

Firewalld i iptables korzystają z różnych konfiguracji i domyślnych ustawień przechowywania. W przypadku iptables każda zmiana oznacza wyczyszczenie wszystkich starych reguł i odczytanie nowych, więc system musi się ponownie uruchomić. Natomiast przy użyciu firewalld reguły nie są odtwarzane; zamiast tego różnice i dokonane modyfikacje są stosowane w celu zmiany istniejących reguł, aby można było je zobaczyć w działaniu.

iptables vs firewalld: interfejs użytkownika

Firewalld używa graficznego interfejsu użytkownika (GUI). Z kolei iptables korzysta z interfejsu wiersza poleceń (CLI), co może być trudne dla osób próbujących uzyskać dostęp do reguł zapory jądra Linux za pomocą iptables, co czyni firewalld bardziej prostą opcją. Warto wziąć pod uwagę, że iptables mają krótszy czas odpowiedzi, ponieważ używasz tylko krótkich poleceń. Poza tym oba mają swoje przypadki użycia, więc wybierz ten, z którym bardziej chętnie pracujesz.

Podsumowanie: wyświetlanie reguł iptables

Iptables to wysoce elastyczne narzędzie zapory specjalnie stworzone dla systemów operacyjnych Linux. Niezależnie od tego, czy jesteś nowicjuszem Linux, czy profesjonalnym administratorem systemu, istnieje sposób, w jaki reguły iptables mogą być dla ciebie pomocne. Ten artykuł przedstawił głównie podstawowe polecenia dla tego narzędzia zapory, w tym wyświetlanie reguł iptables i usuwanie reguł iptables, mając na celu krótko przeanalizować możliwości Linux. Dodatkowo możesz skorzystać z naszych rozwiązań hostingowych Linux VPS aby wykorzystać pełny potencjał tego fantastycznego systemu operacyjnego. W Cloudzy oferujemy różne plany Linux VPS napędzane przez KVM, odpowiednie dla wielu zastosowań, takich jak hosting stron internetowych, wdrażanie aplikacji internetowej, a nawet konfigurowanie środowiska do tworzenia, testowania i automatyzacji kodu.

Często zadawane pytania

Jak wyświetlić wszystkie reguły iptables Linux według specyfikacji?

Jeśli chcesz wyświetlić listę wszystkich aktualnie aktywnych reguł iptables według ich specyfikacji lub funkcjonalności, możesz to zrobić za pomocą polecenia iptables, po którym następuje flaga -S. Zwróć uwagę na użycie sudo słowa kluczowego w tym przypadku:

sudo iptables -S

Jak usunąć reguły iptables?

Aby usunąć konkretny łańcuch, co spowoduje usunięcie wszystkich reguł w łańcuchu, musisz użyć opcji -F lub --flush oraz nazwę łańcucha. Powiedzmy, że chcemy usunąć wszystkie reguły w łańcuchu OUTPUT, co robić? Cóż, musisz wykonać to polecenie:

 sudo iptables -F OUTPUT

Jak działa iptables w Ubuntu?

Zapora iptables porównuje ruch sieciowy z zestawem reguł. Reguły iptables określają charakterystykę pakietu, aby dopasować regułę i jaką akcję należy podjąć, jeśli pakiety pasują do reguły. Oczywiście istnieje wiele opcji do ustawienia, które pakiety pasują do określonej reguły.

Czy reguły iptables wchodzą w życie natychmiast? Dlaczego?

Tak, reguły iptables wchodzą w życie natychmiast, ponieważ twój skrypt dodaje do łańcuchów INPUT i OUTPUT, a twoje reguły są dodawane na koniec tych łańcuchów.

Udostępnij

Więcej z bloga

Czytaj dalej.

Grafika tytułowa Cloudzy do przewodnika po MikroTik L2TP VPN, przedstawiająca laptopa łączącego się z szafą serwerową przez świecący niebiesko-złoty cyfrowy tunel z ikonami tarczy.
Bezpieczeństwo i Sieć

Konfiguracja MikroTik L2TP VPN (z IPsec): przewodnik po RouterOS (2026)

W tej konfiguracji MikroTik L2TP VPN protokół L2TP odpowiada za tunelowanie, a IPsec za szyfrowanie i integralność. Ich połączenie zapewnia natywną zgodność z klientami bez konieczności stosowania rozwiązań innych firm.

Rexa CyrusRexa Cyrus 9 minut czytania
Okno terminala wyświetlające komunikat ostrzegawczy SSH o zmianie identyfikacji zdalnego hosta, z tytułem przewodnika naprawczego i brandingiem Cloudzy na ciemnozielonym tle.
Bezpieczeństwo i Sieć

Warning: Remote Host Identification Has Changed i jak to naprawić

SSH to bezpieczny protokół sieciowy tworzący szyfrowany tunel między systemami. Pozostaje popularnym wyborem wśród programistów potrzebujących zdalnego dostępu do komputerów bez interfejsu graficznego.

Rexa CyrusRexa Cyrus Czytanie 10 minut
Ilustracja do przewodnika po rozwiązywaniu problemów z serwerem DNS, z symbolami ostrzeżeń i niebieskim serwerem na ciemnym tle, dotycząca błędów rozpoznawania nazw Linux
Bezpieczeństwo i Sieć

Tymczasowy błąd rozpoznawania nazw: Co oznacza i jak go naprawić?

Podczas korzystania z Linux możesz napotkać błąd tymczasowego rozpoznawania nazw przy próbie dostępu do stron internetowych, aktualizacji pakietów lub wykonywania zadań wymagających połączenia z internetem.

Rexa CyrusRexa Cyrus 12 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/miesiąc.

Niezależna chmura od 2008 roku. AMD EPYC, NVMe, 40 Gbps. Zwrot pieniędzy w ciągu 14 dni.