
He tenido problemas con mi servidor ftp que he intentado solucionar durante más de una semana.
Mi configuración:
- Estoy ejecutando Raspbian en una Raspberry Pi.
- Mi servidor ftp es ftpd puro y lo estoy ejecutando con estos modificadores:
/usr/local/sbin/pure-ftpd -D -C 5 -E -A -H -x -p 35000:36000 -u 0 -y 5:3 -Y 1
- Lo he compilado con la opción "--with-tls"
- estoy usandocifrado TLS explícito, (También probé implícito, mismo resultado)
- He reenviado mi rango de puertos pasivos según lo definido por el modificador -p en pure-ftpd
- También he reenviado el puerto 20 al 21.
Otros servidores que estoy ejecutando:
- un servidor samba
- Un servidor web Apache
- Servidor de socket Python personalizado
- y el servidor shh/sftp integrado
También tengo el cliente DUC no-ip ejecutándose
En resumen, estos son los problemas que tengo con pure-ftpd:
- FTP en LAN sin TLS (Activo y Pasivo): Funcionando
- FTP en LAN con TLS (Activo y Pasivo): Funcionando
- FTP en WAN sin TLS (pasivo): funcionando
- FTP en WAN con TLS (activo y pasivo): no funciona
- No se puede cambiar el puerto porque no funciona en WAN
Aquí están los registros de errores y las cosas que he probado:
resultados de ftptest.net (para FTP con tls):
........
Comando: PASV
Respuesta: 227 Entrando en modo pasivo (192,168,0,4,138,78)
Error: el servidor devolvió una dirección IP privada no enrutable en la respuesta PASV
He leído en foros que hay que especificar la dirección IP PASV con el modificador -P, así lo hice, y este es el resultado:
Respuesta: 211-Extensiones admitidas:
....................
Error: Se recibió retorno de carro sin avance de línea
Y esto es para¡tanto sin como con tls!Así que sí, ¡el modificador -P no funciona en absoluto!
También debo señalar que los puertos del modo pasivo son correctos (tomado del comando PASV)
Registro de Filezilla (con tls explícito):
Comando: PASV
Respuesta: 227 Entrando en modo pasivo (192,168,0,4,138,251)
Estado: El servidor envió una respuesta pasiva con una dirección no enrutable. Usando la dirección del servidor en su lugar.
Comando: MLSD
Error: No se pudo establecer la conexión de datos: ECONNREFUSED - Conexión rechazada por el servidor
Error: Conexión cerrada por el servidor
Error: no se pudo recuperar el listado del directorio
Con interruptor -P:
Lo mismo excepto que no aparece "El servidor envió una dirección no enrutable*"
También intenté alterar el firewall (iptables), permitiendo todo (por lo tanto, deshabilitando el firewall) con estos comandos:
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Tampoco puedo cambiar el puerto predeterminado, porque si lo hago, aparece un error de conexión rechazada.
Y tengo otro síntoma extraño que acaba de empezar a aparecer hoy:
Sólo puedo abrir el puerto 21 al 21 (funciona) porque si abro el 20, obtengo el servidor ssh.
Regístrese para eso:
Estado: Conectado, esperando mensaje de bienvenida... Respuesta:
SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
Error: la respuesta no contiene un código de respuesta válido
También probé el reenvío de puertos 443, 989 a 990 (que era para tls implícitos) e intenté configurar Raspberry Pi como host DMZ.
Nota: Cambié de vsftpd porque era lento y no admitía ftp seguro (el 3.x para Raspberry Pi debe compilarse con soporte para ftp seguro, pero obtuve un error al compilar), y no uso proftpd porque no se pudo compilar con soporte tls
/var/log/messages no proporciona ninguna información útil (solo dice que el usuario inicia sesión cada vez con o sin tls)
¡Ojalá puedan ayudarme porque estoy realmente perdido!
Respuesta1
¡POR FIN ESTÁ SOLUCIONADO!¡Todo lo que tuve que hacer fue cambiar el rango de mi puerto pasivo de 50000-51000 a 12000-13000! Ahora todo funciona genial!!! Ahora estoy usando ftpd puro así:
/usr/local/sbin/pure-ftpd -D -C 5 -E -A -H -x -S 192.168.0.4,60 -p 12000:13000 -u 0 -y 5:3 -Y 1 -P &