Qmail, *nix isletim sistemleri için yazilmis, oldukça güvenli ve efektif bir MTA (Mail Transport Agent)’dir. Bu dokümanda sendmail’in hiç bulasmadigi bir sisteme yapilan kurulum anlatilmistir. Ayrica bu kurulumda kullanicilar sanal degil, sistem kullanicilaridir. Eger sanal kullanicilar da kullanmak istiyorsaniz bu dokümanin sonunda referans olarak verilen belgelerden yararlanabilirsiniz.
Qmail için gerekli paketlerin kurulmasi
Öncelikle ucspi-tcp paketini kurmaliyiz. Bu paketin son versiyonunu http://cr.yp.to/ucspi-tcp.html adresinden bulabilirsiniz. Biz ucspi-tcp-0.88'i kullandik.
Paketi indirdikten sonra açin:
# tar -zxvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
Daha sonra programi derleyin:
# make
Root olarak /usr/local altina ucspi-tcp programini kurun:
# make setup check
Ilk olarak root olarak (# su) /package dizini yaratin:
# mkdir -p /package
# chmod 1755 /package
# cd package
Daha sonra daemontools kurulacak. daemontools un son sürümünü daemontools homepage den bulabilirsiniz. Biz bu dökümani yazarken daemontools-0.76 kullandik.
Paketi /package dizinine indirip açin:
# tar -zxpvf daemontools-0.76.tar.gz
# cd admin/daemontools-0.76
Programi derleyip kurun:
# ./package/install
daemontools basariyla kurulmustur.
Son olarak pop3 authentication saglamak için checkpassword paketi kurulacak. checkforward paketinin son sürümünü http://cr.yp.to/checkpwd.html adresinden bulabilirsiniz. Biz bu dokümanda checkpassword-0.90 kullandik.
öncelikle paketi açin ve dizine girin:
# tar -zxvf checkpassword-0.90.tar.gz
# cd ckeckpassword-0.90
Daha sonra programi derleyin:
# make
Root olarak /bin/checkpassword altina checkpassword programini kurun:
# make setup check
Qmail Kurulumu
Simdi qmail’i kurmaya baslayabiliriz. Bu paketin en son sürümünü http://cr.yp.to/qmail.html adresinden bulabilirsiniz. Biz qmail-1.03 sürümünü kullandik.
Ilk olarak qmail için gerekli kullanici ve kullanici gruplarini ekleyelim.
FreeBSD için:
# pw groupadd nofiles
# pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
# 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 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
Linux için:
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /no-login alias
# useradd -g nofiles -d /var/qmail -s /no-login qmaild
# useradd -g nofiles -d /var/qmail -s /no-login qmaill
# useradd -g nofiles -d /var/qmail -s /no-login qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /no-login qmailq
# useradd -g qmail -d /var/qmail -s /no-login qmailr
# useradd -g qmail -d /var/qmail -s /no-login qmails
komutlarini verin.
qmail home directory’yi yaratin:
# mkdir /var/qmail
Daha sonra paketi açin ve qmail-1.03 dizinine girin:
# tar -zxvf qmail-1.03.tar.gz
# cd qmail-1.03
Programi derleyin ve qmail dizin agacini olusturun:
# make setup check
eger sunucunuzun bir DNS kaydi varsa /var/qmail dizini altinda gerekli qmail konfigürasyon dosyalarini olusturmak için komutu verin:
# ./config
Dilerseniz hostname’inizi kendiniz de girebilirsiniz:
# ./config-fast tam.makina.adi
Sistem ‘alias’larini yaratin:
# echo haluk@eh.edu.tr > ~alias/.qmail-postmaster
# echo eli@eh.edu.tr > ~alias/.qmail-mailer-daemon
# echo deli@eh.edu.tr > ~alias/.qmail-root
# chmod 644 ~alias/.qmail-postmaster ~alias/.qmail-mailer-deamon ~alias/.qmail-root
Burada ‘haluk’ sistemin mail admin’i, ‘eli’ bounce olan mesajlari alacak standart kullanici, ‘deli’ sistem admin’imiz, ‘eh.edu.tr’ de domain’imiz. Dilersenis sadece touch komutuyla bu dosyalari yaratip içlerini bos birakabilirsiniz, bu durumda ilgili mailler ~alias/Maildir’e kaydedilir.
Kullanici Dizinlerinin Maildir kullanimi için ayarlanmasi
Her kullanici için su komutlari verin:
# su kullanici
# ./maildirmake ~/Maildir
# echo ./Maildir/ > ~/.qmail
# exit
Sisteme yeni eklenecek her kullanicinin bir Maildir dizini olmasi için:
# ./maildirmake /etc/skel/Maildir
# echo ./Maildir/ > /etc/skel/.qmail
Daha sonra /var/qmail/boot/home dosyasini /var/qmail/rc e kopyalayin:
# cp /var/qmail/boot/home /var/qmail/rc
Simdi bir editörle /var/qmail/rc dosyasini açip Mailbox’i Maildir ile degistirin.
qmail’i kontrol etmeye yarayan asagidaki scripti /usr/sbin/qmail adli dosyaya yazin:
#!/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 “.”
;;
stat)
cd /var/qmail/supervise
svstat * */log
;;
doqueue|alrm)
echo “Sending ALRM signal to qmail-send.”
svc -a /var/qmail/supervise/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
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 <
Bu dosyanin haklarini degistirin:
# chmod 700 /usr/sbin/qmail
Daha sonra daemontools servis dizinini olusturun:
# mkdir /var/qmail/supervise
# mkdir /var/qmail/supervise/qmail-send
# chmod +t /var/qmail/supervise/qmail-send
# mkdir /var/qmail/supervise/qmail-send/log
# mkdir /var/qmail/supervise/qmail-smtpd
# chmod +t /var/qmail/supervise/qmail-smtpd
# mkdir /var/qmail/supervise/qmail-smtpd/log
# mkdir /var/log/qmail
# mkdir /var/log/qmail/qmail-send
# mkdir /var/log/qmail/qmail-smtpd
# chown qmaill /var/log/qmail
# chown qmaill /var/log/qmail/*
Sonra /var/qmail/supervise/qmail-send/run dosyasina asagidakileri yazin:
#!/bin/sh
exec /var/qmail/rc
/var/qmail/supervise/qmail-send/log/run dosyasina asagidakileri yazin:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-send
/var/qmail/supervise/qmail-smtpd/run dosyasina asagidakileri yazin:
#!/bin/sh
QMAILDUID=id -u qmaild
NOFILESGID=id -g qmaild
exec /usr/local/bin/softlimit -m 2000000
/usr/local/bin/tcpserver -H -R -v -p -x /etc/tcp.smtp.cdb
-u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1s
/var/qmail/supervise/qmail-smtpd/log/run dosyasina asagidakileri yazin:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd
simdi bu dosyalarin haklarini degistirin:
# 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/runshe
Istedigimiz bilgisayarlara smtp relay izni vermek için asagidaki komutlar kullanilacak:
loopback’e izin vermek için:
#echo ’127.:allow,RELAYCLIENT=”"‘ >> /etc/tcp.smtp
mail sunucunun hizmet verecegi IP uzayina izin vermek için (“192.168.131.” yerine kendi network adresinizi yazin):
# echo ’192.168.131.:allow,RELAYCLIENT=”"‘ >> /etc/tcp.smtp
Eger mail sunucusu bu IP uzayinin içinde degilse ona da izin vermek için (160.75.76.61 yerine kendi sunucunuzun IP sini girin):
# echo ’160.75.76.61:allow,RELAYCLIENT=”"‘ >> /etc/tcp.smtp
Simdi bu kurallari aktif hale getirmek için:
# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
Yeni bir IP eklemek/silmek istediginizde yukaridaki komutu tekrar vermeniz gerekir.
Bazi Konfigürasyon Dosyalari:
/var/qmail/control dizininde qmail’in konfigürasyon dosyalari bulunur. Bu dosyalar ‘config’ ya da ‘config-fast’ komutunu çalistirdiginiz zaman olusturulmuslardir. Simdi bunlarin en önemlilerine göz atalim:
me — Bu dosyanin içinde qmail’in kurulu oldugu makinanin full hostname’i yazar (ör: haluk.eh.edu.tr).
rcpthosts — Qmail, bu dosyada yazili olan domain’ler için mail kabul eder.
locals — Bu dosya ‘local’ olan host’lari içerir. Eger örnegin makinanizdaki eli kullanicisinin
eli@eh.edu.tr’ye gelen mailleri almasini istiyorsaniz bu dosyanin içine eh.edu.tr yazmalisiniz.
qmail’i Baslatma
simdi qmail’i baslatmaya haziriz.svscan zaten çalsitigindan yapacagimiz tek sey /service/ dizininden /var/qmail/supervise daki kontrol dizinlerine linkler yaratmaktir.
# ln -s /var/qmail/supervise/* /service/
qmail’in çalistigini test etmek için asagidaki komutu verebilirsiniz:
# ps auxww | grep qmail
POP3 Server Kurulumu
Bu kurulumda /etc/passwd den pop3 authentication saglayan checkpassword programini kullanacaksiniz.
Ilk olarak qmail-pop3.sh adinda bir dosya yaratin ve içine asagidakileri yazin (haluk.eh.edu.tr yerine kendi host name’inizi yazin):
#!/bin/sh
tcpserver 0 pop3 /var/qmail/bin/qmail-popup haluk.eh.edu.tr
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &
Daha sonra bu dosyanin haklarini degistirin ve ardindan çalistirin:
# chmod 755 qmail-pop3.sh
#./qmail-pop3.sh
pop3 ün açlista çalismasini saglamak için sisteminize göre islemler yapacaksiniz.
FreeBSD kullaniyorsaniz qmail-pop3.sh dosyasini /etc/ dizinine kopyalayip /etc/rc.conf.local dosyasina asagidakini yazin:
./etc/qmail-pop3.sh
Redhat ya da Slackware Linux kullaniyorsaniz qmail-pop3.sh dosyasini /etc/ dizinine kopyalayip /etc/rc.d/rc.local dosyasina asagidakini yazin:
./etc/qmail-pop3.sh
Hepsi bu kadar.
——————————————————————————–
Kaynaklar
qmail HOWTO v2:
http:/qmail/qmail-howto.html
Türkçe Doküman (Yazar: Ismail Yenigül):
http://yenigul.net/documents/qmail.html
Life with qmail:
http://www.lifewithqmail.org/lwq.html
Yorum Gönder