Mail sunucularında e-posta güvenliğini artırmak için DKIM (DomainKeys Identified Mail) protokolü vazgeçilmez bir unsurdur.
Mail sunucularında e-posta güvenliğini artırmak için DKIM (DomainKeys Identified Mail) protokolü vazgeçilmez bir unsurdur. DKIM, gönderilen e-postaların dijital imzalarla doğrulanmasını sağlayarak sahteciliği önler ve alıcı sunucuların mesajların orijinal göndericiden geldiğini teyit etmesine olanak tanır. Bu makalede, DKIM public key’inin mail sunucunuzda nasıl yayınlanacağını adım adım ele alacağız. Özellikle DNS kayıtları üzerinden public key’i paylaşmak, e-posta teslimat oranlarını optimize eder ve spam filtrelerinden kaçınmayı sağlar. Kurumsal ortamlar için bu işlem, standart bir güvenlik prosedürü olarak uygulanmalıdır.
DKIM uygulamasının ilk adımı, private ve public key çifti üretmektir. Bu işlem genellikle OpenSSL gibi araçlarla gerçekleştirilir ve mail sunucunuzun yazılımına göre değişebilir. Private key, sunucunuzda güvenli bir şekilde saklanırken, public key DNS kayıtlarına eklenir. Bu ayrım, imzaların yalnızca sunucu tarafında oluşturulmasını garanti eder.
OpenSSL kullanarak anahtar çifti oluşturmak için terminalde şu komutu çalıştırın: openssl genrsa -out dkim_private.key 2048. Bu, 2048 bitlik bir RSA private key üretir. Ardından public key’i çıkarmak için openssl rsa -in dkim_private.key -outform PEM -pubout -out dkim_public.key komutunu kullanın. Oluşan public key dosyasını base64 formatına dönüştürün: openssl base64 -in dkim_public.key. Bu adımlar, anahtarların uyumluluğunu sağlar ve Postfix veya Exim gibi sunucularda doğrudan kullanılabilir. Private key’i yetkisiz erişime karşı korumak için dosya izinlerini 600 olarak ayarlayın.
DKIM selector’ü, birden fazla anahtar seti için benzersiz bir tanımlayıcıdır; örneğin “mail” veya “default” gibi. Selector, DNS kaydının adını belirler (örneğin, mail._domainkey.example.com). Kurumsal sunucularda, farklı servisler için ayrı selector’ler tanımlamak önerilir. Anahtar isimlendirmesinde tutarlılık, yönetim kolaylığı sağlar. Selector belirledikten sonra, private key dosyasını /etc/dkim/keys/ gibi bir dizine taşıyın ve sunucu yeniden başlatın.
Anahtar çifti oluştuktan sonra doğruluğunu test edin. dkimkeygen veya online araçlarla (yerel test için) public key’i kontrol edin. Private key ile bir test imzası oluşturup, public key ile doğrulayın. Bu aşamada hata alırsanız, bit uzunluğunu 1024’e düşürmeyin; 2048 minimum standarttır. Kurumsal politikalar gereği, anahtarları düzenli rotasyon yapın, örneğin yılda bir kez.
Public key’i yayınlamak için DNS TXT kaydını ekleyin. Bu kayıt, selector._domainkey.alanadiniz.com subdomain’ine yerleştirilir. Kayıt formatı şöyle: v=DKIM1; k=rsa; p=BASE64_PUBLIC_KEY. “p” alanı, public key’in base64 kodlanmış halidir; satır sonları hariç tutulmalıdır. DNS sağlayıcınızın panelinden (örneğin Cloudflare, Route53) yeni TXT kaydı oluşturun ve TTL’yi 3600 saniye olarak ayarlayın. Değişikliklerin yayılması 1-48 saat sürebilir.
Kayıt ekledikten sonra yayılımı kontrol edin: dig TXT selector._domainkey.alanadiniz.com komutuyla sorgulayın. Tam eşleşme yoksa, base64 kodlamasını yeniden yapın. Kurumsal ağlarda, birden fazla DNS sunucusu varsa hepsini senkronize edin. Bu işlem tamamlandığında, DKIM imzaları alıcılar tarafından doğrulanabilir hale gelir.
TXT kaydında ek alanlar ekleyebilirsiniz: “t=s” ile test modu etkinleştirin, “h=sha256” ile hash algoritmasını belirtin. Public key 2048 bit ise, “p” değeri yaklaşık 300-400 karakter olur. Fazla uzun kayıtlar için DNS sağlayıcınızın limitlerini kontrol edin; gerekirse birden fazla TXT parçasına bölün. Örnek: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD.... Bu format, RFC 6376 standardına uygundur.
DNS değişikliğinden sonra MX Toolbox veya dmarcanalyzer gibi araçlarla doğrulayın. E-posta gönderip header’larda Authentication-Results satırını inceleyin. “dkim=pass” görmelisiniz. Sorun varsa, selector uyumsuzluğunu veya TTL gecikmesini kontrol edin. Kurumsal olarak, otomasyon script’leri ile bu süreci CI/CD pipeline’ına entegre edin.
Postfix için milter ile DKIM entegrasyonu yapın: OpenDKIM paketini yükleyin ve /etc/opendkim.conf dosyasını düzenleyin. KeyFile ve SelectorFile yollarını belirtin. smtpd_milters parametresini etkinleştirin. Exim kullanıcıları için dkim_private_key ve dkim_selector ayarlarını kullanın. Sunucuyu yeniden başlatıp test e-postası gönderin.
Test için kendi alanınıza e-posta atın ve header’ları analiz edin. DKIM-Signature header’ında b= değeri imzayı içerir. Alıcı sunucularda (Gmail, Outlook) teslimat raporlarını izleyin. Başarılı entegrasyon, bounce oranlarını %20-30 düşürebilir. Düzenli log takibiyle sorunları erken tespit edin.
Yaygın hatalar: Yanlış base64, selector mismatch veya private key izinleri. Loglarda “key not found” görürseniz, dosya yolunu doğrulayın. Selector’da nokta kullanmayın. IPv6 ortamlarında AAAA kayıtlarını da güncelleyin. Kurumsal denetim için yıllık DKIM audit’i uygulayın.
DKIM public key yayınlama işlemi tamamlandığında, e-posta altyapınız spam filtrelerine karşı daha dirençli hale gelir. Bu adımları takip ederek, güvenli ve güvenilir iletişim sağlayabilirsiniz. Süreci belgeleyin ve ekip üyeleriyle paylaşın; düzenli bakım ile uzun vadeli faydalar elde edin.