Sunteți pe pagina 1din 8

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

Tema7: Servidor ftp en linux con vsftpd.


Introduccin
Vsftpd es una implementacin de servidor FTP basada en la seguridad. El demonio vsFTPd permite adems gestionar el ancho de banda entregado para evitar saturaciones del enlace FTP, y es utilizado por algunos proveedores y servidores con hasta 15.000 conexiones simultneas, como ftp.redhat.com. Se distingue principalmente porque sus valores por defecto son muy seguros y por su sencillez en la configuracin, comparado con otras alternativas como Wu-ftpd. Actualmente se presume que VSFTPD es quiz el servidor FTP ms seguro del mundo. Puede funcionar como demonio solitario (standalone) y no solitario dependiendo del superdemonio xinetd. Se aconseja en modo standalone. Vsftpd puede descargarse de la siguiente direccin: ftp://ferret.lmh.ox.ac.uk/pub/linux/vsftpd o bien mediante yum yum -y install vsftpd

Ficheros de configuracin.
/etc/vsftpd/vsftpd.conf /etc/vsftpd.ftpusers /etc/vsftpd.user_list /etc/vsftpd.chroot_list /var/ftp /etc/pam.d/vsftpd Fichero de configuracin principal del demonio. Usuarios no permitidos para hacer ftp Usuarios permitidos o no hacer ftp depende de la directiva userList_deny est a NO o YES respectivamente. Lista de usuarios que al conectar estarn excluidor de tomar como raz el directorio home. Debemos crearlo Directorio para el usuario annimo Fichero PAM que indica dnde se encuentran los usuarios del servidor ftp. Por defecto los usuarios son los usuarios del sistema linux. Permite configurarse para tener usuarios ftp diferentes a los usuarios del sistema. Fichero que contiene una BD de usuarios distintos del sistema

/etc/vsftpd_login.db

ngel Delgado Herrador

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

Arranque y parada del servicio


En modo standalone, para arrancar, parar, reiniciar, o ver su estado se utiliza el comando service seguido del script del servidor. service vsftpd {start | stop | restart | status} o bien /etc/rc.d/init.d/vsftpd {start | stop | restart | status} Para configurar el arranque del servicio en los runlevels 3,4,5 se utiliza el comando chkconfig, con la opcin on se activa y con la opcin off se desactiva. chkconfig vsftpd {on | off}

Procedimientos.
Tome el editor de texto de su preferencia y edite /etc/vsftpd/vsftpd.conf. A continuacin analizaremos los parmetros a modificar o aadir segn sea necesario. Parmetro anonymous_enable. Este parmetro se utiliza para definir si se permitirn los accesos annimos al servidor. Establezca el valor como valores YES o NO de acuerdo a lo que se requiera. anonymous_enable=YES El directorio para usuarios annimos es /var/ftp. Recuerda que el acceso annimo se realiza como usuario anonymous con contrasea su email por cortesa. Parmetro local_enable. Este parmetro es particularmente atractivo si se combina con la funcin de jaula. Establece si se van a permitir los accesos autenticados de los usuarios locales del sistema. Establezca el valor YES o NO de acuerdo a lo que se requiera. local_enable=YES Si la directiva chroot_local_user no est puesta a YES hace que el usuario pueda navegar por el rbol completo de directorios del sistema, esto lgicamente es muy peligroso por lo tanto sera conveniente colocar la siguiente directiva para enjaular al usuario autenticado en su directorio $HOME. chroot_local_user=YES Cambio del puerto del servidor. La directiva listen_port permite cambiar el puerto por el que escucha el servidor. Por defecto
ngel Delgado Herrador 2

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

es el puerto 21. La directiva listen=YES permite configurar el servidor en modo standalone (solitario). Se puede configurar adicionalmente para que escuche por el puerto 20 que es el original del servidor ftp utilizando la directiva connect_from_port_20=YES. listen_port=2121 listen=YES connect_from_port_20=YES

Control de usuarios. El fichero /etc/vsftpd.ftpusers contiene una lista de usuarios que no pueden realizar un ftp autentificado. Por ejemplo podra contener lo siguiente: # Users that are not allowed to login via ftp root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody El fichero vsftpd.user_list contiene una lista de usuarios. Si la directiva userlist_deny=NO contiene la lista de usuarios que nicamente se le permite el acceso. Si la directiva userlist_deny=YES contiene la lista de usuarios que no se le permiten hacer ftp adems de los listados en /etc/vsftpd.ftpusers

Estableciendo jaulas para los usuarios: parmetros chroot_local_user y chroot_list_file. De modo predefinido los usuarios del sistema que se autentiquen tendrn acceso a otros directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder utilizar su propio directorio personal, puede hacerse fcilmente con el parmetro chroot_local_user que habilitar la funcin de chroot() y los parmetros chroot_list_enable y chroot_list_file para establecer el fichero con la lista de usuarios que quedarn excluidos de la funcin chroot(). chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

ngel Delgado Herrador

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendr acceso a su propio directorio personal y lo que este contenga. No olvide crear /etc/vsftpd/vsftpd.chroot_list, ya que de otro modo no arrancar vsftpd.

Parmetro write_enable. Este parmetro establece si se permite el mandato "write" (escritura) en el servidor. Establezca el valor YES o NO de acuerdo a lo que se requiera. write_enable=YES

Parmetro ftpd_banner. Este parmetro sirve para establecer el bandern de bienvenida que ser mostrado cada vez que un usuario acceda al servidor. Puede establecerse cualquier frase breve que considere conveniente.

ftpd_banner=Bienvenido al servidor FTP del IES Inca Garcilaso.

Control del ancho de banda. Parmetro anon_max_rate. Este parmetro es utilizado para limitar la tasa de transferencia en bytes por segundo para los usuarios annimos, algo sumamente til en servidores FTP de acceso pblico. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios annimos: anon_max_rate=5120 Parmetro local_max_rate. Este parmetro hace lo mismo que anon_max_rate, pero aplica para usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios locales: local_max_rate=5120 Parmetro max_clients. Este parmetro establece el nmero mximo de clientes que podrn acceder simultneamente hacia el servidor FTP. En el siguiente ejemplo se limitar el acceso a 5 clientes simultneos. max_clients=5
ngel Delgado Herrador 4

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

Parmetro max_per_ip. Este parmetro establece el nmero mximo de conexiones que se pueden realizar desde una misma direccin IP. Tome en cuenta que algunas redes acceden a travs de un servidor proxy o puerta de enlace haciendo NAT y debido a esto podran quedar bloqueados innecesariamente algunos accesos. En el siguiente ejemplo se limita el nmero de conexiones por IP simultneas a 5. max_per_ip=5 Configuracin personalizada para usuarios autentificados Es muy til realizar una configuracin de acceso diferente para cada usuario. Por ejemplo puede interesar que un usuario pueda subir archivos y otros no, o bien direccionar algn usuario hacia un directorio diferente de su directorio $HOME, como por ejemplo un directorio donde subir el sitio web de un usuario, que posteriormente pueda ser consultado a travs de apache. En el fichero vsftpd.conf agregar la directiva: user_config_dir=/etc/vsftpd/users donde /etc/vsftpd/users es un directorio que contiene ficheros con el mismo nombre de los usuarios. Crear tantos ficheros como usuarios autentificados, Ejemplo /etc/vsftpd/users/angel dirlist_enable=YES download_enable=YES local_root=/usuarios write_enable=NO

Configuracin del servidor con usuarios fantasma


Introduccin y Objetivos En la configuracin vamos a ver paso por paso las mltiples opciones que tenemos, aunque muchas de ellas vienen explicadas (en ingls) en el man de vsftpd.conf [1] Vamos a crear usuario "fantasma", es decir, solo sern usuarios del ftp, no existirn como usuario del sistema, de esta manera en caso de que exista algn tipo de fallo en el servidor, slo se quedara comprometido el ftp. Adems vamos a enjaular a los usuarios, para que solo puedan acceder al directorio que nosotros queramos, y as evitar que "naveguen" por nuestro disco duro. Para indicarle los usuarios que queremos, hacemos uso de db (Berkereley db).Lo que hacemos ahora es crear un archivo con los login / passwords que queramos en formato db, para ello creamos un archivo de texto en el directorio de trabajo, y metemos logins y passwords en lineas alternas, de esta manera: pepe pass1 paco pass2 Por lo tanto tenemos dos usuarios, pepe y paco, con contraseas pass1 y pass2
ngel Delgado Herrador 5

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

respectivamente, (y al archivo lo hemos llamado usuarios). Ahora creamos la base de datos en formato db ayudndonos de 'Berkereley db' (tenemos que ser root, puesto que necesitamos permisos de escritura en /etc) # db_load -T -t hash -f usuarios /etc/vsftpd_login.db Con esto hemos creado /etc/vsftpd_login.db, ahora nos aseguramos que los permisos son lo ms restrictivo posible: # chmod 600 /etc/vsftpd_login.db Una vez creada nuestra base de datos, necesitamos crear un archivo PAM para indicar que use nuestra base de datos. Para ello incluimos estas lneas en el fichero /etc/pam.d/vsftpd (se recomienda realizar una copia de seguridad de este fichero antes de modificarlo): auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login En el fichero vsftpd.conf debemos tener la siguiente directiva: pam_service_name=vsftpd Ahora vamos a crear a nuestro usuario 'fantasma', para esto hacemos: # useradd -d /home/ftp fantasma He creado el usuario 'fantasma' dentro de /home/ftp o cualquier otro directorio. Ya tenemos casi todo, nos falta crear una buena configuracin. Para esto vamos a por el archivo vsftpd.conf que se encuentra en /etc/vsftpd Como ya comentamos antes, vamos a configurarlo de tal manera que no permitamos usuarios annimos, y s autenticados anonymous_enable=NO local_enable=YES Si queremos que nuestros usuarios no tengan posibilidad de escribir, hacemos: write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO Y con esto enjaulamos al 'fantasma', de forma que tome como raz su directorio $HOME chroot_local_user=YES Y ahora el puntito final en lo que a la configuracin de usuarios se refiere. guest_enable=YES guest_username=fantasma Con esto estamos diciendo que todos los usuarios sean 'fantasma' a nivel de usuario en nuestro servidor. Si ahora entramos en nuestro servidor, nos va a decir que 150 Here comes the directory listing. 226 Transfer done (but failed to open directory). Puesto que no tenemos permisos suficientes ... Una vez aqui, alguno se preguntar y como hacemos ahora para bajar/subir los archivos, si le servidor no nos deja ni movernos? La explicacin es sencilla, lo que hemos hecho es crear un entorno lo ms seguro posible,
ngel Delgado Herrador 6

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

que se adapte a nuestras exigencias. Pero, ahora lo que vamos a hacer es definir permisos usuario por usuario. Y eso lo vamos a conseguir con la opcin 'user_config_dir', que nosotros vamos especificarla en '/etc/vsftpd/users', de la siguiente manera user_config_dir=/etc/vsftpd/users Creamos los directorios /etc/vsftpd/users, para luego meter las caractersticas de nuestros usuarios. Ahora slo nos queda definir usuario a usuario los permisos de cada uno. Para ello lo nico que tenemos que hacer es crear un archivo por usuario, con el nombre del mismo dentro de /etc/vsftpd/users, especificando las opciones 'extras' que queremos que tenga cada uno de ellos. Por ejemplo a pepe, le vamos a permitir 'ver' y descargar lo que hay en /data, para ello como indicamos antes, creamos el archivo /etc/vsftpd/users/pepe dirlist_enable=YES download_enable=YES local_root=/data write_enable=NO anon_world_readable_only=NO Y a paco, le vamos a permitir escribir en /home/ftp, para lo cual creamos otro archivo pero esta vez se llama paco, que contenga dirlist_enable=YES download_enable=YES local_root=/home/ftp anon_upload_enable=YES anon_world_readable_only=NO write_enable=YES Y as usuario a usuario podemos determinar los privilegios de cada uno, y dejarles enjaulados donde nosotros queramos, sin que puedan fisgar por el resto de nuestro sistema. Como no queremos que los usuarios del sistema puedan acceder, lo que hacemos es ponerlo explcitamente como indicamos ahora Crearemos una lista de usuarios a los que se deniega el acceso, y la guardamos en /etc/vsftpd.ftpusers o /etc/vsftpd/denied_users si es debian. (hacer primero una copia de seguridad del fichero) Para ello se puede agregar la salida del siguiente comando que nos da la lista de usuarios del stma al fichero /etc/vsftpd.ftpusers, donde se encuentran la lista de usuarios a los que se deniega el acceso va ftp: #cat /etc/passwd | cut -d ":" -f 1 | sort o bien podemos eliminar el fichero original: #cat /etc/passwd | cut -d ":" -f 1 | sort > /etc/vsftpd.ftpusers Si te ests preguntando porqu no queremos que los usuarios del sistema puedan iniciar sesin en el servidor ftp, la respuesta es por seguridad, puesto que los usuarios suelen tener ms permisos de los necesarios en el ftp, adems, los login/passwd en ftp van en texto claro, siendo muy propensas a ser esnifadas, y pueden comprometer la seguridad del servidor. Finalmente Con todo esto, hemos conseguido configurar el servidor de vsftpd, con usuarios fantasma, y estableciendo una configuracin personalizada por cada usuario. De esta manera se consigue una
ngel Delgado Herrador 7

Instalacin y mantenimiento de Servicios de Internet

CFGM Explotacin de sistemas informticos IES Inca Gracilazo Montilla

mayor versatilidad a la hora de configurar el servidor, y una mayor seguridad.

ngel Delgado Herrador

S-ar putea să vă placă și