Pues aquí me gustaria que todos aportasen su granito de arena bien fuese posteando su iptables o comentando fallos de los demás para asi poder buscar el firewall perfecto o casi nunca nada es perfecto.
Mi firewall es de mi pc que no es server ni nada por el estilo, simplemente herramienta de escritorio.
#!/bin/sh
## Creado por CorriuS tras consultar los manuales de
www.pello.info y
www.ubuntu-es.org
echo -n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Deshabilitar broadcast
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Deshabilitar el ping… quizá discutible.
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Deshabilitar la redirección del ping
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
# Registrar los accesos extraños, paquetes falseados, etc..
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
# Anti-flooding o inundación de tramas SYN.
iptables -N syn-flood
iptables -A INPUT -i $IFACE -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -j DROP
# Guardar los accesos con paquetes fragmentados, recurso utilizado para tirar
# servidores y otras maldades (bug en Apache por ejemplo)
iptables -A INPUT -i $IFACE -f -j LOG --log-prefix "Fragmento! "
iptables -A INPUT -i $IFACE -f -j DROP
# Anti-spoofing (falseo de ip origen)
iptables -A INPUT -i $IFACE -s $IPADDR -j DROP
iptables -A INPUT -i $IFACE -s $CLASS_A -j DROP
iptables -A INPUT -i $IFACE -s $CLASS_B -j DROP
iptables -A INPUT -i $IFACE -s $CLASS_C -j DROP
iptables -A INPUT -i $IFACE -s $CLASS_D_MULTICAST -j DROP
iptables -A INPUT -i $IFACE -s $CLASS_E_RESERVED_NET -j DROP
iptables -A INPUT -i $IFACE -d $LOOPBACK -j DROP
iptables -A INPUT -i $IFACE -d $BROADCAST -j DROP
# Proxy Transparent: peticiones al puerto 80 redirigir al SQUID(3128)
iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0/0 --dport 80 -j REDIRECT --to 3128
## Empezamos a filtrar? no! empezamos a abrir! porque ahora esta #TODO denegado.
## Debemos decir de manera explicita qué es lo que queremos abrir
# Operar en localhost sin limitaciones
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
# Permitimos que la maquina pueda salir a la web
/sbin/iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
# Y tambien a webs seguras
/sbin/iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Reglas necesarias para FTP pasivo y activo. Se permiten conexiones entrantes YA establecidas
/sbin/iptables -A INPUT -p tcp -m tcp --sport 20:21 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 20:21 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 1024:65535 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# Permitimos la consulta a un primer DNS
/sbin/iptables -A INPUT -s 192.168.0.1 -p udp -m udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.0.1 -p udp -m udp --dport 53 -j ACCEPT
#Abrimos los puertos del emule
/sbin/iptables -A INPUT -p tcp -m tcp --dport 4662 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --sport 4662 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --dport 4672 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --sport 4672 -j ACCEPT
#Ahora para el amsn
/sbin/iptables -A INPUT -p tcp -m tcp --dport 6891:6895 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --sport 6891:6895 -j ACCEPT
# Barrera de backup por si cambiamos a modo ACCEPT temporalmente
# Con esto protegemos los puertos reservados y otros well-known
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p udp -m udp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1723 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 5432 -j DROP
echo " OK . Verifique que lo que se aplica con: iptables -L -n"
# Fin del script
Aquí esta el mio a ver si alguien mas se anima y pone el suyo o critica el mio xD
Saludos