jueves, 7 de marzo de 2013

Servidor FTP en Ubuntu con permisos de escritura

Instalamos los paquetes necesarios:
sudo apt-get install vsftpd
Des-habilitamos los usuarios que no nos interesa que accedan a través del protocolo FTP.

more /etc/pam.d/vsftpd
# Standard behaviour for ftpd(8).
auth    required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required        pam_shells.so


nano /etc/ftpusers
# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody

Modificamos el archivo de configuración para permitir que los usuarios del sistema accedan y su máscara por defecto sea rwxrwxrwx
nano /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
syslog_enable=YES
connect_from_port_20=YES
ftpd_banner=Servidor FTP
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
local_umask=000

A veces me ha pasado que he tenido que eliminar la configuración PAM para vsftpd (Suele dar problemas, no se si es un bug)

rm /etc/pam.d/vsftpd
nano /etc/vsftpd.conf
#pam_service_name=vsftpd

Reiniciamos el demonio ftp y listo, ya tenemos funcionando un servidor FTP

service vsftpd restart

Mi recomendación para crear los usuarios y que todo funcione bien (permisos etc) es la siguiente:

Cuando creemos los usuarios tendremos que mantener la siguiente estructura.

dirFTP (r-xr-xr-x)
   |__dirusuarioA (r-xr-xr-x)
         |__dirconpermisosdeescritura(rwxrwxrwx)

   |__dirusuarioB (r-xr-xr-x)
         |__dirconpermisosdeescritura(rwxrwxrwx)
   ·
   ·
   ·

   |__dir usuario Z (r-xr-xr-x)
         |__dir con permisos de escritura(rwxrwxrwx)



El shell de los usuarios lo suelo poner a /usr/sbin/nologin por seguridad.
El directorio /home del usuario A sería /home/dirFTP/dirusuarioA
El usuario A cuando se conecta por FTP tiene que ver una única carpeta llamada dirconpermisosdeescritura y es en esta carpeta en la única que podrá subir archivos o crear carpetas etc.

ftp://usuario:clave123@ip_servidor_FTP/

No hay comentarios: