--- layout: post title: !binary |- RG9tYWlua2V5cy9Ea2ltIHdpdGggUG9zdGZpeCAocXVpY2sgd2F5KQ== created: 1237637424 comments: true categories: !binary |- ZGViaWFuIGVuX3Vz ---
DomainKeys is an e-mail authentication system designed to verify the DNS domain of an e-mail sender and the message integrity.Or in simple words: if you don't use it, yahoo mail systems will hates you (and many many others). Let's install and configure dkim-filter:
aptitude install dkim-filter
mkdir /etc/dkim
cd /etc/dkim
dkim-genkey
Edit the default config in /etc/dkim-filter.conf
Domain yourdomain.com
KeyFile /etc/dkim/default.private
Selector Default
Uncomment "Mode sv" to be sure that dkim-filter will both sign and verify signatures.
Now enable the socket that postfix will use to communicate with dkim-filter:
/etc/default/dkim-filter
SOCKET="inet:8891@localhost"
Now instruct postfix about dkim-filter:
/etc/postfix/main.cf
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Restart dkim-filter and postfix.
The last step is load your public key, in a special TXT record for your domain that you can see on /etc/dkim/default.txt.
Hint:
dkim-filter[15113]: 57E455841A external host foo attempted to send as yourdomain.comThis will happen if you don't force the clients to auth themself for relaying, but you configured a static subnet declaration on mynetwork (main.cf): postfix knows that the clients sending mail from this subnet are trusted, but dkim NOT! For get that working you need to modify DAEMON_OPTS in /etc/default/dkim-filter:
DAEMON_OPTS=" -i /etc/dkim/internal_hosts"
and then, create /etc/dkim/internal_hosts:
127.0.0.1
12.13.14.15/24