Arregle el acceso FTP desde la PC cliente de Linux con firewall habilitado
Hoy, me gustaría compartir mi experiencia personal con el acceso FTP en Linux. Gracias a los nuevos sistemas operativos de Microsoft, que no encuentro adecuados para el uso diario, me cambié a Linux hace unos años. Estoy ejecutando un servidor FTP en mi red doméstica y no pude acceder a él desde mi PC cliente ejecutando Linux que tiene reglas de firewall para bloquear las conexiones entrantes, es decir, la política INPUT está configurada en REJECT en iptables. Así es como solucioné el problema.
Supongo que la política de SALIDA se ACEPTA en las máquinas cliente y servidor.
Solución n. ° 1. Utilice el módulo del kernel nf_conntrack_ftp
El módulo del kernel nf_conntrack_ftp le permite desbloquear el acceso al puerto requerido para el servidor FTP automáticamente cada vez que realiza una conexión. El único requisito para este módulo es la siguiente línea en las reglas de iptables (generalmente es /etc/iptables/iptables.rules) en la PC cliente:
$ IPT -A ENTRADA -i eth0 -m estado --estado RELACIONADO, ESTABLECIDO -j ACEPTAR
Eth0 es el nombre de su dispositivo de red.
A continuación, debe cargar nf_conntrack_ftp si no está cargado. Ejecute el siguiente comando como root en la PC cliente
# modprobe nf_conntrack_ftp
Si su servidor está utilizando algún puerto no predeterminado (que no sea el puerto 21), utilice el siguiente comando:
# modprobe nf_conntrack_ftp ports = your_port
Esto proporcionará una conexión automática con todos los puertos necesarios entre el servidor FTP y su software cliente. Esto funciona hasta que reinicia su PC.
Para que este cambio sea permanente, debe crear un nuevo archivo de texto, /etc/modules-load.d/conntrack_ftp.conf, y agregar la siguiente línea a este archivo:
nf_conntrack_ftp
En caso de que el puerto del servidor no sea el predeterminado, debe crear un archivo adicional, /etc/modprobe.d/conntrack_ftp.conf con el siguiente contenido:
opciones nf_conntrack_ftp ports =
Esto debería ser suficiente.
Solución # 2. Utilice un rango de puertos pasivos fijos
Si no puede utilizar el módulo nf_conntrack_ftp, puede establecer un rango de puerto fijo para el software del servidor FTP y abrirlo en la PC cliente. Por ejemplo, así es como se puede hacer para la aplicación vsftpd.
- En el archivo de configuración de vsftpd, que suele ser /etc/vsftpd.conf, agregue las siguientes líneas:
pasv_min_port = 5500. pasv_max_port = 6500
Esto debe hacerse en el lado del servidor. Después de eso, debe reiniciar vsftpd.
- En sus reglas de iptables (generalmente es /etc/iptables/iptables.rules) en la PC cliente, agregue la siguiente regla:
$ IPT -A ENTRADA -p tcp -s
--dport 5500: 6500 -j ACEPTAR - Aplique las reglas de iptables de la siguiente manera:
# iptables-restore
Eso es todo.