Posts from July 12, 2012
-
FTP modo Pasivo bloqueado mediante IPTables
Recientemente tuve este problema al bloquear el Internet en la empresa donde trabajo, y es que cuando uno intentaba conectarse a un servidor FTP si iniciaba sesión, pero no podían leer los directorios.
Esto sucede ya que en una conexión FTP no solo se usa el puerto 20 o 21 para la transmisión de datos, si no se usan otros adicionales aleatorios.
La solución es cargar los módulos ip_conntrack_ftp e ip_nat_ftp mediante los comandos
Terminal window /sbin/modprobe ip_conntrack/sbin/modprobe ip_conntrack_ftp/sbin/modprobe ip_nat_ftpVerificamos que esté funcionando recibiendo unos valores con este comando:
Terminal window lsmod | grep conntrack_ftpCargamos una regla en el IP Tables para que permita esa conexión
Terminal window iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTCon esto el problema quedó resuelto.
-
Java 1.7.0 y FTP de Windows 7 modo Pasivo
El problema que se da al intentar conectarse mediante FTP con cualquier aplicación que use Java (llamese Netbeans, aplicación propia, etc) al enviar el comando PASV la conexión se cierra.
La solución es mas que nada un parche para el problema real que es el Windows Firewall.
Para solucionar este problema en una consola con privilegios elevados hay que colocar el siguiente comando:
netsh advfirewall set global StatefulFtp disableCon esto el problema se solucionaría, en caso falso, probar poniendo el binario de Java como excepción en el Firewall (algo muy inseguro…) o corre el binario con la opción “-Djava.net.preferIPv4Stack=true” que deshabilita IPv6 y usa sockets AF_INET exclusivamente.
Anexo el link para mas información sobre el problema: java.net.Socket closes when “PASV” is sent on an authenticated FTP connection <http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077696>