Dimensione: 9626
Commento:
|
Dimensione: 9643
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
#format wiki | |
Linea 2: | Linea 3: |
[[BR]] ||<tablebgcolor="#f1f1ed" tablewidth="40%" tablestyle="margin: 0pt 0pt 1em 1em; float: right; font-size: 0.9em;"style="padding: 0.5em;">'''Indice'''[[BR]][[TableOfContents]] || |
<<BR>> <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=80220&p";)>> |
Linea 7: | Linea 9: |
'''FTP''' (File Transfer Protocol) è un protocollo standard per il trasferimento di file tra host all'interno di una rete. Solitamente prevede l'autenticazione degli utenti e una serie di comandi semplici per scaricare e caricare file da o per l'host desiderato. 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. |
'''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 13: | Linea 15: |
È sufficiente installare il pacchetto ''vsftpd'' con il gestore di pacchetti preferito. Da terminale basta digitare: {{{ sudo apt-get -y install vsftpd }}} ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">Il pacchetto ''vsftpd'' si trova nel repository [:Repository/Componenti#universe:universe]. Accertarsi di averlo abilitato, in caso consultare la pagina [:Repository#abilitare:Repository]. || [[Anchor(avvio)]] = Avvio, arresto del servizio = |
È necessario [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto ''vsftpd'', reperibile dal [[Repository/Componenti|componente]] '''universe'''. <<Anchor(avvio)>> = Avvio e arresto del servizio = |
Linea 26: | Linea 22: |
Per fermare il servizio, da un terminale digitare: {{{ | Per fermare il servizio digitare il seguente comando: {{{ |
Linea 30: | Linea 26: |
Per avviare il servizio, una volta arrestato, da terminale digitare: {{{ | Per avviare il servizio, una volta arrestato, digitare il seguente comando: {{{ |
Linea 34: | Linea 30: |
Per riavviare (fermare e avviare) il servizio, da terminale digitare: {{{ | Per riavviare il servizio è utile digitare il seguente comando: {{{ |
Linea 44: | Linea 40: |
Viene visualizzato un messaggio di richiesta di immissione delle credenziali di accesso del tipo: {{{ | Viene visualizzato un messaggio di richiesta di immissione delle credenziali di accesso simile al seguente: {{{ |
Linea 52: | Linea 48: |
e premere '''Invio'''. Viene quindi chiesta la password. In questo caso basta premere '''Invio'''. L'utente '''anonymous''' non ha una password impostata. A questo punto si accede come utente '''anonymous''', ma ovviamente con possibilità limitate di esplorare le cartelle disponibili sul server e limitate possibilità di scaricamento e caricamento 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. |
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. |
Linea 60: | Linea 56: |
Per configurare un server FTP in cui gli utenti abilitati ad accedere siano gli utenti del sistema, è necessario sul file di configurazione del servizio '''vsftpd''' `/etc/vsftpd.conf`. Modificare la riga: {{{ |
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 }}} Cercare la seguente riga e cancellare il carattere di cancelletto «'''#'''» presente all'inizio della stessa: {{{ |
Linea 66: | Linea 67: |
in: {{{ local_enable= YES }}} Collegandosi al server con il comando: {{{ ftp 192.168.1.2 }}} gli utenti presenti all'interno di quella macchina potranno eseguire l'accesso inserendo il proprio nome utente e la propria password. Gli utenti del sistema avranno accesso al servizio FTP potendo esplorare tutte le cartelle del sistema. 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 modificare la riga: {{{ |
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 sopra discusse, gli utenti del sistema avranno accesso, tramite il servizio FTP, a tutte le cartelle del filesystem locale. Per evitare ciò è opportuno limitare l'accesso degli utenti solamente alla propria cartella '''Home'''. A tale scopo è utile decommentare la seguente riga: {{{ |
Linea 81: | Linea 76: |
in: {{{ chroot_local_user=YES }}} Quindi, per esempio, l'utente '''mario''' avrà accesso alla sola cartella `/home/mario`. = Restringere l'accesso = Il servizio FTP presenta alcuni problemi di sicurezza, tra cui l'invio delle password in chiaro. Per ovviare a questi, è possibile non consentire l'accesso via FTP a certi utenti "sensibili" del sistema, come l'utente '''root'''. La configurazione di quali utenti escludere dal servizio FTP viene svolta attraverso il file `/etc/ftpusers`, il cui contenuto è simile a questo: {{{ |
= 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 108: | Linea 97: |
È bene mantenere questo elenco così com'è, aggiungendo altri utenti a cui non si vuole concedere l'utilizzo del servizio. Per non consentire l'utilizzo del servizio all'utente '''mario''', basta semplicemente aggiungere in coda all'elenco presente nel file, il nome dell'utente, in questo caso '''mario'''. Una volta fatto questo, è necessario [#avvio riavviare il servizio]. |
{{{#!wiki important È 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]]. |
Linea 130: | Linea 120: |
}}} Abilita/disabilita la possibilità degli utenti anonimi di caricare file. Valido solo se `write_enable` è impostata a vero. | }}} Abilita/disabilita la possibilità degli utenti anonimi di caricare file. Valido solo se l'opzione precedente è impostata a vero. |
Linea 142: | Linea 132: |
}}} Specifica il percorso per i file di log. | }}} Specifica il percorso per i [[AmministrazioneSistema/LogDiSistema|file di log]]. |
Linea 148: | Linea 138: |
= Un server Ftp gestito in tre modi diversi = Ci sono principalmente tre modi per configurare un server ftp, qui di seguito: (1) * '''Anonymous FTP''' : Sarà possibile accedere al server senza aver bisogno di un account registrato, qualsiasi utente sarà libero di eseguire upload, che verranno ovviamente controllati da alcune "regole" impostate dall'amministratore di sistema, che delimiteranno la grandezza degli upload, vietando in qualche caso anche alcuni tipi di file come giochi/film/musica piratati. |
= 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). |
Linea 156: | Linea 146: |
(2) * '''FTP con la presenza sia di account registrati e sia di accesso anonimo''': Questo metodo darà la possibilità di accedere al server sia ad utenti anonimo 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. '''[[#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 160: | Linea 150: |
(3) *'''FTP con supporto per un database mysql per autenticazioni virtuali degli utenti''' : Questo metodo abilita l'accesso al server solo per il gruppo di utenti che non ha un'autenticazioni virtuale via sheel nel sistema. Sarà richiesto l'uso di un database mysql che conterrà tutte le informazioni riguardanti gli utenti. == Prima Opzione : Anonymous FTP == 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: {{{ |
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: {{{ |
Linea 171: | Linea 159: |
Linea 175: | Linea 162: |
Ci sono inoltre numerose variabili che possono essere aggiunte al server per poterlo configurare in ogni sua piccola parte, queste sono: |
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: |
Linea 180: | Linea 166: |
* '''-i''' Gli utenti anonimi non potranno effettuare uploads. | * '''-i''' Gli utenti anonimi non potranno caricare file. |
Linea 182: | Linea 168: |
* '''-s''' I file degli utenti ftp non possono essere scaricati. == Seconda Opzione : '''Accesso sia anonimo che controllato da password''' == Per dare l'accesso al server sia ad utenti registrati sia ad anonimi, potete seguire questi semplici comandi: |
* '''-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: |
Linea 194: | Linea 179: |
== Terza Opzione : '''Utenti virtuali con 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: * Scaricate e installate '''User Manager for PureFTPd''' che potete trovare su http://machiel.generaal.net/index.php?subject=user_manager_pureftpd * Decomprimete il file e fate l'upload di tutto il suo contenuto nella cartella '''www''' del vostro server web, dopo di che via browser digitate: http://localhost/ftp/install.php * Seguite le informazioni a schermo che l'installer vi richiede * Copiate e salvate rge pureftpd-mysql.conf dentro la cartella di !PureFtpd User Manager * Fatto. Effettuate il login all'interfaccia web tramite browser su http://localhost/ftp = Variabili aggiuntive = * '''-c <num>''' Numero di client massimo abilitato ad effettuare l'accesso al server * '''-C <num>''' Numero massimo di connessioni per IP * '''-T <bandwitdh>''' Massima banda disponibile per ogni connessione * '''-n <MBytes>''' Numero massimo di MB disponibili per ogni utente * '''-m <Cpu Loading>''' Blocca gli upload da parte di utenti anonimi in caso che il caricamento della cpu superi il livello definito da questo comando. |
<<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 }}} |
Linea 219: | Linea 218: |
* [http://vsftpd.beasts.org/ vsftpd.beasts.org Sito ufficiale di vsftpd] * [http://vsftpd.beasts.org/vsftpd_conf.html Guida alla configurazione di vsftpd] |
* [[http://vsftpd.beasts.org/|Sito ufficiale di vsftpd]] * [[http://vsftpd.beasts.org/vsftpd_conf.html|Guida alla configurazione di vsftpd]] |
Linea 224: | Linea 223: |
CategoryServer | CategoryServer CategoryDaRevisionare |
Indice
Problemi in questa pagina? Segnalali in questa discussione
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 componente universe.
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 stessi del sistema, è necessario modificare il file di configurazione del servizio /etc/vsftpd.conf con uno degli editor di testo messi a disposizione da Ubuntu.
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 sopra discusse, gli utenti del sistema avranno accesso, tramite il servizio FTP, a tutte le cartelle del filesystem locale. 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 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:
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).
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.
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 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 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.
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.
FTP con utenti virtuali e il supporto di un database MySQL
Per creare un server che affidi a MySQL 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 questo indirizzo.
Decomprimere il pacchetto e caricare il contenuto nella directory principale del server web, dunque aprire, con il proprio browser, 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 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