Email authentication plays a critical role in improving email deliverability and protecting domains from spoofing. DomainKeys Identified Mail (DKIM) adds a digital signature to outgoing emails, allowing receiving servers to verify that messages are legitimate and unaltered.
This guide explains how to install and configure OpenDKIM with Postfix to enable DKIM signing on a Linux server.
What is OpenDKIM?
OpenDKIM is an open-source implementation of the DKIM standard. It integrates with mail transfer agents like Postfix to automatically sign outgoing emails using cryptographic keys.
Benefits include:
- Improved email delivery rates
- Reduced spam classification
- Protection against email spoofing
- Increased domain reputation
Step 1: Install Required Packages
Install the RPMForge repository and required packages.
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum install opendkim postfix Step 2: Disable Sendmail
Stop Sendmail and remove it from startup services.
/etc/init.d/sendmail stop
chkconfig sendmail off Step 3: Enable Services at Boot
Enable Postfix and OpenDKIM services.
chkconfig postfix on
chkconfig opendkim on
Step 4: Configure Postfix
Edit Postfix configuration:
vi /etc/postfix/main.cf Update or add the following parameters:
myhostname = server.yourdomainname.com
mydomain = yourdomainname.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/ Add DKIM Integration
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2 Step 5: Configure OpenDKIM
Important Configuration Files
| File | Purpose |
|---|---|
/etc/opendkim.conf | Main configuration |
/etc/opendkim/KeyTable | Signing keys list |
/etc/opendkim/SigningTable | Allowed signing domains |
/etc/opendkim/TrustedHosts | Trusted servers |
Edit OpenDKIM Configuration
vi /etc/opendkim.conf Add or update:
PidFile /var/run/opendkim/opendkim.pid
Mode sv
Canonicalization relaxed/simple
Syslog yes
SyslogSuccess yes
LogWhy yes
UserID opendkim:opendkim
Socket inet:8891@localhost
Umask 002
Selector default
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts Step 6: Generate DKIM Keys
Create key directories and generate keys.
cd /etc/opendkim/keys
mkdir yourdomainname.com
cd yourdomainname.comopendkim-genkey -d yourdomainname.com -s default Set proper ownership:
chown opendkim:opendkim ../yourdomainname.com -R Step 7: Configure KeyTable
vi /etc/opendkim/KeyTable Add:
default._domainkey.yourdomainname.com yourdomainname.com:default:/etc/opendkim/keys/yourdomainname.com/default.private Step 8: Configure SigningTable
vi /etc/opendkim/SigningTable Add:
*@yourdomainname.com default._domainkey.yourdomainkey.yourdomainname.com Step 9: Configure Trusted Hosts
vi /etc/opendkim/TrustedHosts Add:
127.0.0.1
localhost
server.yourdomainname.com
yourdomainname.com Ensure localhost is included.
Step 10: Start Services
Start OpenDKIM first, then Postfix:
/etc/init.d/opendkim start
/etc/init.d/postfix start Monitor logs:
tail -f /var/log/maillog You should see OpenDKIM initialization messages.
Step 11: Add DKIM DNS Record
Retrieve the public DNS key:
cat /etc/opendkim/keys/yourdomainname.com/default.txt Create a TXT record in DNS:
default._domainkey IN TXT "v=DKIM1;k=rsa;p=PUBLIC_KEY" Ensure
k=rsaexists in the record.
Step 12: Configure SPF Record
Add an SPF record to improve email authentication:
v=spf1 mx a ip4:SERVER_IP ~all Step 13: Test DKIM Setup
Send a test email:
echo "This is a test mail" | mail -s "OpenDKIM test mail" test@gmail.com Check logs:
tail -f /var/log/maillog Look for:
DKIM-Signature header added Step 14: Verify DKIM Status
Open the received email headers and confirm:
dkim=pass
Conclusion
Configuring OpenDKIM with Postfix secures outgoing mail using domain authentication. Proper DKIM and SPF setup significantly improves email reputation, prevents spoofing, and ensures reliable inbox delivery.
If you require help, contact SupportPRO Server Admin
Partner with SupportPRO for 24/7 proactive cloud support that keeps your business secure, scalable, and ahead of the curve.
