Académique Documents
Professionnel Documents
Culture Documents
vsftpd es un servidor FTP de cdigo libre para sistemas UNIX, incluyendo Linux. Es muy seguro y extremadamente fcil de configurar. Ya que es soportado por casi todas las distros Linux, estas instrucciones sirven para instalarlo y configurarlo. En este tutorial, te muestro como instalar vsftp en Ubuntu Linux 11.04 1. Instalndo vsftpd (desde terminal)
sudo apt-get install vsftpd
Una vez tengas el archivo abierto en el editor, hay que hacer unos pequeos cambios, busca est lnea:
anonymous_enable=YES
Esto desactiva el acceso annimo a nuestro servidor FTP. Si no tienes una buena razn para permitir este acceso, una buena prctica es no permitirlo, siempre te pedir usuario y contrasea al intentar logearte, especialmente si tu servidor es visible desde internet. Ahora, necesitaremos habilitar el acceso local para que nuestros usuarios puedan logearse, busca sta lnea:
#local_enable=YES
(Tecleando un # delante de la directiva la desactiva, quitndola la activa.) 3. Aadimos un fake shell Editamos el archivo /etc/shells y al final del mismo aadimos la lnea /bin/false, por ejemplo. Esta lnea limita el acceso en el sistema a nuestros usuarios de FTP.
sudo gedit /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /bin/false
/bin/false es nuestro falso shell. En Red Hat Linux, existe un dispositivos especial llamado /dev/null creado para este propsito. 4. Configurando las cuentas de usuario Como ya expusimos antes, el usuario debe estar aislado en un entorno restringido diferente al de una cuenta de usuario con acceso ilimitado, a causa de cmo funciona el entorno chroot. Chroot hace aparecer desde la perspectiva del usuario, que est en el nivel superior del sistema de archivos. Utiliza el siguiente comando para crear usuarios en el archivo /etc/passwd. Este paso debe hacerse para cada usuario adicional que permites acceder a tu servidor FTP.
sudo mkdir -p /home/ftp/ftpuser sudo useradd ftpuser -d /home/ftp/ftpuser/ -s /bin/false sudo passwd ftpuser
- El comando mkdir crear el directorio principal para nuestro usuario de FTP ftp/ftpuser dentro del directorio /home/ - El comando useradd aade nuestro usuario llamado ftpuser al servidor Linux. - Como ltimo paso, el comando passwd crea una contrasea para el usuario ftpuser. Una vez hayamos terminado, para aplicar los cambios debemos de reiniciar el servicio de nuestro servidor vsftpd con el comando:
sudo /etc/init.d/vsftpd restart
o
sudo service vsftpd restart
Un servidor de ficheros (servidor FTP) puede ser muy til a la hora de centralizar datos en nuestra red, compartir con otros e incluso recibir datos de cualquier usuario autorizado para hacerlo. Montar un servidor ftp es muy sencillo gracias a VSFTPD, un servidor rpido, ligero, seguro y de fcil configuracin. Entre sus caractersticas ms interesantes encontramos: 1. 2. 3. 4. 5. 6. 7. Servidor rpido, estable y seguro Configuracin sencilla Soporte de usuarios annimos, registrados y virtuales Soporte para virtual hosts Ejecucin independiente o mediante (x)inetd Soporte IPv6 y SSL Lmites por usuario, conexin y ancho de banda
Instalacin
Gracias a que VSFTPD est presente en los repositorios oficiales de Ubuntu su instalacin ser tan sencilla como ejecutar la orden:
$ sudo apt-get install vsftpd
El propio proceso de instalacin se encarga de crear el usuario no privilegiado ftp, crear el directorio /home/ftp (donde colocaremos los archivos disponibles para el acceso annimo) y arrancar el servicio. Nota: En caso de tener un firewall instalado no olvides que debers abrir el puerto 21 (si no sabes como hacerlo consulta el artculo Administracin del firewall con firestarter), adems si conectas a internet a travs de un router y pretendes dar acceso al servidor de ficheros desde el exterior debers redireccionar el puerto 21 en la configuracin del router (revisa la documentacin de tu modelo de router si no sabes como hacerlo). Podemos comprobar que el proceso ha funcionado apuntando nuestro navegador o cliente de ftp favorito a la direccin ftp://localhost o ftp://127.0.0.1, en caso de acceder desde un ordenador remoto deberemos usar nuestra IP privada (si conectamos desde dentro de una red local) o nuestra IP pblica (si conectamos desde Internet):
Firefox conectado a nuestro servidor de ftp Nota: no muestra ningn archivo porque aun no he colocado nada en el directorio /home/ftp
Configuracin
La configuracin, muy sencilla, se realiza a travs de un nico archivo de texto plano: /etc/vsftpd.conf. Para realizar cualquier cambio en la configuracin editaremos este archivo con la orden:
$ sudo nano /etc/vsftpd.conf
Veamos ahora como cambiar la configuracin por defecto para dejar el servicio a nuestro gusto con algunos ejemplos.
Acceso annimo
El acceso annimo permitir a cualquier persona que conozca nuestra direccin IP conectarse al servicio y navegar por el directorio /home/ftp. Este modo es idoneo para compartir archivos que no necesitan una especial proteccin. Para permitir el acceso annimo editaremos el archivo de configuracin y nos aseguraremos de que contiene la linea:
anonymous_enable=YES
Para denegar el acceso annimo editaremos el archivo de configuracin y nos aseguraremos de que contiene la linea:
anonymous_enable=NO
Acceso privado
El acceso privado permite establer nombres de usuario y contrasea para acceder al servicio, cada usuari podr acceder tan solo a sus propios archivos. Este es un sistema idneo para organizar la informacin por usuarios y otorgar un cierto grado de seguridad a los archivos. Para permitir el acceso privado editaremos el archivo de configuracin y nos aseguraremos de que contiene la linea:
local_enable=YES
Para denegar el acceso privado editaremos el archivo de configuracin y nos aseguraremos de que contiene la linea:
local_enable=NO
Una vez activado el acceso privado apuntaremos nuestro navegador o cliente de ftp a la direccin ftp://usuario:clave@localhost o ftp://usuario:clave@127.0.0.1, en caso de acceder desde un ordenador remoto deberemos usar nuestra IP privada (si conectamos desde dentro de una red local) o nuestra IP pblica (si conectamos desde Internet):
Seguridad
Aunque la configuracin por defecto es bastante segura podemos afinar un poco ms este aspecto si nuestros datos lo requieren. Para evitar que los usuarios registrados puedan salir de su directorio $HOME y navegar as por todo el sistema de ficheros editaremos el archivo de configuracin y nos aseguramos de que contiene la linea:
chroot_local_user=YES
Limitar el numero mximo de conexiones simultaneas (para evitar ataques DoS) editaremos el archivo de configuracin y nos aseguramos de que contiene las lineas:
listen=YES max_clients=10
Impedir que los usuarios puedan enviar archivos a nuestro servidor (opcion activada por defecto), editaremos el archivo de configuracin y nos aseguramos de que contiene la linea:
write_enable=NO
Cambiar el puerto por el que escucha el servicio puede ayudar a evitar ataques automatizados e intrusos poco experimentados, para cambiarlo y usar por ejemplo el puerto 50 editamos el archivo de configuracin y aadimos:
listen_port=50
Modo de ejecucin
Podemos elegir ejecutar el servidor de ficheros como un servicio del sistema controlado desde el arranque (modo Standalone, responde ms rpido a las peticiones) o que se inicie automticamente en el momento en que se recibe una peticin (modo inetd, libera ms recursos en caso de no usarse el servicio) Para establecer el servicio en modo Standalone (recomendado) editaremos el archivo de configuracin y nos aseguramos de que contiene la linea:
listen=YES
Para establecer el servicio en modo xinetd comentaremos la linea anterior de manera que quede as:
#listen=YES
Y crearemos el archivo de configuracin de xinetd para el servicio de ftp /etc/vsftpd.xinetd con este contenido:
# Configuracin para el servicio FTP service ftp { disable = no socket_type = stream wait = no user = root server = /usr/sbin/vsftpd per_source =5 instances = 200 no_access = 192.168.1.3 banner_fail = /etc/vsftpd.busy_banner log_on_success += PID HOST DURATION log_on_failure += HOST } # Fin del servicio FTP
En esta entrada voy a describir los pasos bsicos para poder instalar en nuestra mquina Linux con Ubuntu 12.04 un servidor FTP. Para ello voy ha utilizar VSFTPD, estas siglas vienen de Very Secure FTP Daemon, que viene a ser demonio FTP muy seguro. Se encuentra bajo licencia GNU y soporta IPv6 y SSL. Instalacin La instalacin la hacemos desde un terminal, aunque se puede utilizar Synaptic o cualquier otro gestor de paquetes, pero a mi me resulta ms fcil desde comandos.
$ sudo apt-get install vsftpd
Configuracin La configuracin del servicio se encuentra en un mismo fichero en /etc/vsftpd.conf, editamos este fichero y modificamos algunas de las opciones.
$ sudo gedit /etc/vsftpd.conf
A continuacin detallo las que suelo modificar, evidentemente no estn todas las opciones de configuracin que ofrece VSFTPD. Como ocurre en otros servicios, la almohadilla (#) marca un comentario.
#Permitir o no el acceso a los usuarios annimos anonymous_enable=NO #Permitir el acceso de usuarios locales a sus respectivas cuentas local_enable=YES #Activar el modo escritura write_enable=YES #Mensaje de bienvenida ftpd_banner=Bienvenidos... #Encerrar a los usuarios dentro de su propio directorio persona, aumenta la seguridad chroot_local_user=YES #Para que los usuarios puedan ver sus carpetas FTP y no el reto del sistema chroot_list_enable=YES #Lista de usuarios con acceso permitido al FTP chroot_list_file=/etc/vsftpd.chroot_list #Opciones de transferencia #Establece el ancho de banda por cada usuario annimo
anon_max_rate=5100 #Establece el ancho de banda por cada usuario local local_max_rate=5100 #Nmero mximo de clientes simultneos max_clients=5 #Mximo nmero de conexiones por IP max_per_ip=2
Usuarios para utilizar el servicio FTP Generalmente, cuando instalas el servicio se crea automticamente el grupo ftp y el directorio /home/ftp, pero si no ocurre esto lo tendremos que crear a mano.
1. Creamos el directorio para el usuario dentro de /home/ftp, el directorios ser el punto en el que se encuentren todos los directorios para cada usuario del FTP. En este caso, nuestro usuario se llamar copias.
$ sudo mkdir /home/ftp/copias
3. Ahora creamos el usuario para el FTP, aadindolo al grupo ftp y asignndole su directorio.
$ sudo useradd -g ftp -d /home/ftp/copias -c "Copias" copias
Ahora viene la parte interesante para los usuarios, vamos a crear un shell fantasma, de esta forma el usuario no podr iniciar sesin en el sistema y esta cuenta nicamente servir para el FTP.
1. Creamos el directorio para el shell.
$ sudo mkdir /bin/ftp
Ahora le damos permiso al usuario para que pueda acceder mediante FTP, para ello aadimos el usuario al fichero vsftpd.chroot_list.
$ sudo gedit /etc/vsftpd.chroot_list