Cómo configurar el servidor FTP en CentOS
SConfigurar un servidor FTP (Protocolo de transferencia de archivos) en su PC con Linux le permitirá transferir archivos entre su sistema y una máquina remota. Le mostraremos cómo configurar un servidor FTP en CentOS.
Linux ya tiene una tonelada de servidores FTP de código abierto que puede usar para el trabajo. Esto incluye servidores populares como PureFTPd, ProFTPD y vsftpd.
Se le permite utilizar cualquiera de los servidores FTP que desee. Sin embargo, en este tutorial, instalaremos y usaremos vsftpd, abreviatura de Very Secure FTP Daemon. Es un servidor FTP rápido, estable y seguro que le ayudará a transferir archivos desde y hacia un sistema remoto en un santiamén.
Configuración del servidor FTP en CentOS
Entonces, sin más preámbulos, comencemos:
Instalación de vsftpd
Primero, necesitaremos instalar vsftpd en CentOS. Para hacer esto, ingrese el siguiente comando en la terminal:
$ sudo dnf install vsftpd
Con vsftpd instalado en su sistema CentOS, debe configurarlo para que se inicie y arranque automáticamente. Esto se puede hacer usando el siguiente comando:
$ sudo systemctl enable vsftpd --now
Una vez hecho esto, verifique el estado del servicio vsftpd ingresando este comando:
$ sudo systemctl status vsftpd
Aparecerá una pantalla de salida similar a la siguiente. Debería ver que vsftpd no está "Activo" en su sistema CentOS.
Configurar vsftpd
Con vsftpd activo y ejecutándose en su sistema, deberá configurar los ajustes del servidor. Para hacerlo, deberá acceder al archivo de configuración /etc/vsftpd/vsftpd.conf. Esto se puede hacer abriendo el archivo de configuración en el editor nano ingresando el siguiente comando en la terminal:
$ sudo nano /etc/vsftpd/vsftpd.conf
Con el archivo ahora abierto en el editor, hay varios cambios que debe realizar para configurar vsftpd en su sistema. Repasemos uno por uno.
1. Configurar el acceso FTP
Primero, configuremos el servidor FTP para permitir el acceso solo a los usuarios locales. Para hacer esto, necesitará encontrar las directivas anonymous_enable y local_enable en el archivo y editarlas como se muestra en la imagen a continuación:
Como puede ver, deberá establecer anonymous_enable = NO y local_enable = YES.
2. Habilitar subidas
A continuación, deberá configurar el servidor FTP para permitir la carga y eliminación de archivos.
Para hacer esto, deberá ubicar la directiva write_enable y cambiarla a YES, como se muestra en la imagen.
3. Limite los inicios de sesión de los usuarios
Una vez hecho esto, querrá limitar el número total de inicios de sesión de usuarios, es decir, solo desea que ciertos usuarios inicien sesión en su servidor FTP. Para hacer esto, primero, ubique esta línea en el archivo .conf - userlist_enable = YES. Después de eso, agregue estas dos líneas en el archivo:
userlist_file=/etc/vsftpd/user_list userlist_deny=NO
Utilice la siguiente imagen como referencia:
También puede optar por habilitar esta opción. Si lo hace, tendrá que especificar explícitamente a qué usuarios desea dar acceso al servidor FTP. Para permitir a los usuarios, deberá agregar sus nombres de usuario al archivo / etc / vsftpd / user_list con solo un nombre de usuario en cada línea.
4. Configurar conexiones FTP pasivas
Es posible que también desee configurar conexiones FTP pasivas.
Como tal, aquí le mostraremos cómo puede especificar los rangos mínimo y máximo de los puertos agregando un par de líneas dentro del archivo .conf.
Todo lo que necesita hacer es desplazarse hacia abajo hasta el final del archivo y agregar estas dos líneas, como se muestra en la imagen.
pasv_min_port=30000 pasv_max_port=31000
También discutiremos cómo puede abrir el rango en su firewall más adelante en este tutorial.
5. Configurar transmisiones seguras mediante SSL / TLS
Finalmente, surge la cuestión de proteger la conexión FTP mediante SSL / TLS. Para hacer esto, necesitará tener un certificado SSL y configurar su servidor FTP para usarlo.
Sin embargo, por el bien de este tutorial, generaremos un certificado SSL autofirmado utilizando la herramienta OpenSSL y luego lo usaremos para cifrar nuestra transmisión FTP.
Entonces, lo primero es lo primero, deberá usar OpenSSL para generar un nuevo certificado SSL. Puede hacer esto ingresando el siguiente comando en la terminal:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
La ejecución del comando anterior generará una clave privada de 2048 bits y un certificado autofirmado. Ambos tienen una validez de diez años y se guardan en el mismo archivo.
Después de crear su nuevo certificado SSL, abra el archivo de configuración vsftpd usando el comando anterior:
sudo nano /etc/vsftpd/vsftpd.conf
Desplácese hacia abajo y agregue las siguientes líneas como se muestra en la imagen:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Y eso es. Ha configurado correctamente el certificado SSL para su servidor FTP.
6. Finalizar
Una vez hecho esto, vuelva a verificar el archivo de configuración vsftpd para ver si todas las siguientes configuraciones son como están:
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=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES
Una vez que se haya asegurado de que se hayan realizado todos los cambios anteriores en el archivo, deberá guardarlo. Una vez guardado, reinicie el servicio vsftpd usando el siguiente comando:
$ sudo systemctl restart vsftpd
Configurar el cortafuegos
Si tiene un firewall habilitado junto con el servidor FTP, entonces necesita configurar el firewall para que permita las transmisiones FTP.
Para hacer esto, deberá ingresar los siguientes comandos en la terminal:
$ sudo firewall-cmd --permanent --add-port=20-21/tcp
El comando anterior abre el puerto 21, que es el puerto de comando FTP, y el puerto 20, que es el puerto de datos FTP.
También deberá ingresar este comando:
$ sudo firewall-cmd --permanent --add-port=30000-31000/tcp
Este comando abre el rango de puertos pasivos 30000-31000, que configuramos previamente.
Una vez hecho esto, deberá volver a cargar el firewall con el siguiente comando:
$ firewall-cmd --reload
Cómo crear un nuevo usuario de FTP
Ahora que ha configurado su servidor vsftpd en su sistema CentOS, es hora de crear un nuevo usuario de FTP y probarlo.
Primero, creemos un nuevo usuario FTP (newftpuser) usando el siguiente comando:
$ sudo adduser newftpuser
A continuación, deberá establecer una contraseña para el nuevo usuario. Para hacer esto, use este comando:
$ sudo passwd newftpuser
Asegúrese de que la contraseña sea segura y de más de ocho caracteres.
Después de crear el nuevo usuario, deberá agregarlo a la lista de usuarios de FTP. Esto se puede hacer ingresando el siguiente comando en la terminal:
$ echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
Finalmente, deberá crear un árbol de directorios FTP donde establecerá todos los permisos correctos. Para hacer esto, deberá ingresar la siguiente serie de comandos en la terminal:
$ sudo mkdir -p /home/newftpuser/ftp/upload $ sudo chmod 550 /home/newftpuser/ftp $ sudo chmod 750 /home/newftpuser/ftp/upload $ sudo chown -R newftpuser: /home/newftpuser/ftp
A estas alturas, su servidor FTP es completamente funcional y está listo para funcionar. Ahora puede conectarse a él utilizando cualquier cliente FTP como FileZilla. Solo asegúrese de que el cliente FTP también se pueda configurar para utilizar el cifrado TLS, ya que se utiliza para cifrar las transmisiones FTP.
Deshabilitar el acceso a Shell
Una cosa que debe tener en cuenta al crear un nuevo usuario de FTP es que, a menos que se especifique explícitamente, el usuario tendrá acceso SSH al servidor.
Si desea deshabilitar el acceso de shell del usuario, deberá crear un nuevo shell que imprimirá un mensaje informándole al usuario que: "Esta cuenta está limitada al acceso FTP únicamente".
Para hacer esto, deberá ingresar el siguiente comando en la terminal:
$ echo -e '#!/bin/shnecho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly $ sudo chmod a+x /bin/ftponly
El comando anterior creará el shell / bin / ftponly y lo ejecutará.
A continuación, deberá agregar el nuevo shell a la lista de shells válidos que se encuentran dentro del / etc / shells expediente. Esto se hace usando el siguiente comando:
$ echo "/bin/ftponly" | sudo tee -a /etc/shells
Y como paso final, todo lo que necesita hacer es cambiar el shell del usuario a / bin / ftponly usando este comando:
$ sudo usermod newftpuser -s /bin/ftponly
Además, para los futuros usuarios de FTP, puede usar el mismo comando para cambiar su shell de modo que solo puedan tener acceso a FTP.
Deja una respuesta