#!/bin/bash ###### Configuración del script ###### # Modificar el valor de las siguientes variables para # abrir/cerrar puertos de nuestro PC. # Escribir los puertos separados por comas y sin espacios. # Ejemplo: PUERTOS_PERMITIDOS=21,80 IFACE=eth0 PUERTOS_PERMITIDOS= PUERTOS_PROHIBIDOS=10000 ###### Definicion de reglas de filtrado ###### # Para configurar las reglas utilizar en la # medida de lo posible las variables anteriores # y modificar lo mínimo esta parte del script case "$1" in start) echo "Generando reglas de filtrado..." # Borramos las reglas de las cadenas y los contadores iptables -F iptables -X iptables -Z # Establecemos las politicas por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP # Asegurarnos de que las nuevas conexiones tcp sean SYN iptables -A INPUT -i $IFACE -p tcp ! --syn -m state --state NEW -j DROP # Permitimos conexiones ya establecidas y desde loopback iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state NEW -i lo -j ACCEPT ##### Filtrado de puertos ###### # Permitimos acceso a los puertos permitidos if [ $PUERTOS_PERMITIDOS ]; then iptables -A INPUT -m state --state NEW -i $IFACE -p tcp -m multiport --dports $PUERTOS_PERMITIDOS -j ACCEPT fi # Cerramos cerramos los puertos prohibidos if [ $PUERTOS_PROHIBIDOS ]; then iptables -A INPUT -m state --state NEW -i $IFACE -p tcp -m multiport --dports $PUERTOS_PROHIBIDOS -j DROP fi # Cerramos los puertos del 1 al 1024 iptables -A INPUT -i $IFACE -p tcp --dport 1:1024 -j DROP iptables -A INPUT -i $IFACE -p udp --dport 1:1024 -j DROP ;; stop) echo "Borrando reglas de filtrado..." # Borramos las reglas de las cadenas y los contadores iptables -F iptables -X iptables -Z # Establecemos la política por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP ;; restart) $0 stop $0 start ;; status) iptables -nL ;; *) echo "Uso: $0 { start | stop | restart | status }" exit 1 ;; esac exit 0