La transferencia de archivos a través de FTP (Protocolo de transferencia de archivos) sigue siendo probablemente una de las formas más populares de cargar archivos en un servidor. ProFTPD es un servidor FTP popular y versátil que está disponible como software de código abierto y admite TLS (SSL) para conexiones seguras.
De forma predeterminada, FTP es un protocolo inseguro ya que las contraseñas y los datos se transfieren en texto no cifrado. Al usar TLS, como lo hacemos en esta guía, todas las comunicaciones se pueden cifrar, lo que hace que el FTP sea más seguro.
Este artículo describe cómo configurar proftpd con TLS en el servidor Ubuntu 20.04 LTS .
Requisitos
- Servidor Ubuntu 20.04 de 64 bits
- privilegios sudo/root
Qué haremos en este tutorial
- Instala ProFTPD y TLS.
- Configura ProFTPD.
- Añadir un usuario de FTP.
- Configurar TLS en ProFTPD.
- Pruebas.
Instalar Proftpd y OpenSSL
Proftpd y OpenSSL están disponibles en el repositorio de Ubuntu, por lo que podemos instalarlos con el comando apt:
sudo apt-get install -y proftpd openssl
ProFTPD se instala como se muestra a continuación. El proceso de instalación no solicitará ninguna entrada.
Ahora verificaremos que proFTPD ha sido instalado e iniciado. Ejecute este comando:
sudo proftpd --version
para comprobar la versión ProFTPD instalada. A continuación, comprobaremos el estado del servicio, consultamos con el comando systemctl:
sudo systemctl status proftpd
Configurar ProFTPD
Una vez que ProFTPD esté instalado, deberá ajustar la configuración para que sea un servidor completamente funcional y seguro. El archivo de configuración de ProFTPD se encuentra en el directorio /etc/proftpd/; edite el archivo proftpd.conf.
sudo nano /etc/proftpd/proftpd.conf
En la línea Nombre del servidor, reemplace el valor con su nombre de host o dominio:
ServerName "My FTP-Server"
Descomente la línea DefaultRoot para habilitar la cárcel para todos los usuarios:
DefaultRoot ~
y reinicie ProFTPD a través del comando systemctl de la siguiente manera.
sudo systemctl restart proftpd
Añadir un Usuario FTP
Hay dos tipos de usuarios de FTP disponibles, el usuario de FTP anónimo y los usuarios de FTP "normales":
- FTP anónimo : El servidor FTP brinda acceso a cualquier persona sin tener que tener una cuenta de usuario y contraseña. Esto no debe usarse en un servidor disponible públicamente, pero podría ser una opción para un servidor doméstico o una LAN de empresa.
- Usuario FTP :Solo aquellos que tienen una cuenta de usuario y contraseña pueden acceder al servidor FTP.
Antes de crear un usuario para el servidor FTP, agregue /bin/false a su archivo /etc/shells.
sudo echo "/bin/false" >> /etc/shells
Y ahora, cree un usuario con un directorio de inicio específico, deshabilite el acceso de shell y luego concédalo al servidor FTP.
sudo useradd -m -s /bin/false tom sudo passwd tom
El comando anterior creará un nuevo usuario llamado tom con el directorio de inicio /home/tom/ y sin acceso de shell /bin/false.
Ahora, configure ProFTPD para permitir el acceso del usuario tom al servidor FTP.
sudo nano /etc/proftpd/conf.d/tom.conf
Agregue este archivo de configuración para permitir que el usuario tom inicie sesión y cargue/descargue archivos al/desde el servidor:
<Directory /home/tom> Umask 022 022 AllowOverwrite off <Limit LOGIN> AllowUser tom DenyALL </Limit> <Limit ALL> Order Allow,Deny AllowUser tom Deny ALL </Limit> <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> AllowUser tom Deny ALL </Limit> </Directory>
El archivo se verá así:
Guarde el archivo y salga de nano. Luego reinicie ProFTPD.
sudo systemctl restart proftpd
Ya puede usar FTP en esta etapa, pero lo haremos más seguro usando TLS en el siguiente paso.
Configurar TLS con proftpd
Para usar TLS, debe crear un certificado SSL. Genere un certificado SSL con el comando OpenSSL:
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
El comando anterior generará un archivo de certificado proftpd.crt en el directorio /etc/ssl/certs/ y un archivo de clave de certificado proftpd.key en el directorio /etc/ssl/private/.
A continuación, cambie el permiso del archivo de certificado a 600:
sudo chmod 600 /etc/ssl/certs/proftpd.crt sudo chmod 600 /etc/ssl/private/proftpd.key
Ahora, regrese al directorio /etc/proftpd y configure ProFTPD para usar el certificado SSL que generó.
nano /etc/proftpd/proftpd.conf
Descomente la línea TLS:
Include /etc/proftpd/tls.conf
Guarde el archivo tls.conf y salga.
A continuación, edite el archivo de configuración de TLS para habilitar la autenticación segura:
nano /etc/proftpd/tls.conf
Descomente todas estas líneas:
TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired TLSVerifyClient off TLSRequired on
Guardar y Salir. El último paso es reiniciar el servidor ProFTPD:
sudo systemctl restart proftpd
Probando ProFTPD
Para probar la configuración, intente conectarse a su servidor FTP con un software como FileZilla (estoy usando FileZilla aquí) y complete la IP del servidor, el nombre de usuario, la contraseña y el puerto:
Server IP : 192.168.0.100 username : tom Password ****** Port : 21
Y luego haga clic en Conexión rápida.
Haga clic en 'Aceptar' para confirmar nuestro certificado SSL autofirmado.
Verá que ha iniciado sesión en el servidor FTP con certificado TLS/SSL.
Enlaces
- El proyecto de software ProFTPD. Enlace