Internet Bandaid   [RSS Feed]

Install DKIM for Postfix

without comments

Before you begin, make sure you’ve installed Postfix as your smtp server as your first step.

This guide is based on Ubuntu guide and someone’s answer on Serverfault.

sudo aptitude install dkim-filter

Open up /etc/dkim-filter.conf and edit it so that it’s like below:

# Log to syslog
Syslog                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
#UMask                  002
# dkim-milter (2.5.2.dfsg-1ubuntu1) hardy:
# Disable new umask option by default (not needed since Ubuntu default
# uses a TCP socket instead of a Unix socket).

# Attempt to become the specified userid before starting operations.
#UserID                 105 # 'id postfix' in your shell

# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
# Domain won't really matter because that will be specified in the KeyList file
Domain                  yourdomain.com
#KeyFile                 /etc/mail/dkim.key # See bellow how to generate and set up the key
Selector                mail

# Common settings. See dkim-filter.conf(5) for more information.
AutoRestart             yes
Background              yes
Canonicalization        simple
DNSTimeout              5
Mode                    sv
SignatureAlgorithm      rsa-sha256
SubDomains              no
#UseASPDiscard          no
#Version                rfc4871
X-Header                no

#InternalHosts          /etc/mail/dkim-InternalHosts.txt
# The contents of /etc/mail/dkim-InternalHosts.txt should be
#   127.0.0.1/8
#   192.168.1.0/24
#   other.internal.host.domain.tld
# You need InternalHosts if you are signing e-mails on a gateway mail server
# for each of the computers on your LAN.

###############################################
# Other (less-standard) configuration options #
###############################################
#
# If enabled, log verification stats here
Statistics              /var/log/dkim-filter/dkim-stats
#
# KeyList is a file containing tuples of key information. Requires
# KeyFile to be unset. Each line of the file should be of the format:
#    sender glob:signing domain:signing key file
# Blank lines and lines beginning with # are ignored. Selector will be
# derived from the key's filename.
KeyList                /etc/mail/mail
#
# If enabled, will generate verification failure reports for any messages
# that fail signature verification. These will be sent to the r= address
# in the policy record, if any.
#ReportInfo             yes
#
# If enabled, will issue a Sendmail QUARANTINE for any messages that fail
# signature verification, allowing them to be inspected later.
#Quarantine             yes
#
# If enabled, will check for required headers when processing messages.
# At a minimum, that means From: and Date: will be required. Messages not
# containing the required headers will not be signed or verified, but will
# be passed through
#RequiredHeaders        yes

Add the following lines to /etc/postfix/main.cf

# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Create the public and private keys with these lines

openssl genrsa -out private.key 1024
openssl rsa -in private.key -out public.key -pubout -outform PEM
cp private.key /etc/mail/mail

Add a TXT record to your DNS like so

mail._domainkey.yourdomain.com. IN TXT "k=rsa; t=y; p=yourpubkey"

Where yourdomain.com is the domain you want to authenticate against, and yourpubkey is the contents of public.key WITHOUT the

-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----

Create a new file called /etc/mail/dkim_domains.key and put into it

*:yourdomain.com:/etc/mail/mail

Then restart dkimfilter and postfix with

> /etc/init.d/dkim-filter restart
> /etc/init.d/postfix restart

Now you’re done install postfix dkim

Other useful resources:

Written by John Lai

July 15th, 2010 at 3:25 am

Posted in Uncategorized

Tagged with , , , ,

Start Mission - Project management and invoicing

Leave a Reply