QmailToaster Kurulumu

Qmail, oldukça kararlı çalışmasından ve modüler yapısı sayesinde sunduğu esneklik sebebiyle çok uzun zamandan beri kullandığım ve önerdiğim bir MTA’dır. Fakat, Qmail’e eklenti olarak geliştirilmiş bir sürü modül bulunduğundan dolayı, tam teşekküllü bir mail sunucusu kurmak istediğinizde bahsi geçen bu modülleri de bilmeniz ve ihtiyacınıza göre kurulumlarını yapmanız gerekiyor. Bu nedenle normal şartlarda kaynak koddan derlenerek kurulan qmail ve ilgili modüller için az da olsa öncesinden bir tecrübe edinmiş olmanız gerekiyor.

Belki henüz qmail ile ilgili olarak bu tarz tecrübeleri edinmemiş fakat gerekli olan tüm modüllerle birlikte bir qmail sunucusu kurmak ve de bunu bir sürü derleme işlemi ile uğraşmadan hızlıca yapabilmek istiyorsunuzdur, işte qmail toaster tam bu noktada yardımımıza koşuyor.

Aslında, bu zamana kadar hiç qmail toaster kurmamıştım, ancak uzun zamandır duyduğum bir şey olduğundan dolayı bir qmail sunucusuna ilk ihtiyacım olduğu an bir qmail toaster kurulumu yaptım. İşte bu yazıda, CentOS 5.2 üzerinde yapılan bir qmail toaster kurulumuna ait notları bulabilirsiniz.

Qmail Toaster, derleme işleri ile uğraşmaya gerek kalmaksızın tam teşekküllü bir qmail e-posta sunucusu kurabilmeyi amaçlayan bir oluşum. Gerçekten de gerekli tüm paketlerin indirilmesi, indirilen kaynak kodlarını rpm’e dönüştürülmesi ve sisteme kurulmasını sağlayan scriptler vasıtası ile qmail kurulumunu ciddi anlamda kolaylaştırıyor. Hal böyle olunca sunucunun yönetimi ve update vs. gibi işlemleri de epey kolaylaşıyor.

Bu dökümanda, kurulum ve konfigurasyon ile ilgili ayarların neler olduğunu bulabilirsiniz. Anlatılacak işlemlere ait index aşağıdaki gibidir.

Gereksinimler bölümünde geçmeden önce, qmail toster ile sisteme yüklenecek olan önemli rpm paketlerine ve ne iş yaptıklarına bir bakmak iyi olur;

qmail Qmail’in ana paketi.
ucspi-tcp UNIX Client-Server program arayüzü.
daemontools Servis yönetim araçları. Loglamalar ve servis kontrolu için kullanılır.
vpopmail Birden fazla domain için sanal domain desteği sağlar.
vqadmin Web tabanlı vpopmail yönetim konsolu.
qmailadmin Web tabanlı domain yönetim konsolu. (Tek bir domainin yönetimi)
spamassassin Perl tabanlı Spam Filtresi
clamav Anti Virüs yazılımı
simscan Clamav, Spamassasin ile birlikte çalışabilen içerik filtreleyici.
maildrop Maillerin içeriğini tarayarak içerik filtrelemesi yapar.
qmailmrtg E-Posta trafiğinin grafiksel verilerini sunar.
isoqlog E-posta trafiğinin istatistiksel verilerini sunar.
ezmlm Mail list yöneticisi
courier-imap Imap Sunucusu
courier-authlib Couriter otorizasyon kütüphanesi.
autorespond Otomatik cevaplama fasilitesi. (Out of office)
squirrelmail Php tabanlı Webmail uygulaması
control-panel-toaster Qmail Toaster yönetim paketi.

Sisteme nelerin yükleneceğine göz attıktan sonra, kurulum adımlarına başlayabiliriz.

Qmail Toster’ı yükleyebilmek için öncesinde gerekli paketlerin sisteminizde kurulu olduğuna emin olmanız ve eksik olan paketleri sisteminize kurmanız gerekiyor. Gereksinim bölümünde nelerin kurulu olması gerektiği ve kurulumları anlatılmaktadır.


GEREKSİNİMLER


Eğer yeni bir CentOS kurulumu yaparak işe başlayacaksanız, kurulum adımlarından biri olan yazılım paketlerinin seçilmesi kısmında aşağıdaki grupları seçin. Eğer hali hazırda bir CentOS üzerinde qmail kurulumu yapacaksanız yüklü paketlerin kontrolu ve eksiklerin yum ile kurulumlarını anlatan bir sonraki başlığa geçebilirsiniz.

Yeni CentOS kurulumunda

Software Packages adımında aşağıdaki paket gruplarını seçin.

"Server Configuration Tools"
"Web Server"(Optional Packages kısmından "php-mysql" paketini de seçin.)
"DNS Name Server"(Networkünüzde bir dns server bulunuyorsa kurmanıza gerek yok.)
"FTP Server"
"MySQL Database" (Optional Packages kısmından "mysql-bench" paketini de seçin.)
"Development Tools" (Optional Packages kısmından "expect" paketini de seçin.)
"Administration Tools"
"System Tools" (Optional Packages butonuna tıklayıp "mrtg" paketini de seçin.)

CentOS daha önceden kurulmuş ise

Daha önceden kurmuş olduğunuz bir CentOS üzerinde yukarıda bahsi geçen paketlerin kurulu olup olmadığını kontrol edin:

[root@cntvm ~]# yum grouplist

Yukarıdaki komutun çıktısında Installed Groups bölümünde gerekli olan grupların kurulu olduğuna emin olun. Bendeki çıktı aşağıdaki gibi.

Not1: Benim zaten bir DNS sunucum olduğundan dolayı DNS Server grubunu bu makine üzerine kurmadım. Dolayısı ile listede DNS Server grubu görünmüyor.

Not2: Gerekli grupların dışında görünen diper gruplar ise default kurulumda gelmektedir.

Installed Groups:
   MySQL Database
   System Tools
   Legacy Network Server
   Dialup Networking Support
   FTP Server
   Network Servers
   Legacy Software Development
   Legacy Software Support
   Web Server
   Windows File Server
   Mail Server
   Server Configuration Tools
   Administration Tools

Paket gruplarından eksik olanlar varsa aşağıdaki örnek komutta görüldüğü gibi kurun.

# yum -y groupinstall "MySQL Database"

Eksik grupları kurduktan sonra, gruba dahil olan ama grubun kurulumu sırasında opsiyonel olduklarından dolayı default olarak kurulmayan diğer paketleri kurun.

# yum install php-mysql mysql-bench expect mrtg

Paket kurulumları bittikten sonraki adım, CentOS’un Security Level ve SELinux özelliklerini devre dışı bırakmaktır. Bunun için sisteme setup komutunu verin ve açılan ekranda Firewall Configuration‘ı seçin. Bu kısımda, Security Level ve SELinux’u disabled konumunu getirin.

Gereksinimler ile ilgili bölüm bu kadar.

HAZIRLIK


Şimdiki aşama, paketlerin download edilmesi ve sistemin kuruluma hazır hale getirilmesi için gerekli scriptlerin çalıştırılmasından ibaret.

Sisteme root olarak bağlanın ve paketlerin download edileceği dizini oluşturun.

[root@cntvm ~]# mkdir -p /usr/src/qtms-install

Şimdi bu dizine geçelim ve ilgili scriptleri download edip kurmaya başlayalım.

[root@cntvm ~]# cd /usr/src/qtms-install

cnt50-deps.sh

İlk olarak cnt50-deps.sh isimli scriptin çalıştırılması gerekiyor.
Bu script öncelikli olarak sistem kurulumunda default olarak yüklenen sendmail’i uninstall ediyor. Daha sonrasında ise kurulum için gerekli diğer paketlerin kurulumunu yapıyor.
Aşağıdaki gibi download edebilir ve çalıştırabilirsiniz.

Not: Kurulumu yaptığım CentOS 32bit olarak çalıştığı için ilgili scriptler 32bit CentOS için yazılmışlardır. Eğer siz 64bit kullanıyorsanız, ilgili dosyaların 64bit versiyonlarını http://www.qmailtoaster.org/centos/cnt5064/ adresinden indirmeniz gerekiyor.

[root@cntvm]# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-deps.sh
# sh cnt50-deps.sh

cnt50-perl.sh

İkinci olarak cnt50-perl.sh isimli scripti indirip çalıştırmak gerekiyor. Spamassassin için gerekli olan perl modüllerinin sisteme yüklenmesini sağlıyor. Aşağıdaki şekilde download edip çalıştırabilirsiniz.

Not: Scripti çalıştırdığınız zaman manuel kurulum yapıp yapmak istemediğinizi soran bir promt ile karşılaşacaksınız. Buna NO diyin. Ayrıca, sistem kurulum ile ilgili olarak bir kaç soru daha soracak, kısaca enter’a basarak, default kurulumu seçin.

# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-perl.sh
[root@cntvm]# sh cnt50-perl.sh

cnt50-svcs.sh & firewall.sh

Şimdiki aşama, iki farklı script indirip çalıştırarak hazırlığı tamamlamaktan ibaret. Ancak iki scriptte de gerekli değişiklikleri yapmak gerekiyor. Önce download edin.

[root@cntvm]# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-svcs.sh
# wget http://www.qmailtoaster.com/centos/cnt50/firewall.sh

İlk script olan cnt50-svcs.sh, temel olarak gereksiz servisleri durdurup gereklileri start ediyor, inittab ve php.ini dosyasını düzenliyor, mysql’in root şifresini set ediyor, (ki ilk kurulumda root şifresi boş olarak gelir) sonrasında qmail’in sanal domain uygulamasını gerçekleştiren vpopmail add-on’u için vpopmail isimli bir database oluşturup gerekli düzenlemeleri yapıyor; firewall.sh ise iptables’a gerekli kuralları giriyor.

Dosyaları download ettiğinize göre editlemeye başlayabilirsiniz.

Öncelikle, cnt50-svcs.sh dosyasını açın burada yapılması gereken iki değişiklik bulunuyor.
Birincisi dosyanın # Set mysql password kısmında bulunan, Mysql Serverın root passwordunun belirleneceği alanı düzenlemek.

Dosya içerisinde aşağıdaki bölümü bulun ve MYSQL_ROOT_PASSWORD ibaresini silerek yerine mysql’iniz için belirleyeceğiniz root şifresini girin.
MYSQLPW=YOUR_MYSQL_ROOT_PASSWORD

İkinici aşama ise, vpopmail için oluşturulacak database’e erişecek olan kullanıcıya ait passwordu belirlemek.
Dosya içerisinde aşağıdaki satırı bulun.
echo “GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY ‘SsEeCcRrEeTt’” | mysql -uroot -p$MYSQLPW

Normalde, bir sonraki adım olan firewall kurallarında mysql’e dışarıdan erişim kapatılacak ancak siz gene de vpopmail db’sine erişecek kullanıcıya ait şifreyi öntanımlı olarak bırakmak istemeyebilirsiniz. Bu nedenle yukarıdaki satırda geçenSsEeCcRrEeTt ibaresini belirlediğiniz şifre ile değiştirin.
Not: Eğer, default passwordu değiştirirseniz, kurulum bittikten sonra, /home/vpopmail/etc/ altında bulunan vpopmail.mysql isimli dosyaya da belirlediğiniz passwordü girmeniz gerekir. Aksi taktirde vpopmail database’e login olamaz.

cnt50-svcs.sh dosyasındaki düzenlemeler bundan ibaret.

Şimdi firewall.sh dosyasını editleyip #Set your IP addres bölümünü bulun ve YOUR_IP_ADDRESS kısmına kendi ip adresinizi yazın. Burda, firewall kurallarının sisteme uygulanması ile ilgili olarak dikkat edilmesi gereken bir konu var. Eğer bulunduğunuz ip networkü 192.168.0.0 ya da 10.0.0.0 gibi iç networkler için ayrılmış olan ip networklerinden biriyse firewall.sh scriptinin çalıştırılmasından sonra sunucu ile bağlantınız kesilebilir. Bu nedenle, firewall.sh dosyasının içerisindeki “## Drop outside packets with local addresses – anti-spoofing measure” satırının altında bulunan kurallardan, kendi ip networkünüzü işaret eden satırı silmeniz gerekiyor.

Örnek olması açısından 192.168.0.0/16 networkü için ilgili satır şu şekilde:
iptables -A INPUT -s 192.168.0.0/16 -i ! lo -j DROP

Not: Halihazırda bir firewall’unuz varsa, o durumda Qmail Sunucusunun üzerinde iptables çalıştırmanıza gerek olmayabilir. Bu durumda cnt50-svcs.sh dosyasının son satırındaki sh firewall.sh satırını silere firewall kurallarının sisteme eklenmesini engelleyebilirsiniz.

cnt50-svcs.sh scritpini aşağıdaki gibi çalıştırdığınız zaman bahsettiğim işlemler gerçekleşecektir. Bu script son işlem adımı olarak firewall ile ilgili scripti de çalıştırdığı için sizin ayrıca firewall.sh dosyasını çalıştırmanıza gerek yoktur.

[root@cntvm]# sh cnt50-svcs.sh

Tüm scriptleri download edip çalıştırdıktan sonra sistemde yüklü tüm paketleri update edin.

[root@cntvm]# yum -y update

Update işlemi bittikten sonra sistemi restart etmek gerekiyor.

[root@cntvm]# reboot

Sistem yeniden başlatıldıktan sonra qmail toaster’in kurulumuna geçebilirsiniz.

KURULUM


Kurulum işlemi de yine scriptler vasıtası ile gerekli paketlerin download edilmesi ve rpm’e dönüştürülerek sisteme kurulmasından ibarettir.

Hazırlık sırasında oluşturduğumuz kurulum dizinine geçin ve gerekli olan paketleri indirecek olan current-download-script.sh dosyasını download ederek çalıştırın.

# cd /usr/src/qtms-install/
# wget http://www.qmailtoaster.com/info/current-download-script.sh
# sh current-download-script.sh

Yukarıdaki işlem adımlarını yaptığınız zaman gerekli olan tüm paketler sisteminize download edilmiş olacaktır. Şimdi kuruluma geçebiliriz.

Sistem indirilen paketlereden rpm dosyaları oluşturarak yükleyecek olan scriptin adı, cnt50-install.script.sh dır. Bu scripti indirin.

# wget http://www.qmailtoaster.com/centos/cnt50/cnt50-install-script.sh

Daha sonra çalıştırın. Scripti çalıştırdığınızda adım adım kurulacak paketler görüntülenecek ve sistem sizen onay isteyecektir. Enter’a basıp ilerleyin. Bu şekilde default yanıt olan evet’i seçmiş olursunuz. Bunun dışında eğer kurulacağı söylenen paketi yüklemek istemiyorsanız s tuşuna basarak skip edebilir ve ilgili paketi atlayarak kuruluma devam edebilirsiniz. No demeniz durumunda ise kurulum sonlandırılacaktır.

[root@cntvm]# sh cnt50-install-script.sh

Yukarıdaki komutu vererek işlem adımlarını gerçekleştirdiğiniz zaman qmail toaster ile ilgili tüm rpm paketleri sisteminize yüklenmiş olacaktır.Bu şekilde kurulumu gerçekleştirmiş olacaksınız.

Bilgi olması açısından bu scriptin ne yaptığına biraz değinmek istiyorum. Script aslen, bir önceki script vasıtası ile download edilmiş olan source rpm paketlerini sisteme yüklüyor ve bu kaynak kodları kullanarak her bir qmail bileşeni için rpm paketleri üretip sistem yüklüyor. Bu şekilde qmail sunucunuz tamamen rpm tabanlı bir kuruluma sahip oluyor. Kurulumların rpm olmasından dolayı, update, uninstall vs. gibi işlemler de çok basitleşmiş oluyor. Herhangi bir bileşene ait update paketi çıktığı zaman yapmanız gereken tek şey ilgili paketi download ederek rpm -Uvh paket-adı komutu ile update etmek oluyor. Bu anlamda oldukça zaman kazandırıcı bir durum.

Neyse, kurulumlar bittikten sonra yapılandırma ve yönetimsel konular bölümüne geçelim.

KURULUMUN TAMAMLANMASI


Kurulumların ardından sistemin restart edilmesinden sonra otomatik olarak çalıştırılması gereken servislerin durumunu kontrol edelim.

Sisteme setup komutunu vererek Text Mode Setup Utility aracını çalıştırın. Açılan grafiksel ekran da işletim sistemi ile ilgili temel işlemlerin yapılabildiği bu grafiksel ekrandan System services bölümüne geçin ve aşağıdaki servislerin seçili olduğuna emin olun.

acpid
anacron
atd
autofs
cpuspeed
crond
freshclam
haldaemon
httpd
iptables
kudzu
messagebus
mysqld
network
ntpd
qmail
smartd
sshd
syslog
xinet
irqbalance (eğer dual işlemciniz varsa)
xfs (eğer x windows kullanıyorsanız)

Not: xinetd sisteminizde yüklü olmayabilir. Xinet, courier tarafından gereksinim duyulan bir servis olduğundan dolayı ayrıca yüklemenizi tavsiye ederim. yum -y install xinetd komutu ile kurabilirsiniz.

Açılışta başlatılması gereken servislerin kontrolünü yaptıktan sonra, herşeyin yolunda gittiğinden emin olmak için sisteminizi bir kez daha restart edin.

# reboot

Sistem açıldıktan sonra qmail servislerinin durumunu kontrol edelim. Normal şartlarda sorunsuz bir kurulumun ve restart’ın ardından qmailctl stat komutunu verdiğiniz zaman aşağıdakine benzer bir çıktı almanız gerekir.

# qmailctl stat
authlib: up (pid 1945) 124 seconds
clamd: up (pid 1926) 125 seconds
imap4: up (pid 1941) 125 seconds
imap4-ssl: up (pid 1938) 125 seconds
pop3: up (pid 1939) 125 seconds
pop3-ssl: up (pid 1942) 124 seconds
send: up (pid 1937) 125 seconds
smtp: up (pid 1940) 125 seconds
spamd: up (pid 1920) 125 seconds
submission: up (pid 1943) 124 seconds
authlib/log: up (pid 1925) 125 seconds
clamd/log: up (pid 1923) 125 seconds
imap4/log: up (pid 1919) 125 seconds
imap4-ssl/log: up (pid 1917) 125 seconds
pop3/log: up (pid 1924) 125 seconds
pop3-ssl/log: up (pid 1916) 125 seconds
send/log: up (pid 1915) 125 seconds
smtp/log: up (pid 1918) 125 seconds
spamd/log: up (pid 1921) 125 seconds
submission/log: up (pid 1922) 125 seconds

Görüldüğü üzere qmail’e ait tüm servisler (up) görünüyor.

Şimdi sisteme yeni bir domain ve kullanıcı ekleyelim. Aşağıdaki adımları uygulayarak bu işlemi gerçekleştirebilirsiniz.

# cd ~vpopmail/bin/
# ./vadddomain domain-ismi.com sifre
# ./vadduser user@domain-ismi.com sifre

Qmail Toaster’in sunucu yönetimi ile ilgili güzel bir web tabanlı paneli bulunuyor. Bu panele erişebilmek için öncelikle php ayarlarında bir defaya mahsus küçük bir değişiklik yapmak gerekiyor. Sonra bu ayarı geri alacağız.

/etc dizini altındaki php.ini dosyasını editleyin ve register_globals değerini On yapın ve service httpd restart komutu ile apache’yi restart edin. (Bu ayar default olarak Off durumdadır.) Daha sonra bir web browser kullanarak aşağıdaki şekilde panele erişim sağlayabilirsiniz.

http://server-ip-adresi/admin-toaster/
Kullanıcı: admin
Şifre: toaster

Yönetim konsoluna bağlandıktan sonra şifrenizi değiştirin.

Bu konsolda kısaca, domain ve kullanıcı yönetimi için kullanılan vqadmin ve (tek bir domain için yönetim sağlayan) qmailadmin, log analizi yaparak e-posta trafiğinin istatistiğini tutan isoqlog ve gene log analizi yaparak e-posta trafiğini grafiksel olarak gösteren qmailmrtg sayfalarını görüntüleyebilirsiniz.

Not: Eğer isoqlog sayfasına girdiğiniz zaman hata alıyorsanız aşağıdaki komutu çalıştırarak tekrar giriş yapmanız gerekir.

[root@cntvm bin]# sh /usr/share/toaster/isoqlog/bin/cron.sh

Bu komut /etc/isoqlog dizini altında bulunan isoqlog.domains dosyasına sisteme eklenmiş olan domainlerin adının eklenmesini sağlar ve ilgili domainler için isoqlog’un analiz yaparak aktivitenin raporlanacağı html sayfalarını oluşturur. Isoqlog’a ilk erişmeye çalıştığınız zaman almanızın muhtemel olduğu hata da bu html dosyalarının oluşturulmamış olmasından kaynaklanır.

Yeni bir domain açtığınız zaman, bu domain isminin ilgili dosyaya eklenmesi ve html dosyalarının periyodik olarak oluşturulması için aşağıdaki cron satırını sisteme ekleyebilirsiniz.

59 * * * * /usr/share/toaster/isoqlog/bin/cron.sh

Böylece saat başı script çalıştırılacak ve domain update işlemi yapılacaktır.

Yönetim konsoluna göz attıktan ve isoqlog ile ilgili ayarları yaptıktan sonra, son olarak php.ini içerisinde On durumuna getirdiğimiz register_globals değerini Off duruma getirin ve service httpd restart komutu ile apacheyi yeniden başlatın.

Kurulum ve yapılandırma ile ilgili adımlar bu kadar.

YAPILANDIRMA


Artık, qmail ve bileşenleri ile ilgili temel ayar dosyalarına göz atabiliriz.

Qmail, bir çok yapılandırma dosyası ile gelir ve bu ayarlara ait hemen her yapılandırma dosyası /var/qmail/control dizininde bulunur. Asağıdaki tabloda Qmail’in ve qmail toaster ile kurulan bileşenlere ait yapılandırma dosyaları görülmektedir. Bu dosyaların detayları aşağıda ayrıca verilmiştir.

badloadertypes İstenmeyen loader type’ların burada belirlenir.
badmailfrom İstenmeyen gönderici adreslerininbu dosyada belirlenir.
badmailto İstenmeyen alıcı adresleri tanımlanır.
badmimetypes İstenmeyen MIME Type’lar belirlenir.
blacklists RBL kontrolunun yapılacağı BlackList adresleri burada tanımlanır.
clientcert.pem servercert.pem dosyasına linklidir. (bkz: servercert.pem)
servercert.pem TLS bağlantıları için sertifika ve private key’in bulunduğu dosya.
concurrencyincoming Eş zamanlı gelen smtp bağlantı sayısının belirlendiği dosya.
concurrencyremote Eş zamanlı gönderilebilecek posta adedinin belirlendiği dosya.
databytes Bir e-postanın olabileceği maksimum boyut değeri.
defaultdelivery Mailbox yapısının belirlendiği dosya.
defaultdomain Sunucunun ön tanımlı alan adının belirlendiği dosya.
defaulthost Ön tanımlı sunucu host adı.
dh1024.pem TLS bağlantıları için 1024 bit’lik key
dh512.pem TSL için 512 bit’lik key.
domainkeys/ Domain anahtarlarının konumlandığı dizin. (Domainkey’e değinmeyeceğim.)
locals Sunucuya ait local host isimlerinin tanımlandığı dosya.
logcount Multilog için log rotate değeri.
logsize Current isimli log dosyasının ulaşabileceği maksimum değer.
me Sunucunun tam etki alan adı (FQDN)
queuelifetime Maillerin kuyrukra bekleme süresi.
rcpthosts Sunucunun kabul edeceği maillere ait domainlerin listelendiği dosya.
rsa512.pem TLS bağlantısı için 512 bit RSA key
simcontrol ClamAv, Spamassasin ve Attachment block için simscan conf dosyası.
simcontrol.cdb Simscan db’si.
simversions.cdb Simscan versiyon db’si
smtpgreeting Sunucunun smtp bağlantıları için selamlama mesajı
smtproutes Maillerin başka posta sunucusuna yönlendirilmesi için kullanılan dosya.
spfbehavior Spf check level’ının belirtildiği dosya.
tlsclientciphers OpenSSL client cipher stringleri
tlsserverciphers OpenSSL server cipher stringleri
virtualdomains Sisteme eklenen sanal domainler.

Sunucunun özelleştirilmesi ile ilgili yapılabilecek bu control dosyalarını detayları şöyledir.

badloadertypes
Engellenmesi istenen base64 encoded Loader tipleri bu dosya içerisinde belirtebilirsiniz. Böylece, qmail-smtpd gelen maillerde istenmeyen bir loader type belirlemesi durumunda ilgili postayı reject edecektir. Ayrıca, dizinde badloadertypes.cdb isimli bir database dosyası bulunur. badloadretypes dosyasında belirtilmiş satırların bu db dosyasına işlenmiş olması gerekiyor. Dosyaya herhangi bir loader type ismi girdiğiniz zamam qmailctl cdb komutu ile bu işlemi gerçekleştirmeniz gerekir.

badmailfrom
İsminden de anlaşılacağı üzere, sunucunuza e-posta göndermesine isim vermediğiniz domainleri ya da e-posta adreslerini bu dosyaya ekleyebilirsiniz. Bu dosyaya ekli satırlar qmail-smtpd tarafından kontrol edilir ve uyan bir mail varsa reject edilir. Örneğin dosyaya @domain.com yazdığınız da, domain.com uzantılı e-mail adreslerinden sunucunuza mail atılamaz. domain adları ya da e-posta adresleri satır satır yazılmalıdır.

badmailto
Format ve çalışma mantığı bakımından badmailfrom ile aynıdır. Ancak alıcı e-posta ya da domainlerine yasaklama yapmak için kullanılır.

badmimetypes
e-posta’ların mime type’larına göre filtrelenebilmesini sağlar. İstenmeyen mime type’lar bu dosya da belirlenerek, içeriğinde bu mime tiplerinin bulunduğu maillerin qmail-smtpd tarafından reject edilmesi sağlanır. Bu şekilde attachment filtrelemesi de yapabilirsiniz. Aynı dizinde, bu dosyanın bilgilerinin tutulduğu badmimetypes.cdb isimli bir db dosyası bulunur. Dosya içerisinde yapılan ekleme çıkarmalardan sonra gene qmailctl cdb komutu ile değişikliklerin db’ye işlenmesi sağlanmalıdır.

blacklists
Smtp bağlantılarının kurulduğu ip’lerin taranacağı black listleri bu dosyada belirleyebilirsiniz. Ön tanımlı olarak dosyanın içeriği şu şekildedir; -r zen.spamhaus.org ve zen.spamhaus.org black list’i kullanılmaktadır; Birden fazla black list adresi girmek için ard arda -r blacklist1-domain -r blacklist2-domain şeklinde bir giriş yapılabilir. Dosyanın tek bir satırdan ibaret olması gerekmektedir. Doğru bir örnek aşağıdaki gibidir.

-r zen.spamhaus.org -r list.dsbl.org -r combined.njabl.org

Belli ip adreslerinden yapılan bağlantılar için RBL check işlemi yapmak istememniz durumunda, /etc/tcprules.d/tcp.smtp dosyasını editleyerek aşağıdakine benzer bir satır girebilirsiniz.

192.168.1.:allow,RELAYCLIENT="",DKSIGN="/var/qmail/control/domainkeys/%/private",RBLSMTPD=""

Yukardaki satır 192.168.1.0/24 ip networkünden kurulacak smtp bağlantıları için rblcheck işleminin yapılmamasını söylemektedir.

tcp.smtp dosyanızı editledikten sonra, değişikliklerin aktif olması için qmailctl cdb komutunu çalıştırmanız ve /etc/tcprules.d/ dizini altında bulunan tcp.smtp.cdb isimli db dosyasının güncellenmesini sağlamanız gerekmektedir.

clientcert.pem
Bu dosya, TLS bağlantılarında kullanılan SSL sertifikasını içermektedir ve aslında servercert.pem isimli dosyayı gösteren sembolik bir linktir. Kurulum sırasında otomatik olarak oluşturulmuştur.

servercert.pem
Encrypted TLS bağlantılarında client’a gönderilen SSL certifikasını içermektedir. İçerisinde hem sertifika hem de private key bulunur. Eğer bu dosya sunucuda bulunmazsa, TLS özelliği devre dışı bırakılır. Herhangi bir SSL sertifikası almanız durumunda, ilgili sertifikayı bu dosyaya ekleyebilirsiniz.

concurrencyincoming
Eş zamanlı olarak gelen maksimım smtp bağlantı adedinin belirlendiği dosyadır. Ön tanımlı olarak 100′dür. Yani sunucunuz aynı anda 100 adet smtp bağlantısına izin verir.

concurrencyremote
Eş zamanlı olarak giden maksimum smtp bağlantıları da bu dosya içerisinde belirlenmektedir. Qmail Toaster kurulumunda ön tanımlı değer 60′dır. Ancak paketin derlenmesi sırasında bu sayının maksimum 509 adede kadar çıkarılması için gerekli patch uygulanmıştır.

databytes
Bir e-postanın en fazla ne kadar büyük olabileceği bu dosyada tanımlanır. Ön tanımlı olarak 20Mbyte’tır.

defaultdelivery
Sunucunun mailbox tipini belirlemek üzere kullanılır. Genel geçer formak uzun zamandır maildir yapısı olduğundan dolayı qmail toaster da bu yapıyı kullanmaktadır. Kullanıcıların posta kutuları /home/vpopmail/domains///Maildir/ şeklinde tutulur. Kullanıcıya gelen mailler bu dizin altındaki new klasörüne konulur.

dh1024.pem
TLS bağlantıları için 1024 bitlik DH parametresi sunar.

dh512.pem
512′lik DH parametreleri

logcount
Qmail log dosyalarının maksimum kaç adet olabileceğinin belirlendiği dosyadır. Multilog bu değerden hareketle eski log dosyalarını siler. Qmail toaster bu değeri 100 olarak set etmektedir.

logsize
Bu dosyada ise log dosyalarının büyüklüklerinin maksimum değerleri belirlenmektedir. Ön tanımlı olarak yaklaşık 1Mb olarak set edilir.

queuelifetime
Qmail’in, gönderimi başarısız olan mailleri tekrar göndermeyi ne kadar süreyle deneyeceğini bu dosya içerisinden belirtebilirsiniz. Normalde bu değer 604800 saniye (bir hafta) olarak girilmiştir. Qmail Toaster bu değeri 86400 saniye (1 gün) olarak set ediyor. Eğer sunucunuz bir e-posta iletimi için uzaktaki ilgili smtp sunucusuna bağlanamazsa, maili bu değer süresince kuyruğunda tutar ve gönderimi periyodik aralıklarla tekrarlar. Süre sonunda mail gönderilememişse mailin göndericisine hata döndürerek durumu iletir.

rcpthosts
Bu dosya, sisteme eklenmiş olan tüm domainlerin bilgisini tutmaktadır. Sisteme herhangi bir domain eklendiğinde, domain ismi otomatik olarak bu dosyaya da eklenmektedir. Böylece qmail bu dosya içerisindeki domainlere gelen e-postaları kabul eder. Eğer dosyada adı geçmeyen bir domain’e ait bir adrese mail atılırsa qmail-smtpd ilgili maili reject eder. Sisteminizde açılmamış bir domaini bu dosyaya ekler ve bir mail atarsanız, qmail bu dosyadan hareketle gelen maili kabul edecek ancak üzerinde bu domaine ait herhangi bir kayıt bulunmadığından dolayı (domainin ilk MX kaydına bakarak) maili ana mail sunucuya iletecektir. Eğer ana mail sunucuya erişelemiyorsa queuelifetime süresince, 5′er dakikalik aralıklarla maili tekrar göndermeyi deneyecektir. Başarısız olursa maili gönderene bir hata mesaji yollayarak durumu bildirecektir.

rsa512.pem
TLS bağlantılar için kurulum sırasında oluşturulan 512 bit’lik bir RSA key.

simscan (simcontrol, simcontrol.cdb, simversion.cdv)
Simscan, vpopmail’i de geliştiren Inter7′nin yazdığı bir mail tarayıcı programıdır. Sunucuya bir mail geldiği zaman qmail-smtpd tarafından çalıştırılan simscan gelen dosyayı geçici bir alanda (qmail toaster ile kurulan paketlerden biri olan) ripemime isimli yazılımı kullanarak başlık, veri bölümü ve dosya eki olarak parçalara ayırarak içerik kontrolü yapar. Eğer mailin içerisinde engellenmesi belirtilen bir eklenti dosyası varsa oluşturduğu geçici dosyayı siler ve qmail-smtpd’ye maili reject edilmesini söyler. Ayrıca clamav süreci simscan’ın bir parçası olarak çalışmaktadır. Dolayısı ile simscan dizinindaki dosyalar clamav tarafından taranır ve sonuç bilgisi simscan tarafından alınır eğer mail virüs içeriyorsa qmail-smtpd’ye mailin reddedilmesini söyler. Bunun dışında, qmail toaster kurulumunda simscan spamassassin ile de birlikte çalışacak şekilde derlenmiştir. Bu nedenle gelen maillerin spamassassin tarafından yapılan analiz sonuçlarını da alarak spam olarak işaretlenmiş maillerin reddeilmesini sağlar.

Simscan ile ilgili tüm ayarlar simcontrol dosyası üzerinde yapılmaktadır. Dosyayı editlediğiniz zaman içeriğinin aşağıdaki gibi olduğunu görürsünüz.

:clam=yes,spam=yes,spam_hits=12,attach=.mp3:.src:.bat:.pif

Öntanımlı olarak oluşturulan bu dosya içeriğinde, maillerin clam ve spamassassin ile taranması, spam score’u 12 ve üstünde olan maillerin reddedilmesi belirtilmektedir. Ayrıca, engellenecek attachmentlar da burada belirtilmektedir.

Bu dosya içerisinde simscan’in farklı domain ya da kullanıcılar için nasıl davranacağını ayrı ayrı belirtebilirsiniz. Aşağıdaki örnek daha iyi kavramak için epey güzel.

postmaster@example.com:clam=yes,spam=no,attach=.txt:.com
example.com:clam=no,spam=yes,attach=.mp3
:clam=yes,spam=yes,spam_hits=5

Yukarıdaki satırların mealleri şöyle;

postmaster@example.com adresine atılacak mailler için virüs taraması yapılsım, spam kontrolu yapılmasın. Ayrıca, txt ve .com uzantılı dosyaların gönderimi yasaklansın.

example.com domaini altında bulunan kullanıcılar için (postmaster hariç) virüs kontrolü yapılmasın, spam kontrolü yapılsun, .mp3 uzantılı dosyalar kabul edilmesin.

Yukarıdaki iki satırda belirtilen user ve kullanıcıya atılmamış olan diğer tüm e-mailler için virus ve spam kontrolü yapılsın, spam score’u 5 olan mailler silinsin. attachment kontrolü yapılmasın.

simcontrol dosyasını özelleştirmek için yukarıdaki örnek takip edilebilir.

Simscan’in control dosyasından hariç olarak aynı dizinde, simcontrol.cdb ve simversion.cdb isimli iki dosya daha bulunmaktadır. Bunlardan birincisi kuralları ikincisi de simscan, clamav ve spamassassin’in versiyon bilgilerini tutan cdb dosyalarıdır. Kuralları ya da spamassassin ve ya clamav’ı update ederseniz gene qmailctl cdb komutunu çalıştırarak değişikliklerin db dosyalarına kaydedilmesini sağlamanız gerekir.

smtpgreeting
Bu dosyada, sunucuta smtp bağlantısı sağlandığı zaman gönderilen karşılama mesajı bulunmaktadır. Farklı bir karşılama mesajı döndürmek istiyorsanız içeriğini değiştirebilirsiniz.

smtproutes

smtp routes dosyası gelen e-postaların farklı mail sunuculara yönlendirilmesini sağlayan bir dosyadır. Örneğin, bir domaininize gelen mailer için qmail toaster’i sadece spam ve virus taramasından geçirilmek üzere kullanmak isteyebilirsiniz. Bu durumda, smtproutes dosyasına domain_adı:ip_adresi şeklinde bir satır girebilirsiniz. Gelen mailler tarandıktan sonra ilgili ip adresine yönlendirilirler. (domaini rcpthosts dosyasına yazmanız da gerekir.) Bunun dışında birden fazla MX kaydı olan domainlere gidecek maillerin hangi sunucuya gideceğini de aynı şekilde ayarlayabilirsiniz.

Ayrıca, qmail-remote-auth patch’i toaster kurulumunda yüklenmiş olduğundan dolayı yönlendireceğiniz mailler için aşağıdaki gibi bir satır ile auth işlemi de yapabilirsiniz:

domain.com:yönlenecek_ip_adresi kullanıcıadı şifre

virtualdomains

Bu dosyaya eklemeler vpopmail tarafından otomatik olarak yapılır ve qmail-send’in bu domainleri gelen maillere local domain olarak davranması sağlanır. (Konu biraz havada kaldı ama bu dosyayı editlemenize pek gerek yok.)

Qmail’in toaster ile birlikte kurulan önemli yapılandırma dosyaları bunlardan ibaret. Sunucunuzda özelleştirme yapmak istemeniz durumunda işinize yarayacak dosyalar hemen hemen bunlardır.

Yapılandırma ile ilgili olarak detaylı bilgiye http://wiki.qmailtoaster.com/index.php/Configuration adresinden ulaşabilirsiniz.

Son olarak, qmail toaster için güzel bir eklenti olan qmailtoaster-plus isimli paketten bahsetmek istiyorum.
Bu paket, görsel bir menü sunarak, qmail-toaster’in yönetimini epey kolaylaştıran özellikler sunuyor ve ayrıca alternatif webmail arayüzü, filtreleme yazılımı vs. gibi ek paketleri kolayca sisteme entegre edebilmenizi sağlıyor.

Mesela, içerisinde qtp-newmodel denilen bir update scripti bulunuyor ki bu çok işinize yarayacaktır. Bu aracı komut satırında qtp-newmodel diyerek çalıştırdığınız zaman sistemde kurulu paketlerin güncel versiyonlarını kontrol ediyor ve yeni versiyonlar olması durumunda update işlemi yapıyor. Özellikle clamav sürekli engine güncellemesi yaptığı için çok qtp-newmodel epey işinize yarayacaktır.

qtp’yi kurmak için aşağıdaki adımları takip edebilirsiniz.

Öncelikle, qtp’nin rpm’lerine ulaşabileceğiniz yum deposunu kurun.

[root@cntvm updates]#  rpm -Uvh http://qtp.qmailtoaster.com/trac/downloads/1

Daha sonra bu depoda bulunan qtp’yi yükleyin.

[root@cntvm updates]# yum install qmailtoaster-plus

Kurulum tamamlandıktan sonra qtp-menu komutu ile işlem menüsünü çalıştırabilirsiniz. qtp-menu kullanılarak sistemespamdyke gibi gelişmiş ek spam filteleri kolayca eklenebiliyor. Bu nedenle kesinlikle tavsiye ettiğim güzel bir uygulamadır.

Detaylı bilgi için http://qtp.qmailtoaster.com/trac adresine bakabilirsiniz.

Kurulum ve yapılandırma ile ilgili hemen herşey bu kadar. Siz de bir kurulum yaparak biraz mıncıklayabilir ve detaylara inebilirsiniz. Gerçekten toaster ile herşey epey kolaylaşıyor.

CentOS harici bir dağıtım kullanıyorsanız http://wiki.qmailtoaster.com/index.php adresinde bir çok dağıtıma ait kurulum dökümanı bulunuyor. Bakmanızı tavsite ederim.

You may also like...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir