Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
E-postalarınız alıcıda spam klasörüne düşüyor ya da alan adınız adına sahte iletiler gönderiliyorsa kimlik doğrulama kayıtları eksik olabilir. Bu rehberde alan adınız için SPF, DKIM ve DMARC kurulumunu DNS düzeyinde yapacak ve doğrulayacaksınız.
Rehber, kendi alan adının DNS’ini yöneten site ve hosting yöneticilerine yöneliktir. Tahmini süre 30-45 dakikadır; DNS yayılımı için ek süre gerekebilir. Kontrol paneli veya e-posta servisi kullanıyorsanız hazır kayıt değerlerini oradan alın.
Gereksinimler
- Alan adının DNS kayıtlarını düzenleme yetkisi (alan adı sağlayıcısı veya DNS paneli)
- E-postayı hangi sunucu veya servislerin gönderdiğinin listesi (kendi sunucunuz, toplu e-posta servisi vb.)
- DKIM için ilgili e-posta sunucusunun yönetimi veya servisten alınan anahtar bilgisi
- Mevcut TXT kayıtlarının yedeği: bir alan adında yalnızca bir SPF kaydı olabilir
Adım adım SPF, DKIM ve DMARC kurulumu
1. Mevcut kayıtlara bakın
Önce hâlihazırda tanımlı kayıtları görün. Zaten bir SPF kaydı varsa yenisini eklemeyin, mevcut olanı düzenleyin.
dig +short TXT siteniz.example
dig +short TXT _dmarc.siteniz.example2. SPF kaydını oluşturun
SPF, alan adınız adına hangi sunucuların e-posta gönderebileceğini belirtir. Kayıt, alan adının kökünde bir TXT kaydı olarak girilir. Aşağıdaki değer yalnızca örnektir; IP adresini kendi sunucunuzun IP’siyle değiştirin ve kullandığınız dış e-posta servislerinin include değerlerini servislerin belgesinden alın.
v=spf1 mx a ip4:203.0.113.10 ~allSonundaki ~all yumuşak başarısızlık, -all ise sert reddetme anlamına gelir. Başlangıçta ~all kullanın, sorunsuz çalıştığını gördükten sonra sıkılaştırabilirsiniz. SPF kaydı en fazla 10 DNS sorgusu içerebilir; çok fazla include eklemekten kaçının.
3. DKIM anahtar çiftini üretin
DKIM, giden iletileri dijital olarak imzalar. Kendi sunucunuzda OpenDKIM kullanıyorsanız anahtar çifti üretmek için opendkim-tools paketini kurun. Panel veya e-posta servisi kullanıyorsanız anahtarı genellikle onlar üretir ve size DNS kaydını gösterir.
# Debian/Ubuntu
sudo apt install opendkim opendkim-tools
# AlmaLinux/Rocky (EPEL)
sudo dnf install opendkim opendkim-tools
sudo mkdir -p /etc/opendkim/keys/siteniz.example
sudo opendkim-genkey -b 2048 -d siteniz.example -D /etc/opendkim/keys/siteniz.example -s default
sudo chown -R opendkim:opendkim /etc/opendkim/keys
sudo chmod 600 /etc/opendkim/keys/siteniz.example/default.private
sudo cat /etc/opendkim/keys/siteniz.example/default.txtOluşan default.txt dosyasındaki açık anahtar değerini DNS’e default._domainkey adlı TXT kaydı olarak ekleyin. Özel anahtar dosyası (default.private) yalnızca opendkim kullanıcısı tarafından okunabilmeli; asla paylaşmayın. E-posta sunucusunu (Postfix veya Exim) bu anahtarla imza atacak şekilde yapılandırma adımları kullandığınız yazılıma göre değişir; ilgili belgeye bakın.
4. DKIM DNS kaydını ekleyin
DNS panelinde yeni bir TXT kaydı açın. Ad kısmına seçici ve _domainkey ifadesini yazın, değer kısmına açık anahtarı girin. Uzun değerler panele göre parçalanabilir; panelin yönergesini izleyin.
Ad: default._domainkey
Tür: TXT
Değer: v=DKIM1; k=rsa; p=ACIK_ANAHTAR_DEGERI5. DMARC kaydını gözlem modunda ekleyin
DMARC, SPF ve DKIM başarısız olduğunda alıcıya ne yapacağını söyler ve size raporlar gönderir. Önce p=none ile yalnızca izleme yapın; iletileri bozmadan neyin etkilendiğini görürsünüz.
Ad: _dmarc
Tür: TXT
Değer: v=DMARC1; p=none; rua=mailto:dmarc@siteniz.exampleRaporları birkaç hafta inceleyip meşru gönderenlerin hepsinin doğrulandığından emin olduktan sonra politikayı p=quarantine, sonra p=reject olarak sıkılaştırın.
6. Politikayı kademeli sıkılaştırın
Doğrudan reject uygulamak, unutulmuş bir gönderen kaynağının tüm iletilerinin reddedilmesine yol açabilir. Her aşamada raporları inceleyin ve değişiklikler arasında bekleyin.
Doğrulama
DNS’in yayıldığını kontrol edin.
dig +short TXT siteniz.example
dig +short TXT default._domainkey.siteniz.example
dig +short TXT _dmarc.siteniz.exampleBeklenen sonuç: sırasıyla v=spf1, v=DKIM1 ve v=DMARC1 ile başlayan kayıtların dönmesidir. Ardından bir Gmail veya benzeri harici posta kutusuna test iletisi gönderip ileti kaynağındaki başlıklarda SPF, DKIM ve DMARC sonuçlarının pass olduğunu doğrulayın.
Sık karşılaşılan sorunlar
- SPF permerror (birden fazla kayıt): Alan adında iki ayrı SPF TXT kaydı vardır; tek kayıtta birleştirin.
- DKIM fail: DNS kaydı eksik ya da yanlış kopyalanmış olabilir; seçici adını ve anahtarı kontrol edin, e-posta sunucusunun doğru anahtarla imzaladığını doğrulayın.
- DMARC raporları gelmiyor: rua adresinin geçerli bir posta kutusu olduğundan emin olun; raporların gelmesi birkaç gün sürebilir.
- Toplu e-posta servisi iletileri başarısız: Servisin SPF include değerini ve DKIM kayıtlarını eklediğinizden emin olun.
Güvenlik ve bakım notları
- Kayıtları DNS yönetiminizde belgeleyin; yeni bir e-posta servisi ekledikçe güncelleyin.
- DKIM anahtarlarını periyodik olarak yenileyin (anahtar rotasyonu) ve eski seçiciyi bir süre aktif bırakın.
- DMARC politikasını sıkılaştırmadan önce raporları analiz edin.
- Kullanılmayan alan adları için de SPF -all ve DMARC reject kaydı koyarak sahteciliği engelleyin.
- DNS hesabınızı iki adımlı doğrulamayla koruyun; DNS ele geçirilirse tüm e-posta güvenliği düşer.
- Ters DNS (PTR) kaydının gönderen IP ile uyumlu olduğundan emin olun.
Sık sorulan sorular
Üçünü de kurmam gerekiyor mu?
Evet, üç kayıt birbirini tamamlar. SPF ve DKIM kimliği doğrular, DMARC ise bu doğrulamalar başarısız olduğunda ne yapılacağını belirler ve raporlama sağlar.
DMARC politikasını hemen reject yapabilir miyim?
Önerilmez. Önce none ile izleyip raporları inceleyin, sonra quarantine ve en sonunda reject’e geçin; böylece meşru iletilerin kaybolması riskini azaltırsınız.
DNS değişikliği ne kadar sürede yayılır?
TTL değerine bağlı olarak dakikalardan birkaç saate kadar sürebilir. Değişikliği yaptıktan sonra dig ile birden fazla DNS sunucusundan sorgulayarak kontrol edin.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- MariaDB yavaş sorgu günlüğü ve temel optimizasyonMariaDB yavaş sorgu günlüğünü açın, yavaş sorguları dumpslow ile analiz edin, EXPLAIN ile indeks eksiklerini bulun ve temel optimizasyonla veritabanı yükünü güvenle azaltın.
- CDN veya ters vekil arkasında gerçek istemci IP adresini alma (Nginx ve Apache)CDN veya ters vekil arkasında Nginx ve Apache günlüklerinde, PHP ve güvenlik araçlarında gerçek istemci IP adresini görmek için realip ve remoteip modüllerini güvenli biçimde yapılandırın.
- OPcache, gzip/brotli ve önbellek başlıklarıyla web performansıOPcache ile PHP başlangıç maliyetini düşürün, gzip ve brotli sıkıştırmasını Nginx ile Apache üzerinde açın ve doğru Cache-Control başlıklarıyla web performansını ölçülebilir biçimde artırın.
- php.ini güvenlik ayarlarıphp.ini güvenlik ayarlarını uygulayın: expose_php, disable_functions, open_basedir, hata gösterimi, oturum çerezleri ve dosya yükleme limitlerini PHP-FPM üzerinde güvenle sıkılaştırın.