Print Shortlink

Servidor FTP en Ubuntu 14.04 – Instalación y configuración de Proftpd

Introducción

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.

Instalación y Configuración Básica

Se deberá de instalar el paquete llamado proftpd

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 se recomienda seleccionar la opción “inetd” para ahorrar recursos del sistema. Si vamos a hacer un uso considerable del servidor FTP con varios usuarios, se debería de seleccionar como “independiente”. Dejémoslo en “independiente”.

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.

sudo nano /etc/proftpd/proftpd.conf

Lo primero que debemos hacer es establecer una carpeta como directorio principal para todos los usuarios del FTP. Buscaremos la línea comentada “DefaultRoot” y la descomentamos borrando el caracter #. Esto nos va a permitir que cuando cada usuario acceda a su cuenta del FTP, estos accederán directamente a su carpeta “home”.

Ahora reinicie el demonio proftpd.

sudo service proftpd restart

Comprobaremos que esta funcionando bien nuestro servidor…  Digitar:

ftp localhost

  • Ingresar el nombre de usuario con el que se logueó al sistema
  • Luego le pediré la clave. Ingresarla.
  • Digitar ahora el comando:   ls

Deberá de mostrarle sus archivos.

Para salir de ésta sesión, digitar el comando quit

 

Usar una misma carpeta para todos los usuarios

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.

Para nuestro ejemplo, crearemos una carpeta llamada proftpd en /home/ (le asignaremos permiso 777 a la carpeta) y modificaremos el archivo de configuración, de tal manera asignarle al parámetro DefaultRoot la ruta del directorio creado:

sudo mkdir /home/proftpd

sudo chmod 777 /home/proftpd

sudo nano /etc/proftpd/proftpd.conf

Modificar el parámetro de tal manera quede así:

DefaultRoot         /home/proftpd

y crearemos un archivo vacío llamado hola.txt en /home/proftpd

sudo touch /home/proftpd/hola.txt

Reiniciar el demonio y comprobar que funcione (hacer las pruebas anteriores con el comando ftp).

sudo service proftpd stop

sudo service proftpd start

 

Usar una misma carpeta para algunos usuarios

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 el ejemplo, crearemos 2 usuarios: usuario_a  &  usuario_b

sudo useradd usuario_a

sudo useradd usuario_b

El parámetro DefaultRoot tiene la siguiente estructura:

DefaultRoot [directorio] [Grupo de usuarios con acceso ese directorio por defecto]     [Grupo de usuarios a los que no se les aplicará ese directorio]

En nuestro caso, usuario_a únicamente podrá acceder al directorio /home/proftpd, mientras que usuario_b podrá acceder a todo el disco duro.

Ahora, debemos modificar los siguientes aspectos del archivo de configuración:

sudo nano /etc/proftpd/proftpd.conf

DefaultRoot     /home/proftpd     usuario_a

DefaultRoot     /             usuario_b

 

Reiniciar el servicio proftpd.

sudo service proftpd restart

Puede verificar siempre con el comando ftp, cerrando y abriendo sesión de cada usuario.

Al iniciar sesión en el servidor ftp con el usuario_a, debería ver el archivo touch.

Al entrar al servidor ftp con el usuario_b, al inicio estaría en su home pero, si se digita el comando cd /  podrá ver los archivos de la raíz.

 

Archivo Log (Registro o eventos en el servicio FTP)

El archivo log esta en: /var/log/proftpd/proftpd.log

sudo tail -f /var/log/proftpd/proftpd.log

 

Otros parámetros interesante

  • ServerName: Nos permite establecer un nombre al servidor.
  • AccessGrantMsg: Mensaje de bienvenida. (Hay que añadir dicho parámetro al final del archivo manualmente).
    Ejemplo:
    AccessGrantMsg “Bienvenido a mi FTP”
  • AccessDenyMsg: Mensaje de error al iniciar. (Hay que añadirlo manualmente al final del archivo).

Reinicie el demonio.

sudo service proftpd restart

 

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:

sudo nano /etc/proftpd/proftpd.conf

<Limit LOGIN>
AllowUser usuario_a
DenyAll
</Limit>

Por cierto… dejaremos la configuración de proftpd a     DefaultRoot     ~      así para que el home establecido al usuario sea su directorio raíz en FTP.

Guardar los cambios y reiniciar el servicio.

sudo service proftpd restart

Otros parámetros que podemos utilizar aquí (por ahora dejamos nuestro archivo de configuración como lo tenemos) son:

  • AllowUser: Nos ofrece permitir el acceso a 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.

Al entrar con el usuario_b al servidor ftp, nos daré error de acceso por permisos, dado que únicamente tiene permitido el acceso al usuario_a

Comente las líneas que ha creado ( donde esta <limit….  Hasta </limit> ) para continuar con el siguiente punto.

 

Conexiones anónimas

Si queremos permitir las conexiones anónimas a nuestro FTP, debemos descomentar los siguientes parámetros de configuración:

<Anonymous ~ftp>
User                         ftp
Group                        nogroup
#Estas 3 líneas deben de agregarlas
<Limit LOGIN>
    AllowAll
</Limit>
UserAlias                    anonymous ftp
RequireValidShell            off
MaxClients                   10
#Con estas líneas delimitamos el acceso para que sea de sólo lectura
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>

 

Reiniciamos el servicio proftpd y Ahora ingrese al con el comando ftp y el usuario anonymous. Le pedirá como contraseña que ingrese su dirección de correo, pero realmente puede digitar cualquier cosa ahí.

 

Comandos útiles

A continuación, los comandos utilizados en ftp y su descripción:

01(Algunos comandos pueda que no funcionen en Ubuntu o que cambia la ruta específica).

 

Pruebas desde Windows con FileZilla

Desde equipos Windows, usted puede conectarse a un servidor FTP mediante un cliente ftp. De por sí, Windows tiene el comando ftp activo (hasta donde sé) pero, creo que sería más fácil utilizar un cliente gráfico… Para eso, se puede instalar y usar FileZilla.

La instalación, solo es de dar Next, Next, Next (típico de Windows…) y, una vez finalizado y se entra en él, usted puede hacer la prueba de conexión rellenando la información de arriba, como se muestra en la imagen:

02

Solo que en lugar de localhost, colocar la IP del servidor FTP (es obvio pero es una aclaración necesaria…)

En el explorador de archivos de la izquierda se encuentra su sistema de archivo local, y en la derecha, deberá de aparecer el sistema de archivo remoto (FTP).

Bien, eso es todo. FileZilla no es complicado de usar, pero igual… si desean un mini tutorial del mismo, me avisan en los comentarios y me animo a hacerlo.

Saludos!

Comentarios por Facebook

comentarios

4 Responses

  1. liz

    Hola: Soy nueva en Ubuntu, llevo casi un mes tratando de instalar un servidor ftp y por lo que creo el problema está con la encriptación de los password. No logro loguearme.

    Mi PC tiene windows8 y uso el shell de XShell5, el servidor es proxmox sobre el que tengo el contenedor donde instalé ubuntu.
    Tanto por XShell como por WinSCP me logueo con mi contraseña root, pero no sé como adecuar los conjuntos de caracteres.

    Ojalá y me pueda ayudar.

    Saludos afectuosos,

    Liz.

  2. Ing. Pamela Hernandez

    Muy buen tutorial, felicidades!

Leave a Reply