Alan adı dijital imzası (DKIM), gönderilen e-postanın başlığına bir anahtar ekleyerek alan adı sahibinin doğrulanmasını sağlar. Bu anahtar, alıcı sunucu tarafından gönderenin DNS kaydında belirtilen genel anahtarla eşleşmesi için doğrulanır. Bu ayar zorunlu olmasa da e-postanın spam klasörüne düşme olasılığını azaltır ve alıcı açısından e-postaya daha fazla güven sağlar.
1. Gerekli paketleri kuralım:
apt-get install opendkim opendkim-tools
2. Ayarlama ve etkinleştirme.
Varsayılan ayarları kaldırıp dosyayı şu hale getirelim:
nano /etc/opendkim.conf
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:12301@localhost
Varsayılan satırı yoruma alıp aşağıdakiyle değiştirelim:
nano /etc/default/opendkim
SOCKET="inet:12301@localhost"
Postfix’e ayarları ekleyelim:
nano /etc/postfix/main.cf
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
Anahtar ve posta alanı eşleme tablolarını depolamak için dizinler oluşturalım:
mkdir /etc/opendkim
mkdir /etc/opendkim/keys
Güvenilir ana bilgisayarlar ve alanlar dosyasını oluşturalım:
nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost
192.168.0.1/24
*.
#.my-domain.net
#.my-domain.org
Alan adı - özel anahtar eşleme dosyasını oluşturalım:
nano /etc/opendkim/KeyTable
mail._domainkey. :mail:/etc/opendkim/keys//mail.private
#mail._domainkey.my-domain.net my-domain.net:mail:/etc/opendkim/keys/my-domain.net/mail.private
#mail._domainkey.my-domain.org my-domain.org:mail:/etc/opendkim/keys/my-domain.org/mail.private
Herhangi bir adrese hangi anahtarın ekleneceğini belirleyen bir dosya oluşturalım:
nano /etc/opendkim/SigningTable
*@ mail._domainkey.
#@my-domain.net mail._domainkey.my-domain.net
#@my-domain.org mail._domainkey.my-domain.org
Alan adımız için anahtar dosyalarını oluşturalım:
cd /etc/opendkim/keys
mkdir
cd
opendkim-genkey -s mail -d
chown opendkim:opendkim mail.private
-s seçici belirler, -d alan adını belirler. Bu komut iki dosya oluşturur: mail.private gizli anahtarı, mail.txt genel anahtarı içerir.
DNS’te kullanmak için bu anahtarı kullanacağız:
nano -$ mail.txt
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3Ru/oMs+d2y93gZVq81J7hZfe31GR3177XQ5dI0r8zFqh86K1pgcdvCbpaAzXw9x25
/9BUe2ot9gpxjnt5SD+dDyereVKdkIQdkJBTl21Ei8ShJf+iIyYn5/skzLYS5RzlreBGoSGT6mtfnhzRX1A18X52oZrAfUJIXqAX14LYFq
/B5Wkw8vcUiU1CrR7lteH1vCu0JQtE16CK"
"vj86V06SxtKNEiRDqHZXo5+SqjzB2qHeteTGTyxA1dBmyKGCP6cVTkU3P0unOtsDLO+47YTUC55db34DKjjr18Lny0gf0d6oT0OvCZU5m5O3v
QunxQtSPD4+Hb75xrMJqqSlXtswIDAQAB" )
Bu kaydı normal hale getirip, tırnak işaretlerini kaldırıp anahtarı tek bir satıra getirerek alan adımızın DNS'ine bu TXT kaydını ekleyelim:
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBI...IDAQAB"
Kaydı şu komutla doğrulayabilirsiniz:
nslookup -q=TXT mail._domainkey. 8.8.8.8
Ayarları uygulamak için servisleri yeniden başlatalım:
service postfix restart
service opendkim restart
DKIM ayarı tamamlandı, ayarların doğru çalıştığını test etmek için bir e-postayı şu adrese gönderin: check-auth@verifier.port25.com
Eğer her şey doğru ayarlandıysa, gelen raporda DKIM check: pass ifadesini göreceksiniz.