Qmail Kurulumu

Qmail Kurulumu

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
caylakpenguen
caylakpenguen

Truva Linux takımıyla 2006'da tanışan "Çaylak Penguen" -BASH- betiklerine bayılır. Truva'nıñ çekirdek derleme işleri ile çalışan cd tasarımıyla uğraşmaktadır.

Hiç yorum yok:

Yorum Gönderme