Postfix Sendmail Karşılaştırması

Eyl 06, 2013

E-posta, İnternet'in gelişiminden itibaren kullanılan en temel mesajlaşma yöntemlerinden biridir. Bu da birçok mesajlaşma aracının ve protokolünün gelişmesini sağlamıştır. Birbirinden farklı alt yapıları kullanan sistemlerin uyumlu çalışması için protokoller geliştirilirken, kullanıcı e-postalarının kaybolmaması ve kullanıcının çevrimiçi olduğunda e-postalarına ulaşabilmesi için e-posta sunucuları oluşturulmuştur.

Yerel intranetlerde ve İnternet üzerinde e-posta iletimini sağlayan araçlara e-posta aktarım aracı (Mail Transfer Agent / MTA) denir. E-posta iletimi sırasında kullanılan protokolden dolayı SMTP "Simple Mail Transfer Protocol" (Basit Mektup Gönderme Protokolü) sunucular olarak da bilinirler. Basitçe, herhangi bir yere e-posta gönderebilmek ya da alabilmek için  bir e-posta istemcisi (MS Outlook Express, Mozilla Thunderbird, Evolution, Pine, Mutt vb.) ve kişisel hesabın tanımlı olduğu bir e-posta sunucusu gerekir. En yaygın aktarım araçları olarak Win32 platformu üzerinde MS Exchange Server, Unix/Linux üzerinde "sendmail", "postfix", "qmail", "exim" sayılabilir. Bunlardan hangisinin tercih edileceği, ihtiyaçlara göre şekillenen bir seçim olacaktır.

Sendmail

Linux sunucularda kullanılan en yaygın ve en eski araç "sendmail"'dir. Eric Allman tarafından 80'li yılların başında geliştirilmiştir. İlk defa BSD 4.1c üzerinde öntanımlı olarak gelmiştir. Bu nedenle de bir çeşit BSD lisansı olan Sendmail lisansı ile lisanslıdır. Yapılandırmasının karmaşıklığına ve güvenlik açıklarına rağmen, bu kadar yaygın kullanımının nedeni birçok Unix sistemde kurulu olarak gelmesidir. Ayrıca "sendmail"'in kendine özgü yapılandırma dili buna alışmış olan sistem yöneticileri için de onu vazgeçilmez hale getirebilmektedir.

Sendmail'in yapılandırma dosyaları  /etc veya /etc/mail/ dizinleri altında yer alır. Yapılandırmasını kolaylaştırmak için "sendmail"'e özgü IDA adlı makro dili geliştirilmiştir. Bu dil kullanılarak oluşturulan sendmail.mc dosyası m4 yorumlayıcısından geçirilerek sendmail.cf otomatik olarak oluşturulur.

# m4 sendmail.mc > /etc/mail/sendmail.cf

Sendmail.cf dosyası içinde işletim sisteminin adı, kullanılacak protokoler, etki alanı gibi birçok nitelik tanımlanabilmektedir.

 

 

Sendmail.mc dosyası m4 derleyicisi ile derlendikten sonra sendmail.cf dosyası şeklinde düzenlenir.

Öntanımlı olarak, isim çözümleme için /etc/hosts dosyası değil DNS sistemi kullanılır. Bununla ilgili yapılandırma ise /etc/mail/service.switch üzerinden yapılabilir. Sendmail SMTP, ESMTP, DECnet  mail11, HylaFax, QuickPage ve UUCP gibi çok sayıda protokolü destekleyerek esnek bir yapı sağlar.

Sendmail'in 8.12.0 sürümüyle gelen C tabanlı Milter (Mail Filter) e-posta filtreleme araçlarının adaptasyonunu basitleştirerek spam trafiğini engelleme konusunda oldukça kolaylık sağlamaktadır.

Sendmail'in gömülü geldiği bazı dağıtımlar şunlardır: RedHat, Fedora Core, Slackware, Open BSD, FreeBSD, Net BSD, Solaris gibi.

Postfix

Postfix;  Tcpwrapper, SATAN gibi bilinen programların geliştiricilerinden biri olan Wietse Venama tarafından  "sendmail"'e alternatif olarak 1999’un ortalarında IBM Thomas J. Watson Araştırma Merkezinde geliştirilmiş ve özgür yazılım lisanslarından biri olan IBM Kamu Lisansı 1.0 ile lisanslanmıştır. Sendmail yerine kullanılacak yeni bir araç geliştirme ihtiyacı, yapılandırma kolaylığı, kararlılık, güvenlik, esneklik gibi bir çok nedene dayanmaktadır. Ancak her ikisinin de değişen koşullar altında avantaj ve dezavantajları bulunmaktadır.

Postfix'in yapılandırma dosyaları varsayılan olarak /etc/postfix/ altında bulunur. Hemen hemen bütün değişiklikler /etc/postfix/main.cf ya da /etc/postfix/master.cf üzerinden gerçekleştirilir.

 

 

main.cf  dosyası üzerinde mydomain (makinanın alan adı),  myhostname (SMTP sunucunun tam adı), virtual_alias_maps (kullanıcı ile e-posta adres eşlemelerinin yapıldığı dosya adı) gibi birçok temel bilgi girildikten sonra tercihsel ayarlar yapılarak sunucu çalışır hale getirilir. Ayrıca başlık bilgilerine göre engelleme gerçekleştirmek için header_checks alanına istenen değer girilir. Bunun gibi birçok filtreleme fitler.cf dosyası içinde gerçekleştirilebilir.

 

Yapılandırma dosyasında yapılan değişikliklerden sonra değişikliklerin uygulanması için

#postfix reload 

komutu girilir.

Birçok spam filtreleme aracıyla uyumluluğu "postfix"'in güvenlik açısından başka bir avantajıdır.

Postfix'in gömülü geldiği sistemlerin sayısı pek fazla değildir, bunlardan bazıları SuSe, Mandriva, Ubuntu'dur. Ancak alternatif e-posta sunucu olarak birçok dağıtım tarafından (Redhat 7.0, Fedora, Gentoo) desteklenmektedir.

Postfix ile Sendmail arasındaki farklar

  • Sendmail'in monolitik mimarisi fonksiyonelliğini tek bir çalıştırılabilir parça üzerinden gerçekleştirirken, "postfix" modüler yapısıyla işlem kümesi şeklinde çalışan program parçacıkları (bounce, cleanup, local, master gibi) sayesinde kararlı bir yapı gösterir.
  • Sendmail yapılandırması sendmail.cf dosyası üzerinden "sendmail"'e özel ifadeler ve sözdizimleri kullanılarak gerçekleştirildiğinden oldukça karmaşık bir yapılandırmaya sahiptir. Bu nedenle IDA adlı bir makro dili geliştirilmiştir.
  • Postfix'in kurulumu ve birçok araçla uyumluluğu (SQL, MySQL, Cyrus, LDAP, SASL, TSL, SSL) sayesinde yapılandırması birçok MTA 'ya göre oldukça basittir. Sendmail uyumluluğu da "sendmail"'den "postfix"'e geçiş sürecini kolaylaştırmıştır.
  • Çok fazla kullanıcı barındırmayan sistemlerde çok belirgin bir performans farkı olmamasına rağmen; yoğun e-posta trafiğinin bulunduğu altyapılarda "sendmail"'in kararlı çalışmadığı (e-postaların kuyrukta birikmesi gibi) görülmüştür.
  • Sendmail'in Win32 platformu üzerindeki performansı Unix üzerinde gösterdiği performansa oldukça yakın bir davranış sergilerken; "postfix", Windows portu olmasına rağmen performans düşüklüğü nedeniyle tercih edilmez.
  • Güvenlik konusunda 2000 yılından bu yana  büyük gelişme kaydetmesine rağmen, "sendmail" "postfix"'e göre çok ciddi zayıflıkları bulunan bir e-posta sunucusudur. Bu aynı zamanda "postfix"'in güvenlik konusundaki başarısından kaynaklanmaktadır.