Instalar servidor FTP - PROFTPD en UBUNTU 17.04




ProFTPd es uno de los servidores FTP más potentes y completos disponibles para la mayoría de distribuciones de Linux. Este servidor FTP es el favorito de muchos administradores de sistemas por la configurabilidad que es capaz de proporcionarnos.
En este artículo os vamos a enseñar cómo podemos instalarlo y configurarlo de forma completa en un sistema que esté ejecutando Ubuntu para que varios usuarios puedan acceder a él de forma remota.

Instalación de proFTPd

El proceso de instalación de este servidor FTP en Ubuntu es muy sencillo. Bastará con instalar el paquetes “proftpd” desde un terminal con el siguiente comando:

sudo apt-get install proftpd
Durante la instalación nos preguntará sobre el tipo de instalación que queremos. En caso de hacer poco uso del servidor FTP podemos seleccionar la opción “inetd” para ahorrar recursos del sistema. Si vamos a hacer un uso considerable del servidor FTP con varios usuarios y bastante tiempo deberíamos instalarlo como “independiente”.

Seleccionamos la opción que más se ajuste a nuestras necesidades y finalizamos la instalación del servidor.

Configuración de proFTPd

El archivo de configuración principal de proFTPd se encuentra en /etc/proftpd/proftpd.conf. Desde aquí deberemos configurar la mayoría de los aspectos de nuestro servidor FTP.
Lo primero que debemos hacer es establecer una carpeta como directorio principal para todos los usuarios del FTP. Para ello, abriremos con nuestro editor de texto preferido el archivo de configuración anterior:

sudo nano /etc/proftpd/proftpd.conf



Una vez allí, buscaremos la línea comentada “DefaultRoot” y la descomentamos borrando la almohadilla #. Esto nos va a permitir que cuando cada usuario acceda a su cuenta del FTP, estos accederán directamente a su carpeta “home”.
Si queremos que todos los usuarios que inicien sesión accedan por defecto a una misma carpeta, debemos cambiar el parámetro DefaultRoot y añadir la ruta a la que queramos que accedan. Por ejemplo, en nuestro caso hemos creado una carpeta llamada “proftpd” dentro de /home/ y queremos que todos los usuarios por defecto accedan a ella. El archivo de configuración quedará de la siguiente manera:

También podemos hacer que todos los usuarios accedan por defecto a una carpeta (como en el paso anterior) salvo un usuario que queremos que acceda a otra o, simplemente, tenga permiso de administrador y pueda acceder a todo el disco.
Para ello debemos modificar los siguientes aspectos:
El parámetro DefaultRoot tiene la siguiente estructura:

DefaultRoot [directorio] [grupo de usuarios que tendrán ese directorio por defecto] [Grupo de usuarios a los que no se les aplicará ese directorio]

Es decir, vamos a poner el ejemplo de tener 2 usuarios, A y B. A únicamente podrá acceder a su directorio mientras que B podrá acceder a todo el disco duro. Debemos añadir las siguientes líneas:

  DefaultRoot /home/ftp A

  DefaultRoot / B

De esta manera, cuando el usuario B acceder al servidor tendrá control completo sobre todos los archivos del disco, mientras que si es A quien accede, únicamente podrá gestionar su carpeta.
Otros parámetros interesantes para configurar son:
  • ServerName: nos permite establecer un nombre al servidor.
  • AccessGrantMsg: Mensaje de bienvenida. (Hay que añadirlo manualmente al final del archivo).
  • AccessDenyMsg: Mensaje de error al iniciar. (Hay que añadirlo manualmente al final del archivo).
A continuación reiniciaremos el servidor para que se apliquen los cambios realizados tecleando:
       sudo systemctl restart proftpd

Acceso desde el cliente al servidor FTP

En un equipo cliente podemos acceder al servidor FTP de distintas formas: * Usando el explorador de ficheros (Nautilus, Explorador de Windows, etc). *  Usando el navegador web (Mozilla Firefox, Google Chrome, Opera, Safari, etc).
            ftp://tudireccionIP      
* Usando un cliente FTP (Filezilla, bareFTP, FOFF, gFTP, SmartFTP, CyberDuck, WinSCP, etc) * Usando la consola de comandos.
       Ponemos el comando ftp y seguido de él la dirección IP (o host) del servidor FTP al que                 deseamos conectarnos y listo, por ejemplo:
   ftp 192.168.128.2
      si escriben help en la shell del FTP les salen comandos que pueden usar.

Crear usuarios y contraseñas para el FTP

El proceso para crear usuarios es el mismo que para crearlos en el sistema ya que proftpd utiliza los usuarios del sistema por defecto. Debemos teclear los siguientes parámetros en un terminal:
1sudo adduser usuario
(creamos el usuario)
A continuación estableceremos la contraseña para el mismo:
1sudo passwd usuario
(creamos la contraseña para el usuario “usuario”)
A partir de ahora, “usuario” podrá conectarse al FTP y accederá, por defecto, a la carpeta especificada en DefaultRoot.

Permitir y denegar usuarios

Podemos controlar los usuarios que pueden y no pueden iniciar sesión en nuestro servidor de una forma muy sencilla. Para ello, abrimos el archivo de configuración y añadiremos lo siguiente al final de este:
            <Limit LOGIN>
        AllowUser ruvelro

        DenyAll

       </Limit>

Otros parámetros que podemos utilizar aquí son:
  • AllowUser: Nos permite permitir un usuario específico.
  • DenyUser: Bloqueamos el acceso a un usuario específico.
  • DenyAll: Bloqueamos el acceso a todos los usuarios salvo a los que especifiquemos con AllowUser.
  • AllowAll: Permite que los usuarios como “anonymous” se conecten al FTP.
Por ejemplo, si queremos permitir las conexiones anónimas a nuestro FTP debemos añadir dentro del grupo anterior el parámetro AllowAll, quedando de la siguiente manera:
                 <Limit LOGIN>
        AllowUser ruvelro

        AllowAll

        </Limit>

Para añadir un usuario nuevo debemos crear a este una cuenta de usuario en nuestro Ubuntu y accederá al servidor FTP con los credenciales de su cuenta.

Otros comandos de utilidad para proFTPd

Podemos consultar un registro de inicio de sesión y actividad con el siguiente parámetro:
        sudo  nano  /var/log/proftpd/proftpd.log
Podemos consultar los usuarios que están conectados a nuestro servidor FTP en tiempo real con los siguientes comandos:
      ftpwho
      ftptop

Comentarios