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 ""