doc:appunti:linux:sa:proftpd
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
doc:appunti:linux:sa:proftpd [2013/09/09 15:36] – niccolo | doc:appunti:linux:sa:proftpd [2025/01/23 12:49] (current) – [Supporto TLS] niccolo | ||
---|---|---|---|
Line 2: | Line 2: | ||
==== TimesGMT ==== | ==== TimesGMT ==== | ||
+ | |||
Per default i file vengono mostrati ai client con il timestamp modificato, riportandolo alla zona GMT. Se invece si vuole il timestamp effettivo (quello mostrato da '' | Per default i file vengono mostrati ai client con il timestamp modificato, riportandolo alla zona GMT. Se invece si vuole il timestamp effettivo (quello mostrato da '' | ||
+ | |||
< | < | ||
# The TimesGMT option causes the server to report all | # The TimesGMT option causes the server to report all | ||
Line 8: | Line 10: | ||
TimesGMT off | TimesGMT off | ||
</ | </ | ||
+ | |||
+ | **ATTENZIONE**: | ||
==== Password NIS ==== | ==== Password NIS ==== | ||
+ | |||
Se l' | Se l' | ||
< | < | ||
Line 25: | Line 30: | ||
La direttiva in Debian Wheezy può essere messa in un file a parte, ad esempio **''/ | La direttiva in Debian Wheezy può essere messa in un file a parte, ad esempio **''/ | ||
+ | |||
+ | ==== File nascosti ==== | ||
+ | |||
+ | In generale è il client che passa gli argomenti opportuni per chiedere il listing completo, anche dei file nascosti. È possibile tuttavia forzare ProFTPD a mostrare sempre i file nascosti con la direttiva: | ||
+ | |||
+ | < | ||
+ | ListOptions | ||
+ | </ | ||
+ | |||
+ | **ATTENZIONE**: | ||
==== Disabilitare il chmod ==== | ==== Disabilitare il chmod ==== | ||
Line 37: | Line 52: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | ==== Chroot (jail directory) ==== | ||
+ | |||
+ | Per limitare un utente all' | ||
+ | |||
+ | < | ||
+ | DefaultRoot | ||
+ | DefaultRoot | ||
+ | </ | ||
+ | |||
+ | **ATTENZIONE**: | ||
+ | |||
+ | < | ||
+ | DefaultRoot | ||
+ | DefaultRoot | ||
+ | </ | ||
+ | |||
+ | ===== Supporto TLS ===== | ||
+ | |||
+ | Per evitare che le password transitino in chiaro sulla rete è opportuno abilitare il protocollo TSL obbligatorio. | ||
+ | |||
+ | Il modulo **/ | ||
+ | |||
+ | < | ||
+ | LoadModule mod_tls.c | ||
+ | </ | ||
+ | |||
+ | Quindi si può creare un file **/ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | TLSEngine | ||
+ | TLSOptions | ||
+ | TLSLog | ||
+ | PassivePorts | ||
+ | # | ||
+ | TLSRSACertificateFile | ||
+ | TLSRSACertificateKeyFile | ||
+ | TLSVerifyClient | ||
+ | TLSRequired | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Il certificato può essere autofirmato (analogo a quello utilizzato dal server web), oppure si possono utilizzare i **[[letsencrypt]]**. FIXME Quando il certificato Let's Encrypt viene aggiornato è necessario riavviare ProFTPD oppure no? | ||
+ | |||
+ | Definire il range delle **PassivePorts** consente di aprire il firewall (iptables) su un numero limitato di porte. Infatti utilizzando la cifratura TLS il modulo kernel **nf_nat_ftp** non è in grado di aprire in maniera dinamica la porta usata dal protocollo FTP per il trasferimento dei dati. Ci sono altre ricetta iptables per evitare di aprire in maniera permanente un range di porte, ma sono un po' più complicate da comprendere. | ||
+ | |||
+ | Il parametro **NoSessionReuseRequired** serve per i client (notabilmente **Filezilla 3.39**) che non riusano la connnessione SSL aperta per il controllo anche per il successivo trasferimento dati. | ||
+ | |||
+ | ==== FTP over TLS: Explicit vs Implicit ==== | ||
+ | |||
+ | Il supporto a FTP su TLS può essere implementato in due modi: | ||
+ | |||
+ | * **Explicit**: | ||
+ | * **Implicit**: | ||
+ | |||
+ | === Explicit === | ||
+ | |||
+ | Dovrebbe essere la modalità consigliata. | ||
+ | |||
+ | Con il client FileZilla si può impostare come **Encryption** la modalità **Require explicit FTP over TLS**, in modo da essere sicuri che l' | ||
+ | |||
+ | Con il client da riga di comando **lftp** si potrà usare un comando del tipo: | ||
+ | |||
+ | <code bash> | ||
+ | lftp -e "set ssl: | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Implicit === | ||
+ | |||
+ | La modalità **Implicit** può essere attivata anche sulla porta **21/TCP**, sebbene questo contravvenga il [[wp> | ||
+ | |||
+ | < | ||
+ | < | ||
+ | TLSOptions | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Con il client FileZilla si dovrà selezionare come **Encryption** la modalità **Require implicit FTP over TLS**, inoltre si dovrà esplicitamente indicare la porta **21/TCP** e il client stesso emetterà un warning: //Selected port usually in use by a different protocol//. | ||
+ | |||
+ | Volendo utilizzare il client da riga di comando **lftp** si dovrà utilizzare una riga di comando del tipo: | ||
+ | |||
+ | <code bash> | ||
+ | lftp -e "set ssl: | ||
+ | </ | ||
doc/appunti/linux/sa/proftpd.1378733810.txt.gz · Last modified: 2013/09/09 15:36 by niccolo