Vsftpd installazione e configurazione (versione sintetica per Debian)
Un applicazione pratica: Utenti FTP senza shell e con chroot
1: Permettere l'accesso solo ad utenti accreditati.
2: Applicazione: gestire un server Web contenente vari domini.
3: Accedere alla dir assegnata solo tramite protocollo FTP (no shell).
La shell /dev/null
Si tratta di una shell inesistente, che inibisce ogni possibilità di login né accedendovi fisicamente, né in maniera remota (SSH).
Se la distribuzione sulla quale state lavorando non contiene la shell /dev/null
è possibile crearla, basta modificare il file /etc/shells accodando, su un nuovo rigo il nome della falsa shell da usare (/dev/null).
INSTALLAZIONE
TESTcodice:# apt-get install vsftpd
1: La cartella di default usata come “root” del server ftp è la seguente: /home/ftp
2: Non appena installato, vsftpd è già perfettamente funzionante, per un utente denominato “ftp”.
PREPARAZIONE DELL'AMBIENTE DI LAVOROcodice:# test da console # ftp 192.168.0.4 (ip del server ftp) # utente: ------>ftp # username: ---->ftp # password: ---->ftp
Copia del file standard
CONFIGURAZIONE (vsftpd.conf)codice:cp /etc/vsftpd.conf /etc/vsftpd.conf.old
Esistono molti parametri per i quali vi rimando alla documentazione ufficiale: http://vsftpd.beasts.org/vsftpd_conf.htmlcodice:# file .conf # /etc/vsftpd.conf
Per editare i files, io uso “scite” ma potete editarli con l'editor che preferite.
Inserire questi parametri, cancellando tutto il contenuto precedente.codice:#scite /etc/vsftpd.conf
CREAZIONE DEGLI UTENTIcodice:# Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). # *** da rivedere il conf originale lo prevede #connect_from_port_20=YES # # Debian customization # # Some of vsftpd's settings don't fit the Debian filesystem layout by # default. These settings are more Debian-friendly. # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/certs/vsftpd.pem # # configurazione personalizzata anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO local_enable=YES write_enable=YES local_umask=022 ascii_upload_enable=YES ascii_download_enable=YES ls_recurse_enable=NO listen_port=21 connect_from_port_20=NO listen=YES background=YES # definiamo una chroot() jail chroot_local_user=YES check_shell=NO userlist_deny=NO # definiamo una lista di utenti autorizzati # nel file /etc/vsftpd.user_list userlist_enable=YES userlist_file=/etc/vsftpd.user_list
Nota importante: il parametro chroot_local_user=YES visto sopra, nel file /etc/vsftpd.conf, fa in modocodice:# 1: Creo la directory dell'utente # mkdir /var/www/dirutente # 2: Creo l'utente con shell /dev/null # useradd -d /var/www/dirutente/ -s /dev/null utente > /dev/null 2>&1 # 3: definisco “utente” come proprietario della directory # chown utente /var/www/dirutente # 4: definisco una password per “utente” # passwd utente Il passo successivo è quello di esplicitare la home directory nel percorso che la compone, agendo sul file degli utenti del sistema /etc/passwd e inserendo /. prima della cartella in questione; Prima: utente:x:502:502::/var/www/dirutente/:/dev/null Dopo: utente:x:502:502::/var/www/./dirutente/:/dev/null
che all'accesso l'utente venga indirizzato nella propria cartella, evitando che possa risalire l’albero e navigare il file system;
questa opzione quando non precisata è no di default.
LISTA UTENTI AMMESSI
creare un file chiamato /etc/vsftpd.user_list contenente la lista degli utenti ammessi:
MESSAGGIO DI BEN VENUTOcodice:scite /etc/vsftpd.user_list #Che in genere figura cosi # file /etc/vsftpd.user_list # Lista Utenti Autorizzati utente pippo pluto
Aggiungere un messaggio iniziale di benvenuto.
Questo messaggio sarà contenuto in un semplice file di testo (/etc/welcome.banner).
Aggiungere al file /etc/vsftpd.conf le seguenti righe:
# Aggiunge un messaggio iniziale
banner_file=/etc/welcome.banner
Poi creare il file ti puro testo (/etc/welcome.banner)
Benvenuti sul server FTP di Mario Rossi.
Inserisci i tuoi dati per l'autenticazione
Tutte le attività sono monitorate.
Ti auguriamo un buon lavoro....
etc etc
NOTE: Ad ogni modifica, si deve far riavviare il server FTP: # /etc/init.d/vsftpd restart
Fonti:
1: http://www.mepisitalia.org/modules/s...p?articleID=49
2: http://www.tuxjournal.net/?p=493
3: http://www.tuxjournal.net/?p=515
************************************************** ********************
"BUG"
Pur inibendo l'accesso tramite shell l'utente può accedere tramite GDM
vorrei poter superare questo problema, spero possiate aiutarmi a risolvere.
************************************************** ********************
spero che la guida possa essere d'aiutocichity74

cichity74
Rispondi quotando
ben fatta
