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 [2025/01/23 12:49] – [Supporto TLS] niccolodoc:appunti:linux:sa:proftpd [2026/04/14 12:31] (current) – [Certificato EC (moderno)] niccolo
Line 72: Line 72:
  
 Per evitare che le password transitino in chiaro sulla rete è opportuno abilitare il protocollo TSL obbligatorio. Per evitare che le password transitino in chiaro sulla rete è opportuno abilitare il protocollo TSL obbligatorio.
 +
 +==== Certificato RSA (legacy) ====
 +
 +RSA è l'algoritmo crittografico per le chiavi pubbliche più vecchio e compatibile utilizzato nei certificati SSL/TLS.
 +
 +Let's Encrypt in origine forniva certificati con questo formato, per verificarlo si può usare il comando:
 +
 +<code>
 +openssl x509 -in /etc/letsencrypt/live/domain/fullchain.pem -text -noout \
 +    | grep "Public Key Algorithm"
 +Public Key Algorithm: rsaEncryption
 +</code>
  
 Il modulo **/usr/lib/proftpd/mod_tls.so** era incluso nel pacchetto Debian **proftpd-basic** fino alla versione **Debian 10 Buster**, nelle versioni successive è fornito dal pacchetto opzionale **proftpd-mod-crypto**. Inoltre si deve verificare che in **/etc/proftpd/modules.conf** sia attiva la riga Il modulo **/usr/lib/proftpd/mod_tls.so** era incluso nel pacchetto Debian **proftpd-basic** fino alla versione **Debian 10 Buster**, nelle versioni successive è fornito dal pacchetto opzionale **proftpd-mod-crypto**. Inoltre si deve verificare che in **/etc/proftpd/modules.conf** sia attiva la riga
Line 100: Line 112:
  
 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. 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.
 +
 +==== Certificato EC (moderno) ====
 +
 +Ad oggi (2026) Let's Encrypt fornisce i certificati usando l'algoritmo crittografico Elliptic Curve (ECC), che fornisce sicurezza uguali a chiavi RSA più grandi e quindi minor sforzo computazionale. Una chiave EC da 256-bit offre una sicurezza comparabile ad una chiave RSA da 3072-bit.
 +
 +Per verificare il formato del file in nostro possesso si può usare il comando:
 +
 +<code>
 +openssl x509 -in /etc/letsencrypt/live/domain/fullchain.pem -text -noout \
 +    | grep "Public Key Algorithm"
 +Public Key Algorithm: id-ecPublicKey
 +</code>
 +
 +ProFTPD 1.3.8 su Debian 13 Trixie può usare questi certificati. Si deve ovviamente verificare che il modulo TLS sia caricato assicurandosi che in **/etc/proftpd/modules.conf** sia attiva la riga
 +
 +<file>
 +LoadModule mod_tls.c
 +</file>
 +
 +Quindi le direttive di configurazione sono diverse:
 +
 +<file>
 +IfModule mod_tls.c>
 +    TLSEngine                 on
 +    TLSOptions                NoSessionReuseRequired
 +    #TLSOptions               NoSessionReuseRequired UseImplicitSSL
 +    TLSLog                    /var/log/proftpd/tls.log
 +    PassivePorts              49152 49252
 +    TLSECCertificateFile      /etc/letsencrypt/live/domain/cert.pem
 +    TLSECCertificateKeyFile   /etc/letsencrypt/live/domain/privkey.pem
 +    TLSCACertificateFile      /etc/letsencrypt/live/domain/chain.pem
 +    TLSVerifyClient           off
 +    TLSRequired               on
 +</IfModule>
 +</file>
 +
 +Come si vede ProFTPD deve accedere al certificato del server **cert.pem** e a quello intermedio **chain.pem** esplicitamente, non può leggere entrambi dal file **fullchain.pem**. Le altre direttive circa PassivePorts ecc. restano invariate.
 +
 +Per quanto riguarda i permessi ProFTPD è in grado di leggere il certificato Let's Encrypt direttamente dalla directory **/etc/letsencrypt/live/**.
  
 ==== FTP over TLS: Explicit vs Implicit ==== ==== FTP over TLS: Explicit vs Implicit ====
doc/appunti/linux/sa/proftpd.1737632952.txt.gz · Last modified: by niccolo