GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar el servidor FTP vsftpd con SSL/TLS en CentOS 8

FTP es un protocolo ampliamente utilizado para transferir archivos entre el servidor y el cliente. Hay muchos servidores FTP de código abierto disponibles hoy en día, incluidos FTPD, VSFTPD, PROFTPD y pureftpd. Entre ellos, VSFTPD es un protocolo seguro, rápido y más utilizado en todo el mundo. También se denomina "Demonio de protocolo de transferencia de archivos muy seguro". También es compatible con SSL, IPv6, FTPS explícito e implícito.

En este tutorial, le mostraremos cómo instalar VSFTPD en el servidor CentOS 8 y protegerlo con SSL/TLS.

Requisitos

  • Un servidor que ejecuta CentOS 8.
  • Se ha configurado una contraseña raíz en su servidor.

Instalar VSFTPD

De forma predeterminada, VSFTPD está disponible en el repositorio predeterminado de CentOS 8. Puede instalarlo ejecutando el siguiente comando:

dnf install vsftpd -y

Una vez completada la instalación, inicie el servicio VSFTPD y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

systemctl start vsftpd
systemctl enable vsftpd

En este punto, su servidor VSFTPD está instalado y funcionando. Ahora puede continuar con el siguiente paso.

Crear un usuario para VSFTPD

A continuación, deberá crear un nuevo usuario para VSFTPD. Para que pueda acceder a su servidor FTP usando este usuario.

Ejecute el siguiente comando para crear un nuevo usuario llamado vyom como se muestra a continuación:

adduser vyom

A continuación, establezca la contraseña para un usuario vyom con el siguiente comando:

passwd vyom

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar VSFTPD

A continuación, abra el archivo de configuración predeterminado de VSFTPD ubicado en el directorio /etc/vsftpd como se muestra a continuación:

nano /etc/vsftpd/vsftpd.conf

Cambie las siguientes líneas:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio VSFTPD y verifique el estado del servicio con el siguiente comando:

systemctl restart vsftpd
systemctl status vsftpd

Debería ver el siguiente resultado:

? vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-21 00:43:57 EST; 6s ago
  Process: 2698 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 2699 (vsftpd)
    Tasks: 1 (limit: 6102)
   Memory: 1020.0K
   CGroup: /system.slice/vsftpd.service
           ??2699 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Feb 21 00:43:57 centos8 systemd[1]: Stopped Vsftpd ftp daemon.
Feb 21 00:43:57 centos8 systemd[1]: Starting Vsftpd ftp daemon...
Feb 21 00:43:57 centos8 systemd[1]: Started Vsftpd ftp daemon.

En este punto, su servidor VSFTPD está configurado. Ahora puede proceder a todos los VSFTPD a través de SELinux y firewall.

Configurar Firewall y SELInux

De manera predeterminada, SELinux está habilitado en CentOS 8. Por lo tanto, deberá configurar SELinux para VSFTPD.

Puede configurar SELinux para permitir el acceso FTP con el siguiente comando:

setsebool -P allow_ftpd_full_access=1

A continuación, deberá permitir el servicio FTP a través de firewalld. Puedes permitirlo con el siguiente comando:

firewall-cmd --zone=public --permanent --add-service=ftp

A continuación, vuelva a cargar el servicio firewalld para aplicar los cambios de configuración del firewall:

firewall-cmd --reload

En este punto, su firewall y SELinux están configurados para permitir la conexión FTP entrante desde el sistema remoto. Ahora puede proceder a probar la conexión FTP.

Conectarse al servidor VSFTPD

Su servidor VSFTPD ahora está instalado y configurado. Ahora es el momento de conectar el servidor FTP desde el sistema cliente.

Para hacerlo, vaya al sistema Cliente y ejecute el siguiente comando para conectar su servidor FTP:

ftp 172.20.10.3

Se le pedirá que proporcione su usuario de FTP y la contraseña como se muestra a continuación:

Connected to 172.20.10.3.
220 (vsFTPd 3.0.3)
Name (172.20.10.3:root): vyom
331 Please specify the password.
Password:
230 Login successful.

Una vez que la conexión se haya establecido correctamente, debería ver el siguiente resultado:

Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Ahora, escriba exit y presione el botón Enter para salir de las sesiones de FTP.

Configurar VSFTPD con soporte TLS

Por razones de seguridad, es una buena idea cifrar las transmisiones FTP con SSL/TLS. Para hacerlo, deberá generar un certificado SSL y configurar el servidor VSFTPD para usarlo.

Primero, deberá instalar el paquete OpenSSL en su sistema. Puede instalarlo con el siguiente comando:

dnf install openssl -y

Una vez instalado, cree un nuevo directorio para almacenar el certificado SSL:

mkdir /etc/ssl/private

A continuación, genere un certificado autofirmado con el siguiente comando:

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

Proporcione toda la información requerida como se muestra a continuación:

Generating a RSA private key
...+++++
...........+++++
writing new private key to '/etc/ssl/private/vsftpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:GUJ
Locality Name (eg, city) [Default City]:JUN
Organization Name (eg, company) [Default Company Ltd]:IT
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:ftpserver
Email Address []:[email protected]

Después de generar el certificado SSL, deberá configurar VSFTPD para usar este certificado.

Abra el archivo de configuración predeterminado de VSFTPD como se muestra a continuación:

nano /etc/vsftpd/vsftpd.conf

Agregue las siguientes líneas al final del archivo:

#Path of the SSL certificate
rsa_cert_file=/etc/ssl/private/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
#Enable the SSL
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
#TSL is more secure than SSL so enable ssl_tlsv1_2.
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
#Enable SSL debugging to store all VSFTPD log.
debug_ssl=YES

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio VSFTPD para aplicar los cambios:

systemctl restart vsftpd

En este punto, su servidor VSFTPD está configurado para usar un certificado SSL. Ahora puede continuar con el siguiente paso.

Verificar conexión VSFTPD TLS

Su servidor VSFTPD ahora está protegido con soporte SSL/TLS. A continuación, intente conectar su servidor FTP desde la línea de comandos como se muestra a continuación:

ftp 172.20.10.3

Debería ver el error en el siguiente resultado:

Connected to 172.20.10.3.
220 (vsFTPd 3.0.2)
Name (172.20.10.3:root): vyom
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp> 

No puede conectarse a su servidor VSFTP desde el cliente de línea de comandos. Porque no es compatible con SSL/TLS.

Por lo tanto, deberá descargar y probar la conexión VSFTPD mediante un cliente FTP que admita conexiones TLS.

Para hacerlo, vaya al sistema Cliente e instale el paquete del cliente FileZilla.

Después de instalar FileZilla, abra el software FileZilla como se muestra a continuación:

A continuación, abra el Administrador del sitio como se muestra a continuación:

Haga clic en Nuevo sitio para agregar una nueva conexión FTP como se muestra a continuación:

Proporcione la IP de su servidor FTP, seleccione el protocolo FTP, seleccione "Usar FTP explícito sobre TLS", seleccione Solicitar contraseña, proporcione el nombre de usuario de su servidor FTP y haga clic en Conectar botón. Se le pedirá que proporcione la contraseña del usuario FTP como se muestra a continuación:

Proporcione su contraseña de FTP y haga clic en Aceptar botón. Se le pedirá que verifique el certificado que se utiliza para la conexión SSL/TLS como se muestra a continuación:

Haga clic en Aceptar botón para verificar el certificado. Una vez que la conexión se haya establecido con éxito, debería ver la siguiente pantalla:

Conclusión

En la guía anterior, instalamos el servidor VSFTPD en CentOS 8. También configuramos el servidor VSFTPD para usar el certificado SSL/TLS. Su servidor FTP ahora está protegido. Siéntase libre de preguntarme si tiene alguna pregunta.


Cent OS
  1. Cómo instalar y configurar un servidor FTP (vsftpd) con SSL/TLS en Ubuntu 20.04

  2. Cómo instalar el servidor FTP vsftpd y asegurarlo con TLS en Debian 11

  3. Cómo instalar un servidor FTP en CentOS 7

  4. Instale Vsftpd con SSL/TLS en Ubuntu 20.04

  5. Cómo instalar un servidor FTP en CentOS 7

Cómo instalar el servidor FTP vsftpd con TLS en Debian 10

Cómo instalar el servidor VsFTPD con TLS en Ubuntu 18.04 LTS

Cómo instalar VSFTPD en CentOS 7

Cómo instalar LetsEncrypt SSL con Nginx en CentOS 6

Cómo instalar un servidor FTP en CentOS 8

¿Cómo Instalar Un Servidor Ftp?