Vincenzo Ingrosso Weblog
  • System Admin
  • Random Post
  • Authors
  • Become an Author
  • Messages Box
  • Crumbs!
  • Privacy Policy
  • About me
  • Contact
Facebook Page
  • Authors
  • Become an Author
  • Messages Box
  • Crumbs!
  • Privacy Policy
0 Likes
0 Followers
0 Followers
Iscriviti
Vincenzo Ingrosso Weblog
Vincenzo Ingrosso Weblog
  • System Admin
    • Debian & Sysadmin
    • Server
    • Bash
    • Ispconfig
    • Mac OSX
  • Random Post
  • About me
  • Contact
  • Debian & Sysadmin

OpenDKIM: install and simple setup for multiple domains

  • 22 Ottobre 2013
  • Vincenzo Ingrosso
Total
0
Shares
0
0
1

DomainKeys Identified Mail (DKIM) è un metodo per associare un nome a dominio con un messaggio email.

Questa la parte più difficile per me, vale a dire spiegarvi di cosa parliamo.

opendkim

Sono convinto che non tutti abbiano capito la mia spiegazione, ma è vero pure che se siete finiti a leggere questo post è perché da soli vi siete posti il seguente problema: vorrei certificare che il server che invia le email per conto del mio dominio sia autorizzato a farlo.

Per farlo utilizzeremo opendkim!

Fermiamo postfix e installiamo opendkim con i sui tools

/etc/init.d/postfix stop
apt-get install opendkim opendkim-tools

Ora ci creiamo la struttura di directory e file che ci occorrono per iniziare

mkdir -p /etc/opendkim/keys
cd /etc/opendkim
touch keytable signingtable trustedhosts

Diamo uno sguardo al file di configurazione  /etc/opendkim.conf . Vi lascio il mio come esempio. Se vi occorre saperne di più usate le pagine man.

# Log to syslog
Syslog			yes
LogWhy			yes
UMask			002

Mode			sv
OversignHeaders		From

KeyTable		refile:/etc/opendkim/keytable
SigningTable		refile:/etc/opendkim/signingtable
ExternalIgnoreList 	/etc/opendkim/trustedhosts
InternalHosts      	/etc/opendkim/trustedhosts

On-Default              accept
On-BadSignature         accept
On-DNSError             tempfail
On-InternalError        accept
On-NoSignature          accept
On-Security             tempfail
AutoRestart 		yes
AutoRestartRate 	5/1h

Adesso uno sguardo e relative modifiche al file /etc/default/opendkim

...
SOCKET="inet:12345@localhost" # listen on loopback on port 12345

Ora è facile comprendere che il nostro nuovo servizio sarà attivo in localhost sulla porta 12345 .

Adesso non ci resta che creare le chiavi con cui firmeremo le email per i nostri domini. A tal proposito creo una directory per ogni dominio che mi interessa in /etc/opendkim/keys

cd /etc/opendkim/keys
mkdir example.tld
opendkim-genkey -s 2013102300 -d example.tld

L’ultimo comando genera due file : 2013102300.private  2013102300.txt

Alcune precisazioni:

  • 2013102200 è il selettore per la chiave del dominio example.tld: è composta da anno, mese, giorno, e seriale se dovesse occorrere! Un po’ come il seriale di una zona DNS!;
  • verificate il contenuto del file .txt ci servirà a breve.

Ora ci interessa creare un record DNS di tipo TXT per il nostro dominio che abbia come hostname

2013102300._domainkey

e come valore quello compreso negli apici del file txt di cui sopra:

v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqg6k7sk/gwmsTEcGayMC5gMNfD/7V3m1F0GQog7Sj3MSG9qMNIzW4i5Cn+VYpEpj9alBK7jg2Jk/FcVzR4d3X8tNNYQkRYfPUU94tI639YSKTChlAoT2R4Ar8WTyKsPp9zkjV+YzRWgqAYhVZMdu5zKymaipHu0LkVmy8ngAQMQIDAQAB

Come creare un record simile per il vostro dominio, non sarà oggetto di trattazione. Qui è spiegato solo cosa deve contenere!

A questo punto comunichiamo il contenuto delle nostre chiavi a opendkim attraverso i primi file creati. Modifichaimo il file /etc/opendkim/keytable

2013102300._domainkey.example.tld example.tld:2013102300:/etc/opendkim/keys/example.tld/2013102300.private

Il file /etc/opendkim/signingtable affinchè contenga qualcosa di simile

*@example.tld 2013102300._domainkey.example.tld

infine aggiungiamo a /etc/opendkim/trustedhosts almeno gli indirizzi locali e l’IP pubblico del nostro server

127.0.0.1
localhost
example.tld
INDIRIZZO IPV4 DEL SERVER

Adesso facciamo in modo che opendkim possa leggere i file cha abbiamo creato:

cd /etc/opendkim/
chown -R opendkim:opendkim *

Riavviamo il servizio e procediamo alla integrazione di opendkim con postfix

/etc/init.d/opendkim restart

per quanto riguarda postfix dobbiamo editare il file /etc/postfix/main.cf per aggiungere o modificare opportunamente le seguenti righe

...
# OpenDKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345

....

infine verificate che l’istruzione receive_override_options= presente nel file /etc/postfix/master.cf contenga il valore no_milters come nell’esempio che segue

...
127.0.0.1:10025 inet n - - - - smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
 ...
        -o smtpd_client_connection_count_limit=0
        -o smtpd_client_connection_rate_limit=0
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
        -o smtp_bind_address=127.0.0.1

una volta modificato a dovere questo ultimo file potete finalmente far ripartire postfix!

/etc/init.d/postfix restart

Ora verificate che funzioni! Se avete un account google speditevi una mail. Nel sorgente del messaggio che riceverete ci sarà qualcosa di simile:

...

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:date:message-id:subject:from:to:content-type;
        bh=woeSTwYJxEwahkGNKqK8xReUvtoVZrsQrmlUtfAgG6Y=;
        b=P7xER4n0j8dqAnpVXDSVnn/c9g560DCYJVCWgvF+ijRLPFqhcAzMEWB/zuAPEzGrt5
         DfUVNKIvS/C1dvB9dASRLXtd0qZNv6OdoD9PLlKfCWOKy7cdd/2Iwo1IQCtGTPsGnWW7
         BFz/dwSe7+eQks0WUNYIe5wJ3iaywmxcX7tsmgUNaTsRfHJ/lcCXpdnCFtDu5hRlvsV4
         d9Ts1C5I97AVAKzYu/LdxwF4Qi5O/8OL953I4iH9bw32TJEpqtAccvVHtMrtE2b8xPAe
         eQ+eMc8NeokFbyOJvWtgBOxNUZpmLowO/kiKgatYlkE7lcgI6BQ/E4vDaJRl+ftMyHJ3
         YLhQ==

...

Adesso rispondete all’account google che vi ha appena scritto e se il destinatario nel sorgente del suo messaggio troverà qualcosa di simile

...
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=example.tld;
	s=2013102300; t=1382373996;
	bh=0q0pM2BM5QBc6UyIMnw9vqd31z00e4ACFZvuOH3pNq0=;
	h=Date:From:To:Subject:From;
	b=rBqR5yjhGbVf6f3QwzadyFJB9WKn+9iLNqdaQiVCZ7Xpb7ZWn2krfNwn0STuMa9c1
	 kW7PMx+nclSjR0YwYvqErAGD1rGUrcr4AgFSzFtZRAkTBbOyh4tT8XAncHxPXRWaMJ
	 0G15Cf7SEvnNIefMX4VN5Sp+drTgEyH9qkeoN5OM=

...

avrete avuto successo e la vostra configurazione sarà funzionante!

E per gli altri domini? aggiungete una directory in keys per ogni dominio, create la chiave ed aggiungete una riga nei file keytable e signingtable come per il dominio example.tld.

Semplice vero?!

Total
1
Shares
Share 0
Tweet 0
Pin it 1
Related Topics
  • debian
  • dkim
  • opendkim
  • postfix
  • setup
  • shell
  • spam
Vincenzo Ingrosso

Sono un lavoratore in-dipendente. Non ho titoli di studio che possano testimoniare le mie conoscenze in ambito informatico, ma sono dietro una tastiera dal '95. La mia prima distribuzione linux è stata RedHat, per passare nel giro di tre mesi a Slackware con la quale ho convissuto per circa 13 anni. Ad un certo punto ho realizzato Sflack, vale a dire Slackware Linux a 64bit puri, senza quindi utilizzo di multi-lib. Successivamente per mancanza di tempo e per comodità sono passato a Debian. Oggi lavoro davanti ad un iMac, ho una famiglia e mi occupo di tutt'altro.

Articolo Precedente
  • Random Post

Weblog: una nuova esperienza

  • 16 Ottobre 2013
  • Vincenzo Ingrosso
Visualizza Post
Articolo Successivo
  • Bash
  • Mac OSX

FlushDNS cache in Mac OSX

  • 7 Novembre 2013
  • Vincenzo Ingrosso
Visualizza Post
You May Also Like
A fantasy dragon with golden scales and red eyes
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Creare la tua prima macchina virtuale con Vagrant

  • Vincenzo Ingrosso
  • 4 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Random Post
  • Server

Introduzione a Vagrant e Terraform

  • Vincenzo Ingrosso
  • 4 Agosto 2023
wpscan kali wordpress
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Random Post
  • Raspberry

wpscan kali wordpress

  • Vincenzo Ingrosso
  • 4 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Random Post
  • Raspberry

kali su raspberry

  • Vincenzo Ingrosso
  • 3 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Raspberry
  • Server

kubernetes raspberry cluster

  • Vincenzo Ingrosso
  • 3 Agosto 2023
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Initramfs: install sshd to remote access

  • Vincenzo Ingrosso
  • 17 Luglio 2017
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

OpenVPN: setup guide on Debian (routed and bridged VPN)

  • Vincenzo Ingrosso
  • 22 Luglio 2015
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Debian: from Wheezy (7.0) to Jessie (8.0)

  • Vincenzo Ingrosso
  • 14 Luglio 2015
  • importanza del protocollo IP

    Il protocollo IP nell’interconnessione di dispositivi di rete

    Visualizza Post
  • Differenze tra ICMP, TCP, and UDP Protocols

    Differenze tra ICMP, TCP, and UDP Protocols

    Visualizza Post
  • Debian: importanza e futuro della distribuzione Linux

    Debian: importanza e futuro della distribuzione Linux

    Visualizza Post
  • differenza tra intelligenze artificiali

    Differenza tra intelligenze artificiali

    Visualizza Post
  • A fantasy dragon with golden scales and red eyes

    Creare la tua prima macchina virtuale con Vagrant

    Visualizza Post
Facebook Page
Instagram
TRENDING POSTS
  • importanza del protocollo IP
    Il protocollo IP nell’interconnessione di dispositivi di rete
    • 29 Agosto 2023
  • Differenze tra ICMP, TCP, and UDP Protocols
    Differenze tra ICMP, TCP, and UDP Protocols
    • 29 Agosto 2023
  • Debian: importanza e futuro della distribuzione Linux
    Debian: importanza e futuro della distribuzione Linux
    • 28 Agosto 2023
  • differenza tra intelligenze artificiali
    Differenza tra intelligenze artificiali
    • 7 Agosto 2023
  • A fantasy dragon with golden scales and red eyes
    Creare la tua prima macchina virtuale con Vagrant
    • 4 Agosto 2023
Legalese
Licenza Creative Commons

Questo Blog di Vincenzo Ingrosso è distribuito con Licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale.
Debian
FOLLOW ME
Facebook 0 Likes
Instagram 0 Followers
Twitter 0 Followers

Let's keep in touch

Subscribe now to my newsletter

about
Vincenzo Ingrosso

About the site

Sono un lavoratore in-dipendente. Non ho titoli di studio che possano testimoniare le mie conoscenze in ambito informatico, ma sono dietro una tastiera dal '95. La mia prima distribuzione linux è stata RedHat, per passare nel giro di tre mesi a Slackware con la quale ho convissuto per circa 13 anni. Ad un certo punto ho realizzato Sflack, vale a dire Slackware Linux a 64bit puri, senza quindi utilizzo di multi-lib. Successivamente per mancanza di tempo e per comodità sono passato a Debian. Oggi lavoro davanti ad un iMac, ho una famiglia e mi occupo di tutt'altro.
Victoria’s Secret

Recent Posts
  • importanza del protocollo IP
    Il protocollo IP nell’interconnessione di dispositivi di rete
    • 29 Agosto 2023
  • Differenze tra ICMP, TCP, and UDP Protocols
    Differenze tra ICMP, TCP, and UDP Protocols
    • 29 Agosto 2023
  • Debian: importanza e futuro della distribuzione Linux
    Debian: importanza e futuro della distribuzione Linux
    • 28 Agosto 2023
Vincenzo Ingrosso Weblog
  • System Admin
  • Random Post
  • About me
  • Contact
... I follow my passion ...

Inserisci la chiave di ricerca e premi invio.