Dimensione: 5313
Commento:
|
Dimensione: 9493
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from Server/FtpServer | #format wiki #LANGUAGE it |
Linea 3: | Linea 5: |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]|| Guida alla configurazione di un server FTP con '''`vsftpd`'''. = Che cos'è FTP e come funziona = FTP è un protocollo standard per il trasferimento di files fra hosts in una rete. Solitamente prevede l'autenticazione degli utenti ed una serie di comandi semplici per il download e l'upload dei files che devono essere scaricati sul proprio host o copiati sull'host remoto. se vi serve creare solo un gateway vedete [:GatewayLan:]. Questa guida si occupa della configurazione del servizio FTP utilizzando il programma '''`vsftpd`''' (very secure FTP daemon), uno dei programmi maggiormente usati e sicuri per l'implementazione di questo servizio. * [http://vsftpd.beasts.org/ vsftpd.beasts.org] - Sito ufficiale di vsftpd. * [http://vsftpd.beasts.org/vsftpd_conf.html vsftpd.beasts.org/vsftpd_conf] - Guida alla configurazione di vsftpd. |
||<tablebgcolor="#f1f1ed" tablewidth="40%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"style="padding: 0.5em;">'''Indice''' [[BR]] [[TableOfContents(1)]] || = 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. |
Linea 19: | Linea 15: |
Aprite una shell ed al prompt dei comandi digitate: |
È necessario installare il pacchetto ''vsftpd'', reperibile dal repository [:Repository:Universe], con uno fra [:SynapticHowto:Synaptic:], [:AdeptHowTo:Adept] e [:Apt:apt-get]. Per installare il pacchetto da terminale, è sufficiente digitare il seguente comando: {{{ sudo apt-get install vsftpd }}} [[Anchor(avvio)]] = Avvio e arresto del servizio = Una volta installato il pacchetto ''vsftpd'', il servizio FTP viene avviato automaticamente. Per fermare il servizio digitare il seguente comando: {{{ sudo /etc/init.d/vsftpd stop }}} Per avviare il servizio, una volta arrestato, digitare il seguente comando: {{{ sudo /etc/init.d/vsftpd start }}} Per riavviare il servizio è utile digitare il seguente comando: {{{ sudo /etc/init.d/vsftpd restart }}} = 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 `/home/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 utenti del sistema, è necessario modificare il file di configurazione del servizio {{{/etc/vsftpd.conf}}} con uno degli [:EditorDiTesto:editor di testo] messi a disposizione dal sistema. Aprire una finestra di terminale e digitare il seguente comando: |
Linea 22: | Linea 64: |
sudo apt-get -y install vsftpd. }}} L'opzione `-y` di '''`apt-get`''' non chiede la conferma per le azioni legate al processo di installazione del software. In questo modo installerà '''`vsftpd`''' risolvendo automaticamente le dipendenze necessarie ed avviando il server ftp nella configurazione di default. attachment:Icone/Piccole/note.png Il pacchetto ''vsftpd'' si trova nel repository [:ArchivioUniverse:universe], accertatevi di averlo abilitato, in caso consultate AddingRepositoriesHowto. L'installazione di default attiva il server FTP in modalità anonima, ovvero quando si tenta di connettersi all'host digitando al prompt: {{{ ftp 192.168.20.101 }}} si ottiene una messaggio di richiesta di immissione delle credenziali di accesso del tipo : {{{ Username: Password: }}} come username bisogna mettere '''anonymous''' e la password è in bianco (date semplicemente invio sulla tastiera). A questo punto si accede come utente anonymous senza che vi venga richiesta la password, ma ovviamente con possibilità limitate di sfogliare le cartelle disponibili sul server nonché di fare download e upload di file. Gli utenti anonimi possono avere accesso soltanto alla cartella `/home/ftp` del server, nella quale, a seconda dei parametri di configurazione impostati, potranno soltanto leggere/scaricare, oppure anche scrivere/caricare. = Configurazione = Nel caso in cui si voglia configurare un server FTP i cui utenti sono quelli già abilitati sul sistema, sarà necessario intervenire sul file di configurazione del servizio vsftpd: `/etc/vsftpd.conf`. Modificate il seguente parametro come segue : {{{ LOCAL_ENABLE = YES }}} Digitando l'indirizzo del server FTP, verranno chiesti all'utente lo username e la password, egli dovrà inserire semplicemente quelli che già utilizza in locale. In questo modo si permetterà agli utenti del sistema di accedere al servizio FTP con il proprio username e la propria password, accedendo a tutte le cartelle presenti sul server. [[BR]] attachment:Icone/Piccole/warning.png '''Quando si abilita questa funzione è opportuno limitare l'accesso degli utenti registrati alla sola cartella `/home/nomeutente` ad essi già attribuita.''' Per fare questo è necessario abilitare questo parametro: {{{ chroot_local_user=YES }}} Quindi, per esempio, l'utente "carlo", avrà accesso alla sola cartella `/home/carlo`. = ACL = Il modo in cui il servizio FTP implementa le liste di controllo degli accessi è attraverso l'uso di un file che contiene l'elenco degli utenti il cui accesso FTP è proibito. Questo file è `/etc/ftpusers`. {{{ |
sudo gedit /etc/vsftpd.conf }}} Cercare la seguente riga e cancellare il carattere di cancelletto «'''#'''» presente all'inizio della stessa: {{{ #local_enable=YES }}} Ora è possibile tentare di collegarsi al server con il comando descritto in precedenza ed effettuare l'accesso utilizzando uno degli account utente presenti sul sistema locale. Gli utenti del sistema avranno accesso al servizio FTP potendo esplorare tutte le cartelle del sistema. Applicando le impostazioni di cui sopra, gli utenti del sistema avranno accesso, tramite il servizio FTP, a tutte le cartelle del filesystem. Per evitare ciò è opportuno limitare l'accesso degli utenti solamente alla propria cartella '''Home'''. A tale scopo è utile decommentare la seguente riga: {{{ #chroot_local_user=YES }}} = 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}}}: {{{ |
Linea 88: | Linea 101: |
Pertanto se volete che l'utente di sistema '''marco''' non possa usare il servizio FTP dovete soltanto aggiungerlo nel file `/etc/ftpusers` e riavviare il servizio con il comando : {{{ /etc/init.d/vsftpd restart }}} = Lista dei parametri di vsftpd.conf = # Abilita/disabilita accesso anonimo anonymous_enable=YES ... ... # Abilita/disabilita accesso agli user locali local_enable=YES ... ... # Abilita/disabilita agli utente accesso in scrittura write_enable=YES ... ... # Abitilità/disabilita la possibilità degli utenti anonimi di scaricare file # ha valore solo se write_enable è decomentato # Also, you will # obviously need to create a directory writable by the FTP user. # anon_upload_enable=YES ... ... # Decomenta sei vuoi permettere agli utenti anonimi di creare nuove directory # anon_mkdir_write_enable=YES # Attiva i log su tutte le operazione di upload/download xferlog_enable=YES ... ... |
||<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]. = 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 file di log. * {{{ ftpd_banner= }}} Imposta un messaggio di benvenuto visualizzato all'accesso al server FTP. = 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. |
Linea 122: | Linea 153: |
# Specificare il path dei log o lasciare quello di default # xferlog_file=/var/log/vsftpd.log # Gli utenti contenuti nel file vsftp.chroot_list non avranno accesso # alla cartella superiore alla proprio home dir chroot_list_enable=YES chroot_list_file=/etc/vsftp.chroot_list # Nel file chroot_list mettere semplicemente il nome utente che deve essere limitato |
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''' 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 variabili che possono essere aggiunte al server per poterlo configurare in ogni sua piccola parte, queste sono: * '''-e''' Accesso solo per gli utenti anonimi. * '''-B''' Avvia il server in modalità background. * '''-i''' Gli utenti anonimi non potranno effettuare uploads. * '''-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 dare l'accesso al server sia ad utenti registrati sia ad anonimi, potete 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 con il supporto di un server che funga da storage di informazioni, potete utilizzare questa piccola guida: * Aprire una finestra di terminale e digitare il seguente comando: {{{ sudo apt-get install pure-ftpd }}} /!\ Da rivedere! /!\ * Copiate e salvate {{{pureftpd-mysql.conf}}} dentro la cartella di ''PureFtpd User Manager'' /!\ !!!!!!!!!!!! /!\ * Fatto. Effettuate il login all'interfaccia web tramite browser su http://localhost/ftp === 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 in caso che il caricamento della cpu superi il livello definito. (in percentuale) '''Esempio:''' {{{pure-ftpd -m 50 }}} = Ulteriori risorse = * [http://vsftpd.beasts.org/ vsftpd.beasts.org Sito ufficiale di vsftpd] * [http://vsftpd.beasts.org/vsftpd_conf.html Guida alla configurazione di vsftpd] |
Indice BR TableOfContents(1) |
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 installare il pacchetto vsftpd, reperibile dal repository [:Repository:Universe], con uno fra [:SynapticHowto:Synaptic:], [:AdeptHowTo:Adept] e [:Apt:apt-get].
Per installare il pacchetto da terminale, è sufficiente digitare il seguente comando:
sudo apt-get install vsftpd
Avvio e arresto del servizio
Una volta installato il pacchetto vsftpd, il servizio FTP viene avviato automaticamente.
Per fermare il servizio digitare il seguente comando:
sudo /etc/init.d/vsftpd stop
Per avviare il servizio, una volta arrestato, digitare il seguente comando:
sudo /etc/init.d/vsftpd start
Per riavviare il servizio è utile digitare il seguente comando:
sudo /etc/init.d/vsftpd restart
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 /home/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 utenti del sistema, è necessario modificare il file di configurazione del servizio /etc/vsftpd.conf con uno degli [:EditorDiTesto:editor di testo] messi a disposizione dal sistema.
Aprire una finestra di terminale e digitare il seguente comando:
sudo gedit /etc/vsftpd.conf
Cercare la seguente riga e cancellare il carattere di cancelletto «#» presente all'inizio della stessa:
#local_enable=YES
Ora è possibile tentare di collegarsi al server con il comando descritto in precedenza ed effettuare l'accesso utilizzando uno degli account utente presenti sul sistema locale. Gli utenti del sistema avranno accesso al servizio FTP potendo esplorare tutte le cartelle del sistema.
Applicando le impostazioni di cui sopra, gli utenti del sistema avranno accesso, tramite il servizio FTP, a tutte le cartelle del filesystem. Per evitare ciò è opportuno limitare l'accesso degli utenti solamente alla propria cartella Home.
A tale scopo è utile decommentare la seguente riga:
#chroot_local_user=YES
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
È 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].
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 file di log.ftpd_banner=
Imposta un messaggio di benvenuto visualizzato all'accesso al server FTP.
Gestione di un server FTP
Ci sono principalmente tre modi per configurare un server ftp:
[#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).
[#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.
[#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 che conterrà tutte le informazioni riguardanti gli utenti.
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 variabili che possono essere aggiunte al server per poterlo configurare in ogni sua piccola parte, queste sono:
-e Accesso solo per gli utenti anonimi.
-B Avvia il server in modalità background.
-i Gli utenti anonimi non potranno effettuare uploads.
-M Permette agli utenti anonimi di creare cartelle.
-s I file degli utenti ftp non possono essere scaricati.
FTP anonimo e controllato da password
Per dare l'accesso al server sia ad utenti registrati sia ad anonimi, potete 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.
FTP con utenti virtuali e il supporto di un database MySQL
Per creare un server con il supporto di un server che funga da storage di informazioni, potete utilizzare questa piccola guida:
Aprire una finestra di terminale e digitare il seguente comando:
sudo apt-get install pure-ftpd
Da rivedere!
Copiate e salvate pureftpd-mysql.conf dentro la cartella di PureFtpd User Manager
!!!!!!!!!!!!
Fatto. Effettuate il login all'interfaccia web tramite browser su http://localhost/ftp
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 in caso che il caricamento della cpu superi il livello definito. (in percentuale) Esempio: {{{pure-ftpd -m 50
}}}
Ulteriori risorse
[http://vsftpd.beasts.org/ vsftpd.beasts.org Sito ufficiale di vsftpd]
[http://vsftpd.beasts.org/vsftpd_conf.html Guida alla configurazione di vsftpd]