La transferencia de archivos a través de FTP (Protocolo de transferencia de archivos) es 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 es compatible con 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 sin cifrar. Al usar TLS, como lo hacemos en esta guía, todas las comunicaciones se pueden cifrar, lo que hace que FTP sea más seguro.
Este artículo describe cómo configurar proftpd con TLS en el servidor Ubuntu 20.04 LTS.
Prerrequisitos
- Ubuntu Server 20.04 de 64 bits
- sudo/ privilegios de root
Que haremos en este tutorial
- Instale ProFTPD y TLS.
- Configure ProFTPD.
- Agregue un usuario de FTP.
- Configure TLS en ProFTPD.
- Pruebas.
Instale 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 se haya instalado e iniciado. Ejecute este comando:
sudo proftpd –versión
para comprobar la versión de ProFTPD instalada. A continuación, comprobaremos el estado del servicio, lo consultaremos 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 “Mi servidor FTP”
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 reiniciar proftpd
Agregar un usuario de 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 proporciona acceso a cualquier persona sin tener que tener una cuenta de usuario y una 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 al shell y luego concédalo al servidor FTP.
sudo useradd -m -s / bin / false tom
sudo tom passwd
El comando anterior creará un nuevo usuario llamado tom con el directorio de inicio / home / tom / y sin acceso al shell / bin / false.
Ahora, configure ProFTPD para permitir el acceso del usuario 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 el archivo hacia / desde el servidor:
El archivo se verá así:
Save el archivo y salga de nano. Luego reinicie ProFTPD.
sudo systemctl reiniciar 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 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 el 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:
Incluya /etc/proftpd/tls.conf
Save 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 en TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSOptions NoCertRequestes de TLSRSACertificateFile
Save y salir. El último paso es reiniciar el servidor ProFTPD:
sudo systemctl reiniciar proftpd
Probar 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:
IP del servidor: 192.168.0.100 nombre de usuario: tom Contraseña ****** Puerto: 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