in Sistem

Doğru SMTP Sunucu Yapılandırması

Uzun zamandan beri Web Hosting dikeyinde çalışıyorum. Kavramsal olarak bakıldığında basit bir iş. Web sayfalarını yayınlamak için bir Web Server,  SQL server ve Mail Server yeterli oluyor.
Web ve SQL sunucularını bir kenara bırakırsak Web Hosting hizmetinin %80’i SMTP üzerinden döner. Bu servisi sağlıklı çalıştırdığınızda telefonlarınız çalmaz, müşteriler memnundur ve nihayetinde iyi firma olursunuz.

Bu önemine rağmen sürekli yanlış yapılandırılmış SMTP sunucuları ile karşı karşıya kalınca bir checklist niteliğindeki bu yazıyı hazırlamay karar verdim.

Aşağıda SMTP sunucusunun basit bir kaç ayar ile nasıl düzgün çalıştırabileceğini anlatmaya çalıştım.

Ters DNS (Reverse DNS)

SMTP servisleri çok fantaziye kaçmadıkça tek IP adresi üzerinden çalışır.
Bu IP adresinin (Outgoing veya Outbound denir)  kesinlikle bir rDNS (Reverse DNS) kaydı olmak zorundadır.

rDNS’i kontrol etmenin en kolay yolu aşağıdaki gibi.

ping -a 8.8.8.8

Çıktısı şu şekilde:

Pinging google-public-dns-a.google.com [8.8.8.8] with 32 bytes of data

Burada google-public-dns-a.google.com Host’unu buluyorsa IP adresinin rDNS’i vardır.

Çoğu SMTP sunucusu rDNS’i olmayan IP’den gelen mailleri kabul etmez bu nedenle ayarı doğru şekilde yapmanız, kuralına göre çalışan SMTP sunucularına mail göndermeniz için önemlidir. Ek olarak yine domain’in PTR (Pointer) kaydını eklemeniz gerekir.

PTR kaydını yapılandırırken özellikle MX adresi olarak belirlediğiniz HOST ismini kullanmanız şarttır.

Örneğin: SMTP sunucunuzun HOST adresi mx.maestropanel.com ise. IP için belirleyeceğiniz rDNS kaydıda mx.maestropanel.com olarak belirlenmelidir.

PTR kaydınızı sorgulamak çin:

nslookup -q=PTR 104.28.29.51

Çıktısı:

51.29.28.104.in-addr.arpa    name = mx.maestropanel.com

Yorumlarsak;

104.28.29.51 IP adresinin rDNS’i mx.maestropanel.com olarak belirlendiği görülüyor.

Not: Burada dönen rDNS ismi aynı zamanda HELO name’de veya SMTP’nin Banner’ında da aynı olması gerekir. SMTP sunucuları bunları eşleştirerek doğrulama gerçekleştirir.

SPF

Doğru SPF (Sender Policy Framework) Yapılandırması

Yukarıdaki yazıya bir göz atıp. Buradan devam edebilirsiniz.

SPF’de çoğu SMTP sunucusunda aktif olan bir kontrol mekanizmasıdır. Spoofing’i önlemek için kesinlikle kullanılması ve harfiyen uyulması gerekir. Ne kadar katı kurallar girerseniz o kadar iyidir.

SMTP Banner

Client, SMTP sunucuya 25 veya 587’den bir bağlantı istediğinde, sunucu aşağıdakine benzer bir BANNER gönderir.

220 mx.maestropanel.com Simple Mail Transfer Service Ready

Bu karşı taraf için imza niteliğinde bir kayıt olarak tutulur,  emal’in HEADER bilgisinede yansır. Aynı zamanda SMTP Reputation servisleri için ayrı bir doğrulama kalemi olarak dikkate alınır. Yani bu basit ayar çok önemli.

SMTP sunucuların HELO name’i (yani FQDN) genelde bu BANNER’ın içinde olduğundan ilk aşamada çeşitli kontroller gerçekleştirilebilir (rDNS ile HELO name birbirini tutuyor mu? diye). Bu nedenle geçerli, teamüllere uygun bir SMTP Banner’ınızın olması şart.

HELO/EHLO İsimleri

SMTP doğrularken HELO/EHLO isimlerinin FQDN standartlarında olması hemen hemen zorunludur. HELO/EHLO’dan dönen İsimlerin kesinlikle IP çözüyor olması gerekir. Bu aşamada 25, 587 başta olmak üzere bütün servislerde geçerli bir HELO/EHLO ismi girilmesi çok önemlidir.

SMTP sunucuları, HELO isminden dönen HOST’un rDNS’inide kontrol ettiğini bir kez daha hatırlatırım.

Çıkış IP’sini (Outbound) Değiştirmek

Kısa vadede sanırım en iyi çözüm. Orta ve uzun vadede ise IP Reputation’ınıza yapacağınız en büyük kötülüktür.

Google, Hotmail gibi büyük email servisleri SMTP sunucunuzu doğrularken çıkış IP’nizin yanı sıra traceroute‘a, SMTP Banner’ınıza, HELO name’e vb. bir çok kritere bakar. Siz IP değiştirseniz bile SMTP sunucuları sizin IP değiştirdiğinizi anlarlar ve ona göre yeni kural seti uygularlar.

Bunun yerine neden Black List’e girdiğinizi, Neden spam yapanı engelleyemediğinizi veya IP Reputation’ınızın neden düşük olduğuna odaklanıp çözüm üretmeniz daha doğru olacaktır. Çözüm üretirken arka planda çalacağın fon müziğini de veriyorum.

IP İtibarı (IP Reputation)

SMTP’nin Outbound IP’sinin şöhreti direkt gönderdiğiniz email’in inbox’a düşüp, düşmemesi ile doğru orantılı olarak çalışır. Dolayısıyla itibarınızı çok iyi korumanız gerekir.

SMTP sunucunuzun çalıştığı IP bloğundan herhangi bir Malware, Spam veya Phising yapılmaması Reputation için önemli bir kriterdir.

Aynı zamanda SMTP sunucunuzdan çıkan email sayısının da stabil olması önemli.
Bir gün 100 mail, ertesi gün 200.000 mail gönderdiğinizde Global Reputation Servisleri algılayıp şüpheli olarak işaretleyebiliyor. (Global Reputation servislerinin bu bilgilere nasıl ulaştığı başka bir yazının konusu.)

Aşağıdaki servislerden IP itibarınızı sorgulayabilirsiniz.

  1. senderscore.org
  2. senderbase.org
  3. reputationauthority.org
  4. barracudacentral.org
  5. trustedsource.org

SSL/TLS

Bir çok SMTP sunucusu SSL veya TLS üzerinden çalışabiliyor artık. Öncelikle SSL’i artık unutun SSLv3 ve öncesini sunucudan kaldırın. TLS 1.2’den öncesinide.

TLS’nin mümkünse son sürümünü kullanın ve güvenlik açıklarını takip edin. Özellikle OpenSSL’in. OpenSSL son zamanlarda sürekli bulunan Zero Day’lerle meşhur malumunuz.

Kullanacağınız güvenlik sertifikasının “Common Name” ‘ini yine HELO name’e göre belirlemelisiniz ki SSL doğrulama hatası almayın. Önemli!

Bir çok SMTP sunucusu SSL/TLS kullanmasada siz bu desteği verin. Düzgün yapılandırılan SMTP sunucuları eğer siz TLS destekliyorsanız o protokol üzerinden güvenli bir şekilde haberleşir.

TLS’yi aktifleştirdiğinizde SMTP’nin Encrypted portu olan 465’i de aktif etmeyi unutmayın.

DomainKeys Identified Mail (DKIM)

Özelikle paylaşımlı ortamlarda gerekli olan bir özellik.
Paylaşımlı ortam derken aynı SMTP sunucusunu paylaşan vhost’ları kast ediyorum. Vhost’lar aynı MX’i, aynı IP adresini kullanırlar. Bu durum IP ve Domain Reputation’ını etkiler fakat o kadar da değil.

DKIM, gelen mail’in gerçekten gönderen Domain’e ait olduğunu kesin olarak doğrular. Bunu yaparken mail’i şifrelenmiş anahtarlarla imzalar ve HEADER bilgisine ekler. Mail’i alan SMTP sunucusu da DNS’deki Public Key ile, Email’ın HEADER bölümündeki imzayı alıp çözer. Böylece hem değişmediğini hem de doğru kişiden geldiğini anlamış olur.

SPF’in yanına ek olarak koyabileceğiniz bir kalem.

DKIM’i daha sıkılaştırmak isterseniz veya daha iyi yönetmek isterseniz DMARC‘i incelemenizi tavsiye ederim. dmarc.org

SMTP Gateway

Bir kere SMTP Gateway kullandığınızda gerçekten rahatlığını anlıyorsunuz. Birden fazla SMTP sunucusunu istediğiniz gibi yönlendirip merkezi konfigürasyonlarla koşturmanız işleri gerçekten kolaylaştırıyor.

Hata ayıklamada, Log yönetiminde eliniz oldukça hızlanıyor. En önemlisi “mailim gitmedi!” diyen kullanıcılara en net yanıtı saniyeler içinde verebilmenizi sağlayarak şu “hide cost” denen hadiseyi azaltmanızı sağlar (Bak nerden, nereye vurdum).

Sadece SMTP çalıştıran ayrı bir sunucudan bahsediyorum aslında.
Mevcut SMTP sunucularınızın “Smart Host” ayarını bu SMTP Gateway’e yönlendirip atılan her mail’in bu sunucudan geçmesini sağlıyorsunuz. Gateway’den geçen mail gönderim limiti, antispam, antivirus gibi kuralları işletebiliyorsunuz.

Gelen mailleri kontrol edemezsiniz fakat giden mailleri kontrol edebilirsiniz. Outbound dediğimiz sizden çıkan mailler direkt IP itibarınızı etkiler. Çeşmenin ağzını tutucan burada.

SMTP Gateway’ler genelde çok pahalı ve hepsi enterprise seviyede faliyet göstermeyi seviyor. Tabi bir kaç free alternatif var. Aşağıda onlardan bildğim üçünü veriyorum.

ScrolloutF1 SMTP Gateway

GNU lisansı ile dağıtılan bu Gateway uzun zamandan beri piyasada. Outbound ve Inbound çalışabiliyor. Debian tabanlı dağıtımda Postfix kullanıyor. Kurması kolay, çalışması stabil. Türkiye’de bazı ISP’lerin production ortamında kullandığını gördüm.

Anti-Spam SMTP Proxy Server

Transparan SMTP yapan tek araç sanırım. Perl ile yazılmış. Çok kendine özgü bir Gateway. Arayüzüne hiç bulaşmazsanız güzel çalışıyor fakat çok fazla RAM kullanıyor. Bir türlü sevemedim ama Open Source alternatifler arasında.

MailCleaner

Community Edition’ı ücretsiz. Biraz kısıtlı özellikleri olsada iş görür. Orta ölçekli bir firmasınız, basit çözüm arıyorsanız kullanın. Antispam ve Antivirus tarafı iyi gerçekten.

Profesyonel olarak bizim memleketten de ürünler var. Bu ürünlerden de bahsetmemek olmaz. Hem Ahmet abi bana kızar.

PortShields

Bir çok ISP ve Web Hosting firması kullanıyor. Bizde MaestroPanel olarak entegrasyonlarımız arasına aldık. Gerçekten başarılı bir ürün. Çok az kaynakla, çok fazla iş yapabilen optimum çalışan bir sistem sunuyor.
Detaylı inceleme fırsatım oldu ve kullanıyorum da. Son kullanıcı için fiyatı fazla pahalı fakat Enterprise seviyede kaliteli bir gateway arıyorsanız bu yerli yazılımı tercih edin.

KoruMail

Comodo’nun bir ürünü. Daha önce yine ISP’lerde başka bir isimle görüyordum daha sonra Comodo satın aldı ve ismi Korumail oldu. API’si ile haşır neşir olmuşluğum var ama hiç yönetmedim. Fakat buda memleketten alternatif olarak bahsedilmesi gereken bir ürün.

Bunların dışında çok işe yarayan iki ürün daha paylaşmak istiyorum;

Mail-in-a-Box

Hani Lamp ortamları vardır. PHP, MYSQL, Apache ile direkt uygulama geliştirme ortamına kavuşursunuz. Buda aynı kafa. Mail-in-a-Box ile tüm özellikleri ile çalışan bir mail sunucusuna sahip oluyorsunuz. Çok kullanışlı, pratik.

Mailtrain

Çok fantastik bir ürün. Self-Hosted olarak toplu mail göndermenizi sağlıyor. Aynı zamanda tasarımda yapabiliyorsunuz.  Konu ile alakası yok ama aklıma gelmişken es geçmeyim dedim.

Bonus: ISP’ler İçin Önerim

Büyük bir Network yönetiyorsanız tek bir yerden SMTP çıkışı yapmanız gerçekten önemli.

Tüm Network’de 25 çıkış portunu kapatıp, içeriden dışarıya mail gönderen tüm SMTP sunucuları tek bir Relay Gateway’e yönlendirip email trafiğini kontrol altına alabilirsiniz. Bu abartı gelebilir ama bu devirde yapılacak mantıklı hareketlerden biri de budur.

Leave a Reply for İsmail Cancel Reply

Yorum Bırak

Comment

  1. Yazi için çok teşekkür ederim. Son zamanlarda saçı başı yoldugum ama işin içinden cikamadigim bir çok konuya deginmişsin. Şimdi benim çözemedigim bir sorunum var. firewall arkasinda duran bir centos sunucu üzerinde postfix ve saz arkadaşlari kurulu. Makina local’de . Real ip yok. Bütün real ip’leri firewall yönetmekte ve bende NAT ile portlari yönlendiriyorum. Bu durumda smtp sunucuma “nslookup -q=PTR 104.28.29.51” şeklinde bir sorgu atamiyorum . Local ip’leri var. Firewall dişina çıkarmak istemiyorum makineyi.Yani denize girmek istiyorum ama islanmak istemiyorum tarzi belkide istedigim :) Nasil bir yöntem izlenmes dogru olur acaba. Şimdiden çok teşeküürler.

    • Deniz girme metaforu güzelmiş :)

      Burada şuna dikkat etmen lazım. SMTP’nin HELO name’inde belirtilen domain’in yine Public IP’yi döndürmesi önemli. Aynı şekilde yine PTR kaydındaki ismin HELO name’indeki domain’i döndürmesi önemli.

      Diğer yandan DNS’deki SPF kaydının’da public IP tanımlı ise sorun değil.

      İkinci bir yöntemde. External bir tane SMTP Gateway kullanman. Bu sunucuyu denizin içinde tutarsın. Kıyıdaki SMTP sunucuya da smarthost olarak denizdeki sunucyu gösterirsin.

  2. SMTP Gateway olarak kullanmak için ücretsiz çözüm olarak MailCleaner veyahutta ScrolloutF1 SMTP Gateway kullanmak arasında kaldım. Spam çıkışını engellemek adına hangisini önerirsiniz?

  3. Merhaba,
    Benim sunucumun hostname değeri fiyakam.com
    SMTP mail sunucum mail.fiyakam.com
    PTR ayarında da sunucu adı fiyakam.com
    PHP mailer kullanıyorum ancak SMTP mail gönderemiyorum.
    Nedeni ne olabilir ?