Cómo instalar un servidor FTP con ProFTPD y TLS/SSL en Ubuntu 22.04
ProFTPD es un servidor FTP gratuito, de código abierto y rico en funciones, escrito para sistemas operativos Unix y Unix-a-like. Es un protocolo de transferencia de archivos seguro, de alto rendimiento y muy configurable que te permite subir y descargar archivos por Internet. Es software de código abierto y soporta TLS (SSL) para conexiones seguras.
Este tutorial te mostrará cómo instalar el servidor FTP ProFTPD en Ubuntu 22.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 22.04.
- Una contraseña de root configurada en el servidor.
Instalar ProFTPD Ubuntu 22.04
Por defecto, el paquete ProFTPD está incluido en el repositorio por defecto de Ubuntu. Puedes instalarlo fácilmente utilizando el siguiente comando:
apt install proftpd -y
Una vez instalado el paquete ProFTPD, inicia el servicio ProFTPD utilizando el siguiente comando:
systemctl start proftpd
Puedes comprobar el estado del ProFTPD con el siguiente comando:
systemctl status proftpd
Obtendrás la siguiente salida:
? proftpd.service - ProFTPD FTP Server Loaded: loaded (/lib/systemd/system/proftpd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-10-11 14:33:27 UTC; 16s ago Main PID: 5668 (proftpd) Tasks: 1 (limit: 2242) Memory: 4.4M CPU: 57ms CGroup: /system.slice/proftpd.service ??5668 "proftpd: (accepting connections)" "" "" "" "" "" "" "" "" "" "" "" "" "" "" Oct 11 14:33:26 ubuntu2204 systemd[1]: Starting ProFTPD FTP Server... Oct 11 14:33:26 ubuntu2204 proftpd[5666]: Checking syntax of configuration file Oct 11 14:33:27 ubuntu2204 systemd[1]: proftpd.service: Can't open PID file /run/proftpd.pid (yet?) after start: Operation not permitted Oct 11 14:33:27 ubuntu2204 systemd[1]: Started ProFTPD FTP Server.
Puedes comprobar la versión de ProFTPD con el siguiente comando:
proftpd --version
Obtendrás la siguiente salida:
ProFTPD Version 1.3.7c
Crear un usuario FTP
A continuación, tendrás que crear un usuario para FTP. Puedes crearlo con el siguiente comando
adduser ftpuser
Establece una contraseña para este usuario como se muestra a continuación:
Adding user `ftpuser' ... Adding new group `ftpuser' (1000) ... Adding new user `ftpuser' (1000) with group `ftpuser' ... Creating home directory `/home/ftpuser' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for ftpuser Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
Generar SSL/TLS para FTP
Para asegurar la conexión FTP con SSL/TLS, necesitarás generar SSL/TLS para ProFTPD.
En primer lugar, instala el paquete OpenSSL con el siguiente comando:
apt-get install openssl -y
A continuación, genera un certificado SSL/TLS con el siguiente comando:
openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Se te pedirá que proporciones la información del certificado como se muestra a continuación:
......................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ----- 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) [AU]:IN State or Province Name (full name) [Some-State]:GUJ Locality Name (eg, city) []:JUN Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT Organizational Unit Name (eg, section) []:ITC Common Name (e.g. server FQDN or YOUR name) []:HITESH Email Address []:[email protected]
A continuación, establece los permisos adecuados para los certificados generados:
chmod 600 /etc/ssl/private/proftpd.key chmod 600 /etc/ssl/certs/proftpd.crt
Configurar ProFTPD
A continuación, tendrás que editar el archivo de configuración de ProFTPD y cambiar la configuración por defecto:
nano /etc/proftpd/proftpd.conf
Cambia las siguientes configuraciones:
UseIPv6 on ServerName "FTP Server" Port 21 RequireValidShell on AuthOrder mod_auth_pam.c* mod_auth_unix.c Include /etc/proftpd/tls.conf
Guarda y cierra el archivo, luego edita el archivo de configuración TLS y define tus certificados SSL:
nano /etc/proftpd/tls.conf
Cambia las siguientes líneas:
TLSEngine on TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRequired on
Guarda y cierra el archivo, luego reinicia el servicio ProFTPD para aplicar los cambios:
systemctl restart proftpd
Acceder al servidor ProFTPD
Llegados a este punto, el servidor ProFTPD está instalado y protegido con SSL/TLS. Ahora, es el momento de acceder a ellos utilizando el cliente FTP FileZilla.
Ve al sistema remoto y abre FileZilla. Deberías ver la siguiente pantalla:
Haz clic en Crear una nueva conexión. Deberías ver la siguiente pantalla:
Proporciona la IP de tu servidor FTP, el puerto, el nombre de usuario, la contraseña y pulsa el botón Conectar. Una vez establecida la conexión FTP, deberías ver la siguiente pantalla:
Conclusión
Enhorabuena! has instalado correctamente ProFTPD y lo has asegurado con SSL/TLS en Ubuntu 22.04. Ahora puedes subir y descargar archivos fácilmente desde y hacia el servidor FTP a través de conexiones seguras. No dudes en preguntarme si tienes alguna duda.