Server FTP - Altervista

Transcript

Server FTP - Altervista
Documentazione ufficiale
Documentazione di Ubuntu > Ubuntu 9.04 > Guida a Ubuntu server > Server di file > Server FTP
Server FTP
FTP (File Transfer Protocol) è un protocollo TCP per inviare e scaricare file tra computer. Opera con un
modello client/server in cui la parte server è chiamata demone FTP e resta in ascolto di eventuali richieste FTP
da parte di clienti remoti. Alla ricezione di una richiesta, gestisce l'autenticazione e attiva la connessione. Per la
durata della sessione esegue i comandi inviati dal client FTP.
L'accesso a un server FTP può essere gestito in due modi:
Anonimo
Con autenticazione
Nella modalità "Anonymous", i client remoti possono accedere al server FTP usando l'account predefinito
"anonymous" o "ftp" usando come password un indirizzo email. Nella modalità "Authenticated", un utente deve
avere un account e una password. L'accesso alle directory e ai file nel server FTP dipende dai permessi definiti
per l'account usato per l'accesso. Come regola generale, il demone FTP nasconde la directory root del server
FTP e la modifica con la directory home di FTP, nascondendo così il resto del file system dalle sessioni
remote.
vsftpd - Installazione del server FTP
vsftpd è un demone FTP, facile da installare e configurare. Per installare vsftpd, eseguire il seguente
comando:
sudo apt-get install vsftpd
Configurazione anonima di FTP
Il programma vsftpd viene configurato in modo da consentire solo scaricamenti anonimi. In fase di
installazione viene creato un utente ftp con la directory home in /home/ftp come valore predefinito.
Per modificare questa posizione, per esempio, con
modificare la directory home dell'utente ftp:
/srv/ftp,
creare una directory in un'altra posizione e
sudo mkdir /srv/ftp
sudo usermod -d /srv/ftp ftp
Applicate le modifiche, riavviare vsftpd:
sudo /etc/init.d/vsftpd restart
Infine, copiare i file e le directory da condividere attraverso connessioni FTP anonime in
/srv/ftp .
Configurazione FTP per utenti autenticati
Per configurare vsftpd affinché esegua l'autenticazione degli utenti del sistema e consenta quindi di caricare
file, modificare il file /etc/vsftpd.conf:
local_enable=YES
write_enable=YES
Riavviare vsftpd:
sudo /etc/init.d/vsftpd restart
Ora, quando gli utenti accedono via FTP, il loro punto di partenza sarà la propria directory home, dove
potranno scaricare e caricare file e creare directory.
Gli utenti anonimi, come impostazione predefinita, non possono caricare alcun file su un server FTP. Per
modificare questo comportamento, togliere il commento alla seguente riga e riavviare vsftpd:
anon_upload_enable=YES
Abilitare il caricamento anonimo di file via FTP può compromettere la sicurezza del
sistema. È sconsigliato abilitare il caricamento anonimo su server collegati direttamente
a Internet.
Il file di configurazione è composto da diversi parametri di configurazione, le cui informazioni sono disponibili
nel file stesso. In alternativa, è possibile fare riferimento alla pagina man (man 5 vsftpd.conf).
FTP sicuro
All'interno del file di configurazione /etc/vsftpd.conf di vsftpd, sono presenti molte opzioni per rendere il
programma più sicuro. Per esempio, togliendo il commento a quanto segue, gli utenti possono essere limitati
all'utilizzo solo della propria directory personale:
chroot_local_user=YES
È anche possibile limitare un particolare gruppo di utenti all'utilizzo delle sole directory personali:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Tolto il commento alle opzioni precedenti, creare un file /etc/vsftpd.chroot_list con l'elenco degli utenti, uno per
riga, quindi riavviare vsftpd:
sudo /etc/init.d/vsftpd restart
Inoltre, il file /etc/ftpusers contiene un elenco di utenti a cui è negato l'accesso FTP. L'elenco comprende gli
utenti root, daemon, nobody, ecc... Per disabilitare l'accesso FTP ad altri utenti, aggiungerli semplicemente a
questo elenco.
Il protocollo FTP può essere cifrato utilizzando FTPS. A differenza di SFTP, che è una sessione FTP all'interno
di una connessione cifrata con SSH, FTPS è FTP su SSL (Secure Socket Layer). La principale differenza
consiste nel fatto che gli utenti SFTP devono avere un account shell sul sistema al posto di una shell nologin.
Fornire però una shell a tutti gli utenti potrebbe non essere sempre applicabile, come nei casi si servizio di
host web.
Per configurare FTPS, modificare il file /etc/vsftpd.conf aggiungendo:
ssl_enable=Yes
Inoltre, notare anche le opzioni relative al certificato e alla chiave:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Queste opzioni, in modo predefinito, sono impostate col certificato e la chiave forniti dal pacchetto ssl-cert. In
un ambiente di produzione questi valori dovrebbero essere sostituiti con un certificato e una chiave generati
appositamente per il particolare host. Per maggiori informazioni riguardo i certificati, consultare la sezione
chiamata «Certificati».
Riavviare vsftpd e gli utenti non-anonimi utilizzeranno FTPS:
sudo /etc/init.d/vsftpd restart
Per consentire accesso FTP agli utenti dotati di una shell
shell, modificare il file /etc/shells aggiungendo nologin:
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin,
ma non dispongono di accesso
/usr/sbin/nologin
Questo è necessario poiché, in modo predefinito, vsftpd utilizza PAM per l'autenticazione e i file di
configurazione /etc/pam.d/vsftpd contiene:
auth
required
pam_shells.so
Il modulo shells di PAM limita l'accesso alle shell indicate nel file /etc/shells.
La maggior parte dei client FTP può essere configurata per utilizzare connessioni FTPS. Il client a riga di
comando lftp è in grado di utilizzare FTPS.
Riferimenti
Per maggiori informazioni, consultare il sito web di vsftpd.
Per informazioni sulle opzioni disponibili nel file /etc/vsftpd.conf, consultare la pagina man di vsftpd.conf.
L'articolo FTPS vs. SFTP: What to Choose di CodeGuru ha molte informazioni riguardo FTPS e SFTP.
Capitolo 12. Server di file
NFS (Network File System)
© 2008 Canonical Ltd. Ubuntu e Canonical sono marchi registrati da Canonical Ltd.
Questa opera è pubblicata sotto una licenza Creative Commons