Odnośniki do oficjalnej i zalecanej dokumentacji znajdują się na stronie internetowej Netfilter.
To nie jest nowy przedmiot, zasoby są nieograniczone .
Większość podstawowych poleceń jest dość intuicyjna i może łatwo odnosić się do strony podręcznika .
netfilter, który jest technologią poziomu jądra, która umożliwia filtrowanie pakietów, jest dość zaawansowany. Istnieją dodatkowe tabele, które mogą zniekształcać pakiety, tłumaczyć pakiety i w inny sposób wpływać na routing. iptablesNarzędzie jest Userland narzędzie do interakcji z netfiltra. Jeśli chcesz dowiedzieć się o zaawansowanej funkcjonalności, sugeruję zapoznać się z wyżej wymienioną dokumentacją. Aby zapoznać się z podstawowymi funkcjami, przeczytaj dalej.
Aby wyświetlić listę wszystkich istniejących reguł:
iptables -L -n
-n zapobiega rozwiązaniu ips przez iptables, co zapewnia szybsze wyjście.
Domyślna tabela to filtertabela, która służy do zastosowania podstawowych reguł zapory do trzech łańcuchów. Trzy domyślne łańcuchy w filtertabeli są INPUT, OUTPUTi FORWARD.
Łańcuchy są w dużej mierze oczywiste. Łańcuch INPUT wpływa na przychodzące pakiety, łańcuch OUTPUT wpływa na lokalnie generowane pakiety, a na koniec DO PRZODU dla wszystkich pakietów, które są kierowane przez system.
Wśród celów, które możesz określić, możesz tworzyć DROPpakiety, co oznacza po prostu ignorować i nie odpowiadać. Możesz REJECTpakiety, w których odpowiedź icmp byłaby wysyłana do źródła odmowy. Wreszcie możesz ACCEPTje zrobić , co pozwala pakietom kontynuować routing.
Często z zewnętrzną zaporą ogniową domyślny wybór będzie DROPprzeciwny REJECT, ponieważ zmniejsza widoczny zasięg sieci w Internecie. Na przykład adres IP, który w przeciwnym razie ogranicza usługi do określonego hosta, byłby mniej widoczny DROP.
Uwaga: -Aoznacza dopisać na końcu łańcucha. Jeśli chcesz wstawić na górę, możesz użyć -I. Wszystkie reguły są przetwarzane od góry do dołu. -Ddo usunięcia.
Do DROPprzychodzącego pakietu przychodzącego z 192.168.235.235:
iptables -A INPUT -s 192.168.235.235 -j DROP
Skacze do DROPcelu dla wszystkich protokołów pochodzących z tego adresu IP.
Akceptować:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
Aby uniemożliwić dostęp do tego adresu IP z lokalnego serwera lub sieci:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
Możesz określić -pprotokół, -sźródło pakietu, miejsce -ddocelowe pakietu, port docelowy, port --dportźródłowy --sporti wiele innych flag, które będą miały wpływ na sposób traktowania pakietów przez regułę.
Jeśli twoją domyślną INPUTzasadą było DROPi chcesz zezwolić wszystkim w 192.168.123.0/24podsieci na dostęp do SSH na twoim serwerze, oto przykład:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
Zgadza się, możesz również użyć notacji CIDR !
Ogólnie rzecz biorąc, najlepsza domyślna polityka dotyczy DROPwszystkich łańcuchów. Każdy łańcuch ma domyślne zasady określone przez -Pflagę. Nawet jeśli masz ustawione domyślne zasady DROP, nadal zaleca się, aby ostatni wpis w łańcuchu DROPrównież był.
Na przykład, aby zmienić DROPzasadę dla łańcuchów INPUT, FORWARD i OUTPUT:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Bądź ostrożny , jeśli określisz domyślną politykę DROP dla INPUT na zdalnym systemie bez uprzedniego umożliwienia sobie dostępu SSH, możesz uniemożliwić sobie dostęp do systemu. W systemie zdalnym można określić tymczasową tabelę crontab, aby opróżniać wszystkie reguły co 5 minut jako zabezpieczenie przed awarią.
Aby usunąć wszystkie reguły i zezwolić na cały ruch:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
Uwaga: -Xusuwa wszystkie utworzone łańcuchy. -Fopróżnia wszystkie zasady.
Istnieją natywne narzędzia do zapisywania i przywracania reguł. W szczególności iptables-savei iptables-restore. Większość współczesnych dystrybucji Linuksa ma savei restoredziała w pliku inicjującym iptables dostarczonym z systemem.
Istnieją inne sprawdzone metody zapory, takie jak upuszczanie zniekształconych pakietów i inny rodzaj niepożądanego ruchu. Jest to jedna zaleta korzystania z narzędzia frontonu, takiego jak Shorewall , ponieważ domyślnie implementuje wiele z tych zasad. Niemniej jednak zgadzam się z twoim podejściem i wolę również bezpośrednio przestrzegać własnych zasad, a te same najlepsze praktyki można wdrożyć bez interfejsu użytkownika.