17 de junio de 2014

Eliminar todas las reglas y cadenas en iptables

Este es un script que utilizo en todos mis firewalls para poder eliminar y dejar a cero las reglas creadas anteriormente en iptables.


Si estamos en una etapa de desarrollo del firewall y remotamente les recomiendo que a este script lo dejen ejecutando en el cron, la experiencia me indica que por alguna razón mientras creamos reglas y depuramos nuestro firewall podemos llegar a bloquear algún puerto en el que estamos conectados. Pero si lo dejamos como una tarea periódica cada 30 minutos lo podemos mitigar.

Primero podemos inicializar algunas variables de la siguiente manera

CAT=`which cat 2>/dev/null | head -n 1`
GREP=`which grep 2>/dev/null | head -n 1`
CUT=`which cut 2>/dev/null | head -n 1`
IPTABLES=`which iptables 2>/dev/null | head -n 1`


Con lo cuál, vamos a tener el path completo de su binario, independientemente del sistema que tengamos.

Luego completamos el script de la siguiente manera:

TABLES=`${CAT} /proc/net/ip_tables_names`
for t in ${TABLES}
do
    ${IPTABLES} -t "${t}" -F
    ${IPTABLES} -t "${t}" -X
    ${IPTABLES} -t "${t}" -Z

    # Find all default chains in this table.
    CHAINS=`${IPTABLES} -t "${t}" -nL | ${GREP} "^Chain " | ${CUT} -d ' ' -f 2`
    for c in ${CHAINS}
    do
    ${IPTABLES} -t "${t}" -P "${c}" ACCEPT
    done
done


Simple, fácil y efectivo.

Saludos!

No hay comentarios.:

Publicar un comentario

Entradas populares