Protocolo de transferencia de archivos (
A través de TCP (Protocolo de Control de Transmisión ), un FTP La aplicación facilita la carga y descarga de datos de archivos. Este artículo lo ayudará a lograr una transferencia segura de archivos en un servidor FTP a través de Very Secure FTP Daemon (vsftpd ) en Rocky Linux y AlmaLinux (las mismas instrucciones también funcionan en RHEL y CentOS ).
Instalar FTP en Rocky Linux
Primero, actualice su sistema operativo e instale el vsftpd paquete como se muestra.
$ sudo yum update $ sudo dnf install vsftpd
Una vez instalado, habilite el servicio responsable de vsftpd pero no lo inicies todavía.
$ sudo systemctl enable vsftpd
Creación de usuarios FTP y directorio de usuarios
Nuestro FTP El servidor solo debe otorgar acceso a un usuario dedicado. Vamos a crear uno.
$ sudo adduser lst-user $ sudo passwd lst-user
El usuario creado debe estar asociado con un FTP directorio después de un inicio de sesión exitoso en el servidor FTP. El usuario (lst-usuario ) ahora tiene la propiedad total de este directorio además de los privilegios de lectura, escritura y ejecución.
$ sudo mkdir -p /home/lst-user/ftp_directory $ sudo chmod -R 750 /home/lst-user/ftp_directory $ sudo chown lst-user: /home/lst-user/ftp_directory
El paso final es que el servidor FTP reconozca a este usuario (lst-user ) en su “lista_de_usuarios ” archivo.
$ sudo bash -c 'echo lst-user >> /etc/vsftpd/user_list'
Configurar FTP en Rocky Linux
Necesitamos ciertos vsftpd ajustes de configuración habilitados y otros deshabilitados. Accede a su archivo de configuración con el siguiente comando.
$ sudo nano /etc/vsftpd/vsftpd.conf OR $ sudo vi /etc/vsftpd/vsftpd.conf
Si no tienes el nano o vi editores, instálelo con el comando:
$ sudo yum install nano OR $ sudo yum install vim
Una vez que vsftpd.conf se abre el archivo, asegúrese de que el archivo corresponda a las siguientes ediciones de entrada de línea:
anonymous_enable=NO local_enable=YES write_enable=YES
Agregue las siguientes entradas.
userlist_deny=NO chroot_local_user=YES allow_writeable_chroot=YES pasv_min_port=7000 pasv_max_port=7500 userlist_file=/etc/vsftpd/user_list
Ahora podemos iniciar y verificar el estado de nuestro servicio vsftpd habilitado inicialmente.
$ sudo systemctl restart vsftpd $ sudo systemctl status vsftpd
Abrir puertos FTP en Firewalld
Basado en las configuraciones que hicimos en el “/etc/vsftpd/vsftpd.conf ”, el rango de puertos “7000-7500 ” atiende a la comunicación pasiva vsftpd. El firewall del sistema debe acomodarlo junto con el rango de puertos "20-21 ” para datos FTP y tráfico con respeto.
$ sudo systemctl enable firewalld $ sudo systemctl restart firewalld $ sudo firewall-cmd --permanent --add-port=20-21/tcp $ sudo firewall-cmd --permanent --add-port=7000-7500/tcp $ sudo firewall-cmd --reload
Probando la conexión FTP en Linux
El siguiente paso es probar esta conexión FTP desde la línea de comandos. Para lograr este objetivo, debe estar en un entorno de sistema operativo de escritorio Linux. Luego, deberá ingresar el comando ftp seguido de la dirección IP de su servidor. Usaremos el usuario FTP creado (lst-user ) credenciales para probar nuestro acceso FTP.
$ ftp server-IP-address
Configurar VSFTPD con un SSL en Rocky Linux
Este paso nos permite crear un archivo de certificado orientado a vsftpd para cifrar todas las conexiones FTP entre un servidor remoto y un entorno de escritorio. Es una medida de seguridad recomendada para garantizar la integridad de los archivos retenidos de cada transferencia de archivos iniciada por FTP.
En el siguiente comando, el parámetro del día debe ser una estimación de la duración que pretende usar su servidor FTP o mantenerlo activo.
$ sudo openssl req -x509 -nodes -days 185 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.key -out /etc/vsftpd/vsftpd.pem
El servidor FTP debe conocer la ubicación y los detalles de este certificado creado.
$ sudo nano /etc/vsftpd/vsftpd.conf
Agregue las siguientes entradas al archivo anterior y guárdelo:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.key ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO
Un usuario ahora no podrá iniciar sesión desde la línea de comando debido a las reglas SSL recientemente implementadas en este archivo de configuración. La siguiente captura de pantalla demuestra esta prohibición.
$ ftp server-IP-address
Antes de probar nuestra conexión después de la instalación del certificado RSA, debemos reiniciar vsftpd nuevamente.
$ sudo systemctl restart vsftpd
Prueba de FTP usando Filezilla
Instalar FileZilla cliente en su entorno de escritorio Linux.
$ sudo apt install filezilla [On Debian, Ubuntu & Mint] $ sudo yum install filezilla [On RHEL/CentOS/Fedora & Rocky Linux/AlmaLinux] $ sudo pacman -S filezilla [On Arch Linux] $ sudo zypper in filezilla [On OpenSUSE]
Inicie FileZilla y navegue hasta Administrador del sitio del Archivo menú como se muestra en la captura de pantalla.
A continuación, debe ingresar los detalles de su servidor FTP y hacer clic en conectar.
Recibirá un certificado RSA que creamos anteriormente para cifrar nuestra conexión FTP.
Debería poder ver el directorio FTP que creamos anteriormente para el usuario “lst-user ”.
El usuario lst ahora puede descargar y cargar datos desde o hacia el "ftp_directory ”.
Su servidor Linux ahora es viable para transferencias de archivos a través de FTP. El uso de archivos de certificados seguros (RSA ) para su FTP conexiones garantiza que las credenciales de su servidor y entorno de escritorio nunca se vean comprometidas mientras está en una red.