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:

FileZilla

Haz clic en Crear una nueva conexión. Deberías ver la siguiente pantalla:

Configuración del servidor FTP

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:

Servidor FTP conectado

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.

También te podría gustar...