Cómo instalar ProFTPD con TLS en Ubuntu 18.04 LTS

ProFTPD es un servidor FTP gratuito, de código abierto y el más popular para sistemas operativos tipo Unix. ProFTPD te permite crear una conexión FTP entre tu ordenador local y el servidor remoto. Es un servidor FTP versátil que soporta TLS (SSL) para conexiones seguras.

Características

  • Admite IPv4 e IPv6.
  • Admite .ftpaccess para asegurar por directorio.
  • Permite configurar múltiples servidores FTP virtuales y servicios FTP anónimos.
  • Ofrece soporte para la contraseña sombra, utmp/wtmp, encriptación SSL/TLS y RADIUS.
  • Puede ejecutarse como servidor independiente o desde inetd/xinetd.

En este tutorial, aprenderemos a instalar ProFTPD y asegurarlo con TLS en un servidor Ubuntu 18.04

Requisitos

  • Un servidor con Ubuntu 18.04.
  • Una dirección IP estática 192.168.0.101 configurada en el servidor.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Antes de empezar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez que tu servidor esté actualizado, reinicia tu servidor para aplicar los cambios.

Instalar ProFTPD

Por defecto, ProFTPD está disponible en el repositorio por defecto de Ubuntu 18.04. Puedes instalarlo simplemente ejecutando el siguiente comando:

apt-get install proftpd -y

Después de instalar ProFTPD, inicia el servicio ProFTPD y habilítalo para que se inicie en el arranque con el siguiente comando:

systemctl start proftpd
systemctl enable proftpd

Puedes comprobar el estado del servicio ProFTPD con el siguiente comando:

systemctl status proftpd

Deberías ver la siguiente salida:

? proftpd.service - LSB: Starts ProFTPD daemon
   Loaded: loaded (/etc/init.d/proftpd; generated)
   Active: active (running) since Sat 2019-05-25 09:18:19 UTC; 31s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 1 (limit: 1114)
   CGroup: /system.slice/proftpd.service
           ??1927 proftpd: (accepting connections)

May 25 09:18:19 ubuntu1804 systemd[1]: Starting LSB: Starts ProFTPD daemon...
May 25 09:18:19 ubuntu1804 proftpd[1906]:  * Starting ftp server proftpd
May 25 09:18:19 ubuntu1804 proftpd[1906]:    ...done.
May 25 09:18:19 ubuntu1804 systemd[1]: Started LSB: Starts ProFTPD daemon.

Los archivos de configuración por defecto de ProFTPD se encuentran en /etc/proftpd/proftpd.conf. Puedes verlo con el siguiente comando:

cat /etc/proftpd/proftpd.conf

Deberías ver la siguiente salida:

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
# 

# Includes DSO modules

Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6                         on
# If set on you can experience a longer connection delay in many cases.
IdentLookups                    off

ServerName                      "Debian"
# Set to inetd only if you would run proftpd by inetd/xinetd.
# Read README.Debian for more information on proper configuration.
ServerType                              standalone
DeferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

DisplayLogin                    welcome.msg
DisplayChdir                    .message true
ListOptions                     "-l"

DenyFilter                      \*.*/

# Use this to jail all users in their homes 
# DefaultRoot                   ~
# Port 21 is the standard FTP port.
Port                            21
MaxInstances                    30
# Set the user and group that the server normally runs at.
User                            proftpd
Group                           nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask                           022  022
# Normally, we want files to be overwriteable.
AllowOverwrite                  on
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

Puedes cambiar la configuración anterior según tus necesidades, como se muestra a continuación:

  • NombreServidor: Puedes cambiarlo como tu nombre de servidor por defecto.
  • UseIPV6: Puedes desactivarlo cambiándolo a off.
  • DefaultRoot: Puedes descomentar esta línea para restringir a los usuarios con sus carpetas de inicio.
  • Puerto: Puedes definir tu propio puerto cambiándolo.
  • SystemLog: La ubicación por defecto del archivo de registro. Puedes cambiarlo según tus necesidades.

Una vez hecho esto, puedes pasar al siguiente paso.

Asegurar ProFTPD con TLS

ProFTPD ya está instalado. Ahora, tendrás que configurar ProFTPD con TLS para las conexiones FTP seguras.

Antes de empezar, tendrás que instalar OpenSSL en tu servidor. Puedes instalarlo simplemente ejecutando el siguiente comando:

apt-get install openssl -y

Una vez completada la instalación, genera los certificados SSL para ProFTPd 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

Responde a todas las preguntas como se muestra a continuación:

Generating a 1024 bit RSA private key
.++++++
.......................++++++
writing new private key to '/etc/ssl/private/proftpd.key'
-----
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) []:Junagadh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]

El comando anterior generará dos archivos /etc/ssl/private/proftpd.key y /etc/ssl/certs/proftpd.crt.

A continuación, proporciona los permisos adecuados a los archivos generados con el siguiente comando:

chmod 600 /etc/ssl/private/proftpd.key
chmod 600 /etc/ssl/certs/proftpd.crt

Una vez hecho esto, puedes pasar al siguiente paso.

Configurar ProFTPD para usar SSL

A continuación, tendrás que configurar ProFTPD para que utilice certificados SSL. Puedes hacerlo editando el archivo /etc/proftpd/proftpd.conf:

nano /etc/proftpd/proftpd.conf

Descomenta la siguiente línea:

Include /etc/proftpd/tls.conf

Guarda y cierra el archivo, cuando hayas terminado. A continuación, abre el archivo /etc/proftpd/tls.conf:

nano /etc/proftpd/tls.conf

Cambia las siguientes líneas:

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRequired on
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off

Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio ProFTPD con el siguiente comando:

systemctl restart proftpd

Una vez hecho esto, puedes pasar al siguiente paso.

Crear un usuario para ProFTPD

A continuación, tendrás que crear un usuario de ProFTPD para acceder al servidor. Puedes hacerlo con el siguiente comando:

adduser ftp1

Responde a todas las preguntas que se muestran a continuación:

Adding user `ftp1' ...
Adding new group `ftp1' (1006) ...
Adding new user `ftp1' (1002) with group `ftp1' ...
Creating home directory `/home/ftp1' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for ftp1
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

Una vez que lo hayas hecho, puedes pasar al siguiente paso.

Acceder al servidor ProFTPD con FileZilla

Ahora que ProFTPD está instalado y configurado, es el momento de acceder a ProFTPD a través de FileZilla desde el sistema Cliente.

En primer lugar, tendrás que instalar FileZilla en tu sistema Cliente. Puedes instalarlo simplemente ejecutando el siguiente comando:

apt-get install filezilla -y

Una vez completada la instalación, puedes abrir el FileZilla desde el dash de Unity como se muestra a continuación:

Cliente FTP FileZilla

Ahora, haz clic en el Administrador de Sitios en el panel lateral izquierdo y crea un nuevo sitio. Deberías ver la siguiente página:

Conexión FTP segura a través de TLS

Ahora, proporciona la dirección IP de tu servidor FTP, selecciona el protocolo, selecciona la encriptación, selecciona el tipo de inicio de sesión, proporciona el nombre de usuario y la contraseña. A continuación, haz clic en el botón Conectar. Deberías ver la siguiente página:

Aceptar certificado SSL del servidor

Ahora, acepta el certificado, marca «Confiar siempre en el certificado en futuras sesiones» y haz clic en el botón Aceptar. Después de conectarte con éxito, deberías ver la siguiente página:

Inicio de sesión en el FTP con éxito

Ahora puedes transferir archivos de forma segura a través de SSL/TLS.

Enhorabuena! has instalado y configurado con éxito el servidor ProFTPD y lo has asegurado con el cifrado SSL/TLS. Ahora puedes transferir tu archivo desde tu ordenador local al servidor FTP fácilmente con una encriptación segura. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...