Hola ya estoy desesperado... he mirado en google, la documentación, algún libro... pero no consigo configurar correctamente el cortafuegos :( Os cuento: Tengo una red privada en casa y me gustaría montar un cortafuegos. Hasta ahora he tenido lo siguiente: <--- #!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -A POSTROUTING -t nat -j MASQUERADE -o ppp0 /sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4661 -j DNAT --to 172.16.0.3:4661 /sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4662 -j DNAT --to 172.16.0.3:4662 /sbin/iptables -A PREROUTING -t nat -p udp -i ppp0 --dport 4665 -j DNAT --to 172.16.0.3:4665 # INBOUND POLICY # Accept inbound packets that initiate SSH sessions /sbin/iptables -A INPUT -p tcp -j ACCEPT --dport 22 -m state --state NEW # Accept inbound packets that initiate HTTP sessions /sbin/iptables -A INPUT -p tcp -j ACCEPT --dport 80 -m state --state NEW ;; ---> Pero como todo quedaba demasiado abierto me he decidido a cerrar un poco más los accesos. El resultado lo teneis en el adjunto iptables_full Problemas que me han aparecido: -Aunque me permite acceder a la web de mi casa, no me permite navegar fuera de mi red. -No me permite enviar correo: una máquina lo envía mediante exim directamente y la otra mediante evolution+smtp de un isp. La prueba la he hecho con la primera. -Es posible que si me permita recibir correo desde servidores externos pop3 (en un log de snort aparece la conexión a los buzones) -No me permite utilizar clientes de mensajería instantanea (tipo MSN, etc) -No me permite acceder a las cuentas FTP de otros sitios, teniendo que conectarme mediante ssh al cortafuegos para poder establecer la conexión FTP con los servidores externos. -Por último, eMule. No estoy seguro porque estaba descargando pero mucho me temo que tal y como está el panorama... me dará low-id Se me olvidaba... una de las máquinas tiene que trabajar de vez en cuando con WinXP. La salida a internet la hace mediante SAMBA. Imagino que también tendrá que aparecer algo en el cortafuegos ¿me equivoco? Desde luego he conseguido lo que buscaba... cerrar más los accesos al sistema... pero los he cerrado demasiado :'( Ya no se qué hacer, qué cambiar ni qué tocar... ¿alguna ayuda? Gracias por adelantado. Un saludo. -- Fermín Manzanedo | Badajoz - Spain | Utilice formatos libres para http://efiex.homelinux.org/~fermin | compartir información. No utilice Llave pública gpg en pgp.rediris.es | .doc .xls .gif... Powered by Debian GNU/Linux "Sid" | así, gana la humanidad ;)
#!/bin/sh # # last modified 28 Dec 2003 # IPTABLES=/sbin/iptables test -x $IPTABLES || exit 5 case "$1" in start) echo -n "Cargando el filtrado de paquetes de la red" # SETUP -- Necesario para todos los host # Carga los módulos del núcleo modprobe ip_tables modprobe ip_conntrack modprobe iptable_nat modprobe ipt_MASQUERADE # Elimina reglas antiguas y tablas $IPTABLES --flush $IPTABLES -F -t nat $IPTABLES --delete-chain # Establece reglas de denegación por defecto para las tres cadenas $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT DROP # Permite loopback $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT # Permite actuar de pasarela /sbin/iptables -A POSTROUTING -t nat -j MASQUERADE -o ppp0 $IPTABLES -A FORWARD -i eth0 -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -s 172.16.0.0/12 -j ACCEPT $IPTABLES -A FORWARD -d 172.16.0.0/12 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward # Permite conectarse a idefix al eMule /sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4661 -j DNAT --to 172.16.0.3:4661 /sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4662 -j DNAT --to 172.16.0.3:4662 /sbin/iptables -A PREROUTING -t nat -p udp -i ppp0 --dport 4665 -j DNAT --to 172.16.0.3:4665 # Para evitar (de manera rudimentaria) ip-spoofing $IPTABLES -A INPUT -s 255.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPTABLES -A INPUT -s 255.0.0.0/8 -j DROP $IPTABLES -A INPUT -s 0.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPTABLES -A INPUT -s 0.0.0.0/8 -j DROP $IPTABLES -A INPUT -s 127.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPTABLES -A INPUT -s 127.0.0.0/8 -j DROP $IPTABLES -A INPUT -s 192.168.0.0/16 -j LOG --log-prefix "Spoofed source IP!" $IPTABLES -A INPUT -s 192.168.0.0/16 -j DROP # Tengo que añadir la interface a la que me refiero para que permita las # conexiones desde la red interna. $IPTABLES -A INPUT -i ppp0 -s 172.16.0.0/12 -j LOG --log-prefix "Spoofed source IP!" $IPTABLES -A INPUT -i ppp0 -s 172.16.0.0/12 -j DROP $IPTABLES -A INPUT -s 10.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPTABLES -A INPUT -s 10.0.0.0/8 -j DROP # No permitir el paso de paquetes con el indicativo --syn $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Stealth scan attempt?" $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # Política de filtrado de paquetes: # POLÍTICA DE ENTRADA # Aceptar paquetes entrantes que sean parte de una sesión previamente autorizada $IPTABLES -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # Aceptar paquetes entrantes que inicien sesión SSH $IPTABLES -A INPUT -p tcp -j ACCEPT --dport 22 -m state --state NEW # Permitir paquetes entrantes que inicien sesión HTTP $IPTABLES -A INPUT -p tcp -j ACCEPT --dport 80 -m state --state NEW # Hacer log de todo lo que no se acepte $IPTABLES -A INPUT -j LOG --log-prefix "Dropped by default:" # POLITICA DE SALIDA # Si es parte de una conexión aprovada, dejar salir. $IPTABLES -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT # Permitir consultad de DNS $IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT # Hacer log de todo lo que no se acepte $IPTABLES -A OUTPUT -j LOG --log-prefix "Dropped by default:" ;; wide_open) echo -n "PELIGRO! Unloading Packet Filters!!" # Unload filters and reset default policies to ACCEPT. # FOR EMERGENCY USE ONLY -- else use 'stop' !! $IPTABLES --flush $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT ;; stop) echo -n "Filtrado detenido..." # Unload all fw rules, leaving default drop policies $IPTABLES --flush $IPTABLES -F -t nat ;; status) echo "Preguntando por el estado de iptables (via iptables --list)..." $IPTABLES --line-numbers -v --list ;; *) echo "Utilizacion: $0 {start|stop|wide_open|status}" exit 1 ;; esac
Attachment:
signature.asc
Description: Digital signature