Este es un ejemplo real y más completo que se tiene en servicio en uno de muchos servidores que LinuxSC ha confifurado.
A continuacion anexo el script.
#!/bin/sh # Firewall.sh - Firewall configurable para WS o Server. Host por host # (c) Linux Solutions Center # Probe: True # Date: 29-Ago-07 echo " " echo " Aplicando reglas de Firewall ..." echo " " iptables -P INPUT DROP iptables -P FORWARD DROP iptables --flush iptables --delete-chain ## Firewall minimo para WS - Servers ## iptables -P FORWARD DROP iptables -P INPUT DROP iptables -A INPUT -i lo --source 127.0.0.1 --destination 127.0.0.1 -j ACCEPT # Entrada al servidor desde determinados hosts # Funciona como un TCP-Wrappers iptables -A INPUT -s 111.222.333.444 -j ACCEPT iptables -A INPUT -s 11.22.33.0/24 -j ACCEPT iptables -A INPUT -s 1.2.3.4 -j ACCEPT # #Aceptamos pings # iptables -A INPUT -m state --state "ESTABLISHED,RELATED" -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT # Servicios que corren en el servidor # #iptables -A INPUT -p tcp --dport ssh -j ACCEPT iptables -A INPUT -p tcp --dport smtp -j ACCEPT iptables -A INPUT -p tcp --dport http -j ACCEPT iptables -A INPUT -p tcp --dport https -j ACCEPT iptables -A INPUT -p tcp --dport domain -j ACCEPT iptables -A INPUT -p udp --dport domain -j ACCEPT iptables -A INPUT -p tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp --dport imap -j ACCEPT # # Cerramos el rango de los puertos privilegiados. Cuidado con este tipo de # barreras, antes hay que abrir a los que si tienen acceso. iptables -A INPUT -p tcp --dport 1:1024 -j DROP iptables -A INPUT -p udp --dport 1:1024 -j DROP # Salvamos los logs del Firewall. iptables -A INPUT -j LOG -m limit --limit 40/minute iptables -A INPUT -j DROP # Savamos las politicas iptables-save > /etc/sysconfig/iptables echo ": Done." echo "" # ## #