6 999
contributi
S3v (discussione | contributi) mNessun oggetto della modifica |
S3v (discussione | contributi) (Quote) |
||
Riga 39: | Riga 39: | ||
;--shell /bin/false:L'utente non avrà una shell di login. | ;--shell /bin/false:L'utente non avrà una shell di login. | ||
;--uid ''UID'': Numero che rappresenta l'[[UID]] per l'utente virtuale. Importante notare che è attraverso l'UID che ProFTPD identifica un utente e non attraverso il suo nome. Questo porta alla naturale conclusione che è possibile creare utenti virtuali che hanno lo stesso nome degli utenti reali (se presenti) con possibilità di login sul server.<br/>La scelta dell'UID non ha particolari limitazioni ma è fortemente consigliato evitare UID pari a 0 o UID uguale a quello di utenti reali (presenti in "etc/passwd"); è invece possibile avere utenti virtuali con lo stesso UID. | ;--uid ''UID'': Numero che rappresenta l'[[UID]] per l'utente virtuale. Importante notare che è attraverso l'UID che ProFTPD identifica un utente e non attraverso il suo nome. Questo porta alla naturale conclusione che è possibile creare utenti virtuali che hanno lo stesso nome degli utenti reali (se presenti) con possibilità di login sul server.<br/>La scelta dell'UID non ha particolari limitazioni ma è fortemente consigliato evitare UID pari a 0 o UID uguale a quello di utenti reali (presenti in "etc/passwd"); è invece possibile avere utenti virtuali con lo stesso UID. | ||
;--file /etc/proftpd/ftpd.passwd:Il percorso e il nome del file che conterrà le informazioni per ciascun utente virtuale. | ;--file ''/etc/proftpd/ftpd.passwd'':Il percorso e il nome del file che conterrà le informazioni per ciascun utente virtuale. | ||
Successivamente verrà chiesta la password di cui l'utente si servirà per l'accesso FTP. | Successivamente verrà chiesta la password di cui l'utente si servirà per l'accesso FTP. | ||
Riga 253: | Riga 253: | ||
# service proftpd restart | # service proftpd restart | ||
</pre> | </pre> | ||
== Quote == | |||
Le quote (''quota'') sono il meccanismo con cui ProFTPD impone dei limiti al numero di byte/file che possono essere inviati/trasferiti/scaricati da/al server FTP. Questo evita che le directory diventino luoghi in cui trovare un po' di tutto e, soprattutto, consumino senza alcun limite lo spazio disponibile sul disco.<br/> | |||
Il meccanismo delle quote può essere implementato dall'amministratore direttamente a livello di filesystem: in questo caso si cerchi di evitare utenti virtuali con lo stesso UID per non incorrere in problemi. | |||
=== Le tabelle === | |||
Prima di tutto è indispensabile creare le due tabelle necessarie a ProFTPD: | |||
;''ftpquota.limittab'':permette a ProFTPD di conoscere che tipo di limite imporre e a chi (utente, gruppo, classe). | |||
;''ftpquota.tallytab'':permette a ProFTPD di tener traccia dei byte/file trasferiti/inviati/scaricati dal server. | |||
<pre> | |||
# ftpquota --create-table --table-path /etc/proftpd/ftpquota.limittab --type=limit | |||
# ftpquota --create-table --table-path /etc/proftpd/ftpquota.tallytab --type=tally | |||
</pre> | |||
Quindi è il momento di decidere che tipo di quote assegnare e a quali utenti. In questo caso si assegnerà un limite per i byte inviati (upload) per ogni utente: | |||
<pre> | |||
# ftpquota --add-record --type limit --limit-type hard --quota-type user --name pippo --bytes-upload 60 --units Mb --table-path /etc/proftpd/ftpquota.limittab | |||
# ftpquota --add-record --type limit --limit-type hard --quota-type user --name pluto --bytes-upload 60 --units Mb --table-path /etc/proftpd/ftpquota.limittab | |||
# ftpquota --add-record --type limit --limit-type hard --quota-type user --name minnie --bytes-upload 60 --units Mb --table-path /etc/proftpd/ftpquota.limittab | |||
</pre> | |||
;--add-record: aggiunge un record alla tabella specificata. | |||
;--type limit: indica che si sta operando sulla tabella "ftpquota.limittab". | |||
;--limit-type hard: il limite sarà "hard", cioè non sarà possibile inviare un file se, alla fine dell'operazione, viene superato il limite imposto. | |||
;--quota-type user: necessario per operare sui limiti per gli utenti. | |||
;--name ''nome'': il nome dell'utente interessato dal limite imposto. | |||
;--bytes-upload 60 --units Mb: il tipo di limite (byte in upload) espresso in Megabyte, in questo caso ci sarà un limite di 60MB. | |||
;--table-path ''/etc/proftpd/ftpquota.limittab'': il percorso e il nome della tabella su cui si sta agendo.. | |||
Si possono vedere gli effetti del comando precedente con: | |||
<pre> | |||
# ftpquota --show-records --type limit --units Mb --table-path /etc/proftpd/ftpquota.limittab | |||
</pre> | |||
che visualizzerà: | |||
<pre> | |||
------------------------------------------- | |||
Name: pippo | |||
Quota Type: User | |||
Per Session: False | |||
Limit Type: Hard | |||
Uploaded Mb: 60.00 | |||
Downloaded Mb: unlimited | |||
Transferred Mb: unlimited | |||
Uploaded files: unlimited | |||
Downloaded files: unlimited | |||
Transferred files: unlimited | |||
------------------------------------------- | |||
Name: pluto | |||
Quota Type: User | |||
Per Session: False | |||
Limit Type: Hard | |||
Uploaded Mb: 60.00 | |||
Downloaded Mb: unlimited | |||
Transferred Mb: unlimited | |||
Uploaded files: unlimited | |||
Downloaded files: unlimited | |||
Transferred files: unlimited | |||
------------------------------------------- | |||
Name: minnie | |||
Quota Type: User | |||
Per Session: False | |||
Limit Type: Hard | |||
Uploaded Mb: 60.00 | |||
Downloaded Mb: unlimited | |||
Transferred Mb: unlimited | |||
Uploaded files: unlimited | |||
Downloaded files: unlimited | |||
Transferred files: unlimited | |||
</pre> | |||
Si può anche utilizzare lo stesso comando sulla tabella <code>ftpquota.tallytab</code>: | |||
<pre> | |||
# ftpquota --show-records --type tally --units Mb --table-path /etc/proftpd/ftpquota.tallytab | |||
ftpquota: (empty table) | |||
</pre> | |||
inizialmente vuota. | |||
=== Direttive === | |||
Assicurasi che nel file <code>proftpd.conf</code> ci siano: | |||
<pre> | |||
<IfModule mod_quotatab.c> | |||
QuotaEngine on | |||
</IfModule> | |||
</pre> | |||
e poi creare il file <code>/etc/proftpd/conf.d/04Quota.conf</code> con: | |||
<pre> | |||
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab | |||
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab | |||
QuotaDisplayUnits Mb | |||
</pre> | |||
per informare ProFTPD sui nomi e i percorsi delle due tabelle. La direttiva "QuotaDisplayUnits" serve solo a indicare la quota in Megabyte (anziché in byte) se il client ne fa richiesta. | |||
Riavviare ProFTPD: | |||
<pre> | |||
# service proftpd restart | |||
</pre> | |||
=== Test === | |||
Da un client proviamo a inviare qualche file al server FTP utilizzando, ad esempio, l'utente ''pippo'' e poi controlliamo la tabella "ftpquota.tallytab": | |||
<pre> | |||
# ftpquota --show-records --type tally --units Mb --table-path /etc/proftpd/ftpquota.tallytab | |||
------------------------------------------- | |||
Name: pippo | |||
Quota Type: User | |||
Uploaded Mb: 1.61 | |||
Downloaded Mb: unlimited | |||
Transferred Mb: unlimited | |||
Uploaded files: 0 | |||
Downloaded files: 0 | |||
Transferred files: 0 | |||
</pre> | |||
Il comando mostra i byte inviati da ciascun utente (in questo caso solo ''pippo'' ha, per ora, inviato dati). | |||
È utile sapere che anche il client può conoscere i byte inviati eseguendo il comando "site quota": | |||
<pre> | |||
ftp>site quota | |||
200-La quota corrente per questa sessione è [corrente/limite] | |||
200-Nome: pippo | |||
200-Tipo Quota: Utente | |||
200-Tipo Limite: Hard | |||
200- Inviato Mb: 1.61/60.00 | |||
200- Scaricato Mb: illimitato | |||
200- Trasferito Mb: illimitato | |||
300- Inviato file: illimitato | |||
200- Scaricato file: illimitato | |||
200- Trasferito file: illimitato | |||
</pre> | |||
=== Rimuovere le quote === | |||
* Cancellare le tabelle <code>ftpquota.limittab</code> e <code>ftpquota.tallytab</code> | |||
* Cancellare il file <code>04Quota.conf</code> | |||
* Disabilitare la gestione delle quote con "QuotaEngine off" in <code>proftpd.conf</code> | |||
== Eliminare la configurazione == | == Eliminare la configurazione == | ||
Per eliminare | Per eliminare la configurazione ottenuta leggendo questa guida e ritornare ad un server ProFTPD con configurazione iniziale, si può procedere facilmente sfruttando il fatto che le modifiche hanno toccato poco o nulla il file principale ''proftpd.conf'': | ||
* Cancellare i file creati in ''/etc/proftpd/conf.d/'' | * Cancellare i file creati in ''/etc/proftpd/conf.d/'' | ||
* Cancellare il file ''/etc/proftpd/ftpd.group'' | * Cancellare il file ''/etc/proftpd/ftpd.group'' | ||
* Cancellare il file ''/etc/proftpd/ftpd.passwd'' | * Cancellare il file ''/etc/proftpd/ftpd.passwd'' | ||
* Rimuovere le modifiche eventualemten eseguite in ''/etc/proftpd/proftpd.conf'' | |||
* Riavviare ProFTPD:<pre># service proftpd restart</pre> | * Riavviare ProFTPD:<pre># service proftpd restart</pre> | ||
contributi