![]() |
Problema con IPTables en GNU/Linux Espero que me hecheis una mano, que llevo unas semanas con esto y no lo consigo. Bueno, estoy montando mi propio servidor, con las posibilidades de servidor via FTP y servidor HTTP. Bueno, a la hora de añadir variables y reglas a IPtables v1.3.8 me lo hace correctamente, puedo navegar, tengo todo en politica DROP, excepto lo que me interesa que se accede desde la red externa, como el puerto 80, 20 y 21. Hasta aqui va todo bien, me rechaza lo que no quiero, puedo navegar por la web y el Apache funciona perfectamente accediendo desde fuero, pero en cuanto al servidor via FTP, a la hora de logearme a nivel de red externa, por ejemplo, con mi DNS, me acepta en el sistema, quiero decir, que me detecta que el usuario es correcto, y el pass tambien e incluso aparece el banner que yo previamente he configurado, pero a la hora de listar el directorio, se queda parado, no lo lista y por lo tanto no puedes acceder, pero sin embargo, esta logeado. He probado esto aplicandole la politica de todo ACCEPT o desactivando IPTables y funciona el FTP perfetamente. Entonces esta claro que el pequeño error no proviene de mi LAN o a raiz de una mala configuracion del router, es dedibo a IPTables. Sin embargo, si puedo acceder con iptables activado desde mi propia LAN. Aqui os muesto el log del cliente FTP 200 TYPE es ahora 8-bit binary PWD Cargando listado de directorio / desde el servidor (LC_TIME=es_ES.UTF-8) PASV 227 Entering Passive Mode Y aqui os pongo el código Script que tengo para aplicar a IPTables #!/bin/sh ## SCRIPT de IPTABLES - Rijndael Server echo -n Aplicando Reglas de Firewall Rijndael... iptables -F INPUT iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state NEW -i lo -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED -i eth0 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -s 192.168.2.55 -j ACCEPT iptables -A OUTPUT -d 192.168.2.55 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -s 192.168.2.80 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -s 192.168.2.80 -p tcp --dport 5500:5950 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -s 192.168.2.68 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -s 192.168.2.68 -p tcp --dport 5500:5950 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -m state --state NEW -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT iptables -A OUTPUT -m state --state NEW -i eth0 -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -m state --state NEW -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT iptables -P INPUT DROP iptables -F FORWARD iptables -P FORWARD DROP iptables -F OUTPUT iptables -P OUTPUT ACCEPT # Deshabilitar la redirección del ping /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects /bin/echo "0" > /proc/sys/net/ipv6/conf/all/accept_redirects # 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 # Fin del script Bueno, espero que me podais hechar una mano. Muchas gracias de antemano! PD: uso OpenSUSE 10.3 |
| La zona horaria es GMT -6. Ahora son las 08:13. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.