qmail Kitabi
Qmail kitabi

Endersys Antispam: Surgate Messaging Gateway

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

4.Versiyon

Giriş

18 Nisan 2006

   Bu  dokumandaki bilgiler güvenli ve performanslı bir sistem kurmak isteyen sistem yöneticilerine yönelik olacaktır.Bu dokumanın en son versiyonuna http://www.enderunix.org/docs/qmail.html adresinden erişebilirsiniz.

Bu belgenin eski halinde çok fazla bilgi olduğu için temel ve hızlı qmail kurmak isteyenlerin kafasını oldukça karıştırıyordu. Bu yüzden

makaledeki bazı detayları kaldırma ihtiyacı gördüm. Tüm detayları Açık Akademi Yayınlarından çıkan qmail kitabında bulabilirsiniz.

qmail Nedir ?

 qmail, UNIX ve UNIX benzeri(*BSD, Linux) işletim sistemleri için bir MTA(Mail Transfer Agent) dir. qmail, sendmail ve postfix e bir alternatiftir. qmail kullanmanız için bir çok neden var:

 Güvenli(Security): Daha az root olarak çalışan veya setuid olarak çalışan program var.
(qmail in yazarı Mart 1997 yılında qmail in en son versiyonunda güvenlik açığı bulana $500 vaad etmektedir.

 Performanslı: Ayni anda yüzlerce mail gönderebilir. Her bir is (mail alma, yerel sisteme mail gönderme, uzaktaki sisteme mail gönderme,smtp servisini çalıştırma ...) için ayrı ayrı programlar çalışmaktadır. Sendmail de ise tüm bu isleri yapan sadece koskaca bir sendmail programı bulunmaktadır.

 Basit: qmail diğer MTA lara Gore daha az  bir koda sahiptir ve  sendmail.cf gibi çok karmakarışık bir konfigürasyon dosyası yoktur.

Güvenilir(Reliable): qmail maille ilgili herhangi bir is ( mail gönderme , alma , kuyruğa atma ...) yapmadan önce maili diske kayıt ettiksen sonra mail gönderen kişiye mail iniz kabul edildi cevabini döner. Sistemde bir fiziksel sorun olsada (elektrik kesintisi falan ..) mail kayıp olmaz.

 Özelleştirilebilir: qmail için yazılmış bir çok programlar vardır. Bu programlar sayesinde qmail kullanımı daha kolay hale gelmektedir. Örneğin vpopmail programı sayesinde kullanıcıların:

- adi soyadı
- kullanıcı adi
- şifresi
- mail  kotası

gibi bilgileri bir veritabanında (cdb,MySQL,Oracle,Interbase,Informix ) tutularak çok büyük bir kolaylık sağlamaktadır ve çok kolay bir şekilde sanal alan (virtual domain) ve sanal kullanıcılar (virtual users) açılabilmektedir.

  Özellikte Internet Servis Sağlayıcıları (ISS) için mükemmel bir fırsattır. Çünkü her bir kullanıcı için sistem kullanıcı (/etc/passswd deki kullanıcılar) açmak yerine veritabanındaki tabloda kullanıcı açılmaktadır. Bu sayede isler hem daha kolay hale geliyor, hemde kullanıcılardan sisteme gelece bilecek saldırılar daha aza iniyor.

Genel Notlar:

     Bu dokumanda:

kurulumu anlatılacaktır.
 

Tüm kullanıcılar sanal(virtual) olacaktır. kullanıcıların sisteme hiç bir şekilde erişmesini istemiyoruz (ISS ler için çok ideal) ve tüm bilgileri mysql veya cdb(http://cr.yp.to/cdb.html) veritabanında  tutulacaktır.

Bu makalede cdb destekli vpopmail kurulumu anlatılacaktır.

qmail kurulumu:

 http://www.qmail.org/  veya Türkiye yansısından  http://qmail.enderunix.org/top.html    en son qmail versiyonunu indirin(su anki versiyonu 1.03)

qmail kurulumuna başlamadan önce qmail  için gerekli kullanıcıları ekleyelim
1-Eğer FreeBSD kullanıyorsanız
şu komutları 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


Eğer 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


simdi qmaili kurmaya başlayabiliriz. unutmayın yukarıdaki kullanıcıları açmazsanız qmail kurulmayacaktır.

# 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 konfigürasyon dosyalarini oluşturmak için

# ./config

komutunu verin, qmail kurduğunuz sunucunun doğru bir DNS kaydı olması lazımdır.(DNS hakkında bilginiz yoksa http://www.enderunix.org/docs/dns.html(Bind)   http://www.enderunix.org/docs/djbdns_installation.html(DjbDNS) adresinden DNS ile ilgili dokümanları okuyabilirsiniz. Dns sunucu olarak djbdns kullanmanızı tavsiye ederim.
Mail sunucunun IP sinin reverse(ters) DNS kaydı olmazsa qmail çalışmaz.
Herhangi bir sorundan dolayı qmail dns bilgilerinize geçici olarak erişemezse aşağıdaki komutu verin.

# ./config-fast mail.domain.com

mail.domain.com yerine sizin mail sunucunuzun adini yazınız.
kurulumun tamamlanması için bazı alias larin oluşturulması lazım.
postmaster: mail yöneticisini
mailer-daemon: bazı geri donen mesajların alicisi
root: sistemdeki root kullanıcısı.
root a, mailer-daemon a ve postmaster a gelen maileri ismail@enderunix.org a yönlendirmek için aşağıdaki komutları vericez.(ismail@enderunix.org yerine siz kendi email adresinizi kullanınız, bu dokumanı okuyan
bazıları kendi mail sunucularındaki bu aliaslara benim email adresimi yazmışlar !:) )

# cd ~alias
# echo  ismail@enderunix.org> .qmail-root
# echo ismail@enderunix.org > .qmail-postmaster
# echo ismail@enderunix.org > .qmail-mailer-daemon

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


Gerekli  paketlerin  kurulumu:

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

*daemontool:bazı servisleri calistirmak ve log tutmak için gerekli
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz


1-ucspi-tcp :(iki kurulum icinde gerekli, ama qmail i inetd den çalıştırmak isterseniz kurmayın. 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 kurmayın.)

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

 

 

/var/qmail/rc dosyası ve Maildir :

Bu dosya(/var/qmail/rc) qmail-send i calistirmak için kullanilan dosyadır. /var/qmail/boot altında değişik örnekleri mevcuttur..
bizim örnek /var/qmail/rc dosyası söyle olacaktır.

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

yukarıdaki bilgileri istediğiniz bir text editörde /var/qmail/rc dosyası olarak yazdıktan sonra

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

    Maildir  gelen maillerin saklanma seklidir. Maildir bir dizindir ve kullanıcıların mailleri sendmail deki gibi /var/spool/mail/kullanıcı_adi dosyasında degilde her kullanıcın home dizininde bulunur ve mailler dizin altında saklanır.
Avantajları:

*Lock (kilitlenme) söz konusu değildir
*qmail ile gelen pop3 ile kullanılabilir.
*sendmail deki gibi her mail geldiğinden tümden 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)

/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

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

 

/var/qmail/control Dizini:

    Bu dizinde qmail ile konfigurasyon dosyalari bulunur..

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.

Sendmail in Durdurulması:

 

# 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

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

 

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

# qmail.sh stop|start|restart
komutulari ile yapabilirsiniz

   

                                                                   

 

Vpopmail Kurulumu:

         Bu kurulumlarda virtual kullanicilar olacagi icin virtual host ve user islerini cok kolaylastiran vpopmail programini kuracagiz.
Vpopmail otomatik olarak kullanici ve domain ekleyen ve qmail deki gerekli degisiklikleri otomatik olarak yapar. biz burada vpopmail mysql destegi vererek kullanici adi , sifresi, kullanicinin adi soyadi . kullanicinin sifresi mysql tablolarinda tutulmaktadir..

    http://www.inter7.com/
adresinden en son stable vpopmail versiyonunu indiririn. mysql kurulu oldugunu kabul
ediyoruz.
 

# tar -zxf vpopmail-5.2.1.tar.gz
# cd vpopmail-5.2.1

bundan sonra vpopmail in cdb veya Mysql destekli kurulumunu anlatacagim.Kullanici bilgilerinin nerede saklanacagina karar vermeniz gerekir. Acikcasi bu noktada
size tam olarak cdb veya Mysql i secin demek istemiyorum. ama 1000-2000 gibi kullaniciniz varsa ve mysql kurmak istemiyorsaniz cdb yi tavsiye ederim.
cdb yine qmail in yazari arafindan yazilmis, cok hizli guvenli performansli bir dosya tabanli bir database dir. cdb destekli vpopmail de bilgiler vpasswd.cdb adli hash yapilmis bir dosyada saklani. Daha fazla bilgi icin http://cr.yp.to/cdb.html adresine bakiniz.

vpopmail icin vchkpw grubu ve vpopmail kullanicisinin olusturulmasi gerekir.

FreeBSD:

# pw groupadd vchkpw
# pw useradd vpopmail -g vchkpw -d /home/vpopmail -m -s /sbin/nologin

 Linux ve Solaris:

# groupadd vchkpw
# useradd  -g vchkpw  -m -d /home/vpopmail vpopmail   -s /bin/false

vpopmail kullanici icin default dizin /home/vpopmail dir mumkun oldugu kadar bu dizini degistirmemeye bakin Bazi vpopmail parametrelerin ne manaya geldigini aciklayalim
 

--enable-roaming-users=y  Kullanici pop ile baglandigi zaman otomatik olarak istedigi IP den mail gonderme ozelligine sahip oluyor.(belli bir sure  icin) bu degisken ozellikle web hosting yapan firmalar icin cok idealdir. bu sayede kullanicilara dinamik olarak relay izni verdigi icin kullanici istedigi yerden baglanarak mail gonderebilir.
--enable-logging=y :  log tutmasimi sagliyor.
 


vpopmail'i cdb destegi ile kuralim:

# ./configure  --enable-roaming-users=y --enable-logging=y
# make
# make install-strip

eger --enable-roaming-users=y secdiyseniz. POP3 ile login olan kullanicinin bir saat boyunca mail gondermedigi durumda vpopmail in bu kullaniciya relay iznini kapatmasi icin crontab duzenleyelim.

# crontab -e
40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

 

#export PATH=$PATH:/home/vpopmail/bin
#vadddomain enderunix.org

komutu ile enderunix.org icin virtual domain olusturalim
/home/vpopmain/domains/enderunix.org dizini olusacaktir ve enderunix.org a ait tum kullanicilarin home dizinleri bu dizin altinda olacaktir.

# vadduser yenigul@enderunix.org veya
# vadduser yenigul@enderunix.org sifre
# vadduser -c "Murat Balaban" balaban@enderunix.org  balaban_sifresi
# vdeluser yenigul@enderunix.org  kullaniciyi siler
# vdeldomain enderunix.org domaini siler
# vsetquota balaban@enderunix.org QuotaBoyutuByteolarak : Kullaniciya kota vermek icin
vpasswd yenigul@enderunix.org    Kullanici sifresini degistirmek icin

vpopmailde alias tanimlamasi ise su sekilde yapilir   ~vpopmai/domains/yenigul.net dizini altinda
.qmail-ulgen diye bir dosya olustursak ve bu dosyaya
ulgen@enderunix.org yazarsak.  ulgen@yenigul.net e gelen mailler ulgen@enderunix.org a forward edilecektir.
Vpopmail kurulumu tamamlanmistir. son olarak vpopmail de POP3 ayarlari icin POP3 ayarlari kismina bakiniz.

Ezmlm Kurulumu:

Ezmlm qmail icin olan bir listecidir. http://www.ezmlm.org/ veya http://ezmlm.enderunix.org/ adreslerinden ezmlm-0.53 ve ezmlm-idx-0.40 paketlerini indiriniz.

# tar -zxvf ezmlm-0.53.tar.gz
# ta
r -zxvf ezmlm-idx-0.40.tar.gz
# mv ezmlm-idx-0.40/* ezmlm-0.53/
# cd ezmlm-0.53
# patch < idx.patch

 

# make clean
# make
# make man
# make setup

 

 autoresponder  Kurulumu:

Autoresponder mailere otomatik cevap yazmaya yarayan programdir. http://www.inter7.com/devel adresinden indirebilirsiniz

# tar -zxvf autorespond-2.0.2.tar.gz
# cd autorespond-2.0.2
# gcc  -o autorespond autorespond.c
# cp autorespond /usr/local/bin

kullanimi ile ilgili genis bilgiyi README dosyasinda bulabilirsiniz.

qmailadmin Kurulumu:

qmailadmin vpopmail i web den yonetmeye yarayan bir programdir. Bu programin ile kullanici acma, silme, yonlendirme, alias tanimlama , liste acma, liste ozelliklerini degistirme gibi ozellikleri vardir. qmailadmin ile qmail+vpopmail yonetimi cok kolay hale gelmektedir. Hatta sirketinizdeki qmailden q sundan bir sey anlamayan sekreter bile cok yukarida saydigim islemleri cok rahat bir sekilde yapabilir. :)
 http://www.inter7.com/qmailadmin/ adresinden  en son versiyonunu indiriniz. su anki versiyonu 1.0.6
 

# tar -zxvf qmailadmin-1.0.6.tar.gz
# cd qmailadmin-1.0.6

qmailadmini kurmadan once vpopmail i ezmlm ve autorespond u  kurmaniz lazim.kurmadiysaniz hemen kurunuz.

 Bazi parametrelerin aciklamasi:

--enable-cgibindir= qmailminin kurulacagi cgi dizini
--with-htmllibdir= html dosyalarinin kurulacagi dizin
--enable-ezmlmidx=y idx patch inin aktif edilmesi
--enable-cgipath=/cgi-bin/qmailadmin/qmailadmin  cgi URL path (yani http://mail.domain.org/cgi-bin/qmailadmin/qmailadmin) 

 

# ./configure --enable-cgibindir=/usr/local/www/cgi-bin/qmailadmin --with-htmllibdir=/usr/local/www/data/qmailadmin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/local/bin   --enable-ezmlmdir=/usr/local/bin  --enable-cgipath=/cgi-bin/qmailadmin/qmailadmin --enable-ezmlmidx=y

# make
# make install-strip

Yukaridaki kurulum sonucu qmailadmin programi /usr/local/www/cgi-bin/qmailadmin altina kurlacaktir. eğer asagidaki gibi hata alirsaniz(bu hatayi sadece vpopmaili MySQL destegi ile kurdugunuz zaman alirsiniz.

http://yourdomain/cgi-bin/qmailadmin/qmailadmin adresinden erisebilirsiniz. bu sayfada gelen ekrandaki postmaster yazan bolume dokunmayin.
altindaki domain bolumune islem yapmak istediginiz domain adini yaziniz. en alttaki sifre bolumune ise
#vadddomain domain.com komutunu verdikten sonra sizden istenilen sifreye ne yazdiysaniz onu yaziniz.(domain acilirken verdiginiz sifre postmaster kullanisinin sifresidir.). Son olarak sisteminizin guvenligi icin , mumkunse qmailadmin sitesine erisirken SSL (https) ile baglanti kurun ve. /usr/local/www/cgi-bin/qmailadmin dizinine erisimi apache deki .htaccess ile kisitlayin. apache de .htaccess in nasil yapildigini bilmiyorsaniz. http://www.enderunix.org/docs/apache.html adresindeki dokumanimdan .htaccess in nasil yapilacagini ogrenebilirsiniz.
 

Courier-IMAP Kurulumu:

  Courier-IMAP qmail ile calisan bir IMAP programidir.
http://www.courier-mta.org/download.php#imap adresinden en son versiyonunu indiriniz. biz courier-imap-1.5.3 versiyonunu kullanacagiz.

buraya kadar tum isleri ROOT olarak yapmistik. ama bu courier-IMAP belasini compile etmek ve make yapmak icin ben size artik root olarak yapin diyene kadar compile ve make islemlerini (make install demedim :) ) root olmayan bir kullanici ile yapin..

# su - ismail         Courier-IMAP i make install yapana kadar tum isleri bu root hakki olmayan kullanici ile yapacaz..

yenigul@apache$ tar -zxvf courier-imap-1.5.3.tar.gz
$ cd courier-imap-1.5.3 (hala root degilim!)

bazi parametrelerin ne manaya geldigini aciklayim

--enable-workarounds-for-imap-client-bugs = Netscape IMAP ile baglandiktan sonra yeni bir mail geldigi zaman sapitmakta ve hata vermektedir . bu hatayi gidermek icin bu parametreyi kullanmak sarttir.
--with--authpwd=/etc/password dosyasindan authentication destegi icin
--with-authpam =pam den authentication destegi icin
--with-authshadow = /etc/shadow dosyasindan authentication destegi icin
--with-authmysql =mysql tabledan authentication destegi icin
--with-authvchkpw = vpopmail den authentication destegi icin birde bu tum --with ler icin --without ifadesi vardir ki bu da anlasilacagi gibi yukaridaki modul destegi vermemek icin
--without-authldap = ldap destegi vermemek icin eger hantal Solaris belasi  Uzerindeki courier-IMAP kurmaya calisiyorsaniz.
--with-waitfunc=wait3 parametresinide tum kurulumlara mutlaka ekleyiniz.. veya Solarisi patchleyin (daha fazla bilgi icin Courier-IMAP FAQ)

 

 

$ ./configure --enable-workarounds-for-imap-client-bugs \
--with-authpwd --with-authpam --with-authshadow --without-authmysql \
--without-authldap --with-authvchkpw


 

 

$ make         komutunu veriniz.. ve
$ su root         (simdi root olma zamani :) )
# make install          komutu ile kurulumu tamamlayin.

default olarak courier-imap /usr/lib/courier-imap dizinie kurulur.Hangi modulle desteginin bulundugunu anlamak icin
/usr/lib/courier-imap/etc/imapd.conf dosyasindan AUTHMODULES satirina bakmaniz yeterlidir. ornek bir AUTHMODULES soyledir.

AUTHMODULES="authcustom authuserdb authpwd authvchkpw"

courier-IMAP i calistirmak icin

# /usr/lib/courier-imap/libexec/imapd.rc start komutunu vermeniz yeterlidir..

artik courier-IMAP i her acilista calistirmak icin kullandiginiz isletim sistemine gore acilista programlarin calistirildigi dosyaya usr/lib/courier-imap/libexec/imapd.rc start ifadesini eklersiniz. Courier-IMAP a vpopmail destegi verdigimiz icin yine kullanicilar Netscape, pine veya Outlook.

IMAP kullaniciadi olarak username%domain.com seklinde tanimlama  yapmalidir.

Sqwebmail Kurulumu:

            Sqwebmail C CGI da qmail icin yazilmis web uzerinden mail gonderip almaya yarayan bir webmail programidir ve sadece Maildir formatinda calisir..
CGI olmasina ragmen html ler ayri bir dizinde tutulur bu sayede sadece html leri degistirmekle istediginiz formatta bir webmail hazirlayabilirsiniz

http://www.inter7.com/sqwebmailadresinden sqwebmailin en son versiyonunu indiriniz.
root olarak

#tar -zxvf sqwebmail-3.3.7.tar.gz
# cd  sqwebmail-3.3.7

Bazi sqwebmail parametreleri
--with-module ile authentication module destegi vermek istedikleriniz  belirtilir.
--without-module ile authentication module destegi vermek istemediginiz module  belirtilir.
--with-cachedir parametresi ile sqwebmail cachelerinin tutulacagi dizin adresi belirtilir.
--with-htmllibdir parametresi ile sqwebmailin html dosyalarinin hangi dizinde tutulacagini belirtir.
--enable-imagedir= parametresi ile image lerin saklanacagi dizin belirtilir.
--enable-mimetypes= ile apache web serverin mime.types dosyasinin nerede oldugu belirtilir.
--enable-cgibindir=parametresi ile apache web serverin cgi-bin dizini belirtilir. ve compile sonucu olusan sqwebmail isimli cgi bu dizin altina kopyalanir.. daha fazla bilgi icin sqwebmail.tar.gz ile gelen INSTALL dosyasini okuyunuz.

 

# ./configure --without-authldap --without-authmysql --with-authvchkpw\
--enable-imagedir=/usr/local/sqwebmail/sqimage\
--enable-mimetypes=/usr/local/etc/apache/mime.types\
--enable-cgibindir=/usr/local/www/cgi-bin/  --enable-unicode=ISO8859-9
# make
#make install

sqwebmail in her acilista calismasi icin asagidaki komutu acilis dosyalarini ekleyin.

 /usr/local/share/sqwebmail/libexec/authlib/authdaemond start

 

Diyelim ki mail sunucunuz mail.yenigul.net ve default domain yenigul.net. yenigul.net domaininde yenigul diye bir kullanicimiz var enderunix.org domaininde balaban diye bir kullanicimiz var. http://mail.yenigul.net/cgi-bin/sqwebmail adresinden yenigul kullanicisi kullanici adi olarak yenigul ve sifresini yazarak login olabilir. enderunix.org domainindeki balaban kullanıcısı ile kullanıcı adi olarak balaban@enderunix.org seklinde yazmali.

 

POP3 Sunucu Kurulumu:

POP3 sifre doğrulaması icin vpopmail ile gelen vchkpw programını kullanacağız.
aşağıdaki ifadeleri qmail-pop3.sh diye bir dosyaya yazın

 #!/bin/sh
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -l 0 0 pop3 /var/qmail/bin/qmail-popup MAILSUNUCU /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

MAILSUNUCU kısmını sizin mail serverininiz tam adi (mail.enderunix.org gibi) ile değiştirin, daha sonra


# chmod 755   qmail-pop3.sh
#./qmail-pop3.sh

komutu ile pop3 u serverini çalıştırabilirsiniz. Açılışta çalıştırmak için
FreeBSD :
 

# cp    qmail-pop3.sh /usr/local/etc/rc.d
# chmod 755   /usr/local/etc/rc.d/qmail-pop3.sh


RedHat ve Mandrake :
 qmail-pop3.sh dosyasini /etc/rc.d/init.d altina kopyalayin /etc/rc.d/rc.local dosyasina
/etc/rc.d/init.d/qmail-pop3.sh  ifadesini yazin..
 

POP3 dan maillerinizi çekmek için
 

Netscape Messanger,Mozilla da kullanici adi olarak kullaniciadi%domain.com
Outlook ,Outlook Express da kullaniciadi@domain.com seklinde tanimlayin.
Eger domaininiz sistem yoneticisi tarafindan default domain olarak tanimlanmis ise sadece kullaniciadi yazmaniz yeterlidir.

 

Antivirus:

Antivirus olarak clamav, antispam olarak da qsheff kullanılabilir.

qsheff: http://www.enderunix.org/qhseff

 

Yazarın Notu:

Bu dokumanda elimden geldiğince qmail i ve qmail ile alakalı programları anlatmaya çalıştım. qmail ile ilgili herhangi bir sorun için EnderUNIX qmail listesine üye olabilirsiniz. Üyelik icin qmail-subscribe@lists.enderunix.org listesine mail atiniz.Üye olduktan sonra qmail@lists.enderunix.org adresine mail atabilirsiniz.
Detaylı, en güncel bilgi için ve yazarın çalışmalarını desteklemek için qmail kitabini satın alabilirsiniz...


Qmail kitabi

Ismail YENIGUL

www.enderunix.org