debian下安装qmail+clamav+webmail
2007-04-03    刘世伟   
打印自: 安恒公司
地址: HTTP://573x.anheng.com.cn/news/article.php?articleid=1020
debian下安装qmail+clamav+webmail
debian 下安装软件很简单。
1.首先卸载原来的邮件系统, 否则会因为软件包冲突而不能安装qmail.
dpkg -P --force-depends exim4-daemon-heavy
2.安装qmail
qmail的授权协议不允许发布2进制包,
因此debian下只提供了qmail的源码包以及配置文件和编译脚本.
自己编译很简单.
编译会在/tmp/qmail下进行,后会自动安装并删除临时文件.
安装源码包(安装前,先确认 /etc/apt/sources.list 里面的 内容的main后面增加了non-free contrib)
aptitude update aptitude install qmail-src
编译并安装
build-qmail     
build-ucspi-tcp

3.安装vpopmail用mysql管理email帐号
下载 vpopmail的源码包后编译。
http://www.inter7.com/vpopmail/
执行configure之前,需要先添加vpopmail和vchkpw用户组,
配置:
./configure \
--enable-libdir=/usr/lib \
--enable-clear-passwd=y \
--enable-qmail-ext \
--enable-passwd=y \
--enable-tcprules-prog=/usr/bin/tcprules \
--enable-auth-module=mysql \  如果不要mysql管理账号可以去掉这一行.
--enable-ip-alias-domains=n \
--enable-roaming-users=y \
--enable-relay-clear-minutes=20 \
--disable-many-domains \
--enable-learn-passwords=y \
--enable-sqwebmail-pass=y
编译安装
make
make install-strip
装完后,修改/etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT="" 本机允许发信
192.168.:allow,RELAYCLIENT="" 局域网允许发信
:allow
修改/var/qmail/control/me
mail1.anheng.com.cn
修改/var/qmail/control/helohost
mail1.anheng.com.cn ;有些smtp收信服务器要求对端的helo信息跟ip能够对上
修改/var/qmail/control/rc
#!/bin/sh
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir splogger qmail
修改/var/qmail/control/users/assign,里面内容只放一个'.'符号.
.


在mysql建立vpopmail表,以及vpopmail帐号
mysql的帐号放进/home/vpopmail/etc/vpopmail.mysql,以便vpopmail程序使用它们
照如下修改/etc/init.d/qmail让pop3使用vpopmail作认证。

sh -c "start-stop-daemon --start --quiet --user root \
  --exec /usr/bin/tcpserver -- -R -H -U -t 1 -l 0 -c 100\
  0 pop-3 /usr/sbin/qmail-popup anheng.com.cn \
  /home/vpopmail/bin/vchkpw /usr/sbin/qmail-pop3d Maildir &"

4.clamav的安装(可选) 
在debian下的qmail的启动脚本对内存占用限制在16M,
如果要用clamav就需要修改到160m
修改/etc/init.d/qmail里面的 ulimit 一行从16384改成163840
clamav-daemon 在我的服务器上安装,跟qmail-scanner配合不成功,所以选择clamav 不用daemon方式
安装程序
aptitude install clamav unzip maildrop
(需要用到maildrop中的mime解码程序)
到sf.net下载qmail-scanner 作为clamav和qmail之间的桥梁。
http://jaist.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-2.01.tgz

aptitude install unzip 安装unzip

qmail-scanner的安装需要setuidgid这个程序,这个程序存在于daemontools软件包中,
而debian没有包含这个软件包,只包含了它的build工具daemontools-installer
aptitude install daemontools-installer
然后执行 build-daemontools 编译并安装.
安装build工具, 会安装一堆的dev库, 当我们编译完,就可以卸载daemontools-installer,
这时这些dev库就会一同被卸载了.

还要安装一个perl-suid
aptitude install perl-suid

或者只需要perl-suid不需要setuidgid?不确定, 等下次安装确认一下.

tar zxvf qmail-scanner-2.01.tgz
cd qmail-scanner-2.01
./configure #照提示手动建立组和用户,
./configure --install

修改/etc/tcp.smtp,让进入的邮件运行查毒程序
127.0.0.1:allow,RELAYCLIENT="" ;本机邮件不检查
192.168.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

执行/home/vpopmail/bin/clearopensmtp 让tcp.smtp生效。
这就装完了。
要看信件的收发日志, 可以 tail -f /var/log/mail.info
还可以手动修改文件 /var/qmail/bin/qmail-scanner-queue.pl
修改病毒通知邮件地址等.


增加邮件域名: /home/vpopmail/bin/vadddomains aaa.com
增加帐号:/home/vpopmail/bin/vadduser aaa@aaa.com
删除域名 /home/vpopmail/bin/vdeluser aaa@aaa.com

或者直接修改数据库,增加账号和密码.


后续安装:
5.安装sqwebmail,
首先安装sqwebmail
aptitude install sqwebmail

debian中没有带vpopmail的认证模块,这个我们可以自己来做一个. 
或者从ftp://debian.anheng.com.cn下载我做好的deb文件
当然还可以使用mysql认证模块.那样会更简单一些.

首先apt-get source courier-authlib 获取authlib的源代码
在目录debian我们需要改2个文件增加一个文件.
增加/usr/src/courier-authlib-0.58debian/courier-authlib-vchkpw.files 包含一行内容:
/usr/lib/courier-authlib/libauthvchkpw.*
修改rules 把里面的--without-vchkpw 改成--with-vchkpw
修改control 增加一个小结

Package: courier-authlib-vchkpw
Architecture: any
Depends: ${shlibs:Depends}, courier-authlib (>= ${RELUP})
Description: vpopmail support for the Courier authentication library

然后我们编译它生成deb文件.
dpkg-buildpackage -rfakeroot -uc -b
执行完毕后,可以找到../courier-authlib-vchkpw_0.58-4_amd64.deb

安装它 dpkg -i courier-authlib-vchkpw_0.58-4_amd64.deb

修改/etc/courier/authdaemonrc
把多余的authlib模块去掉,
只保留
authmodulelist="authvchkpw"

重启authlib和sqwebmail服务,
/etc/init.d/courier-authdaemon restart
/etc/init.d/sqwebmail restart

运行一下测试
authtest liushiwei@anheng.com.cn *******

ok!

   
责任编辑: admin