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. iptables
Narzę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 filter
tabela, która służy do zastosowania podstawowych reguł zapory do trzech łańcuchów. Trzy domyślne łańcuchy w filter
tabeli są INPUT
, OUTPUT
i 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ć DROP
pakiety, co oznacza po prostu ignorować i nie odpowiadać. Możesz REJECT
pakiety, w których odpowiedź icmp byłaby wysyłana do źródła odmowy. Wreszcie możesz ACCEPT
je zrobić , co pozwala pakietom kontynuować routing.
Często z zewnętrzną zaporą ogniową domyślny wybór będzie DROP
przeciwny 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: -A
oznacza 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. -D
do usunięcia.
Do DROP
przychodzącego pakietu przychodzącego z 192.168.235.235
:
iptables -A INPUT -s 192.168.235.235 -j DROP
Skacze do DROP
celu 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ć -p
protokół, -s
źródło pakietu, miejsce -d
docelowe pakietu, port docelowy, port --dport
źródłowy --sport
i wiele innych flag, które będą miały wpływ na sposób traktowania pakietów przez regułę.
Jeśli twoją domyślną INPUT
zasadą było DROP
i chcesz zezwolić wszystkim w 192.168.123.0/24
podsieci 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 DROP
wszystkich łańcuchów. Każdy łańcuch ma domyślne zasady określone przez -P
flagę. Nawet jeśli masz ustawione domyślne zasady DROP
, nadal zaleca się, aby ostatni wpis w łańcuchu DROP
również był.
Na przykład, aby zmienić DROP
zasadę 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: -X
usuwa wszystkie utworzone łańcuchy. -F
opróżnia wszystkie zasady.
Istnieją natywne narzędzia do zapisywania i przywracania reguł. W szczególności iptables-save
i iptables-restore
. Większość współczesnych dystrybucji Linuksa ma save
i restore
dział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.
Samouczek Iptables
źródło
Ostatnio znalazłem https://help.ubuntu.com/community/IptablesHowTo pomocne. Nie wydaje mi się, żeby cokolwiek tam było, szczególnie dla Ubuntu.
źródło