- 1. Filtrowanie pakietów w systemie Linux
- 2. Wyświetl stan zapory
- 3. Zatrzymaj, uruchom ponownie lub uruchom iptables w systemie Linux
- 4. Dodaj nowe reguły zapory w systemie Linux
- 5. Usuń regułę zapory w systemie Linux
- 6. Przechowuj i przywracaj reguły iptables w systemie Linux
- 7. Ustaw domyślne reguły w Linuksie
- 8. Zablokuj adres IP w systemie Linux
- 9. Blokuj przychodzące żądania portów w systemie Linux
- 10. Czy zezwalać na ruch sieciowy przy użyciu adresu MAC w systemie Linux
- 11. Blokuj lub zezwalaj na żądania ICMP w systemie Linux
- 12. Otwórz szereg portów i adresów IP w systemie Linux
- 13. Ogranicz liczbę równoległych połączeń z serwerem według adresu IP klienta w systemie Linux
- 14. Ogranicz liczbę równoległych połączeń z serwerem według adresu IP klienta w systemie Linux
- 15. Wyczyść reguły NAT w systemie Linux
- 16. Zresetuj liczniki pakietów w systemie Linux
- 17. Sprawdź poprawność zapory w systemie Linux
- 18. Zezwól na dostęp w pętli za pomocą iptables w systemie Linux
- 19. Zdefiniuj nowe łańcuchy iptables w systemie Linux
- 20. Wyczyść łańcuchy lub reguły zapory sieciowej iptables w systemie Linux
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 restartKrok 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 ACCEPTKrok 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-numbersKrok 2
na przykład dodajmy następującą regułę:
iptables -I INPUT 2 -s 192.168.0.50 -j DROPKrok 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 | mniejKrok 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 wieKrok 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 PRZODUKrok 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 DROPKrok 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 DROPKrok 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 AKCEPTUJKrok 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 AKCEPTUJW 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 DROPKrok 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-numberKrok 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 -ZKrok 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 startKrok 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 -FJak 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.