Postfix + Dkim Entegrasyonu

dkim-domainkeys

 

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-myszaPostfix 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.

kimgelir-1

Thunderbird için Dkim Eklentisini buradan kurabilirsiniz. Thunderbird ile Dkim doğrulaması yapabilirsiniz.

Thunderbird-Dkim

Faydalı olması dileğiyle.

Kaynakça:

1 - https://www.syslogs.org

2 - https://qrokes.com

 
caylakpenguen
caylakpenguen

Truva Linux takımıyla 2006'da tanışan "Çaylak Penguen" -BASH- betiklerine bayılır. Truva'nıñ çekirdek derleme işleri ile çalışan cd tasarımıyla uğraşmaktadır.

Hiç yorum yok:

Yorum Gönderme