#format wiki #LANGUAGE it <
> <> <> = REVISIONE DELLA PAGINA SERVER FTP = = 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]]. <> = Prova del servizio = Collegarsi al computer con, come esempio, indirizzo IP '''192.168.1.2''' su cui è stato installato il servizio FTP. Per fare ciò, digitare nel [[AmministrazioneSistema/Terminale|terminale]] i seguenti comandi:{{{ ftp 192.168.1.2 }}} Verrà 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 con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/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 suo contenuto di default è il seguente: {{{ # /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]]. = 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. <> == 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 digitare nel [[AmministrazioneSistema/Terminale|terminale]] i seguenti 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 ''' Autorizza utenti con uno specifico ID(uid) ad accedere al server. * '''-V ''' 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 '''My``SQL''' la gestione degli utenti, è possibile procedere come segue: * Digitare nel [[AmministrazioneSistema/Terminale|terminale]] 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 ''' Numero di client massimo abilitato ad effettuare l'accesso al server. '''Esempio''': {{{ pure-ftpd -c 3 }}} * '''-C ''' Numero massimo di connessioni per IP. '''Esempio:''' {{{ pure-ftpd -C 3 }}} * '''-T ''' Massima banda disponibile per ogni connessione (in kb/s). '''Esempio:''' {{{ pure-ftpd -T 150 }}} * '''-n ''' Numero massimo di Mb disponibili per ogni utente. '''Esempio:''' {{{ pure-ftpd -n 200 }}} * '''-m ''' 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 }}} = Creare utenti appositi per il server FTP = Se si volessero creare degli utenti appositi che hanno disponibile l'accesso al solo server FTP, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{ sudo useradd -c "Utente FTP" -g ftp -m -k /dev/null -s /bin/false -d /home/utenteftp utenteftp }}} dove al posto di `Utente FTP` va inserito il nome dell'utente e al posto di `utenteftp` va inserito il nome della '''Home''' dell'utente. = Ulteriori risorse = * [[http://vsftpd.beasts.org/|Sito ufficiale di vsftpd]] * [[http://vsftpd.beasts.org/vsftpd_conf.html|Guida alla configurazione di vsftpd]] * [[https://help.ubuntu.com/community/vsftpd|vsftpd sul wiki internazionale di Ubuntu]] ---- CategoryServer