User Tools

Site Tools


doc:appunti:linux:sa:proftpd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:proftpd [2019/02/07 13:00] – [Supporto TLS] niccolodoc:appunti:linux:sa:proftpd [2023/06/09 09:08] (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 ''ls -l'') si mette in ''**/etc/proftpd.conf**'': 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 ''ls -l'') si mette in ''**/etc/proftpd.conf**'':
 +
 <file> <file>
 # 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
 </file> </file>
 +
 +**ATTENZIONE**: Sembra tuttavia che sia prassi consolidata fornire i timestamp in GMT ed è compito del client tradurre in localtime. Ad esempio Filezilla 3.52 mostra il timestamp corretto solo se ProFTP è impostato al valore predefinito **TimesGMT on**.
  
 ==== Password NIS ==== ==== Password NIS ====
 +
 Se l'autenticazione avviene tramite NSS con password NIS o LDAP è indispensabile disattivare l'opzione **PersistentPasswd**: Se l'autenticazione avviene tramite NSS con password NIS o LDAP è indispensabile disattivare l'opzione **PersistentPasswd**:
 <file> <file>
Line 25: Line 30:
  
 La direttiva in Debian Wheezy può essere messa in un file a parte, ad esempio **''/etc/proftpd/conf.d/local.conf''** La direttiva in Debian Wheezy può essere messa in un file a parte, ad esempio **''/etc/proftpd/conf.d/local.conf''**
 +
 +==== 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:
 +
 +<file>
 +ListOptions  "-a"
 +</file>
 +
 +**ATTENZIONE**: Debian imposta tale direttiva a **%%-l%%** nel file **/etc/proftpd/proftpd.conf**. Se la stessa direttiva viene definita successivamente (ad esempio in **/etc/proftpd/conf.d/local.conf**), questa viene ignorata in silenzio.
  
 ==== Disabilitare il chmod ==== ==== Disabilitare il chmod ====
Line 47: Line 62:
 </file> </file>
  
 +**ATTENZIONE**: nelle condizioni si specifica il nome del **gruppo**, non dell'utente. Se ci sono più **condizioni separate da virgola**, queste vengono considerate come unite da **AND**. Se si vuole specificare la direttiva per gruppi diversi, si deve ripetere la stessa direttiva:
 +
 +<file>
 +DefaultRoot  ~      pdf-web
 +DefaultRoot  ~      ftpusers
 +</file>
 ==== Supporto TLS ==== ==== Supporto TLS ====
  
-Per evitare che le password transitino in chiaro sulla rete è opportuno abilitare il protocollo TSL obbligatorio. Si può creare un file **/etc/proftpd/conf.d/local.conf** con dentro:+Per evitare che le password transitino in chiaro sulla rete è opportuno abilitare il protocollo TSL obbligatorio. 
 + 
 +Il modulo **/usr/lib/proftpd/mod_tls.so** è incluso nel pacchetto Debian **proftpd-basic**, mentre Ubuntu lo fornisce con il pacchetto aggiuntivo **proftpd-mod-crypto**. Inoltre si deve verificare che in **/etc/proftpd/modules.conf** sia attiva la riga 
 + 
 +<file> 
 +LoadModule mod_tls.c 
 +</file> 
 + 
 +Quindi si può creare un file **/etc/proftpd/conf.d/local.conf** con dentro:
  
 <file> <file>
 <IfModule mod_tls.c> <IfModule mod_tls.c>
     TLSEngine                 on     TLSEngine                 on
 +    TLSOptions                NoSessionReuseRequired
     TLSLog                    /var/log/proftpd/tls.log     TLSLog                    /var/log/proftpd/tls.log
     PassivePorts              49152 49252     PassivePorts              49152 49252
-    #TLSRSACertificateFile     /etc/ssl/certs/proftpd.crt +    #TLSECCertificateFile     /etc/apache2/ssl/https.server.org.pem 
-    #TLSRSACertificateKeyFile  /etc/ssl/private/proftpd.key +    TLSRSACertificateFile     /etc/letsencrypt/live/www.texnet.it/fullchain.pem 
-    TLSECCertificateFile      /etc/apache2/ssl/https.server.org.pem+    TLSRSACertificateKeyFile  /etc/letsencrypt/live/www.texnet.it/privkey.pem
     TLSVerifyClient           off     TLSVerifyClient           off
     TLSRequired               on     TLSRequired               on
Line 67: Line 97:
  
 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. 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.
doc/appunti/linux/sa/proftpd.1549540839.txt.gz · Last modified: 2019/02/07 13:00 by niccolo