Entre sus características más interesantes encontramos:
- Servidor rápido, estable y seguro
- Configuración sencilla
- Soporte de usuarios anónimos, registrados y virtuales
- Soporte para virtual hosts
- Ejecución independiente o mediante (x)inetd
- Soporte IPv6 y SSL
- Límites por usuario, conexión y ancho de banda
- Instalación
$ sudo apt-get install vsftpd
Nota: En caso de tener un firewall instalado no olvides que deberás abrir el puerto 21 (si no sabes como hacerlo consulta el artículo Administración del firewall con firestarter), 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):
- Configuración
$ sudo nano /etc/vsftpd.conf
si no te gusta el nano puedes utilizar el editor que trae por defecto nuestro sistema, con solo ejecutar esta linea:
$ sudo gedit /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
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
- Acceso privado
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):
- Seguridad
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
para permitir que los usuarios puedan subir archivos al servidor FTP cambiamos el NO por YES y nos aseguramos que la linea no este comentariadad, es decir que la linea no empiece con # .
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
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