Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2008, 12:25
AloneInTheAss
 
Fecha de Ingreso: mayo-2008
Mensajes: 39
Antigüedad: 16 años, 6 meses
Puntos: 1
Problema con IPTables

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