Вы находитесь на странице: 1из 4

Servidor FTP con Pure-ftpd

En este tutorial vamos a explicar como podemos configurar un servidor ftp con pure-ftpd. He elegido este servidor porque es muy sencillo de configurar (toda la configuracin se hace mediante los parmetros que le pasamos en el arranque), tiene muchas opciones tiles como cuotas, usuarios virtuales, etc, y es muy seguro. on pure!ftpd tendremos en poco tiempo un potente servidor ftp que podremos configurar de una forma muy flexi"le de manera muy sencilla.

Instalacin
#ara instalarlo, lo ms recomenda"le es "a$ar los fuentes de la pgina oficial% http%&&'''.pureftpd.org (na ve) descargados lo compilaremos. El hecho de compilarlo, no de"e asustarnos, ya que en este caso no nos encontraremos pro"lemas de dependencias, y as* especificaremos expl*citamente qu+ opciones querremos que nuestro servidor ftp soporte. ,escargaremos la ltima versin, pure!ftpd!-.../..tar.g) en mi caso, la descomprimiremos y entraremos en el directorio que nos ha creado% $ tar -xvzf pure-ftpd-1.0.20.tar.gz $ cd pure-ftpd-1.0.20 0hora procederemos a compilarlo1 para ello leeremos el fichero INSTALL que hay en el mismo directorio y veremos que nos dice que son instrucciones gen+ricas, con lo que en un principio haciendo el ./configure; make; make install ya lo tendr*amos instalado. ,e todos modos queremos afinar la compilacin, as* que miraremos que opciones podemos pasarle al configure para hacerlo a nuestro gusto. Haremos lo siguiente% $ ./configure --help 2 veremos todas las opciones que podemos indicarle. En nuestro caso (evidentemente aqu* cada uno puede hacer lo que crea me$or, todo depende del uso que vaya a darse al servidor) elegiremos las siguientes% --without-inetd !3 omo el servidor lo tendremos como un proceso aparte, no necesitamos soporte inetd --with-puredb !3 4oporte para usuarios virtuales --with-ratios !3 4oporte para ratios de su"ida&"a$ada --with-quotas !3 4oporte para cuotas --with-ftpwho !3 4oporte para poder ver al momento quien est conectado y qu+ est haciendo --with-throttling !3 4oporte para limitar el ancho de "anda --with-language spanish !3 4oporte para nuestro idioma 5odas estas opciones se encuentran explicadas en el fichero !"A#$" del mismo directorio. (na ve) sa"emos qu+ opciones queremos, procederemos a configurar y compilar el programa% $ ./configure --without-inetd --with-pured --with-ratios --with!uotas --with-ftpwho --with-throttling --with-language"spanish $ make $ su # make install (na ve) hecho esto, ya tenemos nuestro servidor ftp instalado en &usr&local&s"in&pure!ftpd (esto nos lo explica tam"i+n en el README).

%onfiguracin
omo hemos dicho al principio, la configuracin del servidor se hace exclusivamente en el paso de parmetros al arrancar el servidor. 0ntes de ello por eso, vamos a configurar los usuarios virtuales. &suarios virtuales 6os usuarios virtuales son usuarios que slo existirn para el ftp. #ero para ello, necesitamos asociar estos usuarios virtuales del ftp con un usuario del sistema para que puedan operar. Entonces, lo primero que haremos ser crear un usuario sin privilegios en el sistema, y asociaremos los usuarios virtuales a este usuario. 7ecordad que para poder utili)ar los usuarios virtuales de"emos ha"er compilado el programa con la opcin --with-puredb
%reando un usuario en el siste'a(

rearemos el usuario% ftpuser y el grupo ftpgroup por e$emplo (de"eremos hacerlo como root)% # groupadd ftpgroup # useradd ftpuser -g ftpgroup -d /dev/null -s / in/false on esto hemos creado un grupo ftpgroup y un usuario ftpuser que pertenece a ese grupo. 0dems, el usuario tendr como directorio home /dev/null (es decir, no tendr) y como shell por defecto /bin/false (para que no tenga una shell vlida). )e'os de asegurarnos de que la shell que indique'os apare*ca en el fichero +etc+shells. 4i no es as* la a8adiremos nosotros al final del mismo.
%reando , 'anipulando usuarios virtuales(

#ara la configuracin de los usuarios virtuales utili)aremos el comando% pure!p' Este comando mantiene la "ase de datos de los usuarios virtuales. 9amos a a8adir un usuario virtual (como root)% # pure-pw useradd nacx -u ftpuser -g ftpgroup -d /home/ftpusers/nacx -t 20 -$ 10 :os pedir una contrase8a para ese usuario. (na ve) introducida, ya ha"remos creado para el ftp el usuario nacx, que tendr como directorio de inicio (cuando se conecte al ftp) el directorio /home/ftpusers/nacx. 0dems, hemos esta"lecido que tendr un ancho de "a$ada de /.;"&s y de su"ida de -.;"&s (para poder usar estos parmetros de"emos ha"er compilado con la opcin --withthrottling. 5am"i+n hemos asociado este usuario virtual con el usuario del sistema previamente creado (esto de"eremos hacerlo con todos los usuarios que creemos). (na ve) que hemos creado todos los usuarios (o cada ve) que modifiquemos la informacin de alguno) hemos de actuali)ar la "ase de datos de los usuarios virtuales con el comando% # pure-pw mkd Esto guarda la informacin en el fichero +etc+pureftpd-pdb on esto ya tenemos nuestro servidor ftp preparado para reci"ir conexiones de estos usuarios virtuales. #ara cualquier duda so"re como "orrar o modificar usuarios virtuales, pod+is consultar el% man pure-pw

Arrancando el servidor
on todo configurado ya slo nos queda arrancar el servidor. #odemos ver una lista completa de las opciones de que disponemos haciendo un 'an pure-ftpd. 0qu* ponemos un e$emplo de cmo

arrancarlo con una configuracin ms o menos usual, y explicaremos esas opciones. 0rrancaremos el servidor con los siguientes parmetros% # /usr/local/s in/pure-ftpd -lpured %/etc/pureftpd.pd -) 2 -d -* -i -+ -u 100 6as opciones que hemos considerado son% -A !3 Hacer chroot (para que nadie pueda salir de su directorio de inicio hacia directorios superiores) -. !3 orrer en "ac;ground (para tener el proceso en segundo plano) -c / !3 < conexiones simultaneas como mximo -% 0 !3 / conexiones simultaneas para una misma ip -d !3 6og ver"oso (loguea con "astante informacin) -" !3 :o permitimos usuarios annimos -i !3 6os usuarios annimos no pueden su"ir cosas (se puede omitir si tenemos% -E) -1 !3 4i al entrar un usuario an no existe su directorio ra*), lo crea. 0s* nos ahorramos crear nosotros el directorio despu+s de a8adir un usuario virtual1 ya se crear cuando entre por primera ve). -u !3 =*nimo uid para entrar (para que no se pueda entrar como usuario privilegiado del sistema) -lpuredb(+etc+pureftpd-pdb !3 >ndicamos cual es el fichero donde se guardan los usuarios virtuales Estas son un e$emplo de las opciones que se pueden utili)ar para arrancar el servidor. (na ve) arrancado ya est completamente configurado. omo veis, es "astante sencillo de utili)ar. %reando un script de inicio( omo puede ser "astante incmodo tener que poner el comando entero cada ve) que queremos arrancar el servidor, vamos a ponerlo en un script para facilitar la tarea. (n e$emplo podr*a ser el siguiente% #,/ in/ ash case -$1- in start. echo -&rrancando pure-ftpd.../usr/local/s in/pure-ftpd -lpured %/etc/pureftpd.pd -c ( -) 2 -d -* -i -+ -u 100 ;; stop. echo -$erminando pure-ftpd...killall pure-ftpd ;; /. echo -0so% $0 1start2stop3exit 1 ;; esac exit 0 -& -' -c (

-& -'

4er*a prctico ser*a tam"i+n poner comentados (con al carcter 2 delante) en alguna parte del fichero los significados de los parmetros que le pasamos al programa. #odemos guardar este script en el directorio +etc+init-d+ para ponerlo como demonio y que se e$ecute cada ve) al arrancar el sistema. ? si no podemos utili)arlo para arrancar&parar el servidor manualmente con (estando en el mismo directorio que el script)% # ./nom re4script start # ./nom re4script stop 0hora ya tenemos un complet*simo servidor ftp, seguro, ro"usto y que adems es tan fcil de configurar como a8adir o quitar algin parmetro el script que nos hemos hecho para arrancar el servidor.

Вам также может понравиться