You are on page 1of 5

Montar servidor FTP con Pure-FTPd en FreeBSD

Autor: Juan Jess Vega


Fecha: 01 de Diciembre de 2004
INTRODUCCIN
En este documento vamos a tratar de describir el proceso de instalacin, compilacin y configuracin del servidor FTP
Pure-FTPd en nuestro FreeBSD. Pure-FTPd es un servidor FTP libre (GPL) basado en Troll-FTPd. Fu
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 diseado para
ser seguro en su configuracin por defecto; no tiene buffer overflows conocidos y es muy sencillo de instalar. Ha sido
diseado para los kernels modernos, y ha sido portado con xito a Linux, FreeBSD, NetBSD, OpenBSD, BSDi,
Solaris, Darwin, Tru64, Irix y HPUX.
Compilacin e instalacin de Pure-FTPd
Distinguiremos 2 formas de hacerlo, que dejaremos a eleccin de cada cual segn sus preferencias y comodidad:
A) Forma tradicional
Lo primero de todo ser bajarnos de http://www.pureftpd.org
el ltimo fuente, acutalmente es la versin 1.0.20. El fichero a bajar ser pure-ftpd-1.0.20.tar.gz
Una vez bajado, procederemos a la compilacin y configuracin del mismo, realizando los siguientes pasos:
$ tar zxvf pure-ftpd-1.0.20.tar.gz
$ cd pure-ftpd-1.0.20
$ ./configure --with-puredb --with-throttling --with-language=spanish --with-ftpwho
$ make
--with-puredb -->Nos permite crear usuarios virtuales para el FTP
--with-throttling -->Nos permite limitar el ancho de banda
--with-language-spanish -->Soporte en castellano de los mensajes del servidor
--with-ftpwho -->Nos permite monitorizar los usuarios conectados
Ahora mediante el uso del superusuario (root), procederemos a realizar la instalacin en el sistema:
# make install
Con esto ya tenemos instalado en el sistema Pure-FTPd, ahora falta lo ms importante, que es la configuracin y
puesta en marcha.
B) Mediante el sistema de paquetes
Como muchos de vosotros, preferiris la forma mas purista de instalacin de software, es decir, mediante el sistema de
paquetes de FreeBSD, pues no poda faltar en este documento la forma de hacerlo mediante este sistema:
Lo primero ser dirigirse al directorio donde se encuentra ese port, que es en /usr/ports/ftp/pure-ftpd, as pues
tecleamos:
# cd /usr/ports/ftp/pure-ftpd
A continuacin editaremos el fichero Makefile para poder establecer y activar determinadas funcionalidades que no
vienen puestas por defecto, como son: los mensajes en castellano, la posibilidad de usar usuarios virtuales, el chrooteo
automtico de dichos usuarios a un directorio fijo.. etc. Para lo cual, haciendo uso de vuestro editor preferido, -- en
este caso usaremos el ee por su simplicidad y por ser el que viene por defecto instalado en FreeBSD-5.3 --
vi ./Makefile
Ahora, localizaremos la lnea CONFIGURE_ARGS= en la que deberemos introducir los siguientes parmetros:
--with-puredb\
--with-language=spanish\
--with-ftpwho\
--with-throttling\
y por tanto, la seccin editada, finalmente quedar:
CONFIGURE_ARGS=
--with-everything \
--with-paranoidmsg \
--with-virtualchroot \
--with-tls \
--with-largefile \
--with-puredb\
--with-language=spanish\
--with-ftpwho\
--with-throttling\
--sysconfdir=${PREFIX}/etc
Ahora nos aseguramos de haber guardado los cambios, y procedemos a la compilacin del port Pure-FTPd,
ejecutando:
# make install
Con esto ya tenemos instalado en el sistema Pure-FTPd, ahora falta lo ms importante, que es la configuracin y
puesta en marcha.
Configuracin y puesta en marcha
Pure-FTPd es configurable a travs de la lnea de comandos, es decir, a la hora de arrancar el servidor pasamos
como parmetros las opciones que queramos; despus veremos las opciones disponibles ms comunes a la hora de
poner en marcha nuestro servidor FTP, ahora pasamos a la configuracin y manejo de usuarios:
Manejo de usuarios
Antes de nada, comenzaremos aadiendo un usuario y un grupo al sistema, de la siguiente forma:
# pw groupadd ftpgroup
# pw useradd ftpuser -g ftpgroup -d /dev/null -s /etc
Es RECOMENDABLE utilizar usuarios virtuales en lugar de cuentas del sistema, por eso hemos habilitado la opcin
--with-puredb en la compilacin.
Ahora todo el mantenimiento de los usuarios virtuales se puede hacer a travs del comando pure-pw.
Cabe destacar que las contraseas con las MISMAS que las cuentas reales del sistema en caso de que usemos cuentas
reales, especificando la opcin que veremos ms adelante de usar las cuentas reales del sistema al poner en marcha el
servidor FTP.
Creando un usuario virtual
En nuestro ejemplo crearemos un usuario virtual llamado: pruebas
# pure-pw useradd pruebas -u ftpuser -d /home/ftpusers/pruebas -t 15 -T 10
Nos pedir su contrasea, le asignaremos una y la tendremos que repetir para confirmar. Las opciones que hemos
usado son las siguientes:
-u -> User ID
-g -> Group ID
-d -> Directorio al que tiene acceso el usuario*
-t 15 -> 15 Kb/s de lmite de ancho de banda de bajada
-T 10 -> 10 Kb/s de lmite de ancho de banda de subida
Nota: *Es VITAL resear la importancia de que el comando -d y al ser un usuario virtual crea un CHROOT
especfico, por lo que el usuario JAMS tendr acceso por encima de su directorio a ninguna parte del
sistema*.
Una vez introducida y confirmada la contrasea, debemos actualizar la base de datos /etc/pureftpd.pdb
Actualizacin de la base de datos
Para que los cambios realizados hasta ahora, surtan efecto, deberemos actualizar toda esa informacin en la base de
datos con el siguiente comando:
# pure-pw mkdb
Una vez finalizado usaremos, como ya explicamos previamente, el comando pure-pw para el manejo de usuarios, de
tal modo que para y a modo de ejemplo:
Ver la informacin de un usuario: pure-pw show
Eliminar un usuario del sistema: pure-pw userdel
Configuracin 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 algn fichero de X megas en el FTP para poder bajar Y megas.
Para activar los ratios usaremos la opcin -q X:Y (upload:download).
Banners y mensajes de bienvenida
Si en el directorio raz del ftp grabamos un fichero de nombre .banner, de tamao 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 problemtica 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
ejecucin 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 tendrn permisos ----------. De esta forma no podrn ser descargados.
Puesta en marcha del servidor Pure-FTPd
La primera vez que arranquemos el servidor FTP lo haremos de tal forma que en cuanto se conecten los usuarios, estos
vayan creando con su login sus respectivos directorios Chrooteados ya de por s, sin nuestra intervencin --Salvo las
cuentas reales del sistema, que usarn sus propios directorios habituales y los permisos asociados con dichas cuentas --
, para lo cual ejecutaremos como superusuario:
NOTA: *Todos aquellos que hayis usado el mtodo "A)" para instalar Pure-FTPd vuestro fichero de base
de datos donde se albergan las contraseas y manejo de usuarios virtuales ser por defecto: /etc/pureftpd.pdb y
para los que hayan usado el mtodo "B)" el fichero de trabajo ser /usr/local/etc/pureftpd.pdb. A partir de
ahora, suponemos que se ha instalado con el mtodo "A)", pero para aquellos que lo hagan mediante el
mtodo "B)", SOLAMENTE, en los pasos que vienen a continuacin han de cambiar esa ruta. Ya que si no lo
hacen cuando intenten validarse en el sistema los usuarios virtuales dar error de autentificacin, ms
concretamente, con que no se ha encontadrado dicho fichero (pureftpd.pdb obviamente.)
# pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &
Cuando los usuarios virtuales inicien su sesin en el servidor, automticamente:
Con el modificiador -j Se crear su directorio de trabajo; que previamente especificamos como
/home/ftpusers/pruebas (para el usuario "pruebas").
Con el modificador -lpuredb:/etc/pureftpd.pdb Le indicamos al sistema que los usuarios virtuales se
activen para poder iniciar sesin FTP en el sistema.
En las sucesivas activaciones de este servicio, ya no tendremos que usar ms el modificador -j ya que los directorios
se habrn creado con el primer logueo en el sistema de los usuarios virtuales, por tanto, y a partir de ahora, iniciaremos
el servidor con los siguientes parmetros:
# pure-ftpd -l unix -lpuredb:/etc/pureftpd.pdb &
Ahora el nuevo modificador es -l unix que nos permite usar las cuentas reales del sistema para loguearnos en el
servidor FTP. La lista de Opciones disponibles ms comunes son:
-A ->Chroot para todos los usuarios. No pueden salir del directorio del FTP.
-c 10 -> 10 conexiones mximas 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 travs de syslog.
-H -> No resolver IP.
-I 15 -> Si el usuario est 15 minutos inactivo, es desconectado
-L 2000:8 -> Lmite de recursividad.
-m 3 -> Mxima 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 mximo el 90% de la particin.
-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.
Para ver la lista completa de Opciones disponibles: http://www.pureftpd.org/README
Logs
Por defecto Pure-FTPd realiza el logueo de los usuarios a travs de syslog, la configuracin de este demonio
reside en /etc/syslog.conf por tanto si no nos gusta el fichero donde Pure-FTPd guarda los logs, lo podremos
modificar editando dicho archivo. El fichero donde nuestro Pure-FTPd guarda los Logs es /var/log/xferlog
Propsito
Con este mini-tutorial espero haber terminado de convencer a todos aquellos indecisos que por falta de conocimiento,
de tiempo de una gua sencilla y fcil de seguir, an no se hayan atrevido a montar su propio servidor FTP sin
renunciar a la seguridad y la potencia que ofrece este servicio.

You might also like