EnderUnix Software Development Team                     

qmail Kitabi
Qmail kitabi

qmail
(vpopmail+qmailadmin+courier-imap+sqwebmail+ezmlm+autoresponder+antivirus)
KURULUMU

Versiyon 3

Giris

11 Temmuz 2005

   Bu  dokumandaki bilgiler guvenli ve performanli bir sistem kurmak isteyen sistem yoneticilerine yonelik olacakir.Bu dokumanin en son versiyonuna http://www.enderunix.org/docs/qmail.html adresinden erisebilirsiniz.

qmail Nedir ?

   qmail, UNIX ve UNIX benzeri(*BSD, Linux) isletim sistemleri icin bir MTA(Mail Transfer Agent) dir. qmail, sendmail ve postfix e bir alternatifdir. qmail kullanmaniz icin bir cok neden var:

     Guvenli(Security): Daha az root olarak calisan veya setuid olarak calisan program var.
(qmail in yazari Mart 1997 yilinda qmail in en son versiyonunda guvenlik acigi bulana $500 vaad etmektedir. bu zamana kadar bu parayi kimse alamadi :) http://cr.yp.to/qmail/guarantee.html)

     Performansli: Ayni anda yuzlerce mail gonderebilir. Her bir is (mail alma, yerel sisteme mail gonderme, uzaktaki sisteme mail gonderme,smtp servisini calistirma ...) icin ayri ayri programlar calismaktadir. Sendmail de ise tum bu isleri yapan sadece koskaca bir sendmail programi bulunmaktadir.

     Basit: qmail diger MTA lara gore daha az  bir koda sahiptir ve  sendmail.cf gibi cok karmakarisik bir konfigurasyon dosyasi yoktur.

     Guvenilir(Reliable): qmail maille ilgili herhangi bir is ( mail gonderme , alma , kuyruga atma ...) yapmadan once maili diske kayit ettiksen sonra mail gonderen kisiye mail iniz kabul edildi cevabini donerr. Sistemde bir fiziksel sorun olsada (elektrik kesintisi falan ..) mail kayip olmaz.

    Ozellestirilebilir: qmail icin yazilmis bir cok programlar vardir. Bu programlar sayesinde qmail kulllanimi daha kolay hale gelmektedir. Ornegin vpopmail programi sayesinde kullanicilarin:

- adi soyadi
- kullanici adi
- sifresi
- mail  kotasi

gibi bilgileri bir veritabaninda (cdb,MySQL,Oracle,Interbase,Informix ) tutularak cok buyuk bir kolaylik saglamaktadir ve cok kolay bir sekilde sanal alan (virtual domain) ve sanal kullanicilar (virtual users) acilabilmektedir.

  Ozellikte Internet Servis Saglayicilari (ISS) icin mukemmel bir firsattir. Cunku her bir kullanici icin sistem kullanici (/etc/passswd deki kullanicilar) acmak yerine veritabanindaki tabloda kullanici acilmaktadir. Bu sayede isler hem daha kolay hale geliyor, hemde kullanicilardan sisteme gelecebilecek saldirilar daha aza iniyor.

Genel Notlar:

     Bu dokumanda:

kurulumu   anlatacagim. Bu Kurulum plani su sekildedir:
Once normal bir sekilde qmail kurulacak, daha sonra 2 turlu kuruluma devam edecegim.
1. Tur Kurulum:
  Hic Virtual domaine (sanal alan) sahip olmadigimiz kabul edilecek. Kullanicilarin sistem kullanici olarak kalmasini istiyoruz.. (/etc/passwd) . Kullanicilarin sisteme erisip telnet, ftp, www gibi servisleride kullanmasini da goze alarak kurulum anlatilacaktir. Eger
sunucuyu sadece mail sunucu olarak kullanacaksaniz kesinlikle 2.tur kurulumu yapmanizi tavsiye ederim.

2. Tur Kurulum:
   Tum Kullanicilar sanal(virtual)olacaktir. Kullanicilarin sisteme hic bir sekilde erismesini istemiyoruz (ISS ler icin cok ideal) ve tum bilgileri mysql veya cdb(http://cr.yp.to/cdb.html) veritabaninda  tutulacaktir(oracle,  informix. kullanabilirsiniz). Bunun icin mysql veya cdb kurulu olması lazim ve vpopmail kullanacagiz. Istedigimiz kadar virtual domain olusturabiliriz.
Burada mysql mi yoksa cdb mi kullanicaginiza karar vermeniz lazim. Her ikisinde kendine gore avantajlari ve dezavantajlari vardir.

MySQL:
Avantajlari: PHP veya Perl gibi programlar sayesinde web uzerinden cesitli uygulama programlar basitce yazilabilir(online kullanicinin kendi sifresini degistirmesi gibi..).

Dezavantajlari: Mysql lin herhangi bir sebepden dolayi durmasi sonucu pop3 den sifre dogrulamasi yapilamama ve mail sunucunun gecici olarakta mail alamamasi durumlar olabilir.

cdb:

Avantajlari: Calismasi icin mysql gibi bir port ta ihtiyaci yok. cok hizli ve performansli.

Dezavantajlari: PHP veya Perl de web tabanli uygulama yazmak icin dosyada edit islemleri ile ugrasmak gerekir.

Not: Bu dokumani tamamiyla okumadan qmail i kurmaya baslamayin. Cunku ilerleyen sayfalarda istediginiz bir sekilde sistem kurmak icin qmailin veya paketlerin kurulumun yontemini degistirmeniz veya qmail e patch yapmaniz gerekebilir.

qmail kurulumu:

         http://www.qmail.org/  veya Turkiye yansisindan  http://qmail.enderunix.org/top.html    en son qmail versiyonunu indirin(su anki versiyonu 1.03)

qmail kurulumuna baslamadan once qmail  icin gerekli kullanicilari ekleyelim
1-Eger FreeBSD (http://www.freebsd.org/ )
su komutlari verin

# pw groupadd nofiles

# pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
# pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
# pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
# pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent

 # pw groupadd qmail
# pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
# pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
# pw useradd qmails -g qmail -d /var/qmail -s /nonexistent


Eger Linux kullaniyorsaniz

# groupadd nofiles

# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
#groupadd qmail
#useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails


Solaris kullaniyorsaniz

# groupadd nofiles

# useradd -g nofiles -m -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -m -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -m -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -m -d /var/qmail -s /bin/false qmailp
#groupadd qmail
#useradd -g qmail -m -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -m -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -m -d /var/qmail -s /bin/false qmails

simdi qmaili kurmaya baslayabiliriz. unutmayin yukaridaki kullanicilari acmazsaniz qmail kurulmayacaktir.
# mkdir /var/qmail
#tar -zxvf qmail-1.03.tar.gz
#cd qmail-1.03
# make setup check 

 daha sonra /var/qmail/control dizini altında gerekli qmail konfigurasyon dosyalarini olusturmak icin

#./config

komutunu verin, qmail kurdugunuz sunucunun dogru bir DNS kaydi olmasi lazimdir.(DNS hakkinda bilginiz yoksa http://www.enderunix.org/docs/dns.html(Bind)   http://www.enderunix.org/docs/djbdns_installiation.htm(DjbDNS) adresinden DNS ile ilgili dokumanlari okuyabilirsiniz. Dns sunucu olarak djbdns kullanmanizi tavsiye ederim.
Mail sunucunun IP sinin reverse(ters) DNS kaydi olmazsa qmail calismaz.
Herhangi bir sorundan dolayi qmail dns bilgilerinize gecici olarak erisemezse asagidaki komutu verin.

#./config-fast mail.domain.com

mail.domain.com yerine sizin mail sunucunuzun adini yaziniz.
kurulumun tamamlanmasi icin bazi alias larin olusturulmasi lazim.
postmaster: mail yoneticisini
mailer-daemon: bazi geri donen mesajlarin alicisi
root: sistemdeki root kullanicisi.
root a, mailer-daemon a ve postmaster a gelen maileri [email protected] a yonlendirmek icin asagidaki komutlari vericez.([email protected] yerine siz kendi email adresinizi kullaniniz, bu dokumani okuyan
bazilari kendi mail sunucularindaki bu aliaslara benim email adresimi yazmislar !:) )

# cd ~alias
# echo  [email protected]> .qmail-root
# echo [email protected] > .qmail-postmaster
# echo [email protected] > .qmail-mailer-daemon

# chmod 2755 ~alias
# chmod 644 ~alias/.qmail*


Gerekli  paketlerin  kurulumu:

*ucspi-tcp:   qmail i calistirmak icin gerekli program /etc/inetd.conf a alternatif
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

*daemontool:bazi servisleri calistirmak ve log tutmak icin gerekli
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

*fastforward:Sendmail /etc/aliasses dosyasini kullanmak için.
http://cr.yp.to/software/fastforward-0.51.tar.gz

*dot-forward: Sendmaildeki  .forward dosyasini kullanabilmek icin
http://cr.yp.to/software/dot-forward-0.71.tar.gz

checkpassword: /etc/passwd den pop3 authentication icin kullanilir.
http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz

1-ucspi-tcp :(iki kurulum icinde gerekli, ama qmail i inetd den caliştirmak isterseniz kurmayin. Ama inetd tavsiye edilmiyor)

# tar -zxvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# make setup check

2-daemontools :(iki kurulum icinde gerekli qmail i inetd den calistirmak isterseniz kurmayin.)

# mkdir /package
# chmod 1755 /package
/# cd /package
# tar zxvf /path/to/daemontools-0.76.tar.gz
# cd admin/daemontools-0.76
# ./package/install

3- fastforward :

fastforward programi eger qmail kurmadan once sendmail kullaniyorsa idiniz
/etc/mail/aliases veya /etc/aliases dosyasindaki alias larin qmail
calismasini saglar.

# tar -zxvf fastforward-0.51.tar.gz
# cd fastforward-0.51
# make setup check

fastforward i kullanmak icin  qmaili kurduktan sonra   /var/qmail/alias/.qmail-default dosyasina

|fastforward -d /etc/aliases.cdb

yazin ve daha sonra

#/var/qmail/bin/newaliases komutunu verin.

4- dot-forward : (2 kurulum icinde gerekli)
dot-forward paketi sendmail mailleri baska bir adrese yonlendirmede kullanilan
.forward dosyasinin qmail dede kullanilmasini saglar. ama cok buyuk bir /etc/aliases dosyasi yoksa kullanmaniza gerek yok. qmail in kendi yonlendirme sistemini ullanin.

# tar -zxvf dot-forward-0.71.tar.gz
# cd dot-forward-0.71
# make setup check

5- checkpassword:
eger 1. tur kurulumu secdiyseniz. pop3 authentication icin checkpassword paketini kurmaliyiz..

# tar -zxvf checkpassword-0.81.tar.gz
# cd checkpassword-0.81
#make setup check


/var/qmail/rc dosyasi ve Maildir :

Bu dosya(/var/qmail/rc) qmail-send i calistirmak icin kullanilan dosyadir. /var/qmail/boot altinda degisik ornekleri mevcuttur..
bizim ornek /var/qmail/rc dosyasi soyle olacaktir.

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/

Eger 1. kurulum yontemini sectiyseniz ve dot-forward paketini kurduysaniz. .forward dosyasinin qmail  calismasi icin /var/qmail/rc dosyasi soyle olmalidir

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start   '|dot-forward .forward ./Maildir/'

Yukaridaki bilgileri istediginiz bir text editorda /var/qmail/rc dosyasi olarak yazdiktan sonra

#chmod 755 /var/qmail/rc
#mkdir /var/log/qmail

    Maildir  gelen maillerin saklanma seklidir. Maildir bir dizindir ve kullanicilarin mailleri sendmail deki gibi /var/spool/mail/kullanici_adi dosyasinda degilde her kullanicin home dizininde bulunur ve mailler dizin altinda saklanir.
Avantajlari:

*Lock (kilitlenme) soz konusu degildir
*qmail ile gelen pop3 ile kullanilabilir.
*sendmail deki gibi her mail geldiginden tumden mbox dosyasini acmaz. bu sayede daha fazla permormans saglar (dusunsenize mbox binlerce tane mail varsa bu kac dakkada acilir.)
*guvenlidir

Dezavantajlari:
*Her mail bir dosya olarak saklandigi icin cok fazla mail geldiginde inode sayisi fazla olacaktir.

Tcpserver kullanarak qmailin  scriptelerinin olusturlmasi, qmail in her  aciliste Baslatilmasi:

Eğer INETD kullanmak isterseniz bu kismi hic okumadan bir sonraki bolume(qmail in INETD den calistirilmasi) geciniz. Son olarak uyariyorum INETD kullanmak cok saglikli bir yontem degildir.
  qmail i acilista baslatmak icin  ve qmailil durdurup calistirmayi daha kolay hale getirmek icin asagidaki script i yazalim
(bunlari yazmakta vakit kaybetmeyin http://www.enderunix.org/docs/qmail.sh ) adresinden alabilirsiniz.
 /*qmail.sh scripti*/

#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
case "$1" in

start)
echo -n "Starting qmail: svscan"
cd /var/qmail/supervise
env - PATH="$PATH" svscan &
echo $! > /var/run/svscan.pid
echo "."
;;

stop)
echo -n "Stopping qmail: svscan"
kill `cat /var/run/svscan.pid`
echo -n " qmail"
svc -dx /var/qmail/supervise/*
echo -n " logging"
svc -dx /var/qmail/supervise/*/log
echo "."
;;

reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /var/qmail/supervise/qmail-send
;;

pause)
echo "Pausing qmail-send"
svc -p /var/qmail/supervise/qmail-send
echo "Pausing qmail-smtpd"
svc -p /var/qmail/supervise/qmail-smtpd
;;

cont)
echo "Continuing qmail-send"
svc -c /var/qmail/supervise/qmail-send
echo "Continuing qmail-smtpd"
svc -c /var/qmail/supervise/qmail-smtpd
;;
 

restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /var/qmail/supervise/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /var/qmail/supervise/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /var/qmail/supervise/qmail-smtpd
;;

cdb)

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp*
echo "Reloaded /etc/tcp.smtp."
;;

help)

cat <<HELP

stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
reload -- sends qmail-send HUP, rereading locals and virtualdomains
HELP
;;

*)

echo "Usage: $0 {start|stop|restartreload|pause|cont|cdb|help}"
exit 1
;;
esac
exit 0

Yukarida yazdigimiz scriptin calismasi icin bir kac  dizin ve dosya olusturmamiz lazim. sira ile asagidaki komutlari verelim.

# mkdir -p /var/qmail/supervise/qmail-send/log
# mkdir -p /var/qmail/supervise/qmail-smtpd/log
# chmod +t /var/qmail/supervise/qmail-send
# chmod +t /var/qmail/supervise/qmail-smtpd
# chown -R qmaill.wheel /var/log/qmail

daha sonra
/var/qmail/supervise/qmail-send/run diye bir dosya olusturun ve icine

#!/bin/sh
exec /var/qmail/rc

/var/qmail/supervise/qmail-send/log/run diye bir dosya olusturun ve
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail  

yukaridaki ifade ile qmail-send programinin loglarinin /var/log/qmail dizine atilmasini sagliyoruz.
/var/qmail/supervise/qmail-smtpd/run dosyasina

#!/bin/sh
qmailDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

exec /usr/local/bin/softlimit -m 4000000 /usr/local/bin/tcpserver -v -p -H -R -l 0 -x /etc/tcp.smtp.cdb -c 256 -u "$qmailDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

-l 0 (kucuk le ve sifir) parametresi ile mail sunucu hostname nini bulurken dns sorgulama yapmamasini saglanir. bu parametreyi koymaksaniz. mail sunucuza baglanti cok yavas olacaktir.
-c parametresi ile mail sunucusuna ayni anda kac tane baglantiya izin verilecegi belirlenir (burada 256 tane)

NOT: Yukarida exec ile baslayan ve 2>&1 ile biten kisim tek satirdir! Buna dikkat ediniz aksi takdirde qmail çalismaz

yazin. Eger Solaris  kullaniyorsaniz

qmailDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

ifadeleri yerine

qmailDUID=`/usr/xpg4/bin/id -u qmaild`
NOFILESGID=`/usr/xpg4/bin/id -g qmaild`

ifadelerini kullanin
/var/qmail/supervise/qmail-smtpd/log/run dosyasi olusturun ve icine

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

yukaridaki ifade ile qmail-smtp programinin loglarinin /var/log/qmail/smtpd dizine atilmasini sagliyoruz.
Simdide dosyalarin izinlerini degistirelim.

# chmod 755 /var/qmail/supervise/qmail-send/run
# chmod 755 /var/qmail/supervise/qmail-send/log/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
# mkdir -p /var/log/qmail/smtpd
# chown qmaill /var/log/qmail /var/log/qmail/smtpd

Evet dizinleri ve dosyalari olusturduk.
istedigimiz bilgisayarlara(hosts) smtp relay izni vermek icin  asagidaki komutu verelim

#echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp

bu ifade ile makinanin kendi lo0 arayuzune (loopback) izin verilir..
ve mail sunucusunun ip si nede relay izni verelim (IP si 212.65.128.82 olsun)
RELAYCLIENT="" ifadesi ile RELAYCLIENT degiskenine bos bir deger atanmis olur, bu degiskene bir deger atandigi icin qmail-smtpd bu IP li istemciye RELAY iznini verir.

# echo '212.65.128.82:allow,RELAYCLIENT=""' >>/etc/tcp.smtp

belli bir ip uzayina izin vermek icin (ornegin 212.144.12)

# echo '212.144.12.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp

ve /etc/tcp.smtp dosyasinin en sonuna
:allow
ifadesini ekleyin, (manasi sudur: tum smtp baglantilarina izin ver ama RELAYCLIENT degiskenini atama, )
komutunu verelim. SMTP access databaseni olusturmak icin asagidaki komutu verin

# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

/etc/tcp.smtp dosyasina kayit ekleme cikarma yaptiktan sonra bu komutu tekrar calistirmaniz gerekir. ama qmail i restart etmenize gerek yok!. qmail in her acilista otomatik olarak calismasi icin

FreeBSD:
Yukarida yazdigimiz qmail.sh scriptini /usr/local/etc/rc.d/ altina kopyalayin

# cp qmail.sh /usr/local/etc/rc.d/
# chmod 700  /usr/local/etc/rc.d/qmail.sh

qmail i calistirmak

/usr/local/etc/rc.d/qmail.sh start

OpenBSD:

# cp qmail.sh /usr/local/etc
#chmod 755  /usr/local/etc/qmail.sh

/etc/rc.local dosyasina

/usr/local/etc/qmail.sh start

RedHat , Mandrake :
Yukarida yazdigimiz qmail.sh scriptini /etc/rc.d/init.d altina kopyalayin

# cp qmail.sh /etc/rc.d/init.d
# chmod 700  /etc/rc.d/init.d/qmail.sh

/etc/rc.d/rc.local dosyasina

/etc/rc.d/init.d/qmail.sh start

yazmaniz yeterlidir.. qmail i calistirmak

/etc/rc.d/init.d/qmail.sh start

  Solaris:
 

# cp qmail.sh /etc/init.d
# chmod 700  /etc/init.d/qmail.sh
# ln -s /etc/init.d/qmail.sh /etc/rc2.d/S90qmail
# ln -s /etc/init.d/qmail.sh /etc/rc2.d/K90qmail

 

qmail i INETD.conf dan calistirma:

/etc/inetd.conf dosyasina asagidaki ifadeleri yazin

smtp stream tcp nowait qmaild /usr/local/bin/tcpd /var/qmail/bin/tcp-env /var/qmail/bin/qmail-smtpd

 

#kill -HUP inetd_pid

ayrica qmail in /var/log/maillog veya /var/log/syslog dosyasinda log tutmasini istiyorsaniz  /var/qmail/rc dosyasi "splogger qmail" parametresini ekleyin . ornek bir /var/qmail/rc dosyasi dosyasi soyledir.

#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail

hepsi bu :))   ama  inetd.conf dan calistirmak kolay diye inetd yi kullanmayin  eger mail serveriniz cok yogun bir sekide calisiyorsa  inetd yuzunden performans dusuklugu olabilir ve  en onemlisi RELAY  yapamazsiniz.

 

/var/qmail/control Dizini:

    Bu dizinde qmail ile konfigurasyon dosyalari bulunur..

defaultdomain       :Default hostname bilgisini icerir.
me                            : Makinanin kendi adini icerir.
locals                   :Yerel olarak gonderilecek domain leri icerir.
rcpthosts              :Mail kabul ettigimiz domainler bulunur.
virtualdomains      :Virtualdomain(sanal alanlar)lerin isimleri bulunur..
badmailfrom                   :Mail kabul etmek istemedigimiz from: mail adresleri.. bu dosya default yoktur..
concurrencylocal   :Ayni anda local e gonderilen mail sayisi  (default 10) bu dosya default olarak yoktur..
concurrencyremote:Ayni anda remote(uzak) e gonderilen mail sayisi (default 20) bu dosya default yoktur..
databytes              :bir seferde gonderilen mesajin izin verilen maximum boyutu (default 0 ,sinirsiz)
queuelifetime : bir mesajin mailq da kac gun kalacagini belirler(bu dosyadaki deger saniye cinsindendir(default 7 gun, bu dosya default yoktur)
smtpgreeting: mail sunucun 25. portuna baglanti kuruldugunda gorunen mesaj( bu dosya default yoktur, default olarak mail sunucunun adi gozukur)

Yukaridaki dosyalarda (badmailfrom haric) herhangi bir degisiklik yapildiktan sonra qmail-send prosesinin stop start edilmesi gerekir.
 hemen hemen qmail konfigurasyonu bitti sayilir.

11-Sendmail in Durdurulmasi:

 

# ps ax |grep sendmail 

komutu ile sendmail process id sini bulun ve

# kill -TERM sendmail_Proses_ID

ile sendmail prosesini oldurun. Buyuk ihtimalle sendmail otomatik olarak her acilista calisiyordur. Kendi sisteminize gore makinanin tekrar acildiginda sendmail in calismasini engelleyin

FreeBSD :

/etc/rc.conf dosyasinda

sendmail_enable="YES" ifadesini
sendmail_enable="NONE" olarak degistirin.

# rm /usr/sbin/sendmail
     

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

# mv /usr/sbin/newaliases /usr/sbin/newaliases.bck
# ln -s /var/qmail/bin/newaliases /usr/sbin/newaliases

OpenBSD :

/etc/rc.conf dosyasinda

sendmail_enable="-q30" ifadesini
sendmail_enable="NO" olarak degistirin.

# mv /usr/libexec/sendmail/sendmail  /usr/libexec/sendmail/sendmail.bak         
# mv /usr/sbin/sendmail  /usr/sbin/sendmail.bak
# chmod 0 /usr/libexec/sendmail/sendmail.bak  /usr/sbin/sendmail.bak      

# ln -s /var/qmail/bin/sendmail   /usr/libexec/sendmail/sendmail
# ln -s /var/qmail/bin/sendmail   /usr/sbin/sendmail

# mv /usr/sbin/newaliases /usr/sbin/newaliases.bck
# ln -s /var/qmail/bin/newaliases /usr/sbin/newaliases

Redhat  Mandrake :

# ntsys
komutunu calistirin ve sendmail kismindaki * ifadesi kaldirin.. en iyisi
# rpm -e --nodeps sendmail
komutu ile tumden sendmaili silin :))

# mv /usr/libexec/sendmail /usr/libexec/sendmail.bak         
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
# chmod 0 /usr/libexec/sendmail.bak /usr/sbin/sendmail.bak    
# ln -s /var/qmail/bin/sendmail /usr/libexec/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail


# mv /bin/newaliases /bin/newaliases.bck
# ln -s /var/qmail/bin/newaliases /bin/newaliases

Solaris :

#mv /etc/init.d/sendmail /sendmail.bck
 (ayrica /etc/rc2.d/ veya /etc/rc3.d dizinlerinde sendmail calistiran linkleri kaldiriniz)

# mv /usr/lib/sendmail /usr/lib/sendmail/sendmail.bak         
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak

# chmod 0 /usr/libexec/sendmail.bak /usr/sbin/sendmail.bak      
# ln -s /var/qmail/bin/sendmail /usr/libexec/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

# mv /usr/bin/newaliases /usr/bin/newaliases.bck
# ln -s /var/qmail/bin/newaliases /usr/bin/newaliases

 

qmail in Calismasini Test Etmek:

qmail in calisip calismadigini test etmek icin
 

#csh -cf '/var/qmail/rc'
# ps ax|grep qmail komutunu verdiginizde

367 p0 S 0:00.18 qmail-send
368 p0 I 0:00.03 qmail-lspawn ./Maildir/
369 p0 I 0:00.01 qmail-rspawn
370 p0 I 0:00.03 qmail-clean

yukaridakine benzer bir cikti aliyorsaniz qmail calisiyor demektir.
qmail i stop start restart yapmak icin

1- qmail.sh stop|start|restart komutulari ile yapabilirsiniz

sadece qmail-send prosesini stop etmek icin
svc -d /var/qmail/supervise/qmail-send
YUKARIDAKI KOMUT ile stop edilmis qmail-send i start etmek icin
svc -u /var/qmail/supervise/qmail-send
qmail-send i restart yapmak icin
svc -t /var/qmail/supervise/qmail-send
yukaridaki en son uc komutu qmail-smtpd i restart etmek icin de kullanabilirsiniz, tabii /var/qmail/supervise/qmail-send yerine /var/qmail/supervise/qmail-smtpd dizini kullanarak

   

 Buraya kadar hersey yukarida bahsettigimiz iki tur kurulum icinde ayniydi.  Bundan sonra 1. ve 2. urulum turune  gore farkli bir  

1.Tur kurulum icin qmail-1.html linkine takip ediniz, 2. tur kurulum icin ise qmail-2.html linkini takip ediniz.

 

rblsmtpd:

RBL(Real-time Blackhole List),
Open Relay: internet uzerinde bulunan mail sunucunun sistem yoneticisi tarafindan yanlis konfigurasyonu sonucu, bu sunucu uzerinden herkesin her hangi bir kisitlama olmadan, istedigi
yerden mail gonderilmesi diye tanimliyabiliriz.
rblsmtpd nin yaptigi is kisaca open relay mail sunuculardan gelen mailleri almamaktir. Herkesin rblsmtpd yi kullanmasini kesinlikle tavsiye ederim. internet uzerinde bir suru ucretli/ucretsiz
olarak hizmet veren organizasyonlar vardir.biz burada www.ordb.org un rbl veri tabanini kullanacagiz.
rblsmtpd ucspi-tcp paketi ile birlikte gelmektedir. rblsmtpd yi kullanmak icin qmail-smtpd yi calistirdigimiz /var/qmail/supervise/qmail-smtpd/run dosyasini biraz degistirmemiz gerekir.
rblsmtpd yi kullanmadan onceki /var/qmail/supervise/qmail-smtpd/run dosyasi

#!/bin/sh
qmailDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

exec /usr/local/bin/softlimit -m 4000000 /usr/local/bin/tcpserver -v -p -H -R -l 0 -x /etc/tcp.smtp.cdb -c 256 -u "$qmailDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

rblsmtp yi aktif ettik ten sonraki /var/qmail/supervise/qmail-smtpd/run dosyasi

#!/bin/sh
qmailDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

exec /usr/local/bin/softlimit -m 4000000 /usr/local/bin/tcpserver -v -p -H -R -l 0 -x /etc/tcp.smtp.cdb -c 256 -u "$qmailDUID" -g "$NOFILESGID" 0 smtp /usr/local/bin/rblsmtpd -r relays.ordb.org /var/qmail/bin/qmail-smtpd 2>&1

artik sunucunuza gelen her bir mail icin rblsmtpd yi relays.ordb.org da mail gonderen kullanicinin IP sini gonderecek, eger kullanicinin IP si ordb.org un kara listesinde ise mail sunucu
bu serverdan mail almiyacak ve mail gonderene soyle bir hata donecektir.
This mail was handled by an open relay - please visit <http://ORDB.org/lookup/?host=193.140.253.19>
ve /var/log/qmail/smtpd/current log dosyasina
@400000003d76174d069ae90c rblsmtpd: 193.140.253.19 pid 20630: 451 This mail was handled by an open relay - please visit <http://ORDB.org/lookup/?host=193.140.253.19> seklinde bir bilgi yazacaktir. Dedigim gibi herkesin kullanmasini siddetle tavsiye ederim.
http://cr.yp.to/ucspi-tcp/rblsmtpd.html adresinden diger rbl sunucularin listesini gorebilirsiniz.

Antivirus:

RAV Antivirus i Microsoft satin aldigi icin bu bolum belgeden kaldirilmistir!!!@#$%^*($%^%$$@#@

 

qmail in ozellestirilmesi:

Bu bolumde qmail e uygulanabilecek bir kac patch den bahsedecegim:

1- concurrency greater patch: (http://www.qmail.org/big-concurrency.patch)

qmail normalde ayni anda en fazla 240 maili proses edebilir bu patch sayesinde bu deger 509 a kadar cikmaktadir. bu patch i qmail i kurarken uygulamaniz lazim. eger daha once kurulu bir qmail var ise bastan kurulmasi lazimdir.

# cd qmail-1.03
#patch </patch/dizini/big-concurrency.patch
(/patch/dizini/ ifadesinin yerine patch in bulundugu dizinin path ini yaziniz)
#make clean
conf-spawn dosyasindaki 1000 degerini 500 yapin
#make setup check
#./config

sonra normal qmail configurasyonu yaptin ve
#echo 500 >/var/qmail/control/concurrencylocal
# echo 500 >/var/qmail/control/concurrencyremote
qmail calistiginda/restart oldugunda degisiklikler aktif olacaktir.

2-SPAMCONTROL patch i (http://www.fehcom.de/qmail/qmail_en.html)
Bu patch sayesinde qmail e spam i engelleme ile ilgili bir suru ozellik eklenmektedir. Bunlar:

asagidaki tum dosyalar /var/qmail/control dizininde bulunmaktadir.
badrcptto: badmailfrom dosyasinin formatindadir ve bu dosyaya yazdiginiz email adreslerine sunucunuzdan mail gitmesini engelleyebilirsiniz.(her satirda bir email adresi olmak zorundadir.
badmailpatterns: bu dosyada bulunan wildcards(genel arama karakteri) lardan gelen mailler sunucu tarafindan reddedilir. (ornegin bu dosyada *spamci* yaziyorsa icinde spamci gecen mail adreslerini sunucu kabul etmez)
ornek bir badmailpatterns dosyasi:
*list.emailbucks.*
*mailer1.asseenontw.*
*@ed.ac.uk
*@porn-4-*

badrcptpatterns: badmailpatterns in yaptigi ayni isi yapar ama bu sefer sunucu uzerinden mail gonderecek kisiler uzerinde kisitlama yapar.
IP bazli da kisitlama yapilabilir.
badmailfrom @12.34.56.78
badrcptto @12.34.56.78
badmailpatterns *12.34.56.78*
badrcptpatterns *12.34.56.78*
badmailpatterns *78.56.34.12.in-addr.arpa*
badrcptpatterns *78.56.34.12.in-addr.arpa*
ve daha bir suru uzellik ve dosya, genis bilgi icin siteyi ziyaret ediniz. Bu patch i uygulamanizi kesinlikle tavsiye ederim.

Yazarin Notu:

Bu dokumanda elimden geldigince qmail i ve qmail ile alakali programlari anlatmaya calistim. qmail ile ilgili herhangi bir sorun icin EnderUNIX qmail listesine uye olabilirsiniz. Uyelik icin [email protected] listesine mail atiniz.Uye olduktan sonra [email protected] adresine mail atabilirsiniz. Bu versiyondan sonra yeni bir versiyon cikarmiyacagiz.
Detayli bilgi icin: qmail kitabi:


Qmail kitabi

Issmail YENIGUL