Yanlışlıkla eposta sunucunuz spam olarak işaretlendi ve eposta gönderimdinde sorunlar yaşıyorsunuz bu durumda eposta sunucu yöneticilerinin izlemesi gereken yöntemlerden biride DKIM kurulumudur. Gönderilen epostaların spam olarak işaretlenmesinin genellikle nedenlerinden biri aşağıdakilerden bir tanesidir.
Bunlar çoğunluğu (SpamAssassin'e dahil) özel ve açık kaynak spam filtreleri tarafından kontrol edilmektedir ve bunların temel bazı özellikleri vardır. Bu testleri geçen iyi bir şekilde yapılandırılmış eposta sunucusu için son derece önemlidir.
Bu makalemizde DKIM kimlik doğrulama sisteminin açık kaynak uygulaması OpenDKIM yapılandırılması üzerinde durulacaktır.
Bu makalemizde Debian, Postfix, Dovecot ve SSH gibi gerekli uygulamaların kurulu olduğunu varsayarak başlıyoruz.
DKIM eposta mesajı ile bir alan adı "Domain" ilişkilendirmek için bir kişi ya da kuruluşa sağlayan bir Internet standardıdır. Bu, aslında, bir mesajın yöntem olarak sorumluluğunu üstlenmesidir. Aslında, DKIM asimetrik kriptografi tarafından desteklenmektedir.
Gönderenin Mail Transfer Agent (MTA) özel bir anahtarla her gönderilen mesajı imzalar. Alıcı, gönderenin DNS kayıtlarından ortak anahtarı alır ve mesajı imzalama kısmını gerçekleştirir ayrıca ileti gövdesi ve başlık alanlarının değişikliklerini doğrular.
Kuruluma başlamadan önce bir sistem güncellemesi tavsiye edilir:
apt-get update && apt-get dist-upgrade
OpenDKIM ve bağımlılıklarını yükleyin:
apt-get install opendkim opendkim-tools
Ek paketler bağımlılık olarak listelenir devam etmek için 'yes' yazıp Enter tuşuna basın.
OpenDKIM yapılandırılması dosyaların içerikleri düzenlenerek yada oluşturularak sağlanır. Dosya düzenleme işlemlerinde şahsen Vim kullanmaktayım ama siz daha basit bir editör olan Nano yu tercih edebilirsiniz.
Önemli: Tüm örnek domain alanlarımızı pythontr.com olarak işleyeceğiz sizlerde yapacağınız yapılandırma işleminde kendi domain adresinizle değişitrmeyi unutmayınız.
Şimdi ana konfigürasyon dosyamızla yapılandırmaya başlayalım.
vim /etc/opendkim.conf
.conf uzantılı dosyanın sonuna aşağıdaki satırları ekleyiniz. Her bir parametreyi aşağıda satır satır açıklamaya çalıştık. İsteğe bağlı olarak Socket için özel bir port numarası seçebilirsiniz. Seçtiğiniz port numarasının farklı bir uygulama tarafından kullanılmadığına emin olmalısınız.
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 Socket /var/run/opendkim/opendkim.sock
vim /etc/default/opendkim
Aşağıdaki satırı ekleyin özel bir port numarası düzenleyebilirsiniz düzenlediğiniz port numarasının kullanılabilir olduğundan emin olun.
#SOCKET="inet:12301@localhost" SOCKET="/var/run/opendkim/opendkim.sock"
Şimdi Postfix main dosyasını açalım.
vim /etc/postfix/main.cf
Bu iki satır Postfix yapılandırma satırının main.cf dosyasında bulunduğundan emin olun.
milter_protocol = 2 milter_default_action = accept
Bu satırlar filtre (SpamAssasin, Clamav vb...) uygulamalar için Postfix tarafından kullanılıyor olabilir. Aşağıdaki parametreler varsa, sadece virgül ile ayrılarak ilave edilir. Port numarası opendkim.conf dosyasında tanımladığınız port ile aynı olmalıdır.
smtpd_milters = unix:/spamass/spamass.sock, unix:/var/run/opendkim/opendkim.sock non_smtpd_milters = unix:/spamass/spamass.sock, unix:/var/run/opendkim/opendkim.sock
Ya da sade aşağıdaki şekilde tanımlayabilirsiniz.
smtpd_milters = unix:/var/run/opendkim/opendkim.sock non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
İmza tabloları ve şifrelemeler için bir dizin yapısı oluşturalım.
mkdir /etc/opendkim mkdir /etc/opendkim/keys
vim /etc/opendkim/TrustedHosts
ExternalIgnoreList ve InternalHosts tanımlamaları için bu dosya kullanılır. Bu Bilgisayarlar, Domainler ve IP adreslerinden gelen iletileri güvenilir ve imzalanır.
Bizim ana yapılandırma dosyası düzenli ifade dosyası (refile) olarak TrustedHosts bildirir, çünkü biz joker karakterler belirleyip kullanabiliriz *.pythontr.com pythontr.com'un en alt etki alanları gelen mesajları güvenilir olacağı anlamına gelir.
Yeni oluşturacağımız dosya ya aşağıdaki satırları ekleyin. Birden fazla domain tanımlayabilirsiniz. İlk iki satıra dokunmalayabilirsiniz üçüncü satırı kendi network yapınıza göre düzenleyiniz.
127.0.0.1 localhost 192.168.0.1/24 *.pythontr.com #*.xxx.net #*.xxx.org
vim /etc/opendkim/KeyTable
Her domain için bir anahtar tablo "Key Table" oluşturmalıyız.
mail._domainkey.pythontr.com pythontr.com:mail:/etc/opendkim/keys/pythontr.com/mail.private #mail._domainkey.xxx.net xxx.net:mail:/etc/opendkim/keys/xxx.net/mail.private #mail._domainkey.xxx.org xxx.org:mail:/etc/opendkim/keys/xxx.org/mail.private
Bir imza tablo oluşturalım:
vim /etc/opendkim/SigningTable
Bu dosya adları / e-posta adresleri ve domain tanımları için kullanılır.
*@pythontr.com mail._domainkey.pythontr.com #*@xxx.net mail._domainkey.xxx.net #*@xxx.org mail._domainkey.xxx.org
keys dizinine gidelim.
cd /etc/opendkim/keys
Keyleri tutmak ve domainleri ayırmak için ayrı bir klasör oluşturalım.
mkdir pythontr.com cd pythontr.com
opendkim-genkey -s mail -d pythontr.com
-s seçici belirtir -d ise domaini belirtir, bu komut iki dosya oluşturur mail.private bizim anahtarımızdır. Diğer dosya mail.txt ortak anahtarı içerir.
chown opendkim:opendkim mail.private
mail.txt dosyasını açalım.
vim mail.txt
Ortak anahtar p parametresi altında tanımlanır. Aşağıdaki örnek keyi kullanmayın, sadece bir örnek olarak paylaşılmıştır ve sunucu üzerinde çalışmaz.
vim /etc/bind/zones/pythontr.com.db
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=ADADFR0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5N3lnvvrYgPCRSoqn+awTpE+iGYcKBPpo8HHbcFfCIIV10Hwo4PhCoGZSaKVHOjDm4yefKdddd7iKzEPuBatE7O47hAx1CJpNuIdLxhILSbEmbMxJrJAG0HZVn8z6EAoOHZNaPHmK2h4UUrjOG8zA5BHfzJf7tGwI+K619fFUwIDDDDD" ; ----- DKIM key mail for pythontr.com
postfix kullanıcısını opendkim grubuna ekleyelim.
adduser postfix opendkim
Servisleri sırasıyla restart edelim.
service bind9 restart service postfix restart service opendkim restart
Kurulumun testi için bu adresi kullanabilirsiniz https://www.mail-tester.com/spf-dkim-check [mail-tester.com]
vim /etc/postfix/master.cf # service type private unpriv chroot wakeup maxproc command + args cleanup unix n - n - 0 cleanup
Yorumlar