<![CDATA[Latest posts for the topic "Cài đặt nhanh và cấu hình qmail + vpopmail + procmail + daemontools"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Cài đặt nhanh và cấu hình qmail + vpopmail + procmail + daemontools 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 ]]>
/hvaonline/posts/list/1965.html#9962 /hvaonline/posts/list/1965.html#9962 GMT