6
contributi
Nessun oggetto della modifica |
|||
(11 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|Jessie}} | |||
== Introduzione == | == Introduzione == | ||
Dopo aver installato Apache ([[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]) e configurato i Virtual Host ([[Apache e Virtual Hosts: configurare Apache2 per ospitare più siti web]]) abbiamo adesso bisogno di permettere ai proprietari dei domini ospitati sui Virtual Host di accedere al loro spazio web via FTP senza causare danni agli altri Virtual Host e senza avere la possibilità di gironzolare per il nostro server.<br/> | Dopo aver installato Apache ([[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]]) e configurato i Virtual Host ([[Apache e Virtual Hosts: configurare Apache2 per ospitare più siti web]]) abbiamo adesso bisogno di permettere ai proprietari dei domini ospitati sui Virtual Host di accedere al loro spazio web via FTP senza causare danni agli altri Virtual Host e senza avere la possibilità di gironzolare per il nostro server.<br/> | ||
Riga 16: | Riga 15: | ||
Installiamo innanzitutto ProFTPD con il supporto per MySQL: | Installiamo innanzitutto ProFTPD con il supporto per MySQL: | ||
<pre> | <pre> | ||
# apt-get install proftpd proftpd-mod-mysql | # apt-get install proftpd-basic proftpd-mod-mysql | ||
</pre> | </pre> | ||
Per aumentare il tempo massimo prima che una connessione FTP vada in timeout per mancanza di attività possiamo aprire il file di configurazione: | Per aumentare il tempo massimo prima che una connessione FTP vada in timeout per mancanza di attività possiamo aprire il file di configurazione: | ||
Riga 22: | Riga 21: | ||
# vi /etc/proftpd/proftpd.conf | # vi /etc/proftpd/proftpd.conf | ||
</pre> | </pre> | ||
e aumentare il valore della direttiva | e aumentare il valore della direttiva: | ||
<pre> | <pre> | ||
TimeoutNoTransfer 1200 | TimeoutNoTransfer 1200 | ||
</pre> | |||
Consiglio inoltre di aggiungere le seguenti direttive: | |||
<pre> | |||
#Abilita resume per upload | |||
AllowStoreRestart on | |||
DeleteAbortedStores off | |||
#Abilita resume per il download | |||
AllowRetrieveRestart on | |||
</pre> | </pre> | ||
Ora creiamo un utente e un gruppo di sistema, che useremo per mappare tutti gli utenti virtuali che saranno utilizzati da ProFTPD: | Ora creiamo un utente e un gruppo di sistema, che useremo per mappare tutti gli utenti virtuali che saranno utilizzati da ProFTPD: | ||
Riga 45: | Riga 53: | ||
</pre> | </pre> | ||
Ovviamente sostituite la stringa <code>password</code> con la password che volete assegnare al vostro utente MySQL. | Ovviamente sostituite la stringa <code>password</code> con la password che volete assegnare al vostro utente MySQL. | ||
Già che siamo collegati alla shell di MySQL ne approfittiamo per creare anche tutte le tabelle che ci servono: | Già che siamo collegati alla shell di MySQL ne approfittiamo per creare anche tutte le tabelle che ci servono: | ||
<pre> | <pre> | ||
Riga 104: | Riga 112: | ||
=== /etc/proftpd/modules.conf === | === /etc/proftpd/modules.conf === | ||
Apriamo il file | Apriamo il file: | ||
<pre> | <pre> | ||
# vi /etc/proftpd/modules.conf | # vi /etc/proftpd/modules.conf | ||
Riga 123: | Riga 131: | ||
=== /etc/proftpd/proftpd.conf === | === /etc/proftpd/proftpd.conf === | ||
Apriamo il file | Apriamo il file: | ||
<pre> | <pre> | ||
# vi /etc/proftpd/proftpd.conf | # vi /etc/proftpd/proftpd.conf | ||
Riga 141: | Riga 149: | ||
[...] | [...] | ||
</pre> | </pre> | ||
e cambiamo la linea | e cambiamo la linea: | ||
<pre> | <pre> | ||
AuthOrder mod_auth_pam.c mod_auth_unix.c | AuthOrder mod_auth_pam.c mod_auth_unix.c | ||
</pre> | </pre> | ||
in | in: | ||
<pre> | <pre> | ||
Riga 315: | Riga 323: | ||
* ''name'': il nome dell'utente FTP virtuale (es: esempio-it) | * ''name'': il nome dell'utente FTP virtuale (es: esempio-it) | ||
* ''quota_type'': user o group. Normalmente useremo ''user'' | * ''quota_type'': user o group. Normalmente useremo ''user'' | ||
* ''per_session'': true o false. true significa che la quota limite è valida per una singola sessione: se l'utente effettua un logout e un nuovo login la quota si azzera. false significa che l'utente ha a disposizione la quota stabilita | * ''per_session'': true o false. ''true'' significa che la quota limite è valida per una singola sessione: se l'utente effettua un logout e un nuovo login la quota si azzera. ''false'' significa che l'utente ha a disposizione la quota stabilita | ||
* ''limit_type'': hard o soft. Un hard quota limit non permette eccezioni, mentre un soft quota limit può temporaneamente essere superato. Normalmente viene usato hard | * ''limit_type'': hard o soft. Un hard quota limit non permette eccezioni, mentre un soft quota limit può temporaneamente essere superato. Normalmente viene usato hard | ||
* ''bytes_in_avail'': limite di upload in bytes. 0 significa senza limite | * ''bytes_in_avail'': limite di upload in bytes. 0 significa senza limite | ||
* ''bytes_out_avail'': limite di download in bytes. 0 significa senza limite | * ''bytes_out_avail'': limite di download in bytes. 0 significa senza limite | ||
* ''bytes_xfer_avail'': limite di transfer bytes. | * ''bytes_xfer_avail'': limite di transfer bytes. È la quantità massima di bytes che un utente può uploadare o downloadare. 0 significa senza limite | ||
* ''files_in_avail'': numero limite di file uploadabili. 0 significa senza limite | * ''files_in_avail'': numero limite di file uploadabili. 0 significa senza limite | ||
* ''files_out_avail'': numero limite di file scaricabili. 0 significa senza limite | * ''files_out_avail'': numero limite di file scaricabili. 0 significa senza limite | ||
Riga 342: | Riga 350: | ||
* ''Porta'': 21 | * ''Porta'': 21 | ||
Provate a caricare un file e controllate eventuali messaggi di errore. | Provate a caricare un file e controllate eventuali messaggi di errore. | ||
Una volta completato l'upload, fate login come root sulla console del server e spostatevi nella DocumentRoot del sito www.esempio.it: | Una volta completato l'upload, fate login come root sulla console del server e spostatevi nella DocumentRoot del sito www.esempio.it: | ||
<pre> | <pre> | ||
Riga 351: | Riga 359: | ||
== FTP anonimo == | == FTP anonimo == | ||
È possibile creare anche un account ftp anonimo, cioè un account ftp che chiunque possa usare senza una password, in questo modo. | |||
<br/> | <br/> | ||
Creiamo innanzitutto un utente, un gruppo di sistema e una home directory: | Creiamo innanzitutto un utente, un gruppo di sistema e una home directory: | ||
Riga 366: | Riga 374: | ||
Infine apriamo il file di configurazione <code>/etc/proftpd/proftpd.conf</code> e aggiungiamo le direttive: | Infine apriamo il file di configurazione <code>/etc/proftpd/proftpd.conf</code> e aggiungiamo le direttive: | ||
<pre> | <pre> | ||
vi /etc/proftpd/proftpd.conf | # vi /etc/proftpd/proftpd.conf | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
Riga 413: | Riga 421: | ||
Riavviamo il servizio: | Riavviamo il servizio: | ||
<pre> | <pre> | ||
/etc/init.d/proftpd restart | # /etc/init.d/proftpd restart | ||
</pre> | </pre> | ||
e verifichiamo che gli utenti anonimi possano ora effettuare il login. | e verifichiamo che gli utenti anonimi possano ora effettuare il login. | ||
<br/> | <br/> | ||
L'impostazione data prevede che gli utenti anonimi possano: | L'impostazione data prevede che gli utenti anonimi possano: | ||
* scaricare i file messi in /var/www/anonymous_ftp | * scaricare i file messi in <code>/var/www/anonymous_ftp</code> | ||
* caricare i file nella directory /var/www/anonymous_ftp/incoming | * caricare i file nella directory <code>/var/www/anonymous_ftp/incoming</code> | ||
Una volta che un file è stato caricato, nessuno può leggerlo o scaricarlo prima che un amministratore lo sposti nella directory /var/www/anonymous_ftp per renderlo disponibile a tutti. | Una volta che un file è stato caricato, nessuno può leggerlo o scaricarlo prima che un amministratore lo sposti nella directory <code>/var/www/anonymous_ftp</code> per renderlo disponibile a tutti. | ||
== Configurazione del Firewall == | == Configurazione del Firewall == | ||
Se il server FTP è protetto da un firewall iptables occorre abilitare la direttiva PassivePorts: | |||
<pre> | |||
# nano /etc/proftpd/proftdp.conf | |||
</pre> | |||
in questo modo: | |||
<pre> | |||
PassivePorts 60000 65000 | |||
</pre> | |||
In questo modo abbiamo istruito ProFTPD a utilizzare uno specifico range di porte dinamiche per le transazioni FTP. Lo stesso range va abilitato nello script del nostro firewall: | |||
<pre> | |||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 60000:65000 -j ACCEPT | |||
</pre> | |||
Un riavvio del demone FTP e dello script del firewall completerà l'opera. | |||
{{Autori | |||
| Autore = [[Utente:Ferdybassi|Ferdybassi]] 19:40, 8 nov 2010 (CET) | |||
|Verificata_da= | |||
: lula 19:00, 29 dec 2016 (CET) | |||
|Numero_revisori = 1 | |||
}} | |||
[[Categoria:FTP server]] | [[Categoria:FTP server]] |
contributi