50% zniżki wszystkie plany, ograniczony czas. Rozpoczęcie o godz $2.48/mo
Pozostało 14 minut
Bezpieczeństwo i sieć

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

Lily Carnell By Lily Carnell 14 minut czytania Zaktualizowano 18 września 2023 r
Wytyczne dotyczące wystawiania i usuwania reguł Iptables

Nieautoryzowany dostęp i włamania do serwerów stanowią poważne zagrożenia, dlatego też powinieneś wdrożyć zaporę ogniową jako część swojej techniki bezpieczeństwa sieci. Umiejętność pracy z regułami Iptables jest jednym z głównych atutów pozwalających zmniejszyć ryzyko w systemach Linux. Ten samouczek poprowadzi Cię do zapoznania się z podstawowymi koncepcjami zapory ogniowej, takimi jak iptables wyświetla reguły i usuwa reguły iptables w Ubuntu, pomagając w uruchamianiu prostych poleceń, aby to osiągnąć. Zanim omówimy, jak wyświetlić listę reguł iptables lub je usunąć, porozmawiajmy o tym, czym są reguły iptables i dlaczego ich używamy?

Co to jest Iptables?

iptables to narzędzie zapory sieciowej uruchamiane z wiersza poleceń, które umożliwia lub blokuje ruch przez łańcuchy polityczne. Kiedy w twoim systemie próbuje się nawiązać połączenie, iptables szuka na liście reguły, która do nich pasuje, dając ci odpowiedniego asystenta w zakresie bezpieczeństwa sieci. Jeśli nie znajdzie takiego połączenia, zastosuje akcję domyślną.

iptables prawie zawsze są preinstalowane na każdym komputerze Dystrybucja Linuksa. Aby zaktualizować lub zainstalować, możesz użyć następującego polecenia:

sudo apt-get install iptables

Dlaczego używamy Iptables?

Jako zapora sieciowa Linuksa, iptables umożliwia administratorom systemu obsługę ruchu przychodzącego i wychodzącego za pomocą konfigurowalnych reguł tabel. Iptables używają zestawu tabel z łańcuchami zawierającymi zestaw wbudowanych lub zdefiniowanych przez użytkownika reguł.

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

Mówiąc dokładniej, w tym artykule omówiono niektóre podstawowe zadania iptables, aby pokazać, jak wyświetlić listę reguł, usunąć liczniki pakietów i bajtów, usunąć regułę Iptables, opróżnić łańcuchy oraz usunąć wszystkie łańcuchy i zaakceptować cały ruch.

Kompletny przewodnik po Iptables w Ubuntu

Przed przejrzeniem reguł wyświetlania iptables pamiętaj, że musisz używać serwera Linux z zainstalowaną komendą iptables. Oprócz tych wymagań niezbędne jest posiadanie uprawnień sudo. Pracując z zaporami sieciowymi, należy zwrócić uwagę, aby nie zablokować dostępu do serwera poprzez blokowanie ruchu SSH (domyślnie port: 22). Jeśli utracisz dostęp z powodu ustawień zapory sieciowej, konieczne może być połączenie się z nią za pośrednictwem konsoli pozapasmowej, aby to naprawić.

Przeczytaj także: Jak zmienić port SSH w systemie Linux | Szybki przewodnik krok po kroku dotyczący Twojego portu SSH

Zasady wystawiania według specyfikacji

Możesz zobaczyć swoje aktywne reguły iptables w stole lub jako listę specyfikacji reguł. Prawie obie metody dostarczają tych samych informacji w różnych formatach. Aby wyświetlić listę wszystkich reguł aktywnego iptables według specyfikacji, należy uruchomić polecenie iptables z rozszerzeniem Opcja -S:

sudo iptables -S

Po uruchomieniu tego polecenia iptables show Rules zobaczysz następujący wynik:

Dane wyjściowe działających reguł listy pokazów
Dane wyjściowe działających reguł listy pokazów

Wystawianie konkretnego łańcucha

Jeśli chcesz ograniczyć wyjście show iptables do określonego łańcucha, takiego jak INPUT, OUTPUT lub TCP, możesz podać nazwę łańcucha bezpośrednio po opcji -S. Na przykład następujące polecenie iptables show Rules pomaga określić w łańcuchu TCP:

sudo iptables -S TCP

wynik wylistowania określonego łańcucha TCP
wynik wylistowania określonego łańcucha TCP

Jak wspomnieliśmy wcześniej, istnieje inny sposób na wykonanie reguł iptables show: przeglądanie reguł iptables jako tabeli reguł. Przejdźmy przez tę technikę.

Reguły wystawiania w postaci tabel

Użycie polecenia wyświetlającego reguły iptables w tabelach może pomóc w porównaniu różnych reguł. Musisz uruchomić następującą komendę show iptables z rozszerzeniem -L opcja aby wyświetlić wszystkie aktywne reguły w tabeli:

sudo iptables -L

To polecenie wyświetli wszystkie aktualne reguły posortowane według łańcuchów. Istnieje sposób na ograniczenie wyników do określonego łańcucha, takiego jak INPUT, OUTPUT, TCP itp.; musisz podać nazwę łańcucha bezpośrednio po opcji -L. Oto przykład ograniczenia reguł pokazu iptables do łańcucha INPUT:

sudo iptables -L INPUT

wyjście iptables pokazuje reguły ograniczone do łańcucha INPUT
wyjście iptables pokazuje reguły ograniczone do łańcucha INPUT

Pierwsza linia powyższego wyniku pokazuje nazwę łańcucha (w tym przypadku INPUT) i jego domyślną politykę (DROP). Poniższy wiersz zawiera nagłówki każdej kolumny tabeli oraz reguły łańcucha. Przejrzymy je, aby pomóc Ci nauczyć się ich wszystkich:

  • Cel: Jeśli pakiet odpowiada regule, cel określa, co należy z nim zrobić. Pakiet może zostać zaakceptowany, odrzucony, zarejestrowany lub wysłany do innego łańcucha w celu porównania z większą liczbą reguł.
  • prot: Protokół (np. TCP, udp, ICMP lub wszystkie)
  • opt: wskazuje opcje IP (rzadko używane)
  • źródło: pokazuje źródłowy adres IP/podsieć ruchu 
  • miejsce docelowe: przedstawia docelowy adres IP/podsieć ruchu

Kolumna bez etykiety sugeruje opcje reguły i jest to dowolna część reguły, która nie została wskazana w poprzednich kolumnach. Informacje te mogą obejmować dowolne informacje, od portów źródłowych i docelowych po stan połączenia pakietu.

Przeczytaj także: Zainstaluj OpenVPN na VPS – Konfiguracja klienta OpenVPN 🔑

Jak wyświetlić liczbę pakietów i zagregowany rozmiar?

Listując reguły iptables, możemy pokazać liczbę pakietów i łączny rozmiar pakietów w bajtach pasujących do poszczególnych reguł iptables; jest to często pomocne w zrozumieniu, które reguły pasują do pakietów. Musisz skorzystać z -L I -v opcje razem do wykonania Ten.

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 rozmiaru zbiorczego
dane wyjściowe pokazujące liczbę pakietów i łączny rozmiar

Zauważ, że nasza lista ma teraz nazwy dwóch kolejnych kolumn pkt I bajty. Nauczyliśmy się różnych sposobów, aby iptables pokazało wszystkie polecenia reguł wykonane, teraz nadszedł czas, aby dowiedzieć się, jak zresetować liczbę pakietów i zagregowany rozmiar.

Jak zresetować liczbę pakietów i rozmiar zagregowany?

Musisz użyć opcji - Z, jeśli chcesz wyczyścić lub zerować liczniki pakietów i bajtów dla swoich reguł. Resetują się również w przypadku ponownego uruchomienia, co jest przydatne, jeśli chcesz sprawdzić, czy serwer otrzymuje nowy ruch zgodny z istniejącymi regułami.

Możesz wyczyścić liczniki 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 czyszczenia liczników łańcucha INPUT:

sudo iptables -Z INPUT

Jeśli chcesz usunąć liczniki dla konkretnej 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 dla pierwszej reguły w łańcuchu INPUT:

sudo iptables -Z INPUT 1

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

Przeczytaj także: Jak zainstalować serwer VPN PPTP na swoim VPS

Jak usunąć reguły iptables?

Możesz użyć wielu poleceń, aby usunąć reguły Iptables, a nawet usunąć wszystkie reguły w łańcuchu. Tutaj omówimy te metody,

Usuń reguły według specyfikacji

Jednym ze sposobów usunięcia reguł iptables jest zrobienie tego poprzez specyfikację reguły. Umożliwia uruchomienie polecenia iptables za pomocą pliku Opcja -D i specyfikację reguły. Jeśli chcesz usunąć reguły przy użyciu tej techniki, możesz skorzystać z listy reguł iptables -S, aby uzyskać pomoc.

Na przykład, aby usunąć regułę odrzucającą nieprawidłowe przychodzące pakiety (-A INPUT -m conntrack –ctstate INVALID -j DROP), możesz wykonać następujący wiersz poleceń:

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 tworzenia i powinna być tutaj wykluczona.

Usuń reguły według łańcucha i numeru

Inną metodą usuwania reguł iptables jest numer łańcucha i linii. Wpisz następujące polecenie, aby wybrać numer wiersza reguły, wyświetlić listę reguł w formacie tabeli i dodać – opcja numerów linii:

sudo iptables -L --line-numbers

Usuń reguły według łańcucha i numeru
wynik usuwania reguł według łańcucha i numeru

Po uruchomieniu wszystkie reguły iptables mają swój numer linii, pokazany w nagłówku num.

Kiedy już wiesz, którą regułę chcesz usunąć, pamiętaj o numerze jej łańcucha i linii. Musisz użyć polecenia iptables -D z numerem łańcucha i 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 przepłukać łańcuchy?

Istnieje sposób na usunięcie wszystkich reguł Iptables z łańcucha, który nazywamy płukanie łańcucha. Tutaj omówimy różne metody, aby to zrobić. Zanim przejdziesz dalej, zwróć uwagę, aby nie zostać zablokowanym z serwerem przez SSH podczas opróżniania łańcucha z domyślną polityką upuszczania lub odmowy. Ponieważ jeśli tak, może być konieczne połączenie się z nim za pośrednictwem konsoli, aby naprawić dostęp.

Przepłucz pojedynczy łańcuch

Do opróżnienia określonego łańcucha lub, innymi słowy, usunięcia wszystkich reguł w łańcuchu, możesz użyć metody -F lub równoważny – opcja spłukiwania i nazwę wybranej sieci. Załóżmy, że chcesz usunąć wszystkie reguły z łańcucha INPUT; co robić? Cóż, to proste, uruchom następujące polecenie:

sudo iptables -F INPUT

Przepłucz wszystkie łańcuchy

Aby usunąć wszystkie łańcuchy lub je opróżnić, możesz użyć samej opcji -F lub jej odpowiednika –flush:

sudo iptables -F

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

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

Najpierw musisz ustawić domyślne zasady dla każdego z wbudowanych łańcuchów na AKCEPTUJ. Głównym powodem, dla którego to robimy, jest upewnienie się, że nie zostaniesz zablokowany na serwerze przez SSH:

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

Następnie musisz opróżnić tabele nat i mangle, opróżnić wszystkie łańcuchy (-F)i usuń wszystkie łańcuchy inne niż domyślne (-X) tak:

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

Po uruchomieniu poprzednich poleceń zapora przepuści cały ruch sieciowy. Jeśli chcesz teraz wyświetlić listę swoich reguł, zobaczysz, że nie ma żadnych; pozostają tylko trzy domyślne łańcuchy, takie jak łańcuchy INPUT, FORWARD i OUTPUT.

Jak ustawić iptables w Ubuntu?

Podobnie jak w przypadku każdego podstawowego działania zapory ogniowej, reguły iptables można czytać w kolejności podanej w każdym łańcuchu, co oznacza, że ​​będziesz musiał ustawić reguły we właściwej kolejności. Po dodaniu nowych reguł zostaną one dodane na końcu listy reguł. Możesz dodać nowe reguły do ​​określonej pozycji listy, wstawiając je za pomocą iptables -I <indeks> -polecenie. The <indeks> dotyczy numeru zamówienia, w którym chcesz wstawić regułę do tego polecenia. Aby dowiedzieć się, który numer indeksu należy wprowadzić, możesz użyć następującego polecenia:

sudo iptables -L --line-numbers

Liczba na początku każdej linii reguły pokazuje pozycję w łańcuchu. Aby dodać nową regułę nad konkretną istniejącą regułą, 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 indeksem nr 1:

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

Czym iptables różni się od firewalla?

Zarówno iptables, jak i firewalld to praktyczne narzędzia do zarządzania zaporami ogniowymi w różnych systemach Linux, specjalnie zaprojektowanymi do filtrowania pakietów (filtrowanie statyczne). Filtrowanie pakietów to strategia zapory sieciowej, która umożliwia użytkownikom kontrolowanie dostępu do określonej sieci poprzez zarządzanie przychodzącymi i wychodzącymi pakietami informacji. Pozwalają im przejść lub odmawiają na podstawie wstępnie ustawionych reguł zapory sieciowej dotyczących protokołów źródłowych i docelowych oraz portów i adresów IP. Reguły te zapewniają bardzo wydajne mechanizmy bezpieczeństwa, dzięki czemu filtrowanie pakietów informacyjnych stanowi doskonałą ochronę przed urządzeniami kierowanymi poza systemową sieć LAN (ang. Local Area Network).

Należy pamiętać, że firewalld został początkowo wprowadzony jako oprogramowanie do obsługi iptables, aby ułatwić użytkownikowi nawigację po nim. Mając już na uwadze 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 iptables każda zmiana oznacza wyczyszczenie wszystkich starych reguł i przeczytanie nowych, więc system musi zostać zrestartowany. Jednak przy użyciu zapory ogniowej reguły nie są tworzone na nowo; zamiast tego wprowadzone różnice i modyfikacje są stosowane w celu zmiany istniejących reguł, dzięki czemu można zobaczyć, jak zaczynają obowiązywać w środowisku wykonawczym.

iptables vs firewalld: Interfejs użytkownika

Zapora wykorzystuje graficzny interfejs użytkownika (GUI). Jednak iptables wykorzystuje interfejs wiersza poleceń (CLI), który dla niektórych osób może stanowić wyzwanie, jeśli chodzi o dostęp do reguł zapory jądra Linuksa za pomocą iptables, co czyni zaporę ogniową prostszą opcją. Najlepiej byłoby wziąć pod uwagę, że iptables mają krótszy czas odpowiedzi, ponieważ używasz tylko krótkich poleceń. Pomijając to wszystko, oba mają swoje przypadki użycia, więc wybierz ten, z którym wygodniej Ci się pracuje.

Ostatnie przemyślenia: iptables pokazują reguły

Iptables to bardzo elastyczne narzędzie zapory sieciowej stworzone specjalnie dla systemów operacyjnych Linux. Nie ma znaczenia, czy jesteś nowicjuszem w dziedzinie Linuksa, czy profesjonalnym administratorem systemu; istnieje sposób, w jaki reguły iptables mogą być dla Ciebie pomocne. W tym artykule omówiono głównie podstawowe polecenia tego narzędzia zapory sieciowej, w tym iptables pokaż reguły i usuń reguły iptables, mając na celu krótki przegląd możliwości Linuksa. Dodatkowo możesz skorzystać z naszego Rozwiązania hostingowe Linux VPS aby wykorzystać prawdziwy potencjał tego fantastycznego systemu operacyjnego. W Cloudzy oferujemy różne plany VPS dla systemu Linux oparte na KVM, odpowiednie do wielu zastosowań, takich jak hosting stron internetowych, wdrażanie aplikacji internetowych, a nawet konfigurowanie środowiska do opracowywania, testowania i automatyzacji kodu.

Często zadawane pytania

Jak wyświetlić listę wszystkich reguł iptables systemu 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 wykorzystanie sudo słowo kluczowe 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żyj opcji -F lub –flush i nazwy łańcucha. Załóżmy, że chcemy usunąć wszystkie reguły z łańcucha OUTPUT. Co zrobić? Cóż, musisz wykonać to polecenie:

 sudo iptables -F WYJŚCIE

Jak iptables działają w Ubuntu?

Zapora iptables porównuje ruch sieciowy z zestawem reguł. Reguły iptables określają charakterystykę pakietu pasującego do reguły oraz działania, które należy podjąć, jeśli pakiety pasują. Oczywiście istnieje wiele opcji pozwalających ustawić, które pakiety odpowiadają określonej regule.

Czy reguły iptables zaczynają obowiązywać natychmiast? Dlaczego?

Tak, reguły iptables zaczynają obowiązywać natychmiast; ponieważ twój skrypt dołącza się do łańcuchów INPUT i OUTPUT, a twoje reguły są dodawane na końcu tych łańcuchów.

Udział

Więcej z bloga

Czytaj dalej.

Obraz tytułowy Cloudzy do przewodnika MikroTik L2TP VPN, przedstawiający laptopa łączącego się z szafą serwerową poprzez świecący niebiesko-złoty cyfrowy tunel z ikonami tarcz.
Bezpieczeństwo i sieć

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

W tej konfiguracji MikroTik L2TP VPN, L2TP obsługuje tunelowanie, podczas gdy IPsec obsługuje szyfrowanie i integralność; ich sparowanie zapewnia zgodność z klientem natywnym bez wieku osób trzecich

Rexa CyrusRexa Cyrus 9 minut czytania
Okno terminala wyświetlające komunikat ostrzegawczy SSH o zmianie identyfikacji zdalnego hosta, z tytułem Fix Guide i logo Cloudzy na ciemnoturkusowym tle.
Bezpieczeństwo i sieć

Ostrzeżenie: identyfikacja hosta zdalnego uległa zmianie i jak to naprawić

SSH to bezpieczny protokół sieciowy, który tworzy szyfrowany tunel pomiędzy systemami. Pozostaje popularny wśród programistów, którzy potrzebują zdalnego dostępu do komputerów bez konieczności posiadania grafiki

Rexa CyrusRexa Cyrus 10 minut czytania
Ilustracja przewodnika rozwiązywania problemów z serwerem DNS z symbolami ostrzegawczymi i niebieskim serwerem na ciemnym tle w przypadku błędów rozpoznawania nazw w systemie Linux
Bezpieczeństwo i sieć

Tymczasowa awaria rozpoznawania nazw: co to oznacza i jak to naprawić?

Podczas korzystania z Linuksa możesz napotkać tymczasowy błąd rozpoznawania nazw podczas próby uzyskania dostępu do stron internetowych, aktualizacji pakietów lub wykonywania zadań wymagających połączenia internetowego

Rexa CyrusRexa Cyrus 12 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/mies.

Niezależna chmura, od 2008. AMD EPYC, NVMe, 40 Gbps. 14-dniowy zwrot pieniędzy.