Polecenia dla początkujących po IPTables (Linux Firewall)

Polecenia dla początkujących po IPTables (Linux Firewall)

Jeśli używasz komputerów na chwilę, musisz znać słowo „Zapora". Wiemy, że z powierzchni rzeczy wydają się złożone, ale dzięki temu samouczkowi wyjaśnimy podstawę Iptable i użycie podstawowych poleceń, aby nawet jeśli jesteś studentem sieci lub chcesz głęboko zagłębić się w sieci, możesz skorzystać z tego przewodnika.

Co to jest iptables?

Sposób Zapora Działa jest dość prosta. Stwarza barierę między wiarygodnymi i niewiarygodnymi sieciami, dzięki czemu system może być bezpieczny przed złośliwymi pakietami.

Ale jak zdecydujemy, co jest bezpieczne, a co nie? Domyślnie otrzymujesz uprawnienia do ustawiania zasad dla swojej zapory, ale bardziej szczegółowy nadzór nadchodzących i wychodzących pakietów, Iptables są tym, czego najbardziej potrzebujesz.

Iptables może być używany do obliczeń osobistych lub może być również stosowany do całej sieci. Za pomocą Iptables, Będziemy definiować zestaw reguł, za pomocą których możemy monitorować, zezwalać lub blokować przychodzące lub wychodzące pakiety sieciowe.

Zamiast koncentrować się na całej części teorii, omówimy tylko to, co ważne w praktycznym świecie. Zacznijmy więc od zrozumienia podstawowych pojęć Iptables.

Zrozumienie koncepcji iptables

Podczas dyskusji Iptables, Musimy zrozumieć 3 terminy: Tabele, Więzy, I Zasady. Ponieważ są to ważne części, omówimy każdy z nich.

Więc zacznijmy od Tabele.

Tabele w iPtables

Istnieje 5 rodzajów tabele w iPtables i każde z nich ma inne reguły. Zacznijmy więc od najczęstszego stołu ”Filer".

  1. Tabela filtru - To jest domyślna i główna tabela podczas korzystania z Iptables. Oznacza to, że za każdym razem, gdy nie będziesz wspominać żadnej konkretnej tabeli podczas stosowania reguł, zostaną one zastosowane do tabeli filtru. Jak sama nazwa wskazuje, rolą tabeli filtru jest zdecydowanie, czy pakiety powinny mieć możliwość dotarcia do miejsca docelowego, czy odmówić ich żądania.
  2. NAT (tłumaczenie adresu sieciowego) - Jak sugeruje jego nazwa, ta tabela pozwala użytkownikom określić tłumaczenie adresów sieciowych. Rolą tej tabeli jest ustalenie, czy zmodyfikować i jak zmodyfikować źródło i miejsce docelowe adresu pakietu.
  3. Stół Mangle - Ta tabela pozwala nam zmodyfikować nagłówki IP pakietów. Na przykład możesz dostosować Ttl do wydłużania lub zwarcia chmielu sieciowego, które pakiet może utrzymać. Podobnie inne nagłówki IP można również modyfikować zgodnie z Twoimi preferencjami.
  4. Surowy stół - Głównym zastosowaniem tej tabeli jest śledzenie połączeń, ponieważ zapewnia mechanizm oznaczania pakietów do przeglądania pakietów w ramach trwającej sesji.
  5. Tabela bezpieczeństwa - Korzystając z tabeli bezpieczeństwa, użytkownicy mogą stosować wewnętrzne Selinux Znaki kontekstu bezpieczeństwa w pakietach sieciowych.

W przypadku większości przypadków użycia 2 ostatnie typy (SUROWY I Bezpieczeństwo) Tabela nie ma wiele do zrobienia, a tylko pierwsze 3 opcje są liczone jako główne tabele.

Teraz porozmawiajmy o Więzy.

Łańcuchy w iptables

Zachowują się w punktach trasy sieci, w której możemy zastosować zasady. W iptables my 5 rodzajów więzy I omówimy każdy z nich. Należy pamiętać, że nie jest dostępny dla każdego rodzaju łańcucha dla każdego rodzaju tabeli.

  1. Wstępne runowanie - Łańcuch ten jest stosowany do dowolnego pakietu przychodzącego po wprowadzeniu do stosu sieciowego, a łańcuch ten jest przetwarzany nawet przed podjęciem decyzji dotyczącej routingu dotyczącej ostatecznego miejsca docelowego pakietu.
  2. Łańcuch wejściowy - Jest to punkt, w którym pakiet wchodzi do stosu sieciowego.
  3. Łańcuch do przodu - Jest to punkt, w którym pakiet został przekazany przez system.
  4. Łańcuch wyjściowy - Łańcuch wyjściowy jest stosowany do pakietu, gdy powstał przez system i wychodzi.
  5. Po routowaniu - Jest to kompletne przeciwieństwo łańcucha wstępnego i jest stosowane do pakietów przekazywanych lub wychodzących.

Teraz jedyną rzeczą do omówienia jest to zasady, I to jest najłatwiejszy z 3, o których tutaj rozmawialiśmy. Ukończmy więc to, co pozostało w części teoretycznej.

Zasady w iptables

Zasady są niczym innym jak zestawem lub indywidualnymi poleceniami, w których użytkownicy manipulują ruchem sieciowym. Gdy każdy łańcuch wejdzie do działania, pakiet zostanie sprawdzony w stosunku do zdefiniowanych zasad.

Jeśli jedna reguła nie spełnia warunku, zostanie pominięta do następnej, a jeśli spełni warunek, następna reguła zostanie określona przez wartość celu.

Każda reguła ma dwa elementy: pasujący komponent i Komponent docelowy.

  1. Pasujący komponent - Są to różne warunki, aby zdefiniować reguły, które można dopasować przez protokół, adres IP, adres portu, interfejsy i nagłówki.
  2. Komponent docelowy - Jest to działanie, które zostanie uruchomione po spełnieniu warunków.

To była część wyjaśnienia, a teraz będziemy omawiać podstawowe polecenia związane z Iptables w Linux.

Instalowanie zapory ogniowej w Linux

W nowoczesnych dystrybucjach Linux, takich jak pop!_OS, Iptables jest wstępnie zainstalowany, ale jeśli w twoim systemie brakuje pakietu IPTABLES, możesz łatwo go zainstalować według instrukcji:

Aby zainstalować IPTABLES w rozkładach Linux opartych na RHEL, takich jak Rocky Linux, Almalinux i Centos Stream, użyj następującego polecenia DNF.

$ sudo dnf instaluj usługi iptables 

Ważny: Jeśli używasz Firewalld, musisz go wyłączyć przed przejściem do instalacji. Aby całkowicie zatrzymać zaporę ogniową, musisz użyć następujących poleceń:

$ sudo systemctl stop firewalld $ sudo systemctl 

Aby zainstalować IPTABLES w dystrybucjach Linux opartych na Debian, użyj następującego polecenia Apt.

$ sudo apt Zainstaluj iptables 

Po zainstalowaniu Iptables, Możesz włączyć zaporę według podanych poleceń:

$ sudo systemctl włącz IPTABLES $ sudo systemctl start iptables 

Do monitorowania stanu Iptable Usługa, możesz użyć podanego polecenia:

$ sudo systemCtl status iptables 
Sprawdź status IPTABLES

Naucz się podstaw polecenia iptables w Linux

Po zakończeniu instalacji możemy kontynuować składnię Iptables co pozwoli ci dostosować wartości domyślne i umożliwi konfigurację zgodnie z Twoimi potrzebami.

Podstawowa składnia Iptables następująco:

# iptables -t typ tabeli -options punkty łańcuchowe warunek lub dopasowanie komponentu Action 

Zrozummy wyjaśnienie powyższego polecenia:

Tabela

Pierwsza część to -T gdzie możemy wybrać spośród 5 dostępnych opcji tabeli, a jeśli usuniesz -T część z polecenia, będzie używać filtr tabela, ponieważ jest to domyślny typ tabeli.

Opcje łańcucha

Druga część dotyczy łańcuch. Tutaj możesz wybierać spośród różnych opcji punktu łańcucha, a te opcje podano poniżej:

  • -A - Dodaje nową zasadę do łańcucha na końcu łańcucha.
  • -C - Sprawdzanie zasad, czy spełnia wymóg łańcucha.
  • -D - Pozwala użytkownikom usunąć istniejącą regułę z łańcucha.
  • -F - To usunie każdą regułę zdefiniowaną przez użytkownika.
  • -I - Pozwala użytkownikom dodać nową regułę w określonej pozycji.
  • -N - Tworzy zupełnie nowy łańcuch.
  • -v - W przypadku użycia z opcją listy wnosi szczegółowe informacje.
  • -X - Usuwa łańcuch.

Pasujący komponent

Opcje dopasowywania to warunek sprawdzania wymagań łańcucha. Możesz wybierać spośród różnych opcji, a niektóre z nich podano poniżej:

Protokoły -p Źródło IP -s docelowe ip -d w interfejsie -i OUT interfejs -o 

Dla TCP, Są następujące:

-Sport -dport - -TCP -flags 

Komponent działania

Teraz, jeśli weźmiemy pod uwagę część akcji, dostępne opcje zależą od rodzaju tabeli, takiej jak Nat, a tabela Mangle ma więcej opcji w porównaniu z innymi. Korzystając z akcji, możesz również ukierunkować określoną tabelę lub łańcuch.

Najczęściej używane działanie jest Jump (-J) które da nam kilka opcji, takich jak:

  • ZAAKCEPTOWAĆ - Służy do przyjmowania pakietów i kończenia przemieszczania się.
  • UPUSZCZAĆ - Służy do upuszczania pakietów i kończenia przemieszczania się.
  • ODRZUCIĆ - Jest to dość podobne do Drop, ale wysyła odrzucone pakiety do źródła.
  • POWRÓT - To zatrzyma się przemierzanie pakietu w łańcuchu podwodnym i wyśle ​​konkretny pakiet do łańcucha wyższego bez efektu.

Po zakończeniu składni pokażemy Ci, w jaki sposób możesz użyć Iptables w tym podstawowa konfiguracja.

Wymień bieżący zestaw reguł IPTABLES

Jeśli chcesz sprawdzić, co przechodzi przez Twój Zapora Domyślnie wymienianie bieżącego zestawu reguł jest idealnym sposobem. Aby wymienić zastosowane reguły, użyj podanego polecenia:

$ sudo iptables -l 
Wymień reguły IPTABLES

Zezwalaj/odmawiaj ruchu sieciowego na określonych portach

W tej sekcji pokażemy, w jaki sposób możesz zezwolić lub odmówić ruchu sieciowego dla określonych portów. Pokazamy ci kilka znanych portów, ponieważ chcemy być tak pomocne, jak to tylko możliwe.
Jeśli chcesz zezwolić Https Ruch sieciowy, będziemy musieli zezwolić na port nr 443 Wykorzystując dane polecenie:

$ sudo iptables -a wejście -p tcp -dport 443 -J Zaakceptuj 

Podobnie możesz również wyłączyć Http Ruchu internetowe według danego polecenia:

$ sudo iptables -a wejście -p tcp - -dport 80 -J Odrzuć 

Objaśnienie używanych opcji poleceń:

  • -P jest używany do sprawdzania określonego protokołu, aw naszym przypadku jest to TCP.
  • --dport służy do określenia portu docelowego.
  • -J jest używany do podjęcia działań (akceptuj lub upuszczenie).

Kontroluj ruch za pomocą adresu IP

Tak, możesz również kontrolować ruch sieciowy z adresu IP. Nie tylko jeden lub dwa, ale także kontroluj zakres adresów IP i pokażemy, jak.

Aby umożliwić określony adres IP, użyj podanej struktury polecenia:

$ sudo iptables -a wejście -s 69.63.176.13 -J Zaakceptuj 

Podobnie, aby upuścić pakiety z określonego IP, musisz użyć podanej struktury polecenia:

$ sudo iptables -a wejście -s 192.168.0.27 -J Drop 

Jeśli chcesz, możesz również kontrolować zakres adresów IP, wykorzystując podaną strukturę polecenia:

$ sudo iptables -A wejście -m Zakres -SRC Range 192.168.0.1-192.168.0.255 -J Odrzucanie 

Usuń regułę zdefiniowaną przez użytkownika

Czasami możemy w końcu popełniać błędy podczas tworzenia zasad, a najlepszym sposobem na przezwyciężenie tych błędów jest ich usunięcie. Usuwanie zdefiniowanych zasad jest najłatwiejszym procesem w tym przewodniku i aby je usunąć, najpierw będziemy musieli je wymienić.

Aby wymienić zdefiniowane reguły z liczbami, użyj podanego polecenia:

$ sudo iptables -l -line -numbers 
Wymień reguły IPTABLES

Aby usunąć reguły, będziemy musieli przestrzegać danej struktury polecenia:

$ sudo iptables -d   

Załóżmy, że chcę usunąć 10. zasadę WEJŚCIE Więc będę używać danego polecenia:

$ sudo iptables -d wejście 10 

Aby sprawdzić, czy pomyślnie usunęliśmy regułę, musimy wymienić reguły według danego polecenia:

$ sudo iptables -l -lini -numbers 
Potwierdź zasady iptables

Jak widać, pomyślnie usunęliśmy 10. zasadę.

Zapisz zdefiniowane reguły IPTABLES

Być może zastanawiasz się, dlaczego musimy oszczędzać zasady, gdzie działają dobrze po ich zastosowaniu? Problem polega na ponownym uruchomieniu systemu, wszystkie zdefiniowane reguły, które nie są zapisane.

Aby zapisać zasady w Rhel-dystrybucje:

$ sudo /sbin /service iptables Zapisz 

Aby zapisać zasady w Debian pochodne:

$ sudo /sbin /iptables-save 

Aby dowiedzieć się więcej o zasadach zapory iptable, sprawdź nasz szczegółowy przewodnik na:

  • 25 Przydatne reguły zapory iptable każdy administrator Linux powinien wiedzieć

Przez cały ten przewodnik staraliśmy się uprościć, aby każdy mógł z tego skorzystać. To był podstawowy przewodnik po wyjaśnieniu Iptables A jeśli masz jakieś zapytania, możesz zapytać w komentarzach.