Mi Blog
👉 Cómo instalar y configurar ProFTPD en GNU/Linux Debian

Cómo instalar y configurar ProFTPD en GNU/Linux Debian

 
(5 votos)

Instalar y configurar un servidor FTP en GNU/Linux es sumamente sencillo, rápido y fiable. Es posible que en algún momento de vuestra vida, hayáis necesitado instalar un servidor de FTP en vuestra casa ó en una empresa para que los trabajadores puedan subir y descargar ficheros necesarios para el trabajo del día a día. 

En este tutorial, voy a enseñaros cómo instalar el servidor de FTP ProFTPD en GNU/Linux y cómo realizar una configuración básica con usuarios anónimos y usuarios con cuentas en el sistema.

Seguid leyendo si queréis aprender a configurar vuestro primer servidor de FTP...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES UN SERVIDOR FTP?

El Protocolo de transferencia de archivos (en inglés File Transfer Protocol o FTP) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.

El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos.

Para solucionar este problema son de gran utilidad aplicaciones como FTP sobre TLS ño las recientes SCP y SFTP, incluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el tráfico.

 

 

El protocolo FTP permite transferir ficheros de forma rápida y sencilla

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un equipo con GNU/Linux
  • Conexión a Internet (por si necesitamos instalar algún programa)
  • Cliente FTP

 

 

2.- INSTALAR PROFTPD

Para instalar el servidor de FTP es tan sencillo como lanzar el siguiente comando. Debes estar seguro de que tienes conexión a Internet y los repositorios bien configurados:

raul@ns1:~$ sudo apt-get install proftpd-basic

 

 

Es necesario realizar las operaciones con usuario root o con sudo.

 

3.- CONFIGURACIÓN BÁSICA (USUARIOS DE SISTEMA)

ProFTPD instala un fichero de configuración por defecto. Lo que tenemos que hacer es guardar una copia de seguridad del fichero proftpd.conf y crear nuestro propio fichero proftpd.conf. Es posible que tengamos que revisar algo del fichero de ejemplo, por eso es útil hacer una copia de seguridad. Para crear un respaldo del fichero, basta con cambiarle el nombre de la siguiente forma:

raul@ns1:~$ sudo mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.bck

 

 

Ahora crearemos nuestro propio fichero con cualquier editor de texto y lo guardaremos como proftpd.conf ubicado en /etc/proftpd/ con la siguiente configuración básica para que arranque el servidor:

ServerName "Debian"
ServerType standalone
DefaultServer on
UseIPv6 off

 

 

Para aplicar los cambios, es necesario reiniciar el servicio de ProFTPD con el siguiente comando:

raul@ns1:~$ sudo /etc/init.d/proftpd restart

 

 

Ahora, es momento de probar el acceso a nuestro servidor utilizando una cuenta de usuario existente en el sistema. En este ejemplo, utilizaré la cuenta del usuario raul. Las capturas de pantalla se corresponden al cliente gráfico Filezilla. Necesitaremos los siguientes datos: ip del servidor (172.26.1.133), nombre de usuario (raul) y contraseña (contraseña):

ProftpdAcceso con usuario de sistema sin DefaultRoot

 

 

En la captura anterior, se puede ver que el acceso el servidor funciona correctamente, pero .... ¿veis algún problema? Correcto. El problema es que el usuario tiene acceso a todo el sistema de ficheros, y normalmente esto no interesa.

ProftpdSistema de ficheros raíz

 

 

Para solventar este problema, es necesario añadir la siguiente línea en el fichero de configuración y posteriormente reiniciar el servidor para que se apliquen los cambios:

DefaultRoot ~

 

 

ProftpdAcceso con DefaultRoot

 

 

4.- CONFIGURACIÓN BÁSICA (USUARIO ANONYMOUS)

El directorio raíz del servidor ProFTPD se encuentra ubicado en /srv/ftp (puede cambiar en función de la distribución de GNU/Linux). Un usuario anónimo tendrá acceso de solo lectura en dicho directorio, pero podrá subir ficheros en un subdirectorio que crearemos llamado uploads. Para ello, crearemos el directorio uploads y le daremos los permisos correctos del usuario y grupo de ProFTPD:

raul@ns1:~$ sudo mkdir /srv/ftp/upload
raul@ns1:~$ sudo chown ftp.nogroup /srv/ftp/upload

 

 

Para conseguir el funcionamiento descrito en el párrafo anterior, deberemos añadir la siguiente configuración, donde básicamente tenemos 2 directorios con 2 permisos diferentes (el raíz y uploads). En la raíz no podrá escribir, pero en uploads sí podrá. El usuario anonymous heredará los permisos a nivel de sistema de ficheros del usuario ftp y del grupo nogroup. Otra opción muy importante es RequireValidShell con valor no/off. Con ese parámetro se le indica a ProFTPD que no es necesario que anonymous tenga una cuenta creada en el sistema.

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>
 

 

 

Ahora, si probamos a acceder con el usuario anonymous y crear un directorio llamado "Nuevo directorio" en la raíz, veremos que efectivamente da error. Si intentamos subir un fichero llamado "vv" también dará error. Sin embargo, dentro del directorio /uploads podremos crear tanto directorios como subir ficheros:

ProftpdAcceso con usuario anonymous

 

 

Los límites de parámetros, abarcan los siguientes comandos:

  • ALL
    Abarca: todos los comandos de FTP (pero no LOGIN)
  • DIRS
    Abarca: CDUP, CWD, LIST, MDTM, MLSD, MLST, NLST, PWD, RNFR, STAT, XCUP, XCWD, XPWD
  • LOGIN
    Abarca: login de clientes
  • READ
    Abarca: RETR, SIZE
  • WRITE
    Abarca: APPE, DELE, MKD, RMD, RNTO, STOR, STOU, XMKD, XRMD

 

 

5.- CONFIGURACIÓN FINAL

A continuación pongo el contenido completo del fichero proftpd.conf descrito en este tutorial.

ServerName "Debian"
ServerType standalone
DefaultServer on
UseIPv6 off

DefaultRoot ~

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>
 

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!