### Activar las reglas de iptables, sólo si no están ya puestas my @iptables = grep { /^(?:DROP|ACCEPT).*? recent: / } qx(iptables -L -n); # DROP Correo system("iptables -I INPUT -i eth0 -p tcp -m multiport --dport 25,465 -m recent --update --seconds 36000 --name SPAM -j DROP") unless @iptables ~~ /SPAM/; system("iptables -I INPUT -i eth0 -p tcp -m multiport --dport 25,465 -m recent --update --seconds 36000 --name RELAY -j DROP") unless @iptables ~~ /RELAY/; system("iptables -I INPUT -i eth0 -p tcp -m multiport --dport 25,465 -m recent --update --seconds 36000 --name NOUSER -j DROP") unless @iptables ~~ /NOUSER/; system("iptables -I INPUT -i eth0 -p tcp -m multiport --dport 25,465 -m recent --update --seconds 360 --name NOAUTH -j DROP") unless @iptables ~~ /NOAUTH/; system("iptables -I INPUT -i eth0 -p tcp -m multiport --dport 25,465 -m recent --update --seconds 36000 --name BADCHR -j DROP") unless @iptables ~~ /BADCHR/; system("iptables -I INPUT -i eth0 -p tcp -m multiport --dport 25,465 -m recent --update --seconds 36000 --name MANYCN -j DROP") unless @iptables ~~ /MANYCN/; # ACCEPT Correo system("iptables -I INPUT -i eth0 -p tcp -m multiport --dport 25,110,143,465,993,995 -m recent --update --name LEGAL -j ACCEPT") unless @iptables ~~ /LEGAL/; # DROP incondicional system("iptables -I INPUT -i eth0 -p tcp -m recent --update --seconds 36000 --name BLOCK -j DROP") unless @iptables ~~ /BLOCK/;