|
Iptables - pytanie o teorię
LordRuthwen - 07-04-2010 09:48
Witam. Zadam wam takie dość podstawowe pytanie, aczkolwiek nurtujące mnie od jakiegoś czasu. Najpierw powinno się blokować a potem zezwalać czy najpierw zezwalać a potem blokować? Np: Chcąc zablokować ruch po porcie 25 dla jakiegoś hosta trzeba to zrobić tak: iptables -P INPUT DROP iptables -P FORWARD DROP . . . iptables -A INPUT -t filter -i eth0 -m mac --mac-source AA:AA:AA:AA:AA:AA -s 192.168.0.2 -j ACCEPT iptables -A FORWARD -t filter -i eth0 -m mac --mac-source AA:AA:AA:AA:AA:AA -s 192.168.0.2 -j ACCEPT iptables -A INPUT -t filter -i eth0 -p tcp -s 192.168.0.2/32 --dport 25 -j DROP
czy tak: iptables -P INPUT DROP iptables -P FORWARD DROP . . . iptables -A INPUT -t filter -i eth0 -p tcp -s 192.168.0.2/32 --dport 25 -j DROP iptables -A INPUT -t filter -i eth0 -m mac --mac-source AA:AA:AA:AA:AA:AA -s 192.168.0.2 -j ACCEPT iptables -A FORWARD -t filter -i eth0 -m mac --mac-source AA:AA:AA:AA:AA:AA -s 192.168.0.2 -j ACCEPT
Pytam, bo właśnie jeden gość sieje mi spamem po porcie 25 i wszelkie próby kontaktu z nim zawodzą a dostałem już wiadomość na abuse.
goofy - 07-04-2010 10:24
Wykonywana jest pierwsza pasujaca regula. Jezeli najpierw puszczasz wszystko, lacznie z portem 25, to reszta nie bedzie juz sprawdzana. Moim zdaniem, najpierw powinienes blokowac.
grzesiek - 07-04-2010 15:23
Nie ma łańcucha mangle, za to jest tablica. Pakiety przechodzą przez nią przed tablicami nat i filter. Każda z tych tablic ma takie same łańcuchy. Co do pytania, ja bym przepuścił to co chcę, resztę domyślna polityka odrzuci.
LordRuthwen - 07-04-2010 21:59
Czyli, że jakbym to puścił przez mangle to nie miałaby znaczenia kolejność?
Yampress - 07-04-2010 22:54
sa dwie różne szkoły albo tak albo tak.
bzyk_ - 08-04-2010 07:45
Ja bym sie w niepotrzebne uzywanie mangle nie bawil. Generalna zasada z iptalbes jest taka; tworzy sie jak najprostsze i najkrotsze reguly, bo pozniej bardzo latwo sie przy tym pogubic. A, i w Twojej konkretnie sprawie przydaje sie bardzo sztuczka lemata; modprobe ipt_recent ip_list_tot=32 iptables -A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT iptables -A FORWARD -p tcp --dport 25 -m recent --name SMTP --seconds 60 --update -j DROP iptables -A FORWARD -p tcp --dport 25 -m limit --limit 1/second --limit-burst 5 -j LOG --log-level info --log-prefix "smtp " iptables -A FORWARD -p tcp --dport 25 -m recent --name SMTP --set -j ACCEPT
Stosuje na to roznych maszynach (w sieciach +300 ludzi) i sprawuje sie znakomicie. Po wiecej odsylam do zrodla; http://www.lemat.priv.pl/index.php?m=page&pg_id=78
grzesiek - 08-04-2010 12:00
iptables -A INPUT -t filter -i eth0 -p tcp -s !192.168.0.2/32 --dport 25 -j ACCEPT
Jako pierwsze - najefektywniej.
Najpierw przepuszcza się tych co chcesz przepuścić a ci, których nie chcesz, powinni poczekać na swojego DROP-a, nie sądzisz? :)
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|