Introducción

Pure-FTPd es un servidor FTP libre (GPL) basado en Troll-FTPd. Fue modificado por Frank Dennis por razones de seguridad y funcionalidad.

Los principales objetivos de este servidor FTP son la eficiencia, la seguridad y la facilidad de uso. Está diseñado para ser seguro en su configuración por defecto; no tiene buffer overflows conocidos y es muy sencillo de instalar. Ha sido diseñado para los kernels modernos, y ha sido portado con éxito a Linux, FreeBSD, NetBSD, OpenBSD, BSDi, Solaris, Darwin, Tru64, Irix y HPUX.

Compilación e instalación de Pure-FTPd

Lo primero de todo será bajarnos el último fuente, actualmente es la versión 1.0.12. El fichero a bajar será pure-ftpd-1.0.12.tar.gz.

% tar zxvf pure-ftpd-1.0.12.tar.gz
% cd pure-ftpd-1.0.12
% ./configure --with-puredb --with-throttling --with-language=spanish --with-ftpwho
% make
–with-puredb Nos permite crear usuarios virtuales para el FTP.
–with-throttling Para poder limitar el ancho de banda.
–with-language=spanish Soporte en castellano de los mensajes del servidor.
–with-ftpwho Nos permite ver quien está conectado.

Ahora nos hacemos root con el comando su para poder realizar la instalacio’n en el sistema:

# make install

Ya tenemos instalado pure-ftpd. Ahora nos falta lo más importante, que es la configuración y la puesta en marcha.

Configuración y puesta en marcha

pure-ftpd es configurable a través de la linea de comandos, es decir, a la hora de arrancar el servidor le pasamos como parámetros las opciones que queramos.

Tenemos también otra opción que es editar el fichero /etc/pureftpd.conf, y con el script pure-config.pl que acompaña el programa.

Opciones disponibles

# /usr/local/sbin/pure-ftpd <opciones>
-A chroot para todos los usuarios. No pueden salir del directorio del FTP.
-c 10 10 conexiones máximas al FTP.
-B Ejecutar en segundo plano.
-C 2 Permitir solamente 2 conexiones para una misma IP.
-d Verbose log.
-E No permitir usuario anonymous.
-f ftp Logear a través de syslog.
-H No resolver IP.
-I 15 Si el usuario está 15 minutos inactivo, es desconectado
-L 2000:8 Límite de recursividad.
-m 3 Máxima carga por encima de la cual el servidor deja de funcionar.
-s Antiwarez.
-U 133:022 umask
-u 100 minuid
-k 90 Se podrá usar como máximo el 90% de la partición.
-lpuredb:/etc/pureftpd.pdb Usaremos usuarios virtuales de FTP en vez de cuentas reales del sistema.
-S hostname_o_ip,puerto Escuchamos en el puerto especificado de esa IP o Hostname, si el equipo tiene varias IPs.

*Nota: Para acceder a la lista completa de opciones pulse aquí.

Manejo de usuarios

Antes de nada añadiremos a nuestro sistema un usuario y grupo llamado ftp.

Se recomienda utilizar usuarios virtuales en lugar de cuentas del sistema, por eso hemos habilitado la opción AUTH (-lpuredb:/etc/pureftpd.pdb). Para manejar los usuarios, utilizaremos la herramienta pure-pw.

Por ejemplo, si queremos añadir al usuario pepe, lo haremos de la siguiente forma:

# pure-pw useradd pepe -u ftp -g ftp -d /home/ftp/pepito -t 5 -T 10
Password:
# pure-pw mkdb
-u <userid> User ID
-g <gid> Group ID
-d <directorio> Directorio al que tiene acceso el usuario
-t 5 5 Kb/s de límite de ancho de banda de bajada
-T 10 10 Kb/s de límite de ancho de banda de subida

Una vez introducido el password, lo siguiente que hemos hecho ha sido actualizar la base de datos /etc/pureftpd.pdb para que los cambios surtan efecto.

Para eliminar y modificar usuarios usaremos respectivamente las opciones userdel y usermod de la herramienta pure-pw. El manejo es muy intuitivo y sencillo, así que con la ayuda en linea del propio programa es suficiente.

Configuración de Ratios

Aunque personalmente odie los ratios, no por eso voy a dejar de explicar como usarlos con pure-ftpd.

Los ratios se usan para obligar a los usuarios a dejar algún fichero de X megas en el FTP para poder bajar Y megas. Para activar los ratios usaremos la opción -q X:Y (upload:download).

Banners y mensajes de bienvenida

Si en el directorio raíz del ftp grabamos un fichero de nombre .banner, de tamaño no superior a 4000 bytes, éste será impreso por pantalla cuando el usuario acceda al FTP. En cada directorio tambien podemos grabar un fichero .message para que sea impreso cada vez que el usuario accede al directorio.

Permitiendo Uploads

La problemática del directorio upload es que, al tener permiso de escritura, en principio los usuarios pueden borrar los ficheros, usar el directorio para intercambiar warez, etc. Esto lo podemos evitar estableciendo permisos de escritura y ejecución al directorio pero no de lectura (drwx-wx-wx), con chmod 333.

Otra posibilidad es arrancar el servidor pure-ftpd con la opcion -U 777:777, de forma que los ficheros que suban los usuarios tendrán permisos ———-. De esta forma no podrán ser descargados.

Cierre

Esto ha sido una introducción a Pure-FTPd, para que los usuarios novatos que no se atreven a instalar un servidor FTP tengan un texto que les sirva de ayuda. Si queréis saber más sobre este servidor FTP, no dejéis de visitar su página oficial.