Ana Sayfa » Qmail » Hotmail ve Bare LF

Hotmail ve Bare LF


BerbatKötüİdare EderGüzelHarika (Henüz Puan Verilmedi. Oy kullanarak siz de katkı yapabilirsiniz.)
Loading ... Loading ...

Geçen ayın 24′ünde, enteresan bir şekilde hotmail’den gönderilen maillerin, sunucularımız tarafından kabul edilmediğini farkettim.  Hotmail sunucularından kurulan bağlantılar daha olayın başındayken reject edildiği için loglarda da açıklayıcı bir bilgi edinmek mümkün olmadı.  (Çünkü herhangi bir transaction oluşmadığı için lolglarına da herhangi bir şey yazılmıyordu.)

Daha sonra problemin neden olabileceği konusunda EnderUnix’in listesine bir posta gönderip durumu anlattım ve sağolsun İsmali Yenigül konunun http://cr.yp.to/docs/smtplf.html adresinde de anlatıldığı şekilde Bare LF ile alakalı olabileceğini söyledi.

Gerçi hotmail gibi büyük bir posta servisinin ilgili RFC’nin dışına çıkıp CRLF yerine Bare LF göndereceğine ihtimal vermemiştim ancak ngrep ile smtp trafiğini sniff edince gerçekten de hotmail, windowslive vs. gibi MS posta servislerinin Bare LF gönderdiğini ve ’in de doğal olarak bu iletileri reject ettiğini gördüm. ngrep çıktısında görüldüğü üzere hotmail’e ait ip’lere şu ibare döndürülüyordu:

Çıktı
T xxx.xxx.xxx.xxx -> 65.54.246.233:24993 [AP]
451 See http://pobox.com/~djb/docs/smtplf.html...

Sonuç olarak, hotmail’den gönderilen mailler qmail sunucular tarafından 451 (temporary) hata kodu ile reject ediliyor. Hata kodu geçici bir durumu işaret ettiği için de ilk etapta maili gönderen kişiye direk bir bir hata bildiriminde bulunulmuyor.  Bunun yerine belirli periyodlarda mail yeniden gönderilmeye çalışılıyor ve bir müddet daha başarısız olunması durumunda maili gönderene iletinin gecikmeye uğradığını belirtir aşağıdaki gibi bir bildirim mesajı gönderiliyor.

Çıktı
This is an automatically generated Delivery Status Notification.

THIS IS A WARNING MESSAGE ONLY.
YOU DO NOT NEED TO RESEND YOUR MESSAGE.
Delivery to the following recipients has been delayed.

{falanca@falanfilan.com}

----------------------------------------------------------------------------------

Reporting-MTA: dns;col0-omc3-s14.col0.hotmail.com
Received-From-MTA: dns;COL110-W37
Arrival-Date: Wed, 23 Sep 2009 11:18:40 -0700

Final-Recipient: rfc822;{removed email address}
Action: delayed
Status: 4.4.7
Will-Retry-Until: Fri, 25 Sep 2009 11:18:39 -0700

Tabii bu bildirim mesajının gönderilmesi de bir kaç saati bulacağı için problemi anında yakalamak pek mümkün olmuyor. (Loglarda bir şey yok, kullanıcılardan geri bildirim yok vs.) ki ben de durumu hafif raslantısal olarak farkettim. Neyseki, problemin nedenini bulmak nispeten daha kolay oldu ve  sonuç olarak hotmail, windowslive vs. gibi MS servislerinin hiç ihtimal verilmeyecek şekilde bare lf gönderdikleri anlaşıldı.

Problemi hızlıca çözmek için LF’lerin başına CR koyup satırların CRLF ile bitmelerini sağlayan fixcrio’yu kullandım. Fixcrio, ucspi-tcp ile birlikte gelen ve açıklamalarını http://cr.yp.to/ucspi-tcp/fixcrio.html adresinde bulabileceğiniz küçük bir program. Devreye almak için qmail-smtpd’nin run dosyasında  smtpd komutundan önce kendisinin full path’ini belirtmeniz yeterli.

Örnek olarak bir qmail-smtpd run dosyasının içeriği şu şekilde:

Bash Çıktısı
#!/bin/sh

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
    echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
    echo /var/qmail/supervise/qmail-smtpd/run
    exit 1
fi

if [ ! -f /var/qmail/control/rcpthosts ]; then
    echo "No /var/qmail/control/rcpthosts!"
    echo "Refusing to start SMTP listener because it'll create an open relay"
    exit 1
fi

exec /usr/local/bin/softlimit -m 4000000 \
    /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
        -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /usr/local/bin/fixcrio /var/qmail/bin/qmail-smtpd 2>&1

Yukarıdaki çıktının son satırında görüldüğü şekilde, fixcrio’yu devreye alınca sorun giderilmiş oluyor. Ancak, eğer sunucunuzda TLS desteği bulunuyorsa fixcrio TLS bağlantılarınızı sonlandıracaktır bu nedenle TLS destekleyen qmail sunucularda fixcrio kullanılmamalıdır.

Böyle bir durumunuz varsa, fixcrio yerine http://www.arctic.org/~dean/patches/qmail-0.95-liberal-lf.patch adresinde yayınlanan ’i kullanabilirsiniz. Ben, qmail sunucularım gateway olarak çalıştığından ve TLS kullanmadığımdan dolayı fixcrio ile problemi çözdüm ve geçmeme gerek kalmadı. Ancak bu ’i denememiş olsam da okuduğum kadarı ile başka herhangi bir soruna neden olmaksızın bare lf sorununu çözmekteymiş.

Aslında, bu sorun tam olarak hotmail’den kaynaklanan ve kendilerinin çözmesi gereken bir sorundur. Fakat olay sonrası destek birimlerine açtığım ticket’a şu ana kadar olumlu herhangi bir cevap verilmedi.

Etiketler: ,

Kategoriler: Qmail |

BU YAZILAR DA İLGİNİZİ ÇEKEBİLİR


- Rblsmtpd
- qmail smtpd – Disable Reverse DNS Lookups
- Spamdyke ile Qmail’de 587 Submission Yapılandırması
- Spamdyke – Spam filter for qmail
- qmail Validrcptto patch’i ile Backscatter Önlemi

YORUMLAR


  1. Tolga Kaprol | (Ekim 11th, 2009 4:59 pm)

    Biz de benzer bir problemi yaşadık ve Microsoft’un desteğine sorunu anlattık. Ancak yanıt alamadık.

    Microsoft’un standart dışına çıkması ilk kez yaşanan bir sorun değil. Ben bu olayın kasıtlı olarak düzenlenmiş bir durum olduğunu sanıyorum.

    Öyle bir olay ki ortada log yok, log olmayınca sorun yok. Ve dolayısıyla çözüm de yok.

    Microsoft’u bu kurnazlığından dolayı alkışlarken, yaşattıkları için alkışladığımın misli fazlası kadar da kınıyorum.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Aslina bakarsaniz ben bunun bir kasit sonucu olusan bir durum oldugunu dusunmuyorum.

    Cunku bir cok site, bu nedenden oturu kullanicilarina hotmail servisini kullanmamalari yonunde telkinde bulunuyor.

    Bu MS’in prestijine zarar verecek bir durum. Heralde bilerek boyle bir seye neden olmak istemezler.

    [Cevapla]

    Tolga Kaprol tarafından yanıtlandı.

    Son kullanıcı maalesef Bizler gibi konuya hakim olmadığından suçu kolaylıkla size atabiliyorlar.

    Microsoft daha önce de Internet Explorer ile W3C’nin standartlarına uymadı.

    Keza PHP’yi uzun süre üvey evlat olarak gördü. Daha birkaç senedir PHP’yi kabullenmeye başladı.

    Ayrıca Windows Live Help de konuyla ilgili hiçbirşey söylemiyor. Ne teknik elemanı haberdar ne de first level supportu.

    Bizim perspektifimizden bakınca MS’in prestiji zaten ortada. Ama son kullanıcı dolaylı yoldan manipüle ediyormuş izlenimi doğdu.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Melesef ben de Windows Live Help’den herhangi bir cevap alamadim. En son bir arkadas internetin yogunlugu ile alakali olarak maillerde gecikme olabilecegine dair bir seyler diyordu.

    O aciklamadan sonra takip etmeyi biraktim :)

    Ama gene de son kullaniciyi bu sekilde sadece kacmalari yonunde manupule etmis olurlar. Cunku hotmail kullanan son kullanicilar zamanla bazi yerlere mail atamadiklarini farkedecekler.

    Hakikaten cok enteresan bir durum.
    Inanilir gibi degil.

    [Cevapla]

    Tolga Kaprol tarafından yanıtlandı.

    Merhaba hotmail problemi düzelmiş sanıyorum, fixcrioyu kaldırıp denedim hotmail’den e-posta gelebiliyor.

    bu arada Fixcrio’da bazı sorunlar olabilir. Fixcrio’dan sonra daha önce problemsiz çalışan bazı sunuculardan gelen e-postalar geri dönmeye başlamıştı.

    Orjinal konfigurasyon ile çalışılabiliyor artık.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Gecenlerde ben de durumun duzeldigini farketmistim ama soylediginiz gibi fixcrio ben de herhangi bir soruna neden olmadi. Su ana kadar fixcrio devredeydi ancak hatirlatmanizla kaldirdim.

    Enteresandir, actigim ticket’a duzelme ile ilgili bilgilendirme de yapmadilar :)

    Bilgilendirme icin tesekkurler.

    [Cevapla]

  2. Özkan ŞENOVA | (Ekim 13th, 2009 11:26 pm)
  3. Val | (Ekim 21st, 2009 5:38 pm)

    Merhaba,

    Şu anda fixcrio kullanmadan mail geliyor mu? Ben denedim gelmedi de.

    [Cevapla]

    Cagri Ersen tarafından yanıtlandı.

    Selamlar,

    Ben su anda fixcrio kullanmiyorum ve herhangi bir soruna rastlamadim.

    [Cevapla]

Trackbacks

Yorumda bulunun.