Cómo configurar un servidor FTP de Linux para transferencias rápidas de archivos – CloudSavvy IT

logo de filezilla

FTP, o File Transfer Protocol, es un protocolo estándar para enviar y recibir archivos desde servidores remotos. Es más fácil de usar que las alternativas de línea de comando como scp, especialmente con interfaces GUI como FileZilla.

¿Qué es FTP?

En los viejos tiempos de Internet, los servidores FTP públicos eran una forma muy común de hacer que los archivos estuvieran disponibles para un gran número de personas. Hoy en día, FTP todavía existe y se usa ampliamente para tareas administrativas.

Si bien alguna forma de CLI de FTP se envía con la mayoría de los sistemas operativos principales, a los clientes de GUI les gusta FileZilla Haga que el proceso de mover archivos entre servidores sea tan simple como arrastrar y soltar desde el almacenamiento local al almacenamiento remoto, o viceversa. Todo el tráfico subyacente se gestiona mediante FTP.

Cómo configurar un servidor FTP de Linux para transferencias rápidas de archivos - CloudSavvy IT

Configurar esto requiere que instale y configure un servidor FTP, como vsftpd, en la máquina remota a la que desea acceder.

Cabe señalar que los usuarios que inicien sesión a través de FTP tendrán acceso a su sistema, al igual que usted. Hay pasos que puede tomar para mitigar estos riesgos, como incluir el acceso en listas blancas y bloquear a los usuarios en sus directorios de inicio.

Instalación de vsftpd

Para comenzar, instale vsftpd desde el administrador de paquetes de su distribución. Para sistemas basados ​​en Debian como Ubuntu, eso sería de apt:

sudo apt-get install vsftpd

A continuación, deberá iniciar el servicio y configurarlo para que se ejecute en el momento del arranque:

systemctl start vsftpd
systemctl enable vsftpd

FTP tiene dos métodos principales de autenticación:

  • FTP anónimo, donde cualquiera puede iniciar sesión sin contraseña. Se utiliza para compartir archivos públicos y está deshabilitado de forma predeterminada.
  • Inicio de sesión de usuario local, que permite a cualquier usuario /etc/passwd para acceder a FTP utilizando un nombre de usuario y una contraseña.

Probablemente desee habilitar el inicio de sesión de usuario local y mantener el acceso anónimo deshabilitado. Iniciar sesión en FTP con su cuenta de usuario le dará acceso a cualquier cosa a la que pueda acceder su cuenta.

Abrir /etc/vsftpd.conf en su editor de texto favorito y cambie la siguiente línea a YES:

local_enable=YES

Si desea poder cargar archivos, cambie write_enable para YES así como:

write_enable=YES

Con un reinicio de vsftpd (systemctl restart vsftpd), ahora debería poder iniciar sesión en FTP utilizando un cliente como FileZilla, o la CLI en su máquina personal.

Si solo desea habilitar FTP para usuarios específicos, puede incluir el acceso en la lista blanca. Abrir /etc/vsftpd.userlisty agregue los nombres de cada cuenta que desee habilitar en líneas separadas.

nano /etc/vsftpd.userlist

Luego, agregue las siguientes líneas a /etc/vsftpd.conf:

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Esto restringirá el acceso solo a los usuarios definidos en el archivo de lista de usuarios y negará a todos los demás.

Si no desea que los usuarios accedan a archivos fuera de su directorio de inicio, puede colocarlos en una cárcel chroot, lo que evitará que interactúen con directorios de nivel superior. Puede habilitar esto descomentando la siguiente línea en /etc/vsftpd.conf:

chroot_local_user=YES

Reiniciar vsftpd con systemctl restart vsftpd para aplicar los cambios.

Configuración de FTPS

El tráfico FTP estándar se envía sin cifrar como HTTP. Obviamente, esto no es genial, por lo que debe configurar vsftpd para cifrar el tráfico con TLS.

Para hacerlo, genere una nueva clave y firme una solicitud con openssl:

openssl genrsa -des3 -out FTP.key

openssl req -new -key FTP.key -out certificate.csr

vsftpd necesita que se elimine la contraseña de esta clave, así que copie la clave y devuélvala a openssl:

cp FTP.key FTP.key.orig

openssl rsa -in FTP.key.orig -out ftp.key

Finalmente, genere un certificado TLS usando esta clave:

openssl x509 -req -days 365 -in certificate.csr -signkey ftp.key -out mycertificate.crt

Copie la clave y el certificado en /etc/pki/tls/certs/:

cp ftp.key /etc/pki/tls/certs/

cp mycertificate.crt /etc/pki/tls/certs

Ahora que todos los certificados están configurados, puede volver a abrir /etc/vsftpd.confy agregue las siguientes líneas:

ssl_enable=YES
allow_anon_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/pki/tls/certs/mycertificate.crt
rsa_private_key_file=/etc/pki/tls/certs/ftp.key
ssl_ciphers=HIGH
require_ssl_reuse=NO

Reiniciar vsftpd con systemctl restart vsftpd para aplicar los cambios.