OpenDKIM
Konfiguracja
/etc/opendkim.conf:
Mode sv
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
UserID opendkim:opendkim
Socket inet:12301@localhost
Uwaga
Socket możesz ustawić też w
/etc/default/opendkim:# cat /etc/default/opendkim # Command-line options specified here will override the contents of # /etc/opendkim.conf. See opendkim(8) for a complete list of options. #DAEMON_OPTS="" # # Uncomment to specify an alternate socket # Note that setting this will override any Socket value in opendkim.conf #SOCKET="local:/var/run/opendkim/opendkim.sock" # default #SOCKET="inet:54321" # listen on all interfaces on port 54321 #SOCKET="inet:12345@localhost" # listen on loopback on port 12345 #SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345
/etc/opendkim/TrustedHosts:
127.0.0.1
localhost
192.168.0.0/24
bogus.corp
kb.bogus.corp
/etc/opendkim/KeyTable:
dk1._domainkey.bogus.corp bogus.corp:mail:/etc/opendkim/keys/bogus.corp/dk1.private
dk1._domainkey.kb.bogus.corp kb.bogus.corp:mail:/etc/opendkim/keys/kb.bogus.corp/dk1.private
/etc/opendkim/SigningTable:
*@bogus.corp dk1._domainkey.bogus.corp
*@kb.bogus.corp dk1._domainkey.kb.bogus.corp
Klucze
mkdir /etc/opendkim/keys/bogus.corp
mkdir /etc/opendkim/keys/kb.bogus.corp
sudo --user opendkim opendkim-genkey -d bogus.corp \
-D /etc/opendkim/keys/bogus.corp -s dk1 -v
sudo --user opendkim opendkim-genkey -d kb.bogus.corp \
-D /etc/opendkim/keys/kb.bogus.corp -s dk1 -v
Przy restrykcyjnej konf. powłoki (np. umask 027 w .bashrc):
chmod -R u=rwX,g=rX,o= /etc/opendkim && chown -R root:opendkim /etc/opendkim
DNS
Dodaj klucz publiczny jako rekord TXT:
cat /etc/opendkim/keys/bogus.corp/dk1.txt
dk1._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIqGSIb3DGfMA0gCSQEBAQuaA4GNADCBIqkbGQdvTb1FHgMtsjRNYyn3JcgwQWNAtukPxcFpP/93Gq47GKt2lD2+MeAe3OqCtJoNaxakdxYUIpn/FtZDN3dz7CclHgaiVSlhZCjy53FNa98u8FoNOap2xBd8e+1N36uscuxFOVjqLWUaE5IeRH9aDFjqYdxsEyokiH46IPJaMsFGtwIDAQAB") ; ----- DKIM key dk1 for bogus.corp
Postfix
/etc/postfix/main.cf:
[...]
milter_protocol = 2
smtpd_milters = inet:127.0.0.1:12301
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
[...]
service opendkim restart
service postfix restart
Sprawdzanie
dig -t TXT +short dk1._domainkey.bogus.corp
"v=DKIM1; k=rsa; "
"p=MIqGSIb3DGfMA0gCSQEBAQuaA4GNADCBIqkbGQdvTb1FHgMtsjRNYyn3JcgwQWNAtukPxcFpP/93G
q47GKt2lD2+MeAe3OqCtJoNaxakdxYUIpn/FtZDN3dz7CclHgaiVSlhZCjy53FNa98u8FoNOap2xBd8e
+1N36uscuxFOVjqLWUaE5IeRH9aDFjqYdxsEyokiH46IPJaMsFGtwIDAQAB"