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?
- Kompletny przewodnik po Iptables w Ubuntu
- Jak usunąć reguły iptables?
- Jak opróżnić wszystkie reguły, usunąć wszystkie łańcuchy i zaakceptować wszystko?
- Jak ustawić iptables w Ubuntu?
- Czym iptables różni się od firewalld?
- Podsumowanie: wyświetlanie reguł iptables
- Często zadawane pytania
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:

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

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

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

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

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.