qmail Smtproute Auth Patch
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYyjJxKa' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
qmail serverlarda giden tüm maillerin başka bir smtp sunucusu üzerinden iletilmesini istemeniz durumunda, maillerin yönlendirileceği smtp serverda relay izninizin olması gerekir. Bu şekilde, qmail'inizin smtproutes dosyasına giden tüm mailleri ilgili smtp server'a yönlendirmek demek için “:ip-adresi” şeklinde bir ibare girebilir ve yönlendirme işlemini yapabilirsiniz.
Fakat sunucunuzun static ipsi yoksa ya da uzaktaki smtp sunucusu üzerinde herhangi bir tasarrufunuz bulunmuyorsa ip üzerinden relay izni tanımlatma şansınız olmayabilir. Böyle bir durumda, uzaktaki sunucuda tanımlı kullanıcı bilgileriniz ile kimlik doğrulaması yapmayı ve otomatik olarak relay izni almayı düşünebilirsiniz fakat qmail sunucular giden postalar için öntanımlı olarak smtp authentication desteği sağlamadığından, bu işlem için qmail'e bir yama geçmeniz gerekir.
Neyseki qmail-remote'a smtp auth desteği sağlamak için için qmail-smtproute-auth isimli güzel bir yama bulunuyor. Aşağıda yama ile ilgili detaylı bilgi ve qmail'e uygulanarak, yapılandırılması konusunda kurulum notları bulabilirsiniz.
İçerik İndexi
Qmail Smtproute Auth
Genellikle yukarıda bahsettiğim gibi bir ihtiyaç çok spesifik durumalarda ortaya çıkabilir. Örnek olarak kişisel ihtiyaçlarınız için dsl hattınızın ardında bir qmail sunucusu çalıştırıyor olabilir ve static bir ip adresine sahip olmayabilirsiniz. Bu durumda qmail sunucunuzdan göndereceğiniz mailler dinamik ip adreslerinden gelen mailleri kabul etmeyen hiç bir posta sunucusu tarafından teslim alınmayacaklardır.İşte böyle bir durumda, qmail'in gidecek maileri bir başka smtp server'ı (örneğin ISP'nize ait smtp server'ı) smart host olarak kullanarak o smtp üzerinden göndermesi çözüm olabilir. Ancak uzaktaki smtp sunucusu gönderileri kabul etmek için smtp auth yapılmasını istiyor olabilir ve qmail'in ön tanımlı smtp routing işlemi için kimlik doğrulama desteği vermemesi probleme neden olabilir.
Benzer bir sorunla karşılaştığım zaman problemin nasıl aşılabileceğine dair net fikirlerim yoktu, google'da biraz dolandıktan sonra http://petrocik.net/blog/?p=21 adresinde yayınlanan qmail-smtproute-auth isimli patch'e rastladım. Bu patch qmail-remote.c'ye eklemeler yaparak, smtproute işlemi için kullanıcı adı ve şifre desteği sağlıyor. Bu şekilde yönlendirmenin yapılacağı sunucuda bulunan hesabınıza ait kullanıcı bilgilerini belirtebiliyor ve routing sırasında smtp auth yapılmasını sağlayabiliyorsunuz.
patch`in Uygulanması
Ben yamayı netqmail-1.06 sürümüne sorunsuz olarak uyguladım. Denemedim ancak qmail 1.03 ve netqmail-1.0.5 ile de sorunsuz uygulanabilir olması gerekir. Benim sistemimde qmail kaynak kodları /usr/local/src/ altındaki netqmail-1.06 ismi dizinde bulunuyor. Bu bilgilere göre yamayı sisteme aşağıdaki şekilde geçebiliriz:
/usr/local/src dizinine geçip yamayı indiriyoruz:
# cd /usr/local/src/ # fetch http://petrocik.net/downloads/qmail-smtproute-auth.patch
Sonrasında qmail kaynak kodlarının bulunduğu /usr/local/src/netqmail-1.06 dizinine geçip yamayı uyguluyoruz.
Şimdi de qmail'i durdurduktan sonra yeniden kuruyoruz.
# qmailctl stop # make setup check
Herşey yolunda gittiyse, yapılandırma aşamasına geçebiliriz. (Henuz qmail'i start etmiyoruz.)
Yapılandırma
Yamanın düzgün çalışabilmesi için, /var/qmail/control/ dizini altında smtpauth ve smtppasswd isimli iki adet dosya oluşturmak ve karşıdaki smtp sunucusunda bulunan hesap bilgilerinin base64 encode edilmiş hallerini girmek icap ediyor. Bu iki dosya içleri boş da olsa oluşturulmadığı zaman qmail çalışmayacaktır. Bu nedenle kullanıcı bilgilerini girin ya da girmeyin, ilk etapta bu dosyaları oluşturalım:
# touch /var/qmail/control/smtpauth # touch /var/qmail/control/smtppasswd
Bundan sonra, kullanıcı adı ve password bilgilerini base64 olarak encode etmek ve bu iki dosyaya girdikten sonra yönlendirme işlemi için smtproutes dosyasına gerekli satırı eklemek yeterli. Örnek olarak tüm giden postaları, 10.10.10.12 ip adresli smtp sunucusunda bulunan hesaptan göndermek için aşağıdaki gibi bir tanımlama yapılabilir:
İlk olarak kullanıcı bilgilerini http://base64decode.org/ isimli adresten base64 decode yapın. Sonrasında kullanıcı adınızın base64 decode halini /var/qmail/control/smtpauth dosyasına, şifrenizin decode halini ise /var/qmail/control/smtppasswd dosyasına girin.
En son adım olarak da tüm maillerin 10.10.10.12 ip adresli sunucuya yönlendirilmesi için /var/qmail/control/smtproutes dosyasına aşağıdaki şekilde bir giriş yapıyoruz:
:10.10.10.12
Daha sonrada qmail'i başlatıyoruz.
# qmailctl start
Bu şekilde, giden tüm mailler 10.10.10.12 ip adresli sunucuya yönlendirilecek ve belirtilen kullanıcı adı ve şifre ile kimlik doğrulaması yapılacaktır.
Hepsi bu kadar.
Yama ile ilgili detaylı bilgi için http://petrocik.net/blog/?p=21 adresine göz atabilirsiniz.
Bu yazılar da ilginizi çekebilir:
- qmail – Oversize DNS Patch
- Netqmail
- Spamdyke – Spam filter for qmail
- qmail Kurulum Scripti – FreeBSD 9.x
- Rblsmtpd
Yorumlar
Trackbacks
Yorumda bulunun.
Merhaba Cagri bey,
Qmail ile spamgateway makalelinizi henüz daha okuyup uygulama şansım malesef olmadı. Ancak bu konuda bi iki sorum olucak.
1. Smtproute girdiğimiz domainlerimize otomatik olarak mailbox tek tek iletebiliyormuyuz ?
2. Orneğin Adsl arkasında olan Mail server bunlar için bir Atrn yada Etrn hizmeti almak yerine qmail spamgw olarak kullanıp aynı zamanda onun üzeriden mail atmak için neler yapmalıyız. ? Hem mailleri onunun üzerinden spamlardan ve virüslerden arınarak alırken hemde blacklist girmiş olan tt ip kurtulmak için üzerindne nasıl mail atabiliriz. Yani Relay nereden açabiliriz. ?
[Cevapla]
Merhaba,
İlk sorunuzu anlayamadım ancak ikinci sorunuzunda bahsettiğiniz şekilde bir spam gateway kurmak içimn yapmanız gerekenleri, http://www.syslogs.org/qmail-ile-anti-spam-ve-antivirus-gateway-kurulumu/ adresindeki yazıda detaylı olarak anlatmıştım.
O yazıyı incelerseniz tüm merak ettiğiniz noktalar aydınlanacaktır.
Selamlar,
[Cevapla]
Merhaba Çağrı hocam ,
Bu patch’i denemek istiyorum fakat patch’in olduğu site kapalı. Eğer patch elinizde mevcut ise bir yerlere upload edebilir misiniz ?
iyi çalışmalar dilerim.
[Cevapla]
Selamlar,
Malesef o patch bende de yok. (Baktım ama bulamadım.) Ayrıca, patch’in yazarı arkadaş ile konuştum; bir donanım sorunundan dolayı sunucusunda problem varmış ve yaknın zamanda düzeleceğini söylüyor. Ara sıra linki kontrol etseniz iyi olur.
[Cevapla]
Merhaba Cagri bey
qmail’de from adres ile authuser adresinde kontrolü ile ilgili bir patch gördüm fakat qmail-jms1’e patchlemek istiyorum ama verilen link aktif değil. Nasıl ulaşabilirim?
Teşekkürler
qmail-from-address-and-smtp-auth-username-check-patch
[Cevapla]