Włącz iptables na jednym interfejsie

16

Chcę, aby iptables filtrował tylko jeden interfejs, eth0, który jest skierowany do WAN. Jak można to zrobić? I chcę, aby porty ftp i ssh były otwarte na eth0.

nixnotwin
źródło
Przeczytaj strony podręcznika iptables - lub w przypadku, gdy źle zrozumiałem twój problem, doprecyzuj pytanie.
Jari Jokinen

Odpowiedzi:

25

Tak więc dla wszystkich interfejsów, ale takich, które chcesz akceptować cały ruch, a na eth0 chcesz porzucić cały ruch przychodzący oprócz ftp i ssh.

Po pierwsze, moglibyśmy ustalić domyślną zasadę akceptowania całego ruchu.

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

Następnie możemy zresetować reguły zapory.

iptables -F

Teraz możemy powiedzieć, że chcemy zezwolić na ruch przychodzący na eth0, który jest częścią połączenia, na które już zezwoliliśmy.

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Ponadto chcemy zezwolić na przychodzące połączenia ssh na eth0.

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Ale cokolwiek innego przychodzącego na eth0 powinno zostać porzucone.

iptables -A INPUT -i eth0 -j DROP

Aby uzyskać nieco więcej głębi, zobacz ten wpis wiki CentOS .

FTP jest trudniejszy niż ssh, ponieważ może korzystać z losowego portu, więc zobacz poprzednie pytanie .

Sciurus
źródło
5
OSTRZEŻENIE!!! Wykonaj „iptables -P ...” przed „iptables -F”. Jeśli twoje obecne reguły są ustawione tak, aby domyślnie ograniczać ruch, uruchomienie -F zablokuje cię po wyjęciu z pudełka. Dlatego najlepszym rozwiązaniem jest utrzymanie domyślnej zasady, aby zezwalać, a zwłaszcza dodanie reguły, aby upuszczać cały pozostały ruch.
Coops
8

Coś takiego powinno wystarczyć:

iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT
Bart De Vos
źródło
1
Dość dużo miejsca (choć może trochę ładniej niż „Drop WSZYSTKO” na interfejsie WAN, co?) - Napisz reguły, aby filtrować interfejs, który chcesz filtrować, i tylko ACCEPTwszystko na innych interfejsach.
voretaq7
4

Opcją określenia interfejsu w regule iptables jest -inp -i eth0. :

Derp A. Round
źródło
4

To bardzo proste, kiedy tworzysz iptablesregułę, musisz określić interfejs. Można określić kartę LAN, na której iptablespowinien działać-i

Następujące zasady mogą dać ci dobry przykład

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset 

Ostatnią zasadą jest odrzucenie dowolnego innego pakietu, który nie pasuje do pierwszych 2 reguł. Wszystkie reguły w iptablessą wykonywane w podanej kolejności, więc reguła odrzucania pakietów jest zawsze ostatnia.

zarejestrowany użytkownik
źródło