Servidor FTP con VSFTPD

En esta entrada os voy a explicar como montar un servidor FTP que podamos usar como destino de las capturas de imágenes de una cámara IP, en mi caso cámaras Foscam.

El software que instalaremos es el servidor FTP vsftpd sobre Linux (Ubuntu y similares). Crearemos un usuario en el sistema con permisos para subir archivos y un directorio donde se almacenarán. Vamos a ello:

Ahora vamos a crear el usuario ftp, y el grupo ftp (es posible que la instalación del servidor vsftpd los haya creado, así que los eliminamos primero). También debemos añadir el shell nologin a la lista de shells válidos, porque si no cuando el módulo PAM autentique la información del usuario, no le dejará entrar porque el shell especificado para él no está en la lista de shells válidos (/etc/shells). Esto es necesario para que se permita al usuario ftp entrar por FTP, pero no entrar a través de SSH a la linea de comandos del sistema.

A la hora de crear el directorio dónde el usuario ftp subirá sus archivos, debemos tener en cuenta que vsftpd no permite que el usuarios tenga permisos de escritura en la carpeta que comparte, pero sí en las que cuelgan de ella (dará el error 500 OOPS: vsftpd: refusing to run with writable root inside chroot(), dicen que es por seguridad, pero bueno…). Debemos crear una carpeta que sera la home del usuario ftp y dentro de ella, otra que sera en la que guardemos los archivos que subamos:

Finalmente editamos el archivo de configuración de vsftpd, /etc/vsftpd.conf haciendo estos cambios:

  • write_enable=YES, para permitir que los usuarios suban archivos.
  • local_umask=022, son los permisos con los que se almacenarán los archivos que se suban.
  • xferlog_file=/var/log/vsftpd.log, sirve para monitorizar las subidas de archivos.
  • chroot_local_user=YES, limita un usuario a su directorio home, y no le permite navegar por todo el sistema.

Con esta configuración todos los usuarios del sistema podrán entrar por FTP, excepto los listados en el fichero /etc/ftpusers (que es contra el que el modulo PAM hace las comprobaciones de usuarios NO válidos, ver archivo /etc/pam.d/vsftpd).

 El archivo completo quedaría mas o menos así:

Solo nos queda reiniciar el servidor vsftpd y comprobar que todo ha ido bien 🙂

Y en nuestra cámara IP, o en el sistema que queramos que utilice nuestro FTP como almacén de archivos deberemos decirle que lo haga en ftp://direccion_ip/documentos.

Espero que os haya gustado y os ahorre dolores de cabeza 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *