Descripción: firewall para un solo equipo conectado a traves de modem o adsl
Visto en Linux Total
#!/bin/bash # --------------------------------------------------------------------------------- # www.linuxtotal.com.mx # firewall para un solo equipo conectado a traves de modem o adsl # por: sergio.gonzalez.duran@gmail.com # (1) se eliminan reglas previas que hubiera y cadenas definidas por el usuario /sbin/iptables -F /sbin/iptables -X # (2) se establecen politicas "duras" por defecto, es decir solo lo que se autorice # explicitamente podra ingresar o salir del equipo /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT DROP /sbin/iptables -P FORWARD DROP # (3)a la interface lo (localhost) se le permite todo /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT # (4) evitamos ataques syn-flood limitando el acceso de paquetes nuevos # desde internet a solo 4 por segundo y los demas se descartan /sbin/iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 4 -j DROP # (5) se evitan paquetes tcp que sean nuevos y que no tengan el flag SYN # es decir, hay ataques o escaneos que llegan como conexiones nuevas # pero sin ser paquetes syn, definitivamente no nos interesan /sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # (6) todo lo que sea icmp (ping) y que intente entrar, se descarta # con esto bloqueamos cualquier tipo de paquetes con protocolo icmp # evitando ataques como el del ping de la muerte, aunque esta regla # podria provocar problemas de comunicacion con algunos ISP. iptables -A INPUT -p icmp -j DROP # (7) por ultimo las dos siguientes reglas permiten salir del equipo # (output) conexiones nuevas que nosotros solicitamos, conexiones establecidas # y conexiones relacionadas, y deja entrar (input) solo conexiones establecidas # y relacionadas. /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # ---------------------------------------------------------------------------------
Damos permisos de ejecución
chmod +x firewall.bash
Levantamos el firewall
./firewall.bash
Confirmamos que que el firewall esté arriba
iptables --list
Guardamos las reglas para que estén presentes cada que inicie el sistema.
iptables-save > /etc/firewall.conf
echo "#!/bin/sh" > /etc/network/if-up.d/iptables
echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/iptables
chmod +x /etc/network/if-up.d/iptables
0 comentarios:
Publicar un comentario