banner
 .::*nix::. Cài đặt nhanh và cấu hình qmail + vpopmail + procmail + daemontools Go to original post Author: tranvanminh - Translator:  - Entry Date: 24/02/2009 15:09:42
bmuht_gpj.76252_a9753dd0257efecf683ccbc63f641a2a/6/8/6002/daolpu/enilnoavh/052.831.141.302//:ptth
Cài đặt nhanh và cấu hình qmail + vpopmail+procmail + daemontools

Bài viết này dành cho những bạn reinstall qmail và các thiết bị quản lý qmail .
thực hiện theo quá trình trong bài viết bạn có thể sử dụng được qmail , vpopmail , procmail , daemontools nhanh chóng mà không cần phải đi kiếm link hoặc các patch và đọc documents . tuy nhiên ý nghĩa của từng chương trình và lệnh sẽ không có dính kèm giải thích nào . nếu bạn chưa cài đặt qmail lần nào xin đọc bài viết "Qmail as a Mail Gateway" để biết thêm chi tiếc và cơ cấu cu. thể của qmail tại các link sau .

Phần 1 : /hvaonline/posts/list/119.html
Phần 2 : /hvaonline/posts/list/120.html
Phần 3 : /hvaonline/posts/list/121.html
Phần 4 : /hvaonline/posts/list/122.html


1. Qmail
ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
2. Tcpserver
ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz
3. Vpopmail
http://www.inter7.com/index.php?page=vpopmail
qmail-smtpd-relay-reject
http://www.qmail.org/qmail-smtpd-relay-reject
4. Patch files
http://www.qmail.org/rpms/
5. Procmail
http://www.procmail.org/
6. daemontools
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

Tạo các thư mục cần thiết cho qmail

[root ]# mkdir /var/qmail
[root ]# groupadd -g 710 nofiles
[root ]# useradd -M -u 710 -g nofiles -s /bin/false -d /var/qmail/alias alias
[root ]# useradd -M -u 711 -g nofiles -s /bin/false -d /var/qmail qmaild
[root ]# useradd -M -u 712 -g nofiles -s /bin/false -d /var/qmail qmaill
[roott]# useradd -M -u 713 -g nofiles -s /bin/false -d /var/qmail qmailp
[root ]# groupadd -g 711 qmail
[root ]# useradd -M -u 714 -g qmail -s /bin/false -d /var/qmail qmailq
[root ]# useradd -M -u 715 -g qmail -s /bin/false -d /var/qmail qmailr
[root ]# useradd -M -u 716 -g qmail -s /bin/false -d /var/qmail qmails

Vpopmail User and group
[root ]# groupadd -g 721 vchkpw
[root ]# useradd -g vchkpw -u 721 vpopmail -M -s /bin/false
[root ]# mkdir /home/vpopmail
[root ]# chown vpopmail:vchkpw /home/vpopmail


Patch and compile qmail
[root src]# tar zxvf qmail-1.03.tar.gz
[root src]# cd qmail-1.03
[root src]# wget http://www.qmail.org/rpms/patches/qmail-1.03.errno.patch
[root src]# wget http://www.qmail.org/qmail-smtpd-relay-reject
[root qmail-1.03]# patch -p1 < ../qmail-smtpd-relay-reject
[root qmail-1.03]# patch -p1 < ../qmail-1.03.errno.patch
[root qmail-1.03]# make setup check
[root qmail-1.03]# ./config-fast mail.example.jp


Cài đặt tcpserver

# tar xvfz ../ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88/
#wget http://www.qmail.org/rpms/patches/ucspi-tcp-0.88.errno.patch
#patch -p1 < ucspi-tcp-0.88.errno.patch
patching file error.h
# make setup check


Cài đặt vpopmail

[root src]# tar zxvf vpopmail-5.3.20.tar.gz
[root src]# cd vpopmail-5.3.20
[rootvpopmail-5.3.20]#./configure \
--enable-roaming-users=y \
--enable-relay-clear-minutes=10 \
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
--enable-logging=y \
[root vpopmail-5.3.20]# make
[root vpopmail-5.3.20]# make install-strip

Khi chạy configure nếu bị error
configure: error: Unable to find your tcp.smtp file, specify --enable-tcpserver-path=/full/path/to/tcp.smtp 


dùng lệnh sau để giải quyết
# cp /etc/tcpserver/tcp.smtp /home/vpopmail/etc/

Create virtual domain for vpopmail

[root etc]# cd /home/vpopmail/bin
[root bin]# ./vadddomain example.jp
Please enter password for postmaster:
enter password again:

your virtual domain was create into /home/vpopmail/domains/example.jp

Tạo default domain cho vpopmail
# echo 'example.jp' > /home/vpopmail/etc/defaultdomain

Create user for vpopmail

[root bin]# ./vadduser test@example.jp
Please enter password for test@example.jp:*****
enter password again:******

POP before SMTP

Create file tcp.smtp.cdb for access control

# touch /home/vpopmail/etc/tcp.smtp

File : /home/vpopmail/etc/tcp.smtp

Code:


127.:allow,RELAYCLIENT=""



[root etc]# tcprules /home/vpopmail/etc/tcp.smtp.cdb Code:


/home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp



[root etc]# crontab -e 
Code:


0,10,20,30,40,50 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null




Cài đặt Daemontools

# mkdir -p /package
# chmod 755 /package
# chmod +t /package

# cd /package
# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# tar xvpfz daemontools-0.76.tar.gz
# cd daemontools-0.76/src
# wget http://www.qmail.org/rpms/patches/daemontools-0.76.errno.patch
# patch -p1 < daemontools-0.76.errno.patch
(error.h)
# cd admin/daemontools-0.76
# ./package/install

Creating /service...
Adding svscanboot to inittab...
init should start svscan now. 


chương trình sẽ tự động thêm dòng sau vào /etc/initab để khi khởi động linux svscan có thể tự động chạy .

Code:


SV:123456:respawn:/usr/local/bin/svscanboot




Tạo directory cho svscan

# mkdir -p /var/service
# chmod 0755 /var/service

File : /usr/local/bin/svscanboot ( không cần thay đổi các dấu .......)

Code:


#!/bin/sh

# WARNING: This file was auto-generated. Do not edit!

PATH=:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin

exec </dev/null
exec >/dev/null
exec 2>/dev/null

svc -dx /var/service/* /var/service/*/log

env - PATH=$PATH svscan /var/service 2>&1 | \
env - PATH=$PATH readproctitle service errors: .........................(kéo dài )




Cấu hình cho daemontools : setup chương trình cho deamontơols giám sát

mkdir -p /var/qmail/supervise/qmail
mkdir /var/qmail/supervise/pop3d
mkdir /var/qmail/supervise/smtpd
chmod +t /var/qmail/supervise/qmail
chmod +t /var/qmail/supervise/pop3d
chmod +t /var/qmail/supervise/smtpd

File : /var/qmail/supervise/qmail/run
# cp /usr/local/src/qmail-1.03/home /var/qmail/supervise/qmail/run

Chuyển file rc của qmail từ ./Mailbox thành ./Maildir/ (/var/qmail/rc)

Code:


#!/bin/sh


# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.

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



File : /var/qmail/supervise/smtpd/run

Code:


#!/bin/bash

#
# smtpd/run : qmail-smtpd starting script
#
exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
/usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb -R -H -l0 -u `id -u qmaild` -g `id -g qmaild` 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1



Tạo quyền thi hành cho file run
# chmod +x /var/qmail/supervise/smtpd/run

file : /var/qmail/supervise/pop3d/run
Code:


#!/bin/bash

#
# pop3d/run : qmail-pop3d starting script
#
exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
tcpserver -v -x /etc/tcpserver/tcp.pop3.cdb -R -H 0 pop3 qmail-popup mail.example.jp \
/home/vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1



Tạo quyền thi hành cho file run
# chmod +x /var/qmail/supervise/pop3d/run

Tạo symlink
# ln -s /var/qmail/supervise/qmail /var/service/qmail
# ln -s /var/qmail/supervise/smtpd /var/service/smtpd
# ln -s /var/qmail/supervise/pop3d /var/service/pop3d

Khỏi động lại init để enable svscan bằng lệnh sau
# kill -HUP 1

Kiểm tra các service có hoạt động hay không
# svstat /var/service/*
/var/service/pop3d: up (pid 5021) 4 seconds
/var/service/qmail: up (pid 5022) 4 seconds
/var/service/smtpd: up (pid 5023) 4 seconds

* up seconds chỉ báo 0 hay 1 thì check lại permission của run scripts hoặc syntax của chúng .

Qmail configuration
/var/qmail/control/locals
Code:


localhost          (add)

mail.example.jp
example.jp         (add)



/var/qmail/control/rcpthosts
Code:


localhost          (add)

mail.example.jp
example.jp         (add)




Start up scirpt cho qmail

#!/bin/sh

[ -f /var/qmail/rc ] || exit 0
PATH=$PATH:/var/qmail/bin:/usr/local/bin

case "$1" in
start)
echo -n "Starting... qmail"
csh -cf '/var/qmail/rc &'

################ SMTP #####################

/usr/local/bin/tcpserver -H -R -l mail.example.jp -v \
-x /home/vpopmail/etc/tcp.smtp.cdb -u 711 -g 710 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 &

################ POP #####################

/usr/local/bin/tcpserver -H -R -l mail.example.jp -v 0 pop3 \
/var/qmail/bin/qmail-popup mail.example.jp /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 2 &

touch /var/lock/qmail
;;
stop)
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
rm -f /var/lock/qmail
;;
*)
echo "Usage: "$0" {start|stop}"
exit 1
esac
exit 0 


[root init.d]# chmod +x qmail
[root init.d]# cd ../rc3.d/
[root rc3.d]# ln -s ../init.d/qmail S84qmail

Check process tree


pstree -ah

|-svscanboot /usr/local/bin/svscanboot
| |-readproctitle service errors: ...
| `-svscan /var/service
| |-supervise qmail
| | `-qmail-send
| | |-qmail-clean
| | |-qmail-lspawn ./Maildir/
| | |-qmail-rspawn
| | `-splogger qmail
| |-supervise smtpd
| | `-tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb -R -H -l0 -u ... 


Remove sendmail

[root root]# rm /usr/lib/sendmail
[root root]# rm /usr/sbin/sendmail
[root root]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
[root root]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

Install procmail

# cd /usr/local/src
# tar xfvz procmail-3.21.tar.gz
# cd procmail-3.21
# make
# make install
# make install-suid

Tạo file .qmail vào ~vpopmail/domains/example.jp/777/.qmail với nội dung sau
Code:


| /usr/bin/procmail -m ./.procmailrc



chú ý khi thêm vào không được thêm space vào trước dấu | .


Tại file .procmailrc vào ~vpopmail/domains/example.jp/777/.procmailrc với nội dung sau

PATH=/usr/bin:/bin:/usr/local/bin
HOME=/var/vpopmail/domains/example.jp/777
MAILDIR=$HOME/Maildir
DEFAULT=$HOME/Maildir/
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$MAILDIR/procmail.lock

 


=================================

06/07/25 :
Thêm bước patch error cho qmail
Thêm bước patch cho tcpserver (ucspi-tcp-0.88.errno.patch )

06/07/27 :
Chỉnh sửa và thêm chi tiếc cấu hình daemontools
Sửa đổi start up script cho qmail

Tác giả : 777
Nguồn : www.vnhacker.org


[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to top Go to original post  

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|