Chociaż Linux jest jednym z najbardziej niezawodnych i bezpiecznych systemów operacyjnych, dzięki swoim cechom zawsze będzie jakaś luka, czy to nieodłączna od systemu, czy też niezamierzona przez użytkownika. Aby zwiększyć bezpieczeństwo Linuksa, mamy różne narzędzia przeznaczone do ochrony usług, procesów, profili lub plików, a dziś skupimy się na specjalnym o nazwie Iptables.
Co to jest IptablesIptables to zaawansowane narzędzie firewall, które jest zintegrowane z jądrem Linuksa, które jest częścią projektu o nazwie netfilter.
Dzięki Iptables będziemy mogli dokładnie i bezpośrednio zarządzać wszystkimi połączeniami przychodzącymi i wychodzącymi do serwera. Iptables jest opracowany dla adresowania IPv4, podczas gdy dla IPv6 mamy Ip6tables.
1. Struktura Iptables w Linuksie
Struktura, którą znajdujemy w Iptables jest następująca:
SurowyJest odpowiedzialny za filtrowanie pakietów przed każdą inną istniejącą tabelą
FiltrTo jest domyślna tabela aplikacji
NatSłuży do translacji adresów sieciowych
MangroweSłuży do zmiany wyspecjalizowanych pakietów sieciowych
BezpieczeństwoMoże być zaimplementowany dla reguł połączenia sieciowego Obowiązkowej Kontroli Dostępu
2. Struktura poleceń w Iptables na Linuksie
W Iptables każda reguła jest poleceniem, które wskazuje, jak powinien być obsługiwany ruch pakietów sieciowych.
Możemy użyć następującej struktury:
-A WEJŚCIE -i eth0 -p tcp -m stan - USTANOWIONO, POWIĄZANE --sport 80 -j AKCEPTUJUżyte parametry to:
- -A: Wskazuje, że reguły zostaną dodane do Iptables
- -i: Wskazuje interfejs, na którym reguła zostanie zastosowana
- -p: Odnosi się do protokołu, w którym reguła będzie miała zastosowanie
- -m: Odnosi się do faktu, że istnieje warunek, który musi być spełniony, aby zastosować regułę
- --stan: Zezwól na akceptację nowych połączeń
- --sport: wskazuje port źródłowy
- -j: (Skok) wskazuje, że mogą akceptować cały ruch spełniający podane warunki.
3. Tworzenie reguł za pomocą Iptables w systemie Linux
Chociaż możemy dodać reguły ręcznie, o wiele bardziej praktyczne jest utworzenie pliku reguł, a następnie zaimportowanie go. W takim przypadku stworzymy plik w ścieżce /tmp/iptables-ip4 i możemy użyć edytora do jego odpowiedniego dostosowania:
sudo nano / tmp / iptables-ip4Składnia będzie następująca:
* filtr # Zasady dodawania COMMITTeraz utworzymy następujące reguły w tym pliku:
Loopback = Jest to zewnętrzny interfejs Linuksa
-A WEJŚCIE -i lo -j AKCEPTUJĘ -A WYJŚCIE -o lo -j AKCEPTUJĘ
Ping = Pozwala nam sprawdzić połączenia sieciowe
-A INPUT -i eth0 -p icmp -m stan --stan NOWY --icmp-type 8 -j AKCEPTUJ -A INPUT -i eth0 -p icmp -m stan --stan USTANOWIONA, POWIĄZANA -j AKCEPTUJ -A WYJŚCIE - o eth0 -p icmp -j AKCEPTUJ
Sieć = Dzięki tym regułom kontrolujemy ruch przychodzący i wychodzący.
-A WEJŚCIE -i eth0 -p tcp -m stan --stan USTANOWIONO, ZWIĄZANE --sport 80 -j AKCEPTUJ -A WEJŚCIE -i eth0 -p tcp -m stan --stan USTANOWIONO, ZWIĄZANE --sport 443 -j AKCEPTUJ -A WYJŚCIE -o eth0 -p tcp -m tcp --dport 80 -j AKCEPTUJ -A WYJŚCIE -o eth0 -p tcp -m tcp --dport 443 -j AKCEPTUJ
W przypadku dodawania DNS skorzystamy z następujących wierszy:
-A WEJŚCIE -i ens3 -s 192.168.0.1 -p udp --sport 53 -m stan --stan USTANOWIONY, POWIĄZANY -j AKCEPTUJ -A WYJŚCIE -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j AKCEPTUJ
Notatka:Tutaj musimy w razie potrzeby zmodyfikować adres IP
Czas = Te reguły umożliwiają połączenie z NTP w celu prawidłowej synchronizacji czasu
-A WEJŚCIE -i eth0 -p udp -m stan --stan USTANOWIONO, ZWIĄZANE --dport 123 -j AKCEPTUJ -A WYJŚCIE -o eth0 -p udp -m udp --sport 123 -j AKCEPTUJ
Drukowanie = Umożliwia włączenie portów USB do podłączania drukarek
-A WEJŚCIE -p udp -m udp --dport 631 -j AKCEPTUJ -A WEJŚCIE -p tcp -m tcp --dport 631 -j AKCEPTUJ -A WYJŚCIE -p udp -m udp --sport 631 -j AKCEPTUJ -A WYJŚCIE -p tcp -m tcp --sport 631 -j AKCEPTUJ
E-mail = Możemy włączyć różne protokoły e-mail
# IMAP -A WEJŚCIE -i eth0 -p tcp -m stan --stan USTANOWIONY, POWIĄZANY --sport 993 -j AKCEPTUJ -A WYJŚCIE -o eth0 -p tcp -m tcp --dport 993 -j AKCEPTUJ
# POP3 -A WEJŚCIE -i eth0 -p tcp -m stan --stan USTANOWIONY, POWIĄZANY --sport 995 -j AKCEPTUJ -A WYJŚCIE -o eth0 -p tcp -m tcp --dport 995 -j AKCEPTUJ
# SMTP -A WEJŚCIE -i eth0 -p tcp -m stan --stan USTANOWIONY, POWIĄZANY --sport 465 -j AKCEPTUJ -A WYJŚCIE -o eth0 -p tcp -m tcp --dport 465 -j AKCEPTUJ
SSH = Włącz bezpieczne połączenia z komputerem za pomocą protokołu SSH
# Wejście -A WEJŚCIE -i ens3 -p tcp -m stan --stan NOWOŚĆ, USTANOWIONO --dport 22 -j AKCEPTUJ -A WYJŚCIE -o ens3 -p tcp -m stan --stan USTANOWIONO --sport 22 -j AKCEPTUJ
# Wyjście -A WYJŚCIE -o ens3 -p tcp -m stan --stan NOWY, USTANOWIONO --dport 22 -j AKCEPTUJ -A WEJŚCIE -i ens3 -p tcp -m stan --stan USTANOWIONO --sport 22 -j AKCEPTUJ
DHCP: Możemy stworzyć reguły autoryzujące adresowanie IP przez DHCP
-A WEJŚCIE -i eth0 -p udp -m stan --stan USTANOWIONO, ZWIĄZANE --sport 67:68 -j AKCEPTUJ -A WYJŚCIE -o eth0 -p udp -m udp --dport 67:68 -j AKCEPTUJ
Odrzuć wszystkie połączenia: Możemy dodać następujące wiersze, aby wyłączyć wszystkie powyższe:
-A WEJŚCIE -j ODRZUCENIE -DALEJ -j ODRZUCENIE -WYJŚCIE -j ODRZUCENIE
Wszystkie te wiersze zostaną dodane we wspomnianym pliku:
POWIĘKSZAĆ
Zapisujemy zmiany
Ctrl + O
Edytor opuszczamy za pomocą
Ctrl + X
4. Importowanie reguł za pomocą Iptables Linux
Po edycji pliku możemy zaimportować te reguły do Iptable, wykonując następujące polecenie:
sudo iptables -F && sudo iptables -XStatus reguł możemy zobaczyć za pomocą polecenia sudo iptables -S:
POWIĘKSZAĆ
W przypadku, gdy chcemy przywrócić wszystkie reguły, wykonamy następującą linię:
sudo iptables-restore </ tmp / itpables-ip4Jeśli chcemy, aby te reguły były trwałe, wykonamy następujące czynności:
sudo apt install iptables-persistentW ten sposób Iptables jest naszym najlepszym sprzymierzeńcem podczas konfigurowania firewalla w środowiskach Linux.