PDA

Visualizza la versione completa : [Guida]-Vsftpd installazione e configurazione (versione sintetica per Debian stable)


cichity74
21-03-2008, 18:20
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

# apt-get install vsftpd

TEST
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”.


# test da console
# ftp 192.168.0.4 (ip del server ftp)
# utente: ------>ftp
# username: ---->ftp
# password: ---->ftp

PREPARAZIONE DELL'AMBIENTE DI LAVORO
Copia del file standard

cp /etc/vsftpd.conf /etc/vsftpd.conf.old
CONFIGURAZIONE (vsftpd.conf)


# file .conf
# /etc/vsftpd.conf

Esistono molti parametri per i quali vi rimando alla documentazione ufficiale: http://vsftpd.beasts.org/vsftpd_conf.html
Per editare i files, io uso “scite” ma potete editarli con l'editor che preferite.

#scite /etc/vsftpd.conf
Inserire questi parametri, cancellando tutto il contenuto precedente.


# 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

CREAZIONE DEGLI UTENTI


# 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

Nota importante: il parametro chroot_local_user=YES visto sopra, nel file /etc/vsftpd.conf, fa in modo
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:


scite /etc/vsftpd.user_list
#Che in genere figura cosi
# file /etc/vsftpd.user_list
# Lista Utenti Autorizzati
utente
pippo
pluto

MESSAGGIO DI BEN VENUTO
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/soapbox/article.php?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'aiuto :ciauz: cichity74

bereshit
21-03-2008, 20:22
grazie :) ben fatta

Loading