Jak korzystać z poleceń Iptables Netfilter w systemie Linux?

Spisie treści

Bezpieczeństwo musi zawsze być jednym z obszarów, w których muszą pracować administratorzy, personel zarządzający i pomocniczy oraz ogólnie wszyscy użytkownicy dowolnego obecnego systemu operacyjnego ze względu na wiele zagrożeń występujących w sieci.

W przypadku dystrybucji Linuksa większość z nich posiada zaawansowane narzędzia do filtrowania pakietów sieciowych zarówno na poziomie przetwarzania kontroli pakietów sieciowych na wejściu, ruchu, kontroli i wyjściu stosu. , dlatego począwszy od jądra 2.4 wprowadzono iptables, które są również nazywane netfilter i mają wyższy poziom bezpieczeństwa oraz praktyczne funkcje ochrony systemu.

iptables obsługuje filtrowanie IPv4, podczas gdy ip6tables obsługuje filtrowanie IPv6 we współczesnych sieciach.
Solvetic przeprowadzi analizę działania iptables i kilka bardziej praktycznych poleceń, które możemy z niego pobrać.

1. Filtrowanie pakietów w systemie Linux


Jądro dystrybucji Linuksa wykorzystuje narzędzie Netfilter do przeprowadzania procesu filtrowania pakietów, a tym samym do wykonywania zadań ich odbierania lub zatrzymywania.

Reguły wbudowane w NetfilterNetfilter jest domyślnie włączony do jądra Linux i ma trzy tabele lub listy reguł zintegrowanych w ten sposób:

  • filter: Odnosi się do domyślnej tabeli przeznaczonej do zarządzania pakietami.
  • nat: Jego funkcją jest zmiana pakietów, które zostały utworzone w nowym połączeniu używanym głównie przez NAT.
  • magle: jego użycie ma zastosowanie, gdy określone pakiety sieciowe muszą zostać zmienione.

Teraz każda tabela ma grupę wbudowanych łańcuchów, które są powiązane z działaniami, które może wykonać netfilter, są to:

Zasady dotyczące tabel filtrówWbudowane ciągi dla tabeli filtrów to:

  • INPUT: Odnosi się do pakietów, które zostały przeznaczone do hosta.
  • WYJŚCIE: Działa to na pakietach sieciowych, które zostały wygenerowane lokalnie.
  • FORWARD: kojarzy pakiety, które zostały przekierowane przez głównego hosta.

Zasady dotyczące tabel natWbudowane ciągi dla tabeli nat to:

  • PREROUTING: Jego funkcją jest zmiana pakietów sieciowych zaraz po ich przybyciu.
  • WYJŚCIE: Został zaprojektowany do zmiany pakietów sieciowych, które są tworzone lokalnie i są aktywowane przed wysłaniem.
  • POSTROUTING: Stworzony w celu zmiany paczek przed wysłaniem na cały świat.

Zasady dotyczące desek mangrowychWbudowane łańcuchy do stołu mangrowego to:

  • INPUT: Przeznaczony do modyfikacji pakietów sieciowych przeznaczonych dla głównego hosta.
  • WYJŚCIE: Utworzone w celu zmiany lokalnie tworzonych pakietów sieciowych i działa przed ich wysłaniem.
  • FORWARD: Zmienia pakiety, które zostały skierowane przez głównego hosta.
  • PREROUTING: Twoim zadaniem jest modyfikowanie przychodzących pakietów przed ich trasowaniem.
  • POSTROUTING: Zmienia pakiety sieciowe przed rozpoczęciem procesu wysyłania.

Każdy pakiet sieciowy odebrany lub wysłany z systemu operacyjnego Linux jest zawsze powiązany z co najmniej jedną tabelą. Teraz zrozumiemy niektóre z bardziej przydatnych poleceń, których możemy używać z iptables.

2. Wyświetl stan zapory

Krok 1
Aby poznać aktualny stan zapory wykonujemy następujący wiersz:

 sudo iptables -L -n -v 

POWIĘKSZAĆ

Krok 2
Tam możemy sprawdzić poprawność każdego łańcucha z odpowiednimi poziomami zarządzanych pakietów, parametry użyte w tym poleceniu to:

-LWyświetl reguły listy.

-vGeneruje szczegółowe informacje, takie jak nazwa interfejsu, opcje reguł oraz liczniki pakietów i bajtów, z sufiksem „K”, „M” lub „G” dla opcji odpowiednio 1000, 1 000 000 i 1 000 000 000 .

-nWyświetla adres IP i port w formacie numerycznym.

Krok 3
Jeśli chcesz, zobacz ten wynik z liczbą linii, możemy wykonać następujące czynności:

 iptables -n -L -v --line-numbers 

POWIĘKSZAĆ

3. Zatrzymaj, uruchom ponownie lub uruchom iptables w systemie Linux

Krok 1
Główne polecenia do zarządzania zadaniami iptables na poziomie startu lub stopu to:

 usługa iptables stop usługa iptables start usługa iptables restart
Krok 2
Możliwe będzie również użycie polecenia iptables, aby zatrzymać zaporę i wyeliminować wszystkie takie reguły:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Krok 3
Zdefiniowane parametry to:

-FUsuń wszystkie zasady.

-XUsuń ciąg.

-Ttable_name: Wybierz tabelę (o nazwie nat lub mangle) i usuń lub odrzuć reguły.

-PUstaw domyślną zasadę, taką jak DROP, REJECT lub ACCEPT.

4. Dodaj nowe reguły zapory w systemie Linux

Krok 1
Jednym z najbardziej praktycznych zadań iptables jest stworzenie pewnych reguł do prawidłowego zarządzania pakietami, aby wstawić jedną lub więcej reguł do wybranego łańcucha, użyjemy następującej składni, w której numery linii muszą zostać najpierw wykryte:

 iptables -L INPUT -n --line-numbers 
Krok 2
na przykład dodajmy następującą regułę:
 iptables -I INPUT 2 -s 192.168.0.50 -j DROP 
Krok 3
Później zobaczymy zasady za pomocą powyższego polecenia. Tam widzimy, że utworzona reguła została dodana w linii 3, jak wskazano.

POWIĘKSZAĆ

5. Usuń regułę zapory w systemie Linux

Krok 1
Przede wszystkim musimy wyświetlić reguły, które są tworzone, aby dokładnie określić, który z nich należy wyeliminować, aby uzyskać te informacje mamy następujące opcje:

 iptables -L INPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers | mniej
Krok 2
Teraz, aby usunąć wcześniej utworzoną regułę 3, wykonamy następujące czynności:
 iptables -D WEJŚCIE 3 

POWIĘKSZAĆ

6. Przechowuj i przywracaj reguły iptables w systemie Linux

Krok 1
Za każdym razem, gdy dokonujemy zmiany w regułach iptables, musimy przystąpić do zapisania tych zmian, w tym celu wystarczy wykonać następującą linię:

 usługa iptables wie 
Krok 2
Możemy po prostu przywrócić te reguły, które zachowaliśmy, wykonując następujące czynności:
 usługa iptables restart 

7. Ustaw domyślne reguły w Linuksie


Dzięki iptables będzie można zezwolić lub zabronić domyślnych reguł, które muszą być zastosowane do całego systemu w następujący sposób.

Krok 1
Aby wyeliminować cały ruch, wykonujemy:

 iptables -P WEJŚCIE DROP iptables -P WYJŚCIE DROP iptables -P DO PRZODU
Krok 2
Aby usunąć cały ruch przychodzący:
 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P WYJŚCIE AKCEPTUJ iptables -A INPUT -m stan - NOWY, USTANOWIONY -j AKCEPTUJ

POWIĘKSZAĆ

8. Zablokuj adres IP w systemie Linux

Dzięki iptables możliwe będzie zablokowanie konkretnego adresu IP, aby uniemożliwić mu dostęp do pakietu sieciowego do systemu. Do tego zadania mamy następujące opcje:

 iptables -A INPUT -s 192.168.0.14 -j DROP (określony adres IP) iptables -A INPUT -s 192.168.0.0/24 -j DROP (zakres adresów)

9. Blokuj przychodzące żądania portów w systemie Linux

Krok 1
Innym typowym zadaniem bezpieczeństwa jest ograniczenie dostępu do pakietów przez określony port, z iptables mamy następujące opcje:

Blokuj wszystkie działaniaZablokuj wszystkie akcje dla określonego portu, wykonując:

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Zablokuj portZablokuj port dla określonego adresu IP:

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Zablokuj wychodzący adres IP
Możliwe jest zablokowanie ruchu wychodzącego do konkretnego hosta lub domeny, na przykład Solvetic.com, w tym celu wykonujemy:

 host -t do solvetic.com 

POWIĘKSZAĆ

Krok 2
Teraz z tym adresem IP przystępujemy do blokowania:

 iptables -A WYJŚCIE -d 178.33.118.246 -j DROP 
Krok 3
Możliwe będzie również zablokowanie całej domeny w następujący sposób:
 iptables -A WYJŚCIE -p tcp -d www.solvetic.com -j DROP 

10. Czy zezwalać na ruch sieciowy przy użyciu adresu MAC w systemie Linux

Inną możliwością użycia jest ograniczenie lub zezwolenie na korzystanie z pakietów na podstawie adresu MAC wybranego urządzenia. W tym celu skorzystamy z jednej z następujących opcji:

 iptables -A INPUT -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j DROP (Odrzuć ruch z wybranego adresu MAC) iptables -A INPUT -p tcp --destination-port 22 - m mac --mac-source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Obsługuje pakiety z adresu wskazanego tylko przez port 22)

11. Blokuj lub zezwalaj na żądania ICMP w systemie Linux


Protokół ICMP (Internet Control Message Protocol) jest protokołem opracowanym w celu zarządzania informacjami związanymi z błędami na komputerach w sieci lokalnej, dzięki czemu za pomocą tego protokołu można wysyłać zdalne żądania w celu weryfikacji dostępności zespołu, a to z punktu widzenia bezpieczeństwa może być delikatne .

Krok 1
Możemy uruchomić następujące linie, aby uniknąć żądań ICMP w systemie Linux:

 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Krok 2
Odpowiedzi na pingi mogą być również ograniczone do niektórych sieci lub hostów w następujący sposób:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp-type echo-request -j AKCEPTUJ 
Krok 3
Będziemy w stanie zaakceptować tylko ograniczony typ żądań ICMP, takich jak:
 iptables -A INPUT -p icmp --icmp-type echo-reply -j AKCEPTUJ iptables -A INPUT -p icmp --icmp-type destination-unreachable -j AKCEPTUJ iptables -A INPUT -p icmp --icmp-type time- przekroczono -j AKCEPTUJ

12. Otwórz szereg portów i adresów IP w systemie Linux

Krok 1
Jest to przydatne, jeśli musimy umożliwić zdefiniowanemu zakresowi portów wykonywanie czynności administracyjnych lub wykonanie programu:

 iptables -A INPUT -m stan --state NOWY -m tcp -p tcp --dport 9000: 9020 -j AKCEPTUJ 
W ten sposób otworzyliśmy zakres portów od 9000 do 9020 dla połączeń TCP.

Krok 2
Inną alternatywą jest włączenie zakresu adresów IP poprzez ustawienie określonego portu w ten sposób. Tam autoryzowaliśmy ten zakres do korzystania z portu 80.

 iptables -A INPUT -p tcp --port docelowy 80 -m iprange --src-zakres 192.168.0.70-192.168.0.80 -j AKCEPTUJ 

13. Ogranicz liczbę równoległych połączeń z serwerem według adresu IP klienta w systemie Linux

Krok 1
Możemy użyć modułu connlimit do zdefiniowania tych ograniczeń, na przykład, aby zezwolić na 5 połączeń ssh na klienta, wpisujemy:

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j ODRZUCENIE 

POWIĘKSZAĆ

Krok 2
Aby ograniczyć dostęp HTTP do 10:

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP 
Krok 3
Wskazaliśmy, co następuje:
  • --connlimit-above 5: Dopasowuje, jeśli liczba istniejących połączeń jest większa niż 5.
  • --connlimit-mask 24: Są to hosty grup, które używają długości prefiksu. W przypadku IPv4 musi to być liczba z zakresu (włącznie) od 0 do 32.

14. Ogranicz liczbę równoległych połączeń z serwerem według adresu IP klienta w systemie Linux

Krok 1
NAT (Network Address Translation) to system tłumaczący adresy sieciowe, a tym samym ułatwiający nawigację. Aby je wymienić, wykonamy następujące czynności:

 iptables -t nat -L -n -v 

POWIĘKSZAĆ

Krok 2
Będzie można zobaczyć ten wynik z odpowiednimi liniami w następujący sposób:

 iptables -t nat -v -L -n --line-number 

15. Wyczyść reguły NAT w systemie Linux


Krok 1
Jeśli chcemy usunąć ustalone reguły NAT, wykonamy następujące czynności:
 iptables -t nat -v -L -n --line-number iptables -t nat -v -L PREROUTING -n --line-number iptables -t nat -v -L POSTROUTING -n --line-number
Krok 2
Aby usunąć wszystkie reguły „PREROUTING”, wykonujemy następującą składnię:
 iptables -t nat -D PREROUTING {Numer reguły} 
Krok 3
Aby usunąć wszystkie reguły „POSTROUTING”, które wykonujemy:
 iptables -t nat -D POSTROUTING {numer reguły} 

16. Zresetuj liczniki pakietów w systemie Linux


Najpierw musimy wykonać polecenie "iptables -L -n -v", które widzieliśmy wcześniej, aby wyświetlić liczniki.

Krok 1
Aby wyczyścić te liczniki, po prostu uruchom następujące polecenie:

 iptables -Z 
Krok 2
Aby zresetować liczniki tylko dostępu, wykonujemy:
 iptables -Z WEJŚCIE 

17. Sprawdź poprawność zapory w systemie Linux

Krok 1
Przede wszystkim musimy sprawdzić, czy porty są otwarte, czy nie za pomocą następującego polecenia:

 netstat -tulpn 

POWIĘKSZAĆ

Krok 2
Aby zweryfikować konkretny port, wykonujemy:

 netstat -tulpn | grp: 80 

POWIĘKSZAĆ

Krok 3
W przypadku, gdy port nie jest otwarty wykonujemy:

 usługa httpd start 
Krok 4
Następnie musimy upewnić się, że iptables ma dostęp przez ten port:
 iptables -L WEJŚCIE -v -n | grep 80 

18. Zezwól na dostęp w pętli za pomocą iptables w systemie Linux

Dostęp pętli zwrotnej, którego dostęp pochodzi z adresu IP 127.0.0.1, jest ważny i powinien być zawsze aktywny dla zadań administracyjnych i zarządzania siecią. Aby włączyć go w iptables, po prostu wykonaj następujące czynności.

 iptables -A WEJŚCIE -i lo -j AKCEPTUJ iptables -A WYJŚCIE -o lo -j AKCEPTUJ

19. Zdefiniuj nowe łańcuchy iptables w systemie Linux


Krok 1
Dzięki iptables mamy możliwość zdefiniowania własnej sieci i przechowywania w niej niestandardowych reguł. Aby zdefiniować łańcuch, wykonujemy następujące czynności:
 iptables -N "Nazwa ciągu" 
Krok 2
Następnie uruchamiamy "iptables -L", aby wyświetlić ciągi iptables:

POWIĘKSZAĆ

Krok 3
W rezultacie zobaczymy nasz stworzony łańcuch:

POWIĘKSZAĆ

20. Wyczyść łańcuchy lub reguły zapory sieciowej iptables w systemie Linux

Aby przeprowadzić to usunięcie, musimy wykonać następujące czynności:

 iptables -F 
Jak widać, iptables to kompleksowe rozwiązanie do centralnego zarządzania różnymi aspektami bezpieczeństwa w dystrybucjach Linuksa w celu osiągnięcia ulepszeń we wszystkim, co dotyczy prywatności.

wave wave wave wave wave