Breve descripción

Los datos FTP suelen ser inseguros porque la información (nombres de usuario, contraseñas, datos) se transmite sin cifrar en texto sin cifrar. Es muy IMPORTANTE cifrar las conexiones FTP a servidores FTP de Linux con VSFTPD (SSL / TLS).

Este breve tutorial es muy importante para los administradores de sistemas avanzados y los usuarios que normalmente transfieren datos muy sensibles (documentos, imágenes, etc.) a los servidores FTP de Linux de su empresa u organización.

Nota especial: visite la página de los mejores servicios de hosting de Linux de Hosting mas Baratopara encontrar los mejores servidores web en esta categoría, incluidas las calificaciones de expertos y usuarios.

instalación

Instale los paquetes vsftpd y openssl en el servidor Linux Ubuntu 16.04

$ sudo apt-get install vsftpd openssl

Genere un certificado autofirmado para proteger las conexiones del servidor FTP.

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

construcción

Edita el archivo de configuración /etc/vsftpd.conf

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
$ sudo vim /etc/vsftpd.conf

Asegúrese de las configuraciones como se muestra a continuación:

# Allow anonymous FTP? (Disabled by default).

anonymous_enable=NO

#

# Uncomment this to allow local users to log in.

local_enable=YES

#

# Uncomment this to enable any form of FTP write command.

write_enable=YES

# This option specifies the location of the RSA certificate to use for SSL

# encrypted connections.

rsa_cert_file=/etc/ssl/private/vsftpd.pem

rsa_private_key_file=/etc/ssl/private/vsftpd.key

ssl_enable=YES

#DO NOT allow anonymous users to use SSL

allow_anon_ssl=NO

#Force local users to use SSL

force_local_data_ssl=YES

force_local_logins_ssl=YES

#Enable latest SSL and TLS version 1 and disable old versions

ssl_tlsv1=YES

ssl_sslv2=NO

ssl_sslv3=NO

#Enter username in local_root directory to enable this config to work for ftp users added in future

user_sub_token=$USER

#Path to share and send files from

local_root=/srv/ftp/$USER

#Users in the vsftpd_userlist are the ONLY ones allowed for FTP access

userlist_enable=YES

userlist_file=/etc/vsftpd_userlist

userlist_deny=NO

Inicie el servicio vsftpd

$ sudo systemctl start vsftpd
$ sudo systemctl status vsftpd

Configurar un cortafuegos sin complicaciones (UFW)

Habilitar conexiones vsftpd a través de ufw

$ sudo ufw status

Nota especial: de forma predeterminada, ufw generalmente se instala en Ubuntu, pero si por alguna razón no está allí, puede usarlo para instalarlo.

$ sudo apt-get install ufw

Asegúrese de que el firewall permita conexiones FTP

$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw status

Nota especial: Vsftpd también usa el puerto SSH que es 22, así que asegúrese de que ufw permita conexiones SSH

Agregar usuario de FTP

Cambie al usuario root e ingrese la contraseña de root

$ su –

Cree un usuario como root que pueda iniciar sesión en el directorio FTP de Mark.

# adduser --home /srv/ftp/mark mark

-d Establece / srv / ftp / mark como el directorio de inicio para ftpuser

Hacer que el directorio raíz de FTP sea propiedad de ftpuser

# chown –R mark /srv/ftp/mark

Cambiar desde el usuario root

# su - linuxuser

Agregue la etiqueta en / etc / vsftpd_userlist para obtener acceso FTP

# sudo vim /etc/vsftpd_userlist

Luego escriba “marca” en el archivo.

Inicie el servicio VSFTPD

$ sudo systemctl restart vsftpd

Confirme que el servicio VSFTPD se está ejecutando

$ sudo systemctl status vsftpd

Realice la prueba de inicio de sesión de FTP

Inicie sesión desde una computadora Linux local

$ ftp -p ubuntu16-hostadvice

Si intenta iniciar sesión sin SSL de forma predeterminada, el inicio de sesión fallará y producirá un error como se muestra a continuación:

Ahora intente acceder usando SSL, es decir, el protocolo SFTP (FTP seguro) como se muestra a continuación:

$ sftp mark@ubuntu16-hostadvice

Tenga en cuenta la conexión exitosa.

Nota especial: tenga en cuenta que esto SOLO funciona si se realiza una de las siguientes acciones:

  1. La autenticación de contraseña está habilitada en / etc / ssh / sshd_config /.

  2. Si la autenticación de contraseña está deshabilitada y solo está habilitada la autenticación de clave privada SSH, deberá configurar la autenticación de clave privada SSH para ese usuario FTP en particular con el servidor Linux.

Consulte los 3 mejores servicios de hosting de servidores dedicados: