Linux

Cómo configurar el servidor FTP con VSFTPD en Ubuntu 20.04

Cómo configurar el servidor FTP con VSFTPD en Ubuntu 20.04

Este artículo describe cómo instalar y configurar un servidor FTP en Ubuntu 20.04 que usa para compartir archivos entre sus dispositivos.

FTP (Protocolo de transferencia de archivos) es un protocolo de red estándar que se utiliza para transferir archivos desde y hacia una red remota. Hay varios servidores FTP de código abierto disponibles para Linux. Los más conocidos y utilizados son PureFTPd, ProFTPD y vsftpd . Instalaremos vsftpd (Very Secure Ftp Daemon), un servidor FTP estable, seguro y rápido. También le mostraremos cómo configurar el servidor para restringir a los usuarios a su directorio de inicio y cifrar toda la transmisión con SSL / TLS.

Aunque FTP es un protocolo muy popular, para transferencias de datos más seguras y rápidas, debe usar SCP o SFTP .

Instalación de vsftpd en Ubuntu 20.04 #

El paquete vsftpd está disponible en los repositorios de Ubuntu. Para instalarlo, ejecute los siguientes comandos:

actualización de sudo aptsudo apt install vsftpd

El servicio ftp se iniciará automáticamente una vez que se complete el proceso de instalación. Para verificarlo, imprima el estado del servicio:

sudo systemctl status vsftpd

El resultado debe mostrar que el servicio vsftpd está activo y en ejecución:

● vsftpd.servicio - servidor FTP vsftpd Cargado: cargado (/ lib / systemd / system / vsftpd.Servicio; activado; preset del proveedor: habilitado) Activo: activo (en ejecución) desde el martes 2021-03-02 15:17:22 UTC; Hace 3 s… 

Configurando vsftpd #

La configuración del servidor vsftpd se almacena en el / etc / vsftpd.conf expediente.

La mayoría de las configuraciones del servidor están bien documentadas dentro del archivo. Para conocer todas las opciones disponibles, visite la página de documentación de vsftpd.

En las siguientes secciones, repasaremos algunas configuraciones importantes necesarias para configurar una instalación segura de vsftpd.

Comience abriendo el archivo de configuración vsftpd:

sudo nano / etc / vsftpd.conf

1. # De acceso FTP

Permitiremos el acceso al servidor FTP solo a los usuarios locales. Busque el anonymous_enable y local_enable directivas y verifique que su configuración coincida con las líneas siguientes:

/ etc / vsftpd.conf
anonymous_enable = NO local_enable = YES 

2. Habilitando cargas #

Localice y descomente el write_enable directiva para permitir cambios en el sistema de archivos, como cargar y eliminar archivos:

/ etc / vsftpd.conf
write_enable = YES 

3. Cárcel de Chroot #

Para evitar que los usuarios de FTP local accedan a archivos fuera de sus directorios de inicio, descomente la línea que comienza con chroot_local_user:

/ etc / vsftpd.conf
chroot_local_user = SÍ 

De forma predeterminada, por razones de seguridad, cuando chroot está habilitado, vsftpd se negará a cargar archivos si el directorio en el que están bloqueados los usuarios es modificable.

Utilice una de las siguientes soluciones para permitir cargas cuando chroot está habilitado:

4. Conexiones FTP pasivas #

De forma predeterminada, vsftpd usa el modo activo. Para usar el modo pasivo, configure el rango mínimo y máximo de puertos:

/ etc / vsftpd.conf
pasv_min_port = 30000 pasv_max_port = 31000 

Puede utilizar cualquier puerto para conexiones FTP pasivas. Cuando el modo pasivo está habilitado, el cliente FTP abre una conexión al servidor en un puerto aleatorio en el rango que ha elegido.

5. Limitar el número de inicio de sesión del usuario

Puede configurar vsftpd para permitir que solo ciertos usuarios inicien sesión. Para hacerlo, agregue las siguientes líneas al final del archivo:

/ etc / vsftpd.conf
userlist_enable = SÍ userlist_file = / etc / vsftpd.user_list userlist_deny = NO 

Cuando esta opción está habilitada, debe especificar explícitamente qué usuarios pueden iniciar sesión agregando los nombres de usuario al / etc / vsftpd.Lista de usuarios archivo (un usuario por línea).

6. Asegurar las transmisiones con SSL / TLS #

Para cifrar las transmisiones FTP con SSL / TLS, deberá tener un certificado SSL y configurar el servidor FTP para usarlo.

Puede utilizar un certificado SSL existente firmado por una autoridad certificadora de confianza o crear un certificado autofirmado.

Si tiene un dominio o subdominio que apunta a la dirección IP del servidor FTP, puede generar rápidamente un certificado SSL Let's Encrypt gratuito.

Generaremos una clave privada de 2048 bits y un certificado SSL autofirmado que tendrá una vigencia de diez años:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

Tanto la clave privada como el certificado se guardarán en el mismo archivo.

Una vez creado el certificado SSL, abra el archivo de configuración vsftpd:

sudo nano / etc / vsftpd.conf

Encuentra el rsa_cert_file y rsa_private_key_file directivas, cambie sus valores a la pam ruta del archivo y establezca la ssl_enable directiva para :

/ etc / vsftpd.conf
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = SÍ 

Si no se especifica lo contrario, el servidor FTP utilizará solo TLS para realizar conexiones seguras.

Reinicie el servicio vsftpd #

Una vez que haya terminado de editar, el archivo de configuración de vsftpd (excluidos los comentarios) debería verse así:

/ etc / vsftpd.conf
listen = NO listen_ipv6 = YES anonymous_enable = NO local_enable = YES write_enable = YES dirmessage_enable = YES use_localtime = YES xferlog_enable = YES connect_from_port_20 = YES chroot_local_user = YES secure_chroot_dir = / varcert_pd / runfile / paft_chroot_dir = / etc / runfile privado / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = YES user_sub_token = $ USER raíz_local = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = YES userlist_file = / etc / vsftpd.user_list userlist_deny = NO 

Guarde el archivo y reinicie el servicio vsftpd para que los cambios surtan efecto:

sudo systemctl reiniciar vsftpd

Abriendo el cortafuegos #

Si está ejecutando un firewall UFW, deberá permitir el tráfico FTP.

Para abrir el puerto 21 (Puerto de comando FTP), puerto 20 (Puerto de datos FTP) y 30000-31000 (Rango de puertos pasivos), ejecute los siguientes comandos:

sudo ufw permitir 20: 21 / tcpsudo ufw permitir 30000: 31000 / tcp

Para evitar ser bloqueado, asegúrese de que el puerto 22 Esta abierto:

sudo ufw permite OpenSSH

Vuelva a cargar las reglas de UFW deshabilitando y volviendo a habilitar UFW:

sudo ufw deshabilitarsudo ufw habilitar

Para verificar los cambios, ejecute:

estado de sudo ufw
Estado: activo Para Acción Desde - ------ ---- 20: 21 / tcp PERMITIR en cualquier lugar 30000: 31000 / tcp PERMITIR en cualquier lugar OpenSSH PERMITIR en cualquier lugar 20: 21 / tcp (v6) PERMITIR en cualquier lugar (v6) 30000: 31000 / tcp (v6) PERMITIR en cualquier lugar (v6) OpenSSH (v6) PERMITIR en cualquier lugar (v6) 

Creación de número de usuario de FTP

Para probar el servidor FTP, crearemos un nuevo usuario.

  1. Crea un nuevo usuario llamado newftpuser:

    sudo adduser newftpuser
  2. Agregue el usuario a la lista de usuarios FTP permitidos:

    echo "newftpuser" | sudo tee -a / etc / vsftpd.Lista de usuarios
  3. Cree el árbol del directorio FTP y establezca los permisos correctos:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / inicio / newftpuser / ftpsudo chmod 750 / inicio / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    Como se discutió en la sección anterior, el usuario podrá subir sus archivos al ftp / upload directorio.

En este punto, su servidor FTP es completamente funcional. Debería poder conectarse al servidor mediante cualquier cliente FTP que se pueda configurar para usar el cifrado TLS, como FileZilla .

Deshabilitar el acceso al shell #

De forma predeterminada, al crear un usuario, si no se especifica explícitamente, el usuario tendrá acceso SSH al servidor. Para deshabilitar el acceso al shell, cree un nuevo shell que imprima un mensaje que le indique al usuario que su cuenta está limitada al acceso FTP únicamente.

Ejecute los siguientes comandos para crear el / bin / ftponly archivo y hacerlo ejecutable:

echo -e '#!/ bin / sh \ necho "Esta cuenta está limitada solo al acceso FTP."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Agregue el nuevo shell a la lista de shells válidos en el / etc / shells expediente:

echo "/ bin / ftponly" | sudo tee -a / etc / shells

Cambie el shell de usuario a / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Puede usar el mismo comando para cambiar el shell de todos los usuarios a los que desea otorgar solo acceso FTP.

Conclusión #

Le mostramos cómo instalar y configurar un servidor FTP seguro y rápido en su Ubuntu 20.04 sistema.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.

Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...
5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...