| Debian GNU/Linux 3.1 (Sarge) Üzerinde Qmail (Smtp-Auth destekli) + Vpopmail (Mysql destekli) + Courier-Imap + Squirrelmail (Türkçe) Spamassassin + Razor + Pyzor + Dcc + Maildrop + Clam Antivirüs + Qmailscanner
Belgede yazılanların uygulanıp uygulanmaması tamamen uygulayan kişinin sorumluluğundadır. Belgede bahsedilenlerin uygulanması sonucu ortaya çıkabilecek hertürlü zarardan yazar sorumlu tutulamaz. Belge GNU Özgür Belgeleme Lisansının http://www.gnu.org/copyleft/fdl.html adresinde yer alan -son sürümdeki- lisans içeriğine bağlı kalmak koşulu ile aynen yada kısmen dağıtılabilir, yayınlanabilir. Bu belgenin son sürümüne; http://www.serdaraytekin.com/docs/os/debian/sarge-qmail-vpopmail-spamassassin-antivir-squirrelmail.html adresinden ulaşabilirsiniz. NASIL BİR SİSTEM AMAÇLANIYOR : Bu yazı ile Debian Gnu/Linux 3.1 (Sarge) üzerinde öncelikle Qmail'in sağlamlığı ve Vpopmail yazılımının gücünü birleştirilip, ortaya binlerce/milyonlarca kullanıcıya e-posta hizmeti sunabilecek yapının oluşturulması öngörülmüştür. Web üzerinden e-postalara erişim için Squirrelmail yazılımı kullanılmış, ayrıca pop3 ve imap desteği ilede Thunderbird, Evolution, Kmail, Outlook Express gibi yazılımlarla da sistemin entegre çalışabilmesi sağlanmaya çalışılmıştır. Bu yapı Antivirus ve Spam sistemleri ilede desteklenerek daha da modern bir e-posta sisteminin oluşturulması amaçlanmıştır. Belgede anlatılan yazılımlar kurulduğunda, Smtp-Auth desteği, Pop3 ve Imap desteği, Web-Mail desteği, Antivirus ve Spam desteğine sahip virtual (sanal) e-posta sistemi oluşturulmuş olacaktır. Sistemde kullanacağınız donanımada bağlı olarak yüzlerce/binlerce domaine ve binlerce/milyonlarca kullanıcıya e-posta hizmeti sunabileceksiniz. Ayrıca bu Sistemi http://www.inter7.com/?page=vpopmail adresinde yer alan qmailadmin, vqadmin, vqregister, vqsignup yazılımları ile destekleyerek, hotmail, yahoo, gmail benzeri sistemler (üyelik kaydı olan, yönetici paneli olan, tüm sistemin kontrolunun, kullanıcı işlemlerinin yönetici paneli üzerinden yapılabileceği) oluşturabilirsiniz. Bu yazılımların kurulumu ve anlatılan sistem ile kullanımına vakit buldukça yer vermeye ve belgeyi güncellemeye çalışacağım. Bu belgede bahsedilen yapının dahada iyileştirilmiş, dahada profesyonel olan yaklaşım şekli, Mysql yerine LDAP destekli kurulmasıdır. Bununla ilgili başka bir belge hazırlamayı düşünüyorum. ÖN KOŞUL OLARAK GEREKLİ YAZILIMLAR : Biraz sonraki yazılımları kurmadan sistemimizde php ve mysql ve apache'nin kurulu olduğunu apache'ye php desteğinin verilmiş olduğunu, aynı zamanda php'ye de mysql desteğinin verilmiş olduğunu farz ediyoruz. Şayet sisteminizde php,mysql ve apache kurulu değilse,
Eksik kalan paketler daha sonra diğer paketler kurulurken bağımlılık gereği otomatik kurulacaktır. Qmail, lisans sebeplerinden dolayı, sadece kaynak kodu olarak dağıtılır (Official olarak dağıtılan binary deb dosyası yoktur). Bundan dolayı, paket deposunun non-free kısmında qmail-src ismi ile yer alır. Qmail'i kurabilmek için kullanılan debian yöntemi, qmail-src paketini çekip, kendi sistemimizde derleyip binary dosyasını oluşturmak ve onunla kurulum yapmak şeklindedir. Qmail uzun süredir güncellenmediği ve artık eski kaldığı için, mevcut şekliyle modern sistemlerin ihtiyaç duyduğu bir çok desteği sağlayamamakta. Bu destekleri sağlama işlemleri yamalarla yapılmaktadır. Bu da qmaildeki en problemli işlerden birisi olarak karşımıza çıkar,özellikle debian'ın qmail-src yapısına zarar vermeden uygulanabilecek yapayı bulup, uygulamaktır. Smtp-Auth desteği içinde yama uygulama durumunda olduğumuz için, sarge'de derlemek üzer indirdiğimiz qmail-src paketine de debian'a uygun olan sistematiği veya dosya yapılarını bozmadan uygulanabilecek smpt-auth yamasına ihtiyacımız var. Daha önce woody'de derlemek üzere indirdiğim qmail-src paketine http://members.elysium.pl/brush/qmail-smtpd-auth adresindeki smtp-auth yamasını sorunsuzca uygulayabiliyor ve binary .deb dosyasını oluşturabiliyorduk. Sarge üzerinde derlemek üzere sid deposundan (yazının hazırlandığı anda sarge depolarında qmail-src bulunmadığı için) indirdiğim qmail-src paketinede yukarıdaki adresde belirttiğim smpt-auth yamasını uygulamada bir takım sorunlar olduğunu farkettim. Bu durumu daha önce woody'de kullandığım smpt-auth yaması uygulanmış kaynak dosyaları ile şu an sid deposunda yer alan qmail-src 'nin gerekli dosyalarını diff komutu ile karşılaştırarak, bu farkları dosyalara kaydedip, daha sonra sid deposundan indirdiğim kaynak dosyalarına bu yamaları (farkları) uyguladım. Oluşan yeni dosyaları, dpkg-buildpackage komutu ile derleyip binary dosyasının oluşmasını sağladım. Kurulum aşamasında 3 farklı yöntem sunup, dilediğiniz şekilde kurulumu yapmanıza olanak vereceğiz. Bu kadar izahatdan sonra şimdi kuruluma geçelim. Öncelikle gerekli olan paketleri kurmak ile işe başlayalım. Ucspi-tcp-src Paketinin Kurulumu : ucspi-tcp-src paketinin kurulabilmesi için /etc/apt/sources.list dosyanızda, deb http://ftp.tr.debian.org/debian sarge main contrib non-free benzeri satırın olması gerekir (bu paketinde deponun non-free kısmında yer aldığına dikkat ediniz). Bu satır yoksa ekleyip apt-get update ile indeximizi güncelleyelim. Ardından;
Do you want to install ucspi-tcp_0.88-9_i386.deb now? [Yn] sorusuna Enter ile onay verip, build-ucspi-tcp ile oluşturduğumuz paketin kurulumunu yapabiliriz.. Yukarıdaki şekilde ucspi-tcp-src paketini kurmuşşsak, şimdi Qmail paketinin kurulum yöntemlerine geçelim; Qmail Kurulumu İçin 1. Yöntem : Yukarıdaki yöntem ile oluşturduğum Smtp-Auth (plain, login ve cram-md5) destekli qmail_1.03-36_i386.deb paketini indirip
bu komutdan sonra bir takım çakışma (conflict) hataları alırsanız hemen aşağı kısımdaki Olası Qmail Kurulum Hatası kısmına göz atınız. Qmail Kurulumu İçin 2. Yöntem : Sizde woody için kullandığım, smpt-auth yamasına sahip qmail dosyaları ile sid deposundaki qmail'in gerekli dosyalarındaki farkları gözetmek yöntemi ile oluşturduğum diff dosyalarını kendiniz yama olarak uygulayıp, makinenizde derleyip, deb paketini oluşturabilirsiniz. Bu yöntemi tercih edenler için yukarıdaki paketi oluşturmak için yapmanız gerekenleri izah etmeye çalışalım. Öncelikle /etc/apt/sources.list dosyamıza qmail-src paketinin bulunduğu depoyu ekliyoruz.
"apt-get source qmail-src" için gerekli olacak olan, kaynak kodunun bulunduğu depoyuda ekleyelim;
sources.list dosyamıza ekleyip, "apt-get update" ile index'imizi yeniden güncelliyoruz. Daha sonra,
ile kurulumu yapabilirsiniz. NOT : Bu yöntemde herhangi bir sebepden qmail-src'yi bulamiyorsa öncelikle /etc/apt/sources.list dosyanızı kontrol ediniz ("deb http://ftp.tr.debian.org/debian sarge main contrib non-free" şeklinde kaydın olması gerekli). Halen sonuç alamazsanız aşağıdaki şekilde wget ile indirip "dpkg -i" ile kurulumu yapabilirsiniz. Daha sonra olası bağımlılık problemlerini çözmek içinde "apt-get -f install" komutunu uygulayıp "build-qmail" ile işlemlerinize devam ediniz. "apt-get install qmail-src" ile herhangi bir problem olmaksızın kurulumu yapmış olmanız durumunda işlemlerinize "build-qmail" kısmı ile devam ediniz.
şeklinde eksik dosyaların olduğunu belirten mesajı alırsanız, hemen sihirli komutu devreye sokun.
Bu kısımda bize sorulan sorulara, [TAMAM] deyip devam ediyoruz. Yalnız dikkatinizi çekmek istediğim bir nokta var, Şayet daha önce qmail-src kurmaya çalışmışsanız, /etc/passwd ve /etc/shadow dosyanızı kontrol edip qmail'e ait bir kullanıcı adı/id veya grup adı/id'si bulunmadığına emin olun. Aşağıdaki grup ve kullanıcı adları zaten sisteminizde varsa, bunları silip daha sonra işleme devam edin. Qmail için gerekli aşağıdaki kullanıcıların ve grupların oluşmasını sağlamış oluyoruz.
Hata vermeden işlemleri tamamlamışsa, bir üst dizinde (cd ..) qmail_1.03-36_i386.deb isminde .deb dosyası oluşmus olmalı. Artık kurulum çok kolay :)
bu komutdan sonra bir takım çakışma (conflict) hataları alırsanız hemen aşağı kısımdaki Olası Qmail Kurulum Hatası kısmına göz atınız. NOT : Sizde qmail'e farklı yamalar uygulamak istiyorsanız, yukarıdaki sistematiği takip edip, "apt-get source qmail-src" ile kaynak kodlarını sisteme indirdikten sonra gerekli gördüğünüz yamaları uygulayıp dpkg-buildpackage ile derleyebilirsiniz. Ama yukarıda ifade etmeye çalıştığım üzere, uygun yamayı bulup tuttutmak biraz uğraştırıcı olabilmekte. Qmail Kurulumu İçin 3. Yöntem : http://www.litux.org/debian/ adresinde bulduğum http://www.serdaraytekin.com/files/debian/sarge/qmail/qmail_1.03-31+1_i386.deb adresinden veya http://www.litux.org/debian/mirror/qmail_1.03-31+1_i386.deb adresinden indirebileceğiniz, smtp-auth (login, plain) ve qfilter yamasına sahip qmail_1.03-31+1_i386.deb paketini indirip kurabilirsiniz. Bunun için izlenilmesi gereken yöntem;
şeklinde kurulumu yapabilirsiniz. Bunlardan başka Yöntemlerde var elbette, mesela qmail'in orjinal .tar.gz paketinden kurulum yapmak gibi. Ama bu belgede o tarz bir kurulumdan bahsedilmeyecektir.
benzeri bir hata alırsanız, sisteminizde daha önce kurulu olan exim paketi ile qmail'in çakıştığının ifadesidir. Bu durumda sisteminizde daha önce kurulu olan MTA'yı kaldırmanız gerekmektedir.
Çakışmaya sebep olan paketi/paketleri kaldırdıktan sonra dpkg -i ile kurmaya çalıştığınız paketi yeniden kurmayı deneyiniz. Kurulumu tamamladıktan sonra,
ifadesini tcp.smtp dosyası içerisine yazıp, kaydedip çıkalım ve,
komutu ile bu ifadenin aktif edilmesini sağlayalım. Daha sonra,
ile de qmaili restart ettikten sonra, ufak bir kontrol yapabiliriz.
komutunu verdikten sonra "220 localhost ESMTP" şeklinde bir karşılama ekranı geliyorsa, qmail başlatılmış demektir. Smtp-Auth desteğini kontrol etmek içinde, bu ekrandan çıkmadan "EHLO" komutunu yazıp çıktıya bakıyoruz. Sonu aşağıdakine benzer şekilde olmalı
Öncelikle Vpopmail paketi tarafından ihtiyaç duyulan libmysqlclient10-dev paketini kuralım.
(http://www.inter7.com/index.php?page=vpopmail adresinden yazılımın son sürümünü kontrol ediniz)
configure işlemindeki detaylar için;
ile bilgi alabiliriz. E-posta aliaslarının mysql üzerinde tutulabilmesi için, --enable-valias parametresini ekleyebiliriz veya domain bazında yapabileceğimiz sınırlamaların/ayarların .qmailadmin-limits dosyasından yapılabilmesi yerine mysql üzerinden yapılabilmesi için --enable-mysql-limits ifadesini ekleyebiliriz gibi.
Şimdi mysql üzerinde veritabanımızı oluşturalım.
Veritabanımızı oluşturduk. Veritabanı ismimiz vpopmail, bu veritabanına erişim yetkisi olan kullanıcı adı, vpopmail_user ve bu kullanıcıya ait şifreyi de vpopmail_password olarak vermiş olduk. Burada kullandığımız kullanıcı adı ve şifresini mutlaka farklı ve tahmin edilmesi güç değerlerler olarak tanımlayınız. Biz anlatımın kolaylaştırılması amacı, basit bir kullanıcı adı ve şifre tanımı yaptık. Buradaki değerlere bağlı kalmayınız. Şimdi oluşturduğumuz veritabanı ismi, kullanıcı adı ve şifresine göre vpopmail.mysql dosyasını düzenleyelim.
Bu dosya içerisinde aşağıdakine benzer şekilde tanımlanmış olan satırı uygun şekilde düzenleyip aktif ediyoruz.
Öncelikle "/var/qmail/control/locals" dosyasını oluşturalım.
Evet, şimdi sistemimize yeni bir domain ve ardından da kullanıcı ekleyebiliriz.
komutu ile domain ismi "domainismi.com" olan ve postmaster şifresi "postmaster_şifresi" olarak tanımlanmış domaini eklemeye çalışıyoruz. Şayet ekleme işleminde aşağıdakine benzer şekilde bir hata alırsanız "/var/qmail/control/locals" dosyasının varlığını kontrol edip, tekrar domaini eklemeye çalışınız.
NOT : Domain eklerken herhangi bir sebepler hata verir ve eklenmedi olarak görünürse, tekrar vadddomain komutu ile aynı domaini eklemeye çalıştığınız zaman ise bu domain zaten var (domain already exists) şeklinde bir mesaj verirse, vdeldomain komutu ile domaini silmeye çalışınız. Domaini silmeye çalışırkende bu domain yok şeklinde bir hata mesajı alırsanız, kısır döngüye girmiş demektir. Bu durumda muhtemelen ~vpopmail/domains/ dizin altında eklemeye çalıştığınız domain ismi ile aynı tanımı taışması gereken dizini aramakta, fakat bulamayınca döngüde kalmaktadır. Bu durumda öncelikle, ~vpopmail/domains/ dizini içerisinde eklemeye/silmeye çalıştığınız domain ismi ile oluşturulmuş bir dizin olup olmadığınız kontrol ediniz. Bu isimde bir dizin yoksa mkdir ~vpopmail/domains/domainismi.com şeklinde sisteme eklemeye çalıştığınız fakat herhangi bir sebeple kısır döngüye giren domain'in tanımı ile aynı şekilde olacak olan dizini oluşturup, daha sonra "vdeldomain domainismi.com" komutu ile söz konusu domaini silebilirsiniz. Domain ekleme işlemini başarılı şekilde tamamlanmışşsa, yeri gelmişken bu domaine nasıl kullanıcı ekleyebileceğimizi de görelim,
Yukarıdaki komut ile domainismi.com domainine "kullanici_adi" ile tanımlanan kullanıcıyı eklemiş oluyoruz. Kullanıcının şifreside, "kullanıcı_şifresi" ile tanımlanan şifre olacaktır. Neticesini veritabanınız üzerinden inceleyebilirsiniz. Vpopmail'de Sınırlamalar (Limitler) ve Ekstra Ayarlar: Daha önceden vpopmail ile uygulamak istediğimiz kota vb. sınırlamalar vpopmailin kurulumu esnasında "configure" ye parametre ilavesi ile mümkün oluyordu. Ancak yeni versiyonlarda bu işlemleri /home/vpopmail/etc/vlimits.default (daha doğrusu ~vpopmail/etc/vlimits.conf dosyası) dosyası üzerinden yapabiliyoruz. Bu çok daha iyi olmuş. Mesela kullanıcılara 10 Mb kota sınırlaması yapmak için, default_quota 10485760 satırını aktif etmemiz yeterli, yada kullanıcılar pop3 hizmetinden faydalanamasın istiyorsanız disable_pop satırının aktif olmasını sağlayarak yapabiliriz. Domain Bazında Sınırlamalar Yapabilmek : vlimits.conf dosyasında yapacağınız sınırlamalar tüm domainlere etki edecektir. Siz şayet belli domainler için özel ayarlar/sınırlamalar yapmak istiyorsanız ve yukarıda vpopmail'in kurulumu esnasında, configure işlemindeki parametrelere ilave olarak --enable-mysql-limits ifadesinide eklemişseniz, domain'in dizininde ".qmailadmin-limits" isimli bir dosya oluşturup, vlimits.conf dosyasındaki kurallara benzer şekilde özel tanımlamalar yapabilirsiniz. ".qmailadmin-limits" dosyasının erişim izinlerininde uygun şekilde ayarlanmasına dikkat etmeyi unutmayınız. Vpopmail'in kurulumu esnasında --enable-mysql-limits şeklindeki parametreyide kullanmışsanız domain bazındaki ayarlamalar/sınırlamalar için mysql'deki tablolara göz atınız. Vpopmailde artık çoğu ayar ~vpopmail/etc/ altından yapılabilecek şekildedir. Varsayılan domain için de "~vpopmail/etc/defaultdomain" dosyasında varsayılan olarak ayarlamak istediğimiz domaini belirtebiliriz. Burada belirttiğimiz domain haricinde sistemde yer alan diğer tüm domainlerde login işlemleri sırasında kullanıcı adı olarak hep e-posta adresimizi kullanacağımızı unutmayalım. QMAIL-POP3 DAEMON'un AKTİF EDİLMESİ : Sistemimizde e-postalarımız "Maildir" yapısında tutulacaktır. Bu yapıya erişebilme yeteneğine sahip pop3 daemonlardan birisi olan ve qmail içerisinde gelen qmail pop3 daemon'u aktif edeceğiz. Bunun için ilk iş olarak -varsa- sistemimizde yer alan eski pop3 daemonumuzu kaldıralım. Her sistem için % 100 sonuç vermeyebilirsede, "dpkg -l|grep POP3" şeklindeki bir komutla -varsa- kurulu olan pop3 daemonunuzu anlayabilirsiniz. Daha sonra orjinal qmail scriptimizi kaybetmemek, gerektiği zaman en kötü ihtimalle orjinal duruma geri dönebilmek için qmail scriptimizi aşağıdaki komut ile qmail.org olarak yedekleyelim.
Şimdi /etc/init.d/qmail betiğinde gerekli değişiklikleri yapıp qmail pop3 daemonu aktif edeceğiz, aynı zamanda vpopmail'in düzgün şekilde çalışabilmesi için gerekli olan ayarları tamamlamış olacağız. Aşağıda /etc/init.d/qmail içerisinde yaptığımız değişikliği anlayabilmek amacı ile değişiklik yapılmış (olması gerektiği şekilde ayarlanmış) bir qmail scriptinin gerekli olduğu kadarını aşağıda görebilirsiniz. Koyu işaretlenmiş yerlere dikkat ediniz. "/etc/init.d/qmail" betiğinin gerekli değişiklikten sonraki durumu (değişikliğin yapıldığı yerler) :
Gerekli değişiklikleri yaptıkdan sonra, "/etc/init.d/qmail restart" komutu ile qmaili yeniden başlatıp test edelim. 110 nolu porta telnet çekince aşağıdakine benzer bir sonuç almamız gerekir. Cevap alamıyorsak qmailimiz başarılı şekilde başlatılamamış olabilir. Bu durumda qmail scripti içerisindeki değişiklikleri gözden geçirip, yeniden aynı işlemleri deneyiniz. NOT : Dilerseniz benim hem woody hemde sarge sistemde sorunsuzca kullandığım qmail betiğini kullanmayı deneyebilirsiniz. Yada bu dosyadaki değişikleri orjinal qmail betiği ile karşılaştırıp kendi sisteminize göre özelleştirebilirsiniz.
COURIER-AUTHLIB ve COURIER-IMAP KURULUMU : Courier-imap paketide Maildir desteğine sahip, imap sunucusudur. Bu paket e-postalarımızı imap üzerinden kontrol etmek istediğimizde aynı zamanda ileriki bölümde kurulumunu anlatacağımız Web-Mail olan Squirrelmail'in e-postalara imap üzerinden erişebilmesi için gereklidir. Courier-imap'ın kurulumunu tar.gz üzerinden yapacağız. Öncelikle şayet sisteminizde yüklü değilse;
ile openssl, libssl ve libltdl3 kütüphanelerini kurunuz.
http://www.courier-mta.org/?download.php~authlib adresinden en son sürümünü kontrol ediniz.
İşlemi ile kurulumu tamamlamış olduk. Şimdi bu işlemler sonucunda olması gereken dizin/dosya yapımızı hızlı bir şekilde kontrol edelim.
Şimdi sıra, courier-imap için konfigürasyonun ayarlanmasına geldi,
imapd dosyamızı açıp,
aynı şekilde nano imapd-ssl ile imapd-ssl dosyamızı açıp IMAPDSSLSTART=NO şeklinde olan satırın
şeklinde olmasını sağlayalım. /usr/local/etc/authlib/authdaemonrc dosyasında
şeklinde olan satırlardan "authmysql" ifadesini çıkarınız. Yani bu satırı şu hale getiriniz.
ile imapd, imapd-ssl'in ve authdaemond'un başlatılmasını sağlayalım. Bu betiklerin açılışta da otomatik olarak başlatılabilmesi için
şeklinde "imapd" isimli bir dosya oluşturup bu dosyayı /etc/init.d/ altına bırakalım. Daha sonrasında "apt-get install rcconf" paketini kurup, bu betiğin açılışta başlatılmasını sağlayacak şekilde ayarlayalım. * imapd-ssl'e ihtiyacınız yoksa bunu başlatmanıza gerek yok. Şimdi kurduğumuz bu courier-imapd paketini test edelim, bunun için 143 nolu porta telnet çekip, daha önce yukarıda oluşturduğumuz domain ve kullanıcı adı ile deneme yapabiliriz. NOT : Kullanıcı adı olarak e-posta adresimizin tamamının kullanıldığını unutmayalım. Kullanıcı adımız kullanıcı_adı@domain_ismi.com şeklinde olacaktır.
şeklinde bir sonuç alıyorsak, problemsiz olarak kurulumu tamamladığımız anlamına gelir. Şayet 143 nolu portdan cevap alamıyorsanız courier-imapd kurulumunuzu ve ayarlarınız gözden geçiriniz. Portdan cevap alıyor fakat, "a login kullanıcı_adı@domain_ismi.com kullanıcı_şifresi" satırı ile giriş yaptığınızda "a OK LOGIN Ok." sonucunu alamıyorsanız, vpopmail kurulumunda vadddomain ve vadduser ile girdiğiniz domain, kullanıcı adı ve şifreyi gözden geçiriniz. Ayrıca doğrulama işlemi yaparken "a" harfininde satıra dahil olduğuna dikkat ediniz. TÜRKÇE SQUIRRELMAIL KURULUMU : Squirrelmail e-postalarımıza web üzerinden ulaşabilmemizi sağlayar. Kurulum için
daha sonra apacheye, gerekli Alias tanımını yapmamızı sağlayan dosyayı include ile apache ayarlarına dahil edelim.
satırını ekleyelim daha sonra "/etc/init.d/apache restart" ile apacheyi yeniden başlayıp bu alias tanımının etkinleşmesini sağlayalım. Apache 1.3.x kullanıcısı iseniz ve şayet sisteminizde /etc/apache/conf.d/ şeklinde bir dizin varsa, yukarıdaki apache.conf isimli dosyayı /etc/apache/conf.d/ altına kopyalamakla da aynı include işlemini yapabilirsiniz. Kullandığınız Apache ayarlarında (httpd.conf) /etc/apache/conf.d dizini zaten tümden ayarlara dahil ediliyor olabilir. Apache 2.x kullanıcılarıda benzer şekilde yukarıdaki /etc/squirrelmail/apache.conf dosyasını /etc/apache2/apache.conf içerisinden include ile Apache ayarlarına dahil edebilir veya /etc/squirrelmail/apache.conf dosyasını /etc/apache2/mods-enabled/ dizini içerisine kopyalayarak otomatik olarak Apache ayarlarına dahil edilmesini sağlayabilirler. Metod olarak bu yöntemler seçilmiş olsa bile Apache 1.3.x "/etc/init.d/apache restart" veya Apache 2.x için "/etc/init.d/apache2 restart" şeklinde Apache'nin yeni ayarlar ile çalışması sağlanması unutulmamalı. Bu şekilde, Squirrelmail'i sistemimize kurduk ve http://www.domainismi.com/squirrelmail/ şeklinde ulaşalabilmeyi sağladık. Sıra squirrelmail'in konfigurasyonuna (özelleştirilmesine) geldi.
olarak ayarlanmış olmalı. (tr_TR için "dpkg-reconfigure locales" komutu ile tr_TR ninde sistem yerelleri arasına dahil edilmiş olduğuna emin olunuz.) Squirrelmail için Dil Çeviri Dosyaları : http://sourceforge.net/project/showfiles.php?group_id=311&package_id=110388 adresinden çevirisi yapılan tüm diller için gerekli dosyaları bulabilirsiniz. Dilerseniz tüm çevirilerin yer aldığı all_locales paketini indirebilir veya sadece tr_TR paketini indirip Türkçe desteini aktif edebilirsiniz. Biz örneğimizde tüm çeviri dosyalarının yer aldığı paketi indirelim. Bunun için;
Sonuçta /usr/share/squirrelmail/locale/ içerisinde Türkçe çevirilerinin yer aldığı tr_TR dizini ve diğer diller için de gerekli olan dizinler yer alacaktır. Spamassassin, spam olarak nitelendirdiğimiz e-postaların tespit edilmesini, işaretlenmesini, ayıklanmasını sağlar. Kurulum için
komutunu vermemiz yeterlidir. Kurulum sonrası ayarlara gelince, http://www.yrex.com/spam/spamconfig.php adresinde konfigürasyon dosyasının oluşturulmasına yardımcı bir yazılım mevcut (belgenin hazırlandığı tarihte bu adresten 3.0 versiyonunu destekleyen bir dosya oluşturamıyordu, oluşturulan konfigürasyon dosyasının sizin kullandığınız spamassassin versiyonuna uygun olup olmadığına dikkat ediniz.) . Buradan istediğimiz özellikleri ve sınırlamaları belirtip kendi sistemimizde kullanabileceğimiz /etc/spamassassin/local.cf isimli konfigürasyon dosyamızı oluşturabiliriz. NOT : Spamassassin 3.0 ile birlikte konfigürasyon dosyalarında da önemli bir kaç değişiklik oldu. Aşağıdaki local.cf dosyası 3.0 ve üzeri için hazırlanmıştır. Ancak bu dosya isteğinize göre daha da geliştirip şekillendirilebilir. Dosyada kullanılabilecek tanımlamalar ile ilgili detaylı bilgiye http://spamassassin.apache.org/full/3.0.x/dist/doc/Mail_SpamAssassin_Conf.html adresinden ualaşabilirsiniz. Örnek /etc/spamassassin/local.cf :
Şimdi ise sıra /etc/default/spamassassin dosyasının ayarlanmasına geldi, /etc/default/spamassassin dosyasında ENABLED=0 olan satırı
olarak değiştirelim. OPTIONS satırının da;
şeklinde olmasına dikkat ediniz. Ayarların etkin olması ve spamassassin'in başlatılması için;
komutunu vermemiz yeterlidir. Spamassassin Ayarlarının Test Edilmesi :
komutu ile /etc/spamassassin/local.cf dosyasında kabul görmeyen bir tanımlama yapıp yapmadığınızı görebilirsiniz. Dosyanın durumu ile ilgili daha detaylı bilgi edinmek için;
şeklinde bir komut ile daha detaylı bilgilere ulaşabilirsiniz. "-D" parametresi "debug" edebilmenizi sağlar. Spamassassin'in Çalışma Mantığı ve Ekstra Ayarları : Spamassassin, gelen e-postaların durumlarına göre puanlar vererek, bizim /etc/spamassassin/local.cf dosyasında belirttiğimiz değeri (required_hits 5.0) aşan e-postaları SPAM olarak algılar. Şayet biz şu grubtan gelen e-postalar yada şu tarzdaki tüm e-postalar SPAM olarak işaretlensin demişsek, puan durumuna bakmadan doğrudan SPAM olarak algılar. Benzer şekilde, şu adresden gelen e-postaları kesinlikle spam olarak algılama dersek, bunların puanlarına bakmaksızın göz ardı eder. Puanlama mantığı kabaca şu şekilde çalışır, subject (konu) kısmı boş olan e-postayı spam olma olasılığı sebebiyle, "spam puanı" veriyor olsun, yine söz konusu e-posta aynı anda birden fazla kişiye gönderilmişse yine spam olma olasılığının fazla olması ihtimaline binayen "spam puanı" veriyor olsun, e-posta içerisinde html tagları kullanılmışsa, çok cicili bicili bir e-posta ise yine bununda spam olma olasılığı yüksek diyerek onada bir puanlama yapar. Benzer şekilde yaptığı puanlamaları toplayarak bizim /etc/spamassassin/local.cf de belirttiğimiz değeri (mesela, required_hits 5.0) aşan e-postaları, bu adresden gelen e-postalar veya benzer tarzdaki e-postalar için belirttiğimiz aksi bir başka kural olmadığı sürece SPAM olarak işaretler. Spam olarak işaretleme yaparken, istersek SPAM olarak algılanan e-postaların konu başlıklarının (subject) değiştirilmesini, var olan konu başlığının başına SPAM olduğunu belirten bir tag eklenmesini sağlayabiliriz. Bu işlemi gerçekleştiren kısım, rewrite_header' dır. Yukarıdaki dosyada spam olarak algılanan e-postaların konu başlıklarının başına "*****SPAM*****" ifadesinin de eklemesini söylemişiz bulunuyoruz. Bu kısımda gelen e-postanın kaç puan ile spam olarak işretlendiğini anlayabilmek için 3.x versiyonu ile birlikte "****SPAM(_SCORE_)****" şeklinde kullanabiliyoruz. "report_safe 1" ifadesi ilede, kullanıcıya giden e-postalar, SPAM olarak algınırsa konu başlığı belirttiğimiz şekilde yeniden düzenlenecek ve mesajın orjinali mail'e Attach (ek) edilecek. Kullanıcı spam olan e-postayı direk göremeyecek, isterse söz konusu e-postanın ek dosyasından bakıp, bu e-postanın gerçekten spam olup olmadığına karar verebilir ve gereken işlemi yapabilir. Gelen e-posta spam olarak işaretlendiğinden direk sunucuda iken silinedebilir, fakat bu benim çok fazla tercih etmediğim bir yöntem. En azından sistemin düzgün işlediğine (ince ayarların yapıldığına) emin olmadan önce bu opsiyonu aktif etmek pek sağlıklı olmasa gerek, spam olmayan ama spam olarak algılanabilecek bir çok e-postayı kaybedebilirsiniz. Bunun yerine procmail veya maildrop kullanarak bu tarzdaki e-postaların akibetini ".Spam" klasörüne taşımak olarak belirtebiliriz. Detaylar hususunda Spamassassin için ekstra ayarlar kısmına göz atınız. Belli Domainlerden Gelen E-postaların Ne Olursa Olsun Spam Olarak İşaretlenmemesi : /etc/spamassassin/local.cf dosyamızda bunları whitelist_from olarak belirtiyoruz. Örnekler:
yukarıdaki örneklerde garanti.com.tr, bonus.com.tr ve ykb.com dan gelecek e-postaları ne olursa olsun spam olarak işaretleme yada spam olarak algılama diyoruz. Spam Olarak İşaretlenen E-postaların İçerisine Bilgi Mesajı Koyma : Yine, /etc/spamassassin/local.cf dosyamızı aşağıdaki şekilde düzenleyerek, kullanıcıya bilgi verebiliriz.
gibi bir yapı ile , "report" ifadesini kullanarak kullanıcıya bilgilendirme mesajı gönderebilmiş oluyoruz. Thomas Bayes tarafından bulunan, Bayesian metodu olarak bilinen bu yöntemi spamassassin içerisinde kullanarak otomatik öğrenmeyi sağlıyoruz. Kabaca ,o ana kadar gelen e-postaları değerlendirerek, gelen e-postalara göre daha sonraki e-postalarında spam olabilme olasılığını hesap eden bir metod. Metod gücünü, olasılık hesaplarından alıyor. Bu yöntemin aktif hale gelebilmesi için local.cf dosyamızda,
ayarlamasının yapılmış olmasına dikkat etmemiz gerekir. E-postaların, Sisteme Kullanıcı Tarafından Öğretilmesi : sa-learn komutu ile gelen bir e-postanın benzerinin bir daha gelmesi durumunda spam olarak algılanmasını veya o tarz maillerin spam olarak algılanmamasını sağlayabiliriz.
belirttiğimiz dizinde yer alan maillerin veya belirttiğimiz mail dosyasının, spam olarak algılanmamasını söyleyebiliriz. Benzer şekilde
belirttiğimiz dizinde yer alan e-postaların veya belirttiğimiz e-posta dosyasının, spam olarak algılanmasını söyleyebiliriz. Böylece biz, bu e-postayı veya bu tarzdaki e-postaları tanı, bundan sonra belirttiğim şekilde davran demiş oluyoruz. Her Kullanıcıya Farklı Kuralların Uygulanması : Bu durumda kullanıcının e-posta dizininde oluşan (yoksa oluşturun) .spamassassin dizininin içerisine "user_prefs" (~vpopmail/domain/kullanıcı_dizini/.spamassassin/user_prefs) diye bir dosya oluşturup, /etc/spamassassin/local.cf dosyasında belirttiğimiz kural setine benzer kuralları user_prefs içerisinde yapıyoruz. Spam Olarak Algılanan E-postaların Farklı Bir Klasöre Taşınması : Burada devreye procmail veya maildrop giriyor (biz burada procmail üzerinde duracağız). Procmail kullanarak istediğiniz e-postaların istediğiniz işleme tabi tutulması işini rahatlıkla yapabilirsiniz. Bu konuda çok fazla detaya girmemekle beraber fikir vermesi açısından bir örnek .procmail dosyası vermek istiyorum. Konu ile ilgili detaylı anlatıma sahip bir çok döküman bulabilmek mümkün. procmail'i sistemimize kurduktan sonra, kullanıcının ev dizininde procmail (~vpopmail/domain/kullanıcı_dizini/.procmail) isimli bir dosya oluşturup içerisine aşağıdakine benzer tanımlar yapabiliriz. Bu işlemin tüm kullanıcılara aynı anda etki etmesini istiyorsak /etc/procmailrc dosyasında işlem yapmamız gerekir. Konu başlığında "*****SPAM*****" içeren e-postaları yok etmek için.
veya, Konu başlığında "*****SPAM*****" içeren e-postaları aynı dizindeki .Spam/new/ dizinine aktarabiliriz. Bunun için de
şeklinde bir kaç satır yeterli olacaktır. Razor, spamassassin ile birlikte kullanılan ve spamassassin'in etkinliğini artıran bir yazılımdır. Aynı şekilde benzer görevi yapan Pyzor'u da sisteminize kurabilirsiniz. Aynı anda hem razor hemde pyzor kullanmak mümkün. Razor kurulumu için
Pyzor'da esasen Razor'dan türemiş Python dili ile yazılmış bir yazılımdır. Bu yazılımı kurarken sisteminize Python da kurulacaktır. Bu yazılımıda sisteminize kurmak isterseniz,
Pyzor 'un nasıl çalıştığını merak edenler http://www.archeus.plus.com/colin/pydoc/overview adresindeki kısa yazıya göz atabilirler. Bu yazı ile aynı zamanda Razor'un da çalışma mantığı anlaşılmış olacaktır. Benzer şekilde DCC'yi de kullanmak istersek;
RAZOR PYZOR ve DCC'nin SPAMASSASSIN İLE KULLANILMASI : Her iki yazılımında aktif olabilmesi için /etc/spamassassin/local.cf içerisinde
ifadelerinin yer almasına dikkat edelim. Her üç yazılımıda aynı anda kullanabiliriz. Spam olarak işaretlenen e-postaların hangi klasöre taşınacağını veya ne gibi bir işleme tabi tutulacağını belirtebilmek için kullanmamız gereken yazılım Maildrop veya procmail olabilir. Mesela kullanıcının e-posta dizininde .SPAM diye bir klasör oluşturup, SPAM olarak algılanan emaillerin bu klasöre taşınmasını sağlayabiliriz. Ayrıca qmail-scanner maildrop'a bağımlılık duyduğu için bu paketi kurmak durumundayız. Kurulum için
CLAM ANTIVIRUS KURULUMU (CLAMAV): Clam Antivirüs (Clamav) GPL lisansı ile dağıtılan bir yazılımdır.
ile Clamav Antivirüs yazılımını sistemimize kurabiliriz. "Please choose the method for virus database updates" kısmından uygun olan güncelleme metodonu seçiniz. sürekli internet bağlantısı olanlar için "daemon" uygun bir seçim olacaktır. Sonraki adımda; "new CA certificates will be trusted and installed" seçeneğine "Yes" diyerek devam edelim. Bunlarla birlikte önerilen paketlerden bazılarınıda kuralım
İleriki adımlarda problem olacak slamav-daemon ile ilgili ayarları ayarları şimdiden yapalım. Qmailscanner için gerekli olacak olan qscand grubu ve kullanıcısını ekleyelim.
Daha sonra /etc/clamav/clamd.conf dosyasındaki; "User clamav" ifadesini "User qscand" ile değiştirip clamd.conf dosyasını kaydediniz.
ile /var/run/clamav/ dizinine qscand kullanıcısının erişimini sağlayalım.
ile clamav-daemon'u başlatabilirsiniz. İşlemleriniz yolunda ise /var/run/clamav/ içerisinde "clamd.ctl" dosyası oluşmuş olmalı. Qmail-Scanner, Qmail için tasarlanmış içerik tarayıcı sistemidir. Clamav ve Spamassasin ile birlikte çalışmasını sağlayacağız. Bu şekilde, sisteme gelen veya sistemden gönderilen maillerin kontrol edilmesini, virus içerip içermediğini veya spam olup olmadığını anlayabilmemizi sağlayacak. Bu yazılımın kurulumunuda yine .tar.gz 'den yapacağız. Kurulum için, Öncelikle sisteminizde yoksa qmail-scanner'in ihtiyaç duyduğu perl-suid paketini kurun,
daha sonra;
(Son sürümünü, http://qmail-scanner.sourceforge.net adresinden kontrol ediniz.)
Aşaıdaki qscand grubu ve kullanıcısını clam-daemon ayarlarında eklemiştik. Eklememişseniz ekleyiniz.
Konfigürasyon işlemine geçmeden önce, aşağıda koyu renkle işaretlenmiş yerlere dikkatinizi çekmek istiyorum. "--admin info --domain domainismi.com" ifadesi ile qmail-scanner.pl dosyasında admin'in mail adresinin info@domainismi.com olarak ayarlanmasını sağlıyoruz. "--notify sender,admin,recips" ifadesi ile de, sisteme gelen/giden maillerin kontrolü sırasında Virüslü bir maile rastlanırsa, bunun ile ilgili bilginin maili gönderene (sender), sistem yöneticisine (admin, az önce belirttiğimiz mail adresine olmak üzere) ve mail alıcılarına (recips) bir rapor gönderilmesini, durumun iletilmesini sağlama işlemi yapılır. Şayet rapor'un (bilginin) sadece göndereciye gitmesini isterseniz bu kısımda "--notify sender" şeklinde düzenleme yapabilirsiniz. Ayrıca qmail-scanner.pl dosyasındaki uyarı metinlerininde Türkçe olabilmesi için "--lang tr_TR" desteği ile derlediğimize dikkat ediniz. Şayet sistemde clamav'dan başka antivirüs programıda kullanmak isterseniz onuda --scanners ifadesinden sonra gelen "clamdscan,verbose_spamassassin" paremetreleri içerisinde belirtmeniz gerekir. Yalnız kullanacağınız antivirüs yazılımının qmail-scanner tarafından destelendiğine emin olunuz. Clamav ile birlikte ikinci bir antivirus programı daha çalıştırmak isteyenler için AntiVir isimli antivirus yazılımın e-posa sunucuları için olan MailGate ürününü önerebilirim. Bu ürünü ticari amacı olmayan (non-commercial) sunucunuzda bir sene boyunca ücretsiz kullanabilirsiniz. Bir senelik lisansı http://www.antivir.de/en/support/unix_private_registration/?type=98 adresindeki formu doldurarak temin edebilmek mümkün.
Kurulum sırasındaki bilgiler aşağıdakine benzer şekilde olacak.
Şeklinde kurulum tamamlanmış olacaktır. Şimdi "/var/qmail/bin/qmail-scanner-queue.pl -g" komutunu işleterek işlemi sonlandıralım.
Bu işlemler sonucunda qmail-scanner-queue.pl dosyasının /var/qmail/bin/ altında yerini almış olması gerekir. Bu dosyanın hakları ile ilgilide, dosya sahibi ve grubunun qscand (qscand:qscand), chmod olarak erişim yetkisininde 4755 olarak ayarlanmış olmasına dikkat ediniz.
Ayrıca, /var/spool/qmailscan/ dizini yapısınında aşağıdakine benzer şekilde oluşturulmuş olup olmadığını kontrol ediniz.
Şimdi /etc/tcp.smtp dosyasının Qmail-Scanner'ın devreye girebileceği şekilde düzenlenmesine geldi. /etc/tcp.smtp dosyasının içeriğini aşağıdaki şekile getirin.
Değişikliğin aktif olabilmesi için,
Şimdide, /var/qmail/bin/qmail-scanner-queue.pl dosyamızda aşağıdakine benzer şekilde olan satırların, aşağıdaki yapıda olup olmadığını kontrol edelim. Şayet ilgili satırlardaki tanımlar, bu şekilde değilse tanımları belirtilen şekile getirelim. Özellikle dikkat edilmesi gereken satırlar koyu renkle işaretlenmiştir.
Evet, şimdi yazılımların kurulması ve yapılandırılması işlemi tamamlandı. Sistemimizi test etmek için,
deyip, ilk önce qmailin düzgün şekilde başlayıp başlamadığını (telnet localhost 25) kontrol edelim. Benzer şekilde pop3 portunun aktif olup olmadığına (telnet localhost 110) bakalım. Bunlarda problem varsa, öncelikle /etc/init.d/qmail betiğinde yaptığımız ayarlarda sorun olmadığına emin olalım, daha sonra qmail-scanner ile ilgili ayarları gözden geçirelim. HATALARI YAKALAMAK VE HATALARLA BAŞA ÇIKABİLMEK :
takip etmemiz gereken logların başında gelir. Özellikle /var/spool/qmailscan/qmail-queue.log dosyasında tutulan loglar sistemdeki sorunlar ve sorunların çözümüne ulaşabilmeniz için önemli ip uçları sunacaktır.
şeklinde veya aşağıdaki şekilde,
hata alırsanız, /etc/init.d/qmail içerisindeki ulimit -v değerini artırıp qmail'i yeniden başlatıp kontrol edin. Örnek olarak bu değeri, "ulimit -v 65536" şeklinde bir değere ayarlayabilirsiniz (veya daha yüksek bir değere çekebilirsiniz). Bu değerin hemen aktif olabilmesi için bu ifadeyi komut satırından da işletebilirsiniz. Ayrıca bu hataya sebep olabilecek olan, /etc/clamav/clamd.conf dosyasındaki "User clamav" ifadesinin "User qscand" olarak değiştirilmesine ve "chown qscand -R /var/run/clamav/" ile " /var/run/clamav/" dizininin qscand kullanıcısı içinde erişilebilir olmasına dikkat ediniz. "/etc/init.d/clamav-daemon restart" komutunu işlettiğinizde "/var/run/clamav/" içerisinde "clamd.ctl" dosyasının yer alması gerektiğine dikkat ediniz. Bu hatanın olası sebebi ile ilgili son olarak, "perl-suid" paketinin sistemde kurulu olduğuna emin olunuz. SİSTEMİN KOMPLE TEST EDİLMESİ : Sistemin çalışmasında bir sorun gözlemlemişseniz, sistemi genel olarak test edelim. Bunun için qmail-scanner içerisinden çıkan ufak betiği çalıştırıp genel bir fikir sahibi olabiliriz. Yukarıdaki şekilde adımları takip etmişseniz qmail-scanner kaynak kodlarınız /usr/local/src/qmail-scanner-1.25/ dizininde bulunuyor olmalı. Bu dizin içerisindeki "contrib" isimli dizinde yer alan "test_installation.sh" isimli betiği aşağıdaki şekilde çalıştırarak spam ve viruslere karşı sistemimizin tutumuna bakabiliriz.
Bunun yanısıra dilerseniz aşağıdaki şekilde gerekli testleri farklı şekillerde de yapabilirsiniz.
Şeklinde bir hata mesajı ile işleminiz kesilirse "/var/qmail/control/defaultdomain" dosyasının içerisinde varsayılan olarak bulunmasını istediğiniz domaini belirtiniz. Bu dosya içerisine "localhost" gibi bir ifade de yazabilirsiniz. "test_installation.sh -doit" işleminin sonucunda aşağıdakine benzer bir mesaj alacaksınız. Bu mesaj spam ve virüs testlerinin yapılıp sonucun qmail-scanner ayarlarında belirttiğiniz e-posta adresine gönderildiğini belirtiyor.
Sisteminizi kontrol edebilmek için aşağıdaki adreslerden faydalanabilirsiniz. http://www.webmail.us/testvirus http://www.eicar.org/anti_virus_test_file.htm http://www.webmail.us/testvirus adresine e-posta adresinizi tanıtıp daha sonra ilgili adrese bol bol viruslu e-posta gönderebilirsiniz :). Ayrıca http://www.eicar.org/anti_virus_test_file.htm adresinden indireceğiniz virüs içeren dosyayı kendinize göndererek benzer bir test de yapabilirsiniz. |