sábado, 26 de diciembre de 2009

Script y reglas Firewall con Iptables


Les dejo un script de configuración para las reglas de un firewall o cortafuegos con iptables. Las fundamentaciones pueden encontrarlas en las referencias y satisfacer sus necesidades particulares. Cualquier mejora pueden dejar sus comentarios para enriquecer el script.

#!/bin/sh
# /etc/rc.d/rc.firewall
# GNU/Linux FIREWALL con Iptables

f_start() {
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

# A nuestro firewall tenemos acceso total desde nuestra IP
# iptables -A INPUT -s 127.0.0.1 -j ACCEPT

# Establecemos politicas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Permitir todo a Localhost
iptables -A INPUT -j ACCEPT -i lo

# Enmascaramiento de la red local
# activamos el BIT DE FORWARDING
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE


# www
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# mail (25, 110, 143)
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
# ftp
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
# ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# xdmcp
iptables -A INPUT -p udp --dport 177 -j ACCEPT
# cups/lpd
iptables -A INPUT -p udp --dport 631 -j ACCEPT
# Reglas específicas por ejemplo: bittorrent
# iptables -A INPUT -p tcp --dport 6881:6883 -j ACCEPT

# apply rules
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Firewall iniciado..."
}

f_stop() {
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "Firewall parado..."
}

f_status() {
iptables -nL
}

f_restart() {
fw_stop
fw_start
}

case "$1" in
'start')
f_start
;;
'stop')
f_stop
;;
'status')
f_status
;;
'restart')
f_restart
;;
*)
echo "Usage: $0 start|stop|restart|status"
esac


Referencias:

No hay comentarios:

Publicar un comentario