Configurare SPF and DKIM su Postfix: differenze tra le versioni

Migliorata spiegazione per il multidominio
Nessun oggetto della modifica
(Migliorata spiegazione per il multidominio)
 
Riga 103: Riga 103:
Selector                2021
Selector                2021
KeyFile        /etc/dkimkeys/2021.private</pre>
KeyFile        /etc/dkimkeys/2021.private</pre>
Ed al posto di 2021 inserire l'anno corrente.
Ed al posto di 2022 inserire l'anno corrente.


Più in basso, sempre nello stesso file attivare
Più in basso, sempre nello stesso file attivare
Riga 110: Riga 110:


Creiamo le chiavi crittografiche per OpenDKIM con
Creiamo le chiavi crittografiche per OpenDKIM con
  sudo -u opendkim opendkim-genkey -D /etc/dkimkeys -d mail.example.com -s 2021
  sudo -u opendkim opendkim-genkey -D /etc/dkimkeys -d mail.example.com -s 2022
In questo caso la chiave privata si troverà in <code>/etc/dkimkeys/2021.private</code> e quella pubblica in <code>/etc/dkimkeys/2021.txt</code>
In questo caso la chiave privata si troverà in <code>/etc/dkimkeys/2022.private</code> e quella pubblica in <code>/etc/dkimkeys/2022.txt</code>


====Completa: multi-dominio====
====Completa: multi-dominio====
Aprire il file <code>/etc/opendkim.conf</code> e modificare i parametri
Aprire il file <code>/etc/opendkim.conf</code> e aggiungere i parametri
<pre># Specify the list of keys
<pre># Specify the list of keys
KeyTable file:/etc/dkimkeys/keytable
KeyTable file:/etc/dkimkeys/keytable
Riga 124: Riga 124:
InternalHosts refile:/etc/dkimkeys/trustedhosts</pre>
InternalHosts refile:/etc/dkimkeys/trustedhosts</pre>


Ora creare i file per la lista delle chiavi, la corrispondenza tra chiavi e domini e la lista degli host per i quali i messaggi saranno firmati.
Più in basso, sempre nello stesso file attivare
<pre>Socket                  local:/var/spool/postfix/opendkim/opendkim.sock</pre>ed assicurarsi che non ci siano altre righe relative a <code>Socket</code> non commentate.Ora creare i file per la lista delle chiavi, la corrispondenza tra chiavi e domini e la lista degli host per i quali i messaggi saranno firmati.
  sudo -u opendkim touch /etc/dkimkeys/keytable /etc/dkimkeys/signingtable /etc/dkimkeys/trustedhosts
  sudo -u opendkim touch /etc/dkimkeys/keytable /etc/dkimkeys/signingtable /etc/dkimkeys/trustedhosts
Aprire il file <code>/etc/dkimkeys/keytable</code> ed aggiungere le informazioni sulle chiavi private con il seguente schema (uno per riga):
Aprire il file <code>/etc/dkimkeys/keytable</code> ed aggiungere le informazioni sulle chiavi private con il seguente schema (uno per riga):
  shortname yourdomain.org:mail:/etc/dkimkeys/mykey.private
  shortname yourdomain.org:selector:/etc/dkimkeys/mykey.private
 
Dove <code>shortname</code> è un nome breve per ricordarsi il dominio, mentre <code>selector</code> è il selettore per la chiave (esempio l'anno in corso, come <code>2022</code>).


Nel file <code>/etc/dkimkeys/signingtable</code>, specificare quale chiave firmerà quale dominio, qui un esempio:
Nel file <code>/etc/dkimkeys/signingtable</code>, specificare quale chiave firmerà quale dominio, qui un esempio:
Riga 141: Riga 144:
localhost
localhost
myhostname
myhostname
yourdomain.org</pre>
*yourdomain.org</pre>


In questo caso cambiare myhostname con quello del proprio server e yourdomain.org con il nome del dominio.
In questo caso cambiare myhostname con quello del proprio server e yourdomain.org con il nome del dominio (l'asterisco iniziale può essere omesso se non si vogliono includere tutti i sotto-domini).


Per ciascun dominio creiamo le chiavi crittografiche eseguendo il seguente comando, cambiando di volta in volta il selector (opzione -s scegliendo quello che desideriamo, è comune utilizzare l'anno di generazione) ed eventualmente rinominando le chiavi generate in /etc/dkimkeys per capire a quali domini si riferiscono
Per ciascun dominio creiamo le chiavi crittografiche eseguendo il seguente comando, cambiando di volta in volta il selector (opzione -s scegliendo quello che desideriamo, è comune utilizzare l'anno di generazione) ed eventualmente rinominando le chiavi generate in /etc/dkimkeys per capire a quali domini si riferiscono
  sudo -u opendkim opendkim-genkey -D /etc/dkimkeys -d yourdomain.org -s 2021
  sudo -u opendkim opendkim-genkey -D /etc/dkimkeys -d yourdomain.org -s 2022
In ogni caso, dopo la generazione ci si troverà la chiave privata si troverà in <code>/etc/dkimkeys/2021.private</code> e quella pubblica in <code>/etc/dkimkeys/2021.txt</code>
In ogni caso, dopo la generazione ci si troverà la chiave privata si troverà in <code>/etc/dkimkeys/2022.private</code> e quella pubblica in <code>/etc/dkimkeys/2022.txt</code>
In questo caso, avendo specificato che le chiavi si trovano in <code>/etc/dkimkeys/mykey.private</code> è necessario rinominarle con <code>mv</code> per rispettare il nome corretto.
In questo caso, avendo specificato che le chiavi si trovano in <code>/etc/dkimkeys/mykey.private</code> è necessario rinominarle con <code>mv</code> per rispettare il nome corretto.


Riga 170: Riga 173:
Le prima cosa da fare è aprire il file contenente la chiave pubblica precedentemente generata. Ricordo essere nella directory <code>/etc/dkimkeys/</code> ed ha estensione <code>.txt</code>.
Le prima cosa da fare è aprire il file contenente la chiave pubblica precedentemente generata. Ricordo essere nella directory <code>/etc/dkimkeys/</code> ed ha estensione <code>.txt</code>.
Il file avrà un aspetto di questo tipo
Il file avrà un aspetto di questo tipo
<pre>2021._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
<pre>2022._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
  "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzNujEZuDXhwTXrqyw4lvOlTfvevftY1bbKTKSiUXLTnT21fJ3y38DB88LFwW4XOtHq6hgx/bezivKuqa3Nvm5vn2S48aVDSKEM173KG20N/gapBvW3C0AVq607ds5TaeO3Wg5bBIZXSwJBboJaaJbNUMLJD31l25wkU+WD2gX2K32OSpJflXXPD5tWZIQPVQpM9q9ekoKxuUYD"
  "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzNujEZuDXhwTXrqyw4lvOlTfvevftY1bbKTKSiUXLTnT21fJ3y38DB88LFwW4XOtHq6hgx/bezivKuqa3Nvm5vn2S48aVDSKEM173KG20N/gapBvW3C0AVq607ds5TaeO3Wg5bBIZXSwJBboJaaJbNUMLJD31l25wkU+WD2gX2K32OSpJflXXPD5tWZIQPVQpM9q9ekoKxuUYD"
  "UFsrBj4u/OfmqO1hDRaJYLHRYKmDuw7UibnDEFlgQsczL6E9e7q5BjyVDC3pFvsM7jQatQVgYo+Ml3vBt4idoFwpTCt1MzE7bNMh/wwLni6/PKZXGGdjxoHqsp2o0UBXaXXZwfKwIDAQAB" )  ; ----- DKIM key a for yourdomain.org</pre>
  "UFsrBj4u/OfmqO1hDRaJYLHRYKmDuw7UibnDEFlgQsczL6E9e7q5BjyVDC3pFvsM7jQatQVgYo+Ml3vBt4idoFwpTCt1MzE7bNMh/wwLni6/PKZXGGdjxoHqsp2o0UBXaXXZwfKwIDAQAB" )  ; ----- DKIM key a for yourdomain.org</pre>
Quello che dobbiamo fare è, dal gestore del nostro DNS creare un nuovo record di tipo TXT, dare il nome che troviamo, cioè nel caso mostrato <code>2021._domainkey</code> dove al posto del <code>2021</code> troverete il nome che avete passato a <code>-s</code> al momento della generazione della chiave, cioè il selector.
Quello che dobbiamo fare è, dal gestore del nostro DNS creare un nuovo record di tipo TXT, dare il nome che troviamo, cioè nel caso mostrato <code>2022._domainkey</code> dove al posto del <code>2022</code> troverete il nome che avete passato a <code>-s</code> al momento della generazione della chiave, cioè il selector.


Nel campo inserire la seconda parte, ricordandosi di rimuovere i doppi apici <code>"</code> e gli accapo trovati. Cioè nel caso di esempio precedente dovremo inserire
Nel campo inserire la seconda parte, ricordandosi di rimuovere i doppi apici <code>"</code> e gli accapo trovati. Cioè nel caso di esempio precedente dovremo inserire
Riga 180: Riga 183:
===Test della configurazione===
===Test della configurazione===
Per testare la corretta firma e verifica delle chiavi si può utilizzare il comando <code>opendkim-testkey</code> nel seguente modo:
Per testare la corretta firma e verifica delle chiavi si può utilizzare il comando <code>opendkim-testkey</code> nel seguente modo:
  opendkim-testkey -d yourdomain.org -s 2021
  opendkim-testkey -d yourdomain.org -s 2022
Ricordandosi di sostituire a <code>yourdomain.org</code> il proprio dominio e a <code>2021</code> il selector impostato.
Ricordandosi di sostituire a <code>yourdomain.org</code> il proprio dominio e a <code>2022</code> il selector impostato.


Se tutto è andato per il verso giusto non dovresti ottnere alcun output. Se vuoi vedere più informazioni aggiungi l'argomento <code>-vvv</code> alal fine del comando. La procedura mostrerà l'output di debug. L'ultimo messaggio dovrebbe essere <code>key OK</code>. Appena prima si può vedere il messaggio <code>key not secure</code>. È normale e non è un messaggio di errore. Significa semplicemente che il dominio non è configurato per DNSSEC. In caso sia supportato DNSSEC (per esempio usando google DNS) si troverà <code>key secure</code>.
Se tutto è andato per il verso giusto non dovresti ottnere alcun output. Se vuoi vedere più informazioni aggiungi l'argomento <code>-vvv</code> alal fine del comando. La procedura mostrerà l'output di debug. L'ultimo messaggio dovrebbe essere <code>key OK</code>. Appena prima si può vedere il messaggio <code>key not secure</code>. È normale e non è un messaggio di errore. Significa semplicemente che il dominio non è configurato per DNSSEC. In caso sia supportato DNSSEC (per esempio usando google DNS) si troverà <code>key secure</code>.
Riga 231: Riga 234:
Si premette che le chiavi DKIM non hanno scadenza, pertanto è tecnicamente possibile non cambiarle mai. Però è consigliato la creazione e la revoca di nuove chiavi almeno una volta l'anno<ref>[https://www.ncsc.gov.uk/collection/email-security-and-anti-spoofing/configure-anti-spoofing-controls-/create-and-manage-a-dkim-record UK National Cyber Secyrity Center: Creation and managin of DKIM record ]</ref>
Si premette che le chiavi DKIM non hanno scadenza, pertanto è tecnicamente possibile non cambiarle mai. Però è consigliato la creazione e la revoca di nuove chiavi almeno una volta l'anno<ref>[https://www.ncsc.gov.uk/collection/email-security-and-anti-spoofing/configure-anti-spoofing-controls-/create-and-manage-a-dkim-record UK National Cyber Secyrity Center: Creation and managin of DKIM record ]</ref>


La procedura da eseguire è veramente semplice. Si genera una nuova coppia di chiavi (pubblica e privata) come nel passo per configurare [[#Completa:_multi-dominio|OpenDKIM in modalità multi-dominio]] ed aggiornare il selector nel file di configurazione <code>keytable</code> che elenca le chiavi (per esempio da 2021 passare a 2022).
La procedura da eseguire è veramente semplice. Si genera una nuova coppia di chiavi (pubblica e privata) come nel passo per configurare [[#Completa:_multi-dominio|OpenDKIM in modalità multi-dominio]] ed aggiornare il selector nel file di configurazione <code>keytable</code> che elenca le chiavi (per esempio da 2022 passare a 2023).


Utilizzare il nuovo file .txt generato per aggiungere la nuova chiave al record DNS con il nuovo selector. Si ricorda di non rimuovere o modificare il record DKIM pre-esistente. Testare nuovamente la chiave (con il nuovo selector) sempre con il comando <code>opendkim-testkey</code>.
Utilizzare il nuovo file .txt generato per aggiungere la nuova chiave al record DNS con il nuovo selector. Si ricorda di non rimuovere o modificare il record DKIM pre-esistente. Testare nuovamente la chiave (con il nuovo selector) sempre con il comando <code>opendkim-testkey</code>.