Problemas de descarga FTP con iptables: se permite la conexión al puerto 21 pero "la red es inaccesible"

Problemas de descarga FTP con iptables: se permite la conexión al puerto 21 pero "la red es inaccesible"

Estoy intentando conectarme a un sitio FTP pero con, por ejemplo wget,:

Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /gcrypt/gnutls ... done.
==> SIZE v3.2 ... done.
==> PASV ... couldn't connect to 217.69.76.55 port 40258: Network is unreachable

Si desactivo iptables, funciona, así que obviamente ese es el problema. Sin embargo, estoy seguro de que tengo todo configurado correctamente:

# Accept related, established...
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# ftp/http(s) clients
-A OUTPUT -p tcp -m multiport --dports 21,80,443,8080 -j ACCEPT
-A OUTPUT -p udp --dport 21 -j ACCEPT

¿Qué ocurre?

Respuesta1

Iptables necesita algunos módulos del kernel cargados para que "RELACIONADO, ESTABLECIDO" funcione. Si sus clientes HTTP están bien, obviamente tiene algunos de ellos.

 > lsmod | grep conntrack
 nf_conntrack_ipv4      20258  6 
 nf_defrag_ipv4         12702  1 nf_conntrack_ipv4
 xt_conntrack           12760  6 
 nf_conntrack           99996  2 xt_conntrack,nf_conntrack_ipv4

Sin embargo, el de ftp, nf_conntrack_ftpes adicional y, a diferencia de un controlador de dispositivo o sistema de archivos, el kernel no lo cargará automáticamente.

 > modprobe nf_conntrack_ftp

Deberías hacerlo. No existe, AFAIK, un método entre distribuciones para cargar módulos automáticamente en el arranque, pero en Fedora puedes agregar:

IPTABLES_MODULES="nf_conntrack_ftp"

a /etc/sysconfig/iptables-config. En otros sistemas que usan systemdpero no tienen este archivo, consulte man modules-load.d.

información relacionada