Dkim Nedir.
DKIM email mesajı ile bir alan adı ilişkilendirmek için kullanılan, kişiler yada kuruluşlarca sağlayan bir Internet standardıdır. OpenDkim bir e-posta mesajının doğrulama yöntemi olarak hizmet vermektedir. Aslında DKIM asimetrik kriptografi tarafından desteklenmektedir. Gönderenin Mail Transfer Agent (MTA) tartafından özel anahtarla her giden mesaj imzalanır. Alıcı, gönderenin DNS kayıtlarından ortak anahtarı alır ve mesaj imzalama gerçekleştiğinden beri ileti gövdesi ve başlık alanlarının bazılarının değişip değişmediğini doğrular.
Postfix ve Dkim Kurulumu.
Bir arkadaşımın DijitalOcean üzerindeki sunucusuna teknik destek veriyorum.
Üzerinde çalıştıkları proje için mail adresi kullanmaları gerektiğini söylediler.
Postfix kurulumunu yaptım dns Yönetiminden MX kaydını açtım.
Spam Klasörüne düşmemek için bazı tedbirler almak gereklidir.
- Gönderilen maillerin Dkim ile imzalanması
- spf Kaydı
- Mx kaydı
Kurulum:
Öncelikle Sistemi güncelleyelim.
sudo apt-get update
sudo apt-get dist-upgrade
OpenDKIM ve Bağımlı olduğu paketleri kuralım.
sudo apt-get install opendkim opendkim-tools
Opendkim Yapılandırmasını düzenleyelim.
sudo nano /etc/opendkim.conf
Dosya içeriği Düzenlenmiş hali. Kendi Domaininize Düzenleyiniz.
# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.
# 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
# Sign for example.com with key in /etc/mail/dkim.key using
# selector '2007' (e.g. 2007._domainkey.example.com)
Domain kimgelir.com
KeyFile /etc/opendkim/kimgelir.key
Selector mail
# Commonly-used options; the commented-out versions show the defaults.
Canonicalization simple
Mode sv
SubDomains no
ADSPAction continue
# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier. From is oversigned by default in the Debian pacakge
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders From
# List domains to use for RFC 6541 DKIM Authorized Third-Party Signatures
# (ATPS) (experimental)
#ATPSDomains example.com
#--- Bitiş
Dosyayı düzenleyip kapattık.
Şimdi Opendkim daemon yapılandırma dosyasına.ekleme yapalım.
sudo nano /etc/default/opendkim
SOCKET="inet:8891@localhost"
Postfix giden maillere OpenDkim ile imzalaması için main.cf dosyasına aşağıdaki satırları ekleyelim.
sudo nano /etc/postfix/main.cf
# OpenDKIM milter configuration
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
Şimdi giden maillerin imzalak için kullanılacak Dkim key üretelim. ve gerekli yere kopyalayalım.
root@kimgelir:~# mkdir /etc/opendkim
root@kimgelir:~#mkdir key
root@kimgelir:~#cd key
root@kimgelir:~/key# opendkim-genkey --selector=mail --domain=kimgelir.com
root@kimgelir:~/key# ls
mail.private mail.txt
root@kimgelir:~/key# cp mail.private /etc/opendkim/kimgelir.key
root@kimgelir:~/key# chown -R opendkim:opendkim /etc/opendkim/*
Burası önemli opendkim ile postaların imzalama işleminde DNS kaydı açmamız lazım.
çünki postfix giden maili imzaladığında karşı sunucunu gelen maili doğrulamak için bizim public keyimize ihtiyacı olacak.
Karşı e-posta sunucu public keyi Dns sorgusu ile elde edecektir.
Dns ye eklemeniz gereken public.key mail.txt dosyasının içeriğidir.
Bind için eklenmesi Gereken satır. tek satır olarak ekleyiniz.
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC19WfjBGXWh71t7Zs9DYCnG/T6jiRdo6axExg7ogpOmkjfB12k7apq8tUtJHYST2Iq4EylZXDhe2GUFvy+c52TF42gOQW78HgKs2dPwCg7Jn7+tsyzjV8L64iB+0IR9PTujA5MeijJDfm73zzGgzIxDQiwzO30dgsvUyvKf9BHqwIDAQAB" ) ; ----- DKIM key mail for kimgelir.com
Şimdi DNS sorgusuna bakalım public Key ulaşılabilir hale geldi.
caylak@Rihanna:~$ dig mail._domainkey.kimgelir.com TXT
; <<>> DiG 9.9.5-11ubuntu1-Ubuntu <<>> mail._domainkey.kimgelir.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13984
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mail._domainkey.kimgelir.com. IN TXT
;; ANSWER SECTION:
mail._domainkey.kimgelir.com. 1799 IN TXT "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC19WfjBGXWh71t7Zs9DYCnG/T6jiRdo6axExg7ogpOmkjfB12k7apq8tUtJHYST2Iq4EylZXDhe2GUFvy+c52TF42gOQW78HgKs2dPwCg7Jn7+tsyzjV8L64iB+0IR9PTujA5MeijJDfm73zzGgzIxDQiwzO30dgsvUyvKf9BHqwIDAQAB"
;; Query time: 273 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Feb 28 18:50:25 EET 2016
;; MSG SIZE rcvd: 305
caylak@Rihanna:~$
Evet herşey yolunda Dns üzerinden publickey yayınlandı.
Şimdi servisleri restart edelim.
Önce OpenDkim servisini restart edelim
root@kimgelir:~/key# service opendkim restart
Restarting OpenDKIM: opendkim.
root@kimgelir:~/key#
şimdi Postfix i restart edelim.
root@kimgelir:~/key# service postfix restart
* Stopping Postfix Mail Transport Agent postfix [ OK ]
* Starting Postfix Mail Transport Agent postfix [ OK ]
root@kimgelir:~
Kontrol edelim opendkim belirlediğimiz portu dinliyormu.
root@kimgelir:~/key# netstat -plutn | grep 8891
tcp 0 0 127.0.0.1:8891 0.0.0.0:* LISTEN 29706/opendkim
root@kimgelir:~/key#
Herşeyi hatasız yaptıysanız giden e-postalar postfix ve opendkim tarafından imzalanacaktır.
Thunderbird için Dkim Eklentisini buradan kurabilirsiniz. Thunderbird ile Dkim doğrulaması yapabilirsiniz.
Faydalı olması dileğiyle.
Kaynakça:
1 - https://www.syslogs.org
2 - https://qrokes.com
Yorum Gönder