Eğer INETD kullanmak isterseniz bu kısmı hiç okumadan
bir sonraki bölüme (
Qmail'in INETD ile Başlatılması)
geçiniz. Son olarak uyarıyorum INETD kullanmak çok sağlıklı bir yöntem
değildir.
Qmail'i açılışta başlatmak için ve qmail'i durdurup çalıştırmayı daha
kolay hale getirmek için aşağıdaki betiği yazalım. (Bunları yazmakla
vakit kaybetmeyin. Ya buradan bir metin düzenleyiciye kopyalayın ya da
doğrudan
http://www.enderunix.org/docs/qmail.sh adresinden alın.
qmail.sh Betiği:
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/usr/bin:/bin
export PATH
case "$1" in
start)
echo -n "Qmail başlatılıyor: svscan"
cd /var/qmail/supervise
env - PATH="$PATH" svscan &
echo $! > /var/run/svscan.pid
echo "."
;;
stop)
echo -n "Qmail durduruluyor: 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 "qmail-send'e HUP sinyali gönderiliyor."
svc -h /var/qmail/supervise/qmail-send
;;
pause)
echo "qmail-send bekletmeye alınıyor"
svc -p /var/qmail/supervise/qmail-send
echo "qmail-smtpd bekletmeye alınıyor"
svc -p /var/qmail/supervise/qmail-smtpd
;;
cont)
echo "qmail-send bekletmeden çıkıyor"
svc -c /var/qmail/supervise/qmail-send
echo "qmail-smtpd bekletmeden çıkıyor"
svc -c /var/qmail/supervise/qmail-smtpd
;;
restart)
echo Qmail yeniden başlatılıyor:"
echo "* qmail-smtpd durduruluyor."
svc -d /var/qmail/supervise/qmail-smtpd
echo "* qmail-send'e SIGTERM gönderiliyor ve yeniden başlatılıyor."
svc -t /var/qmail/supervise/qmail-send
echo "* qmail-smtpd başlatılıyor."
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 "/etc/tcp.smtp yeniden yüklendi."
;;
help)
cat <<HELP
stop -- eposta hizmeti durdurulur.
(smtp bağlantıları reddedilir, dışarı birşey gönderilmez)
start -- eposta hizmeti başlatılır.
(smtp bağlantıları kabul edilir, postalar gönderilir)
pause -- eposta hizmeti geçici olarak durdurulur.
(bağlantılar kabul edilir, hiçbir şeye izin verilmez)
cont -- Geçici olarak durdurulan hizmet başlatılır.
cdb -- smtp için kullanılan tcpserver cdb dosyası yeniden kurgulanır.
restart -- smtp durdurulur, qmail-send'e bir TERM sinyali gönderilerek
qmail-send ve ardından smtp yeniden başlatılır.
reload -- qmail-send HUP gönderilir, yerel ve sanal alanlar yeniden okunur.
HELP
;;
*)
echo "Kullanım: $0 {start|stop|restartreload|pause|cont|cdb|help}"
exit 1
;;
esac
exit 0
Bu betiğin çalışması için bir kaç dizin ve dosya oluşturmamız lazım.
Sıra ile aşağıdaki komutları 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 oluşturun ve içine aşağıdakieri yazın:
#!/bin/sh
exec /var/qmail/rc
/var/qmail/supervise/qmail-send/log/run diye bir
dosya oluşturun ve içine aşağıdakieri yazın:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
yukarıdaki ifade ile qmail-send programının
günlük kayıtlarının /var/log/qmail dizine atılmasını
sağlıyoruz.
/var/qmail/supervise/qmail-smtpd/run diye bir
dosya oluşturun ve içine aşağıdakileri yazın:
#!/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 (küçük L ve sıfır) parametresi ile eposta
sunucusunun makina ismini (hostname) bulurken DNS sorgulaması
yapmaması sağlanir. Bu parametreyi koymazsanız, eposta sunucunuza
bağlantı çok yavaş olacaktır.
-c parametresi ile eposta sunucusuna aynı anda kaç
tane bağlantıya izin verileceği belirlenir (burada 256 tane).
| Uyarı |
---|
Yukarıdaki satırlarda \ işaretinden sonra boş
satır olmaması lazım, aksi takdirde qmail çalışmaz.
|
| Dikkat |
---|
Solaris kullanıyorsanız,
yukarıdaki dosyada
qmailDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
satırları yerine
qmailDUID=`/usr/xpg4/bin/id -u qmaild`
NOFILESGID=`/usr/xpg4/bin/id -g qmaild`
ifadelerini yazın.
|
/var/qmail/supervise/qmail-smtpd/log/run diye bir
dosya oluşturun ve içine aşağıdakileri yazın:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd
yukarıdaki ifade ile qmail-smtp programının günlük
kayıtlarının /var/log/qmail/smtpd dizine atılmasını
sağlıyoruz.
Şimdi de dosyaların izinlerini değiştirelim.
# 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 dosyaları oluşturduk.
İstediğimiz makinalara (hosts) smtp relay izni vermek
için aşağıdaki komutu verelim:
#echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
Bu ifade ile makinanın kendi lo0 arayüzüne (loopback)
izin verilir.
Ve eposta sunucusunun IP'sine de relay izni verelim (IP'si 212.65.128.82
olsun). RELAYCLIENT="" ifadesi ile
RELAYCLIENT değişkenine boş bir değer atanmış olur,
bu değişkene bir değer atandığı için qmail-smtpd
bu IP'li istemciye RELAY iznini verir:
# echo '212.65.128.82:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
belli bir IP ailesine izin vermek için (örneğin 212.144.12.)
# echo '212.144.12.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
Ve /etc/tcp.smtp dosyasının en sonuna
ifadesini ekleyin (manası şudur: tüm smtp
bağlantılarına izin ver ama RELAYCLIENT değiskenini
atama). SMTP erişim veritabanını oluşturmak için aşağıdaki komutu verin:
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
/etc/tcp.smtp dosyasına kayıt ekleme/çıkarma yaptıktan
sonra bu komutu tekrar çalıştırmanız gerekir. Ama qmail'i yeniden
başlatmanıza (restart) gerek yok!.
Qmail'in her açılışta otomatik olarak çalışması
- FreeBSD için:
Yukarıda yazdığımız qmail.sh betiğini
/usr/local/etc/rc.d/ altına kopyalayın:
# cp qmail.sh /usr/local/etc/rc.d/
# chmod 700 /usr/local/etc/rc.d/qmail.sh
Qmail'i çalıştırmak için
/usr/local/etc/rc.d/qmail.sh start
- OpenBSD için:
Yukarıda yazdığımız qmail.sh betiğini
/usr/local/etc/ altına kopyalayın:
# cp qmail.sh /usr/local/etc
#chmod 755 /usr/local/etc/qmail.sh
etc/rc.local dosyasına
/usr/local/etc/qmail.sh start
satırını ekleyin.
- Red Hat ve Mandrake için:
Yukarıda yazdığımız qmail.sh betiğini
/usr/local/etc/rc.d/init.d/ altına kopyalayın:
# cp qmail.sh /etc/rc.d/init.d
# chmod 700 /etc/rc.d/init.d/qmail.sh
Qmail'in açılışta başlatılması için
/etc/rc.d/rc.local dosyasına
/etc/rc.d/init.d/qmail.sh start
yazmanız yeterlidir.
- Solaris için:
-
# cp qmail.sh /etc/init.d
# chmod 700 /usr/local/etc/rc.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