Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Ufficio/EditorDiTesto/Helix"
Differenze tra le versioni 28 e 29
Versione 28 del 31/08/2014 23.36.15
Dimensione: 8805
Autore: jeremie2
Commento:
Versione 29 del 31/08/2014 23.46.36
Dimensione: 0
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#format wiki
#LANGUAGE it
<<BR>>
<<Indice>>

= Introduzione =

'''FTP''' (File Transfer Protocol) è uno dei protocolli maggiormente usati per il trasferimento dei file. Solitamente prevede l'autenticazione degli utenti e una serie di comandi semplici per scaricare e caricare file.

Questa guida si occupa della configurazione del servizio FTP utilizzando il programma '''vsftpd''' (acronimo di '''Very Secure FTP Daemon'''), uno dei programmi più usati e sicuri per l'implementazione di questo servizio.

= Installazione =

È necessario [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto ''[[apt://vsftpd|vsftpd]]'', reperibile dal [[Repository/Componenti|componente]] '''universe'''.

<<Anchor(avvio)>>

= Prova del servizio =

Ora, consideriamo di doverci collegare al computer, con indirizzo IP '''192.168.1.2''', su cui è stato installato il servizio FTP. Per fare ciò, da un terminale, digitare: {{{
ftp 192.168.1.2
}}}

Viene visualizzato un messaggio di richiesta di immissione delle credenziali di accesso simile al seguente: {{{
Connected to 192.168.1.2
Name (192.168.1.2):
}}}

Inserire come nome utente: {{{
anonymous
}}}
e premere «'''Invio'''».

Viene dunque richiesta la password. In questo caso è sufficiente premere «'''Invio'''». Generalmente, per l'utente '''anonymous''' non viene impostata alcuna password.

Una volta effettuato l'accesso sarà possibile esplorare le cartelle disponibili sul server, dunque caricare e scaricare i file, limitatamente ai permessi impostati per il proprio utente. Gli utenti anonimi possono avere accesso soltanto alla cartella `/srv/ftp` del server, nella quale, a seconda dei parametri di configurazione impostati, potranno soltanto leggere/scaricare, oppure anche scrivere/caricare.

= Configurazione =

Per configurare un server FTP in cui gli utenti abilitati ad accedere siano gli stessi del sistema, è necessario modificare il file di configurazione del servizio {{{/etc/vsftpd.conf}}} con uno degli [[Ufficio/EditorDiTesto|editor di testo]] messi a disposizione da Ubuntu.

Aprire una finestra di terminale e digitare il seguente comando:
{{{
sudo gedit /etc/vsftpd.conf
}}}

== Elenco dei parametri di vsftpd.conf ==

Di seguito vengono presentati alcuni dei parametri che è possibile configurare per '''vsftpd''':

 * {{{
anonymous_enable=YES
}}} Abilita/disabilita l'accesso anonimo.

 * {{{
local_enable=YES
}}} Abilita/disabilita l'accesso agli utenti locali.

 * {{{
write_enable=YES
}}} Abilita/disabilita agli utenti l'accesso in scrittura.

 * {{{
anon_upload_enable=YES
}}} Abilita/disabilita la possibilità degli utenti anonimi di caricare file. Valido solo se l'opzione precedente è impostata a vero.

 * {{{
anon_mkdir_write_enable=YES
}}} Abilita/disabilita la possibilità degli utenti anonimi di creare nuove directory.

 * {{{
xferlog_enable=YES
}}} Attiva i log su tutte le operazioni di scaricamento e caricamento file.

 * {{{
xferlog_file=/var/log/vsftpd.log
}}} Specifica il percorso per i [[AmministrazioneSistema/LogDiSistema|file di log]].

 * {{{
ftpd_banner=
}}} Imposta un messaggio di benvenuto visualizzato all'accesso al server FTP.
 * {{{
chroot_local_user=
}}} Limita/Non limita l'accesso degli utenti solamente alla propria cartella '''Home'''.
 * {{{
connect_from_port_20=
}}} Usa/non usa la porta 20 al posto della porta 21.
 * {{{
listen=
}}} Abilita/Disabilita l'ascolto da parte dei client al server.
 * {{{
listen_port=21
}}} Seleziona la porta di ascolto.

== Limitare l'accesso ==

Per rafforzare la sicurezza, è possibile scegliere gli utenti ai quali vietare l'accesso al servizio FTP.

Per far ciò è utile modificare il file {{{/etc/ftpusers}}}, il quale contiene la lista degli utenti ai quali non è consentito accedere al servizio. Il seguente è del contenuto di default del file {{{/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
}}}

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''È consigliato aggiungere gli utenti all'elenco senza cancellare quelli pre-esistenti.''' ||

Per non consentire l'utilizzo del servizio all'utente '''mario''', è sufficiente aggiungere il nome dell'utente in coda all'elenco, in questo caso '''mario'''. Effettuate le modifiche, è necessario [[#avvio|riavviare il servizio]].

= Gestione di un server FTP =

Ci sono principalmente tre modi per configurare un server ftp:

 0. '''[[#ftp1|FTP anonimo]]'''

 Sarà possibile accedere al server senza aver bisogno di un account registrato; tutti gli utenti saranno liberi di eseguire upload, che verranno ovviamente controllati da alcune regole impostate dall'amministratore di sistema (limite di dimensione, controllo anti-pirateria, etc).
                         
 0. '''[[#ftp2|FTP anonimo e controllato da password]]'''

 Questo metodo darà la possibilità di accedere al server sia ad utenti anonimi che a quelli con un regolare account a cui sarà dato accesso ad alcune cartelle predefinite dall'amministratore, eccetto che per l'utente '''root''' che potrà vedere/modificare/cancellare tutte i file e/o le cartelle.
 
 0. '''[[#ftp3|FTP con utenti virtuali e il supporto di un database MySQL]]'''

 Questo metodo abilita l'accesso al server solo per il gruppo di utenti che non ha un'autenticazione virtuale via shell nel sistema. Sarà richiesto l'uso di un database [[Server/MySql|MySql]] che conterrà tutte le informazioni riguardanti gli utenti.

<<Anchor(ftp1)>>
== FTP anonimo ==

Prima di creare un server con accesso anonimo, si dovrà aggiungere al sistema l'utente '''ftp''', con una sua directory home. Per farlo seguite questi comandi: {{{
useradd -d /home/ftp/ftp -s /bin/false ftp
mkdir -p /home/ftp/upload
}}}

Ci sono inoltre numerose opzioni con le quali avviare il server, in modo da configurarne ogni singolo aspetto. Alcune di queste opzioni sono le seguenti:

 * '''-e''' Accesso solo per gli utenti anonimi.
 * '''-B''' Avvia il server in modalità background.
 * '''-i''' Gli utenti anonimi non potranno caricare file.
 * '''-M''' Permette agli utenti anonimi di creare cartelle.
 * '''-s''' I file degli utenti ''ftp'' non possono essere scaricati.

<<Anchor(ftp2)>>
== FTP anonimo e controllato da password ==

Per consentire l'accesso al server a tutti gli utenti (registrati e anonimi), è possibile seguire questi semplici comandi:

 * '''-B ,-i ,M, -r, -s''' Stesse variabili descritte in precedenza.
 * '''-u <uid>''' Autorizza utenti con uno specifico ID(uid) ad accedere al server.
 * '''-V <Ip address>''' Solo specifici IP potranno accedere al server in modalità non-anonima.

<<Anchor(ftp3)>>
== FTP con utenti virtuali e il supporto di un database MySQL ==

Per creare un server che affidi a '''My``SQL''' la gestione degli utenti, è possibile utilizzare procedere come segue:

 * Aprire una finestra di terminale e digitare il seguente comando: {{{
sudo apt-get install pure-ftpd
}}}

 * Scaricare '''User Manager for PureFTPd''' da [[http://machiel.generaal.net/index.php?subject=user_manager_pureftpd|questo]] indirizzo.

 * Decomprimere il pacchetto e caricare il contenuto nella directory principale del server web, dunque aprire, con il proprio browser, [[http://localhost/ftp/install.php|questo]] indirizzo.

 * Seguire le indicazioni a schermo.

 * Copiare {{{pureftpd-mysql.conf}}} nella cartella di '''User Manager for PureFTPd'''.

 * Salvare la configurazione e chiudere. Per effettuare l'accesso tramite l'interfaccia web è sufficiente aprire [[http://localhost/ftp|questo]] indirizzo con il proprio browser.

=== Opzioni varie ===

 * '''-c <num>''' Numero di client massimo abilitato ad effettuare l'accesso al server. Esempio: {{{
pure-ftpd -c 3
}}}
 * '''-C <num>''' Numero massimo di connessioni per IP. '''Esempio:''' {{{
pure-ftpd -C 3
}}}
 * '''-T <bandwitdh>''' Massima banda disponibile per ogni connessione (in kb/s). '''Esempio:''' {{{
pure-ftpd -T 150
}}}
 * '''-n <MBytes>''' Numero massimo di Mb disponibili per ogni utente. '''Esempio:''' {{{
pure-ftpd -n 200
}}}
 * '''-m <Cpu Loading>''' Blocca gli upload da parte di utenti anonimi nel caso che il caricamento della CPU superi il livello definito in termini di percentuale. Esempio: {{{
pure-ftpd -m 50
}}}

= Ulteriori risorse =

 * [[http://vsftpd.beasts.org/|Sito ufficiale di vsftpd]]

 * [[http://vsftpd.beasts.org/vsftpd_conf.html|Guida alla configurazione di vsftpd]]

----
CategoryServer