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

proftpd_tuto_foto_1

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”.

proftpd_tuto_foto_2

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 gedit /etc/proftpd/proftpd.conf

proftpd_tuto_foto_3

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:

proftpd_tuto_foto_6

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 /etc/init.d/proftpd restart

Vamos a comprobar que el servidor nos funciona. Para ello utilizaremos un cliente como FileZilla y nos conectaremos a nuestra cuenta.

proftpd_tuto_foto_4

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:

sudo adduser usuario

(creamos el usuario)

 

A continuación estableceremos la contraseña para el mismo:

sudo 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>

proftpd_tuto_foto_5

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 gedit /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

Como podemos ver, proFTPd es un servidor torrent muy potente y sencillo de configurar. Con proFTPd no tendremos problemas, por ejemplo, a la hora de tener que usar el servidor con muchos usuarios a la vez ni al tener que compartir archivos con muchos usuarios al mismo tiempo.

¿Qué te parece proFTPd? ¿Qué servidor FTP utilizas en tu sistema Linux para acceder a tus archivos?

Publicado por Sergio De Luz el 23 Octubre 2013

  • Eduardo

    Muy bueno tu manual, quiero crear usuarios para el servidor ftp pero para que solo tengan acceso a este y no al servidor donde esta alojado el ftp

  • Raul

    Hola lo tengo instalado en una raspberry con openelec, y me funciona perfectamente con varios usuarios pero con los usuarios distintos de root, no me permite crear carpetas, si mover archivos, copiar y pegar pero no crear carpetas.
    Como puedo solucionarlo. Gracias

    • No te deja crear carpetas en el propio /home/ de cada usuario? Mira el umask que tengan esos usuarios y tema de permisos, vía ssh sí te deja o tampoco?

  • Pingback: ProFTPd: Manual de instalación y configuración de este servidor FTP para Linux | Mivozip()

  • jose

    hola buenas ,consulta los usuarios que creas son los mismo que voy a poder utilizar en el filezilla ?

    • javier

      Sí, con su contraseña correspondiente.

  • javier

    Si creas un directorio para alojar los archivos ftp colgando de /var (ej: /var/miFTP) ¿qué permisos deberíamos darle a este directorio para que los usuarios tuvieran permisos de lectura y escritura? ¿Quién debería ser el propietario y el grupo propietario para permitir que todos los usuarios tuviesen esos permisos?. Gracias de antebrazo 😉

    • Puedes crear un grupo nuevo de usuarios FTP con un admin y darles permisos 770 recursivo y con umask 007

  • jotb

    Buenas, tengo problema, y es el siguiente tengo un FTP ya listo y funcionando, pero quisiera acceder a el por medio de un cliente como por ejemplo “Filezilla”, el problema es que logro acceder a el por medio de este cliente pero no me permite realizar ningun tipo de modificacion, ni subir ningun tipo de archivo la verdad quisiera saber si me pueden ayudar ?

    • Eso es porque en el servidor FTP no tienes permisos de escritura, tendrás que mirar la configuración del servidor y que la carpeta esté con permisos de lectura, escritura y ejecución.

  • Pingback: Configuración de servidor FTP para XAMPP en Ubuntu | Aficiones Varias()

  • Pingback: Instalación y Configuración del Servicio FTP en un Servidor Debian | WarriorOfLinux()

  • Sergio

    Hola, quiero compartir un directorio (/media/pendrive), hasta hay se. Pero quiero qur haya 2 usuarios por ejemplo (user1 y user2) y que user1 tenga todos los permisoa en ese directorio y que user2 tenga solo permisos de lectura por ejemplo.
    Como puedo ir asignando permisos a cada usuario?

    Gracias

    • Hola,

      Tienes que usar las “class” para gestionar el tema de los permisos y demás opciones avanzadas, no obstante creo que al crear los diferentes usuarios virtuales puedes definirlo.

  • jhoel lopes

    Felicitarte por el aporte
    Como puedo saber todos los movimientos de los usuarios que se conectan al ftp (si crearon nuevos directorios, si borraron algo, que vieron, etc…)

    Gracias… De ante mano

    • En el log del propio programa…ahí está todo el tema de conexiones etc.

Últimos análisis

Valoración RZ
8
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10
Valoración RZ
9
Valoración RZ
10
Valoración RZ
7
Valoración RZ
9
Valoración RZ
10
Valoración RZ
8