#!/bin/sh #Primer script de haldrik para iptables echo "Aplicando Reglas de Firewall..." ## FLUSH de reglas iptables -F iptables -X iptables -Z iptables -t nat -F ## Establecemos politica por defecto iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT ## Empezamos a filtrar ## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN # El localhost se deja (por ejemplo conexiones locales a mysql) iptables -A INPUT -i lo -j ACCEPT # A nuestras ip le dejamos todo iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -i eth1 -j ACCEPT # Al firewall tenemos acceso desde la red local iptables -A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT ## Ahora con regla FORWARD filtramos el acceso de la red local ## al exterior. Como se explica antes, a los paquetes que no van dirigidos al ## propio firewall se les aplican reglas de FORWARD # Aceptamos que vayan a puertos 80 iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 80 -j ACCEPT # Aceptamos que vayan a puertos https iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 443 -j ACCEPT # Aceptamos que consulten los DNS iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p udp --dport 53 -j ACCEPT # Denegamos trasferencias y videoconferencia a ciertas ip's iptables -A FORWARD -s 192.168.0.13 -i eth1 -j DROP iptables -A FORWARD -s 192.168.0.14 -i eth1 -j DROP iptables -A FORWARD -s 192.168.0.15 -i eth1 -j DROP # Permitimos trasferencias de archivos de msn y video conferencia iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 5004:65535 -j ACCEPT iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p udp --dport 5004:65535 -j ACCEPT # Y denegamos el resto. Si se necesita alguno, ya avisaran iptables -A FORWARD -s 192.168.0.0/25 -i eth1 -j DROP # Ahora hacemos enmascaramiento de la red local # y activamos el BIT DE FORWARDING (imprescindible!!!!!) iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE # Redirecciono todo lo que venga al puerto 80 hacia el 3128 que es el de squid iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 # Con esto permitimos hacer forward de paquetes en el firewall, o sea # que otras máquinas puedan salir a traves del firewall. echo 1 > /proc/sys/net/ipv4/ip_forward echo echo "OK . Verifique que lo que se aplica con: iptables -L -n" # Fin del script