1. 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 rápido, ligero, seguro y de fácil
configuración.
Entre sus características más interesantes encontramos:
1. Servidor rápido, estable y seguro
2. Configuración sencilla
3. Soporte de usuarios anónimos, registrados y virtuales
4. Soporte para virtual hosts
5. Ejecución independiente o mediante (x)inetd
6. Soporte IPv6 y SSL
7. Límites por usuario, conexión y ancho de banda
• Instalación
Gracias a que VSFTPD está presente en los repositorios oficiales de Ubuntu su instalación será tan
sencilla como ejecutar la orden:
$ sudo apt-get install vsftpd
El propio proceso de instalación se encarga de crear el usuario no privilegiado ftp, crear el directorio
/home/ftp (donde colocaremos los archivos disponibles para el acceso anónimo) y arrancar el servicio.
Nota: En caso de tener un firewall instalado no olvides que deberás abrir el puerto 21, además si
conectas a internet a través de un router y pretendes dar acceso al servidor de ficheros desde el
exterior deberás redireccionar el puerto 21 en la configuración del router (revisa la documentación 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 dirección
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 pública (si conectamos desde Internet):
2. Firefox conectado a nuestro servidor de ftp
Nota: no muestra ningún archivo porque aun no he colocado nada en el directorio /home/ftp
• Configuración
La configuración, muy sencilla, se realiza a través de un único archivo de texto plano: /etc/vsftpd.conf.
Para realizar cualquier cambio en la configuración editaremos este archivo con la orden:
$ sudo nano /etc/vsftpd.conf
Y una vez hechos los cambios reiniciaremos el servicio con la orden:
$ sudo /etc/init.d/vsftpd restart
Veamos ahora como cambiar la configuración por defecto para dejar el servicio a nuestro gusto con
algunos ejemplos.
• Acceso anónimo
El acceso anónimo permitirá a cualquier persona que conozca nuestra dirección IP conectarse al
servicio y navegar por el directorio /home/ftp. Este modo es idoneo para compartir archivos que no
necesitan una especial protección.
Para permitir el acceso anónimo editaremos el archivo de configuración y nos aseguraremos de que
contiene la linea:
anonymous_enable=YES
Para denegar el acceso anónimo editaremos el archivo de configuración y nos aseguraremos de que
contiene la linea:
anonymous_enable=NO
3. • Acceso privado
El acceso privado permite establer nombres de usuario y contraseña para acceder al servicio, cada
usuarió podrá acceder tan solo a sus propios archivos. Este es un sistema idóneo para organizar la
información por usuarios y otorgar un cierto grado de seguridad a los archivos.
Para permitir el acceso privado editaremos el archivo de configuración y nos aseguraremos de que
contiene la linea:
local_enable=YES
Para denegar el acceso privado editaremos el archivo de configuración 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 dirección:
• 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 pública (si conectamos desde Internet):
Firefox mostrando el contenido privado de un usuario local
4. • Seguridad
Aunque la configuración por defecto es bastante segura podemos afinar un poco más 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 configuración y nos aseguramos de que contiene la linea:
chroot_local_user=YES
Limitar el numero máximo de conexiones simultaneas (para evitar ataques DoS) editaremos el archivo
de configuración 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 configuración 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
configuración y añadimos:
listen_port=50
• Modo de ejecución
Podemos elegir ejecutar el servidor de ficheros como un servicio del sistema controlado desde el
arranque (modo Standalone, responde más rápido a las peticiones) o que se inicie automáticamente en
el momento en que se recibe una petición (modo inetd, libera más recursos en caso de no usarse el
servicio)
Para establecer el servicio en modo Standalone (recomendado) editaremos el archivo de configuración
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 configuración de xinetd para el servicio de ftp /etc/vsftpd.xinetd con este
contenido:
# Configuración para el servicio FTP
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
per_source = 5