lunes, 25 de marzo de 2013

Instalación de un servidor FTP en Linux (vsftpd)

Para sistemas GNU/Linux hay muchos software servidores de FTP que nos pueden servir
para este tutorial, pero nos vamos a centrar en VSFTPD(Very Secure FTP Daemon),como
 su nombre indica, es muy seguro, probablemente uno de los mas seguros del mercado y 
muy fácil de configurar.


Procedemos a instalar el daemon:


Código:
apt-get install vsftpd


El fichero de configuración está en /etc/vsftpd.conf

Vamos a ver unas de las directivas que nos pueden interesar.

anonymous_enable = YES - Permite el acceso sin cuenta al servidor.
local_enable = YES - Con esta directiva los usuarios locales al sistema podrán inicia

sesión en el servidor FTP, al iniciar 
sesión el usuario será redireccionado a su carpeta

 personal en  /home.

Podemos probar esta última directiva creando un usuario y logueandonos con él.

Código:
adduser demo



Se puede decir que prácticamente tenemos un servidor FTP funcionando, ahora solo falta
personalizarlo un poco más.

write_enable = YES - Los usuarios tiene derecho a crear ficheros y archivos.
local_umask = 022 - Representan los permisos que tendrán los archivos subidos al servidor
FTP.
anon_upload_enable = YES - El usuario anonymous tiene permisos para subir archivos.
ftp_banner = "Bienvenido al servidor FTP de madpitbull" - El mensaje de bienvenida al 
servidor. anon_root = /home/ftp - El directorio inicial del usuario anonymous. Hay que crearlo.
Una vez hechos algunos cambios, reiniciaremos el servidor:

Código:
service vsftpd restart

En la página oficial del proyecto tenéis todas las directivas (documentación).

Una cosa interesante que podemos hacer es crear una carpeta donde se puedan subir archivos
usando el usuario anonymous. Un requisito es tener configuradas todas las directivas que he
 mencionado anteriormente.

Creamos la carpeta ftp dentro de /home.

Código:
mkdir /home/ftp

Le cambiamos los permisos.

Código:
chmod 577 /sudo/ftp

Creamos la carpeta donde se subirán los archivos.
Código:
mkdir /home/ftp/incoming

Y le damos todos los permisos.
Código:
chmod 777 /home/ftp/incoming

Solo falta cambiar el propietario de dicha carpeta.
Código:
chown ftp /home/ftp

Si usáis Webmin para administrar el servidor, os recomiendo que instaléis el módulo vsftpd.

Para problemas que os pueden ocurrir, os recomiendo mirar y comprobar esta lista de errores.