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:
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 (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):
Veamos ahora como cambiar la configuración por defecto para dejar el servicio a nuestro gusto con algunos ejemplos.
Para permitir el acceso anónimo editaremos el archivo de configuración y nos aseguraremos de que contiene la linea:
Para denegar el acceso anónimo editaremos el archivo de configuración
Para permitir el acceso privado editaremos el archivo de configuración
Para denegar el acceso privado editaremos el archivo de configuración
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):
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:
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:
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:
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:
Para establecer el servicio en modo Standalone (recomendado) editaremos el archivo de configuración y nos aseguramos de que contiene la linea:
Y crearemos el archivo de configuración de xinetd para el servicio de ftp /etc/vsftpd.xinetd con este contenido:
http://www.guia-ubuntu.org/index.php?title=Servidor_de_FTP
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
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 (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):
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
$ 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
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
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
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
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
- Más información
http://www.guia-ubuntu.org/index.php?title=Servidor_de_FTP