[FreeBSD]
利用Qmailrocks包在FreeBSD上的qmail安装指南
利用Qmailrocks包在FreeBSD上的qmail安装指南
参考:http://freebsd.qmailrocks.org/install.htm
内容简介
第一部分、Qmail安装配置
1. 下载所需的软件包
2. 安装qmail本身
3. 安装EZmlm和EZmlm-idx
4. 安装Qmail-Autoresponder
5. 安装Vpopmail
6. 安装VQadmin
7. 安装maildrop
8. 安装QmailAdmin
9. 完成Qmail的安装
10. 卸载Sendmail
11. 启动qmail
第二部分、IMAP、WEB邮件系统
1. 安装Courier imap/imaps和courierpassd
2. Web邮件系统 Squirrelmail
第三部分、病毒和垃圾邮件过滤,其它功能 (还没有测试)
环境和预备条件:
* FreeBSD Release 6.1
* Web Server - Version - 2.2.0
* PHP - Version 5.1
* Perl – 5.8.8
* GCC – 编译器
* MySQL – version 5.1.建议用4.x或更高版本。如果你不用数据库存储虚拟域和用户,不需要。
* OpenSSL
* Wget – 下载软件包的软件
第一部分、Qmail安装配置
一、下载所需的软件包
在根目录下建立文件夹存放所需的软件包
#mkdir /downloads
#cd /downloads
从Qmailrocks.org下载捆绑好的软件包
#wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz
解压缩
#tar zxvf qmailrocks.tar.gz
二、安装qmail本身
首先,Qmailrocks已经写好一个脚本,它的作用是:
1、 初始化qmail所需的目录
2、 增加用户和用户组
3、 从软件包里把qmail、ucspitcp和daemontools解压缩
这个脚本已经在上面的软件包里,运行这个脚本就可以了:
# /downloads/qmailrocks/scripts/install/qmr_install_freebsd-s1.script
接着,为qmail打补丁
# /downloads/qmailrocks/scripts/util/qmail_patches.script
现在开始安装qmail了
# cd /usr/src/qmail/qmail-1.03
#make man
#make setup check
#./config-fast mail.test.com (mail.test.com要用你自己的真正的主机域名全称)
安装ucspi-tcp
#cd /usr/src/qmail/ucspi-tcp-0.88/
#make
#make setup check
安装daemontools....
#cd /package/admin/daemontools-0.76
#package/install
安装完成后,会提示你重启。
重启后用ps –aux命令查看你将看到svcscan服务在运行了。
三、安装EZmlm和EZmlm-idx
EZmlm是个邮件列表插件,安装很简单
#cd /downloads/qmailrocks/
#tar zxvf ezmlm-0.53-idx-0.41.tar.gz
#cd ezmlm-0.53-idx-0.41
#make
#make setup
四、安装Qmail-Autoresponder
#pkg_add –r autorespond
你也可以通过port安装它。
五、安装Vpopmail
a) 不用MySQL
#cd /downloads/qmailrocks
#tar zxvf vpopmail-5.4.13.tar.gz
#cd vpopmail-5.4.13
#./configure –enable-logging=p // 你可以用./configure –help查看配置选项
#make
#make install-strip
b) 使用MySQL
记得在第二部分已经创建了系统用户vpopmail和组vchkpw,现在我门要在用户vpopmail主目录下设置vpopmail的数据库连接
#mkdir ~vpopmail/etc
#chown vpopmail:vchkpw ~vpopmail/etc // 可以用其它用户和组替换用户vpopmail和组vchkpw
#echo "localhost|0| [vpopmailuser] | [password] |vpopmail" > ~vpopmail/etc/vpopmail.mysql
上面的vpopmailuser和password是连接数据库的用户名和密码,把它们替换成下面将创建的数据库用户名和密码
[vpopmailuser] - 连接数据库的用户名:
[password] - 连接数据库的密码:
为MySQL数据库连接配置文件设置所有者和权限
#chown vpopmail:vchkpw ~vpopmail/etc/vpopmail.mysql
#chmod 640 ~vpopmail/etc/vpopmail.mysql
登入MySQL并建立数据库vpopmail
#mysql -u root -p
提示输入密码时,输入数据库的root用户的密码
mysql>CREATE DATABASE vpopmail; //建立新的数据库vpopmail
建立一个能够访问vpopmail数据库的用户,用户名和密码和上面的配置文件里的一致。
mysql>GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmailuser@localhost IDENTIFIED BY 'password';
mysql>quit //退出数据库
上面是数据库设置部分,下面是安装配置vpopmail了
#cd /downloads/qmailrocks
#tar zxvf vpopmail-5.4.13.tar.gz
#cd vpopmail-5.4.13
#./configure \
--enable-logging=p \
--enable-auth-module=mysql \
--disable-passwd \
--enable-clear-passwd \
--disable-many-domains \
--enable-auth-logging \
--enable-sql-logging \
--enable-valias \
--disable-mysql-limits
#make
#make install-strip
六、安装Vqadmin
安装
#cd /downloads/qmailrocks
#tar zxvf vqadmin-2.3.6.tar.gz
#cd vqadmin-2.3.6
#./configure --enable-cgibindir=/usr/local/www/apache22/cgi-bin --enable-htmldir=/usr/local/www/apache22/data/
#make && make install-strip
在Apache配置文件http.conf中加入下面的
<Directory "/usr/local/www/apache22/cgi-bin/vqadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>
进入cgi,对目录vqadmin设置访问限制
#cd /usr/local/www/apache22/cgi-bin/vqadmin
#ee .htaccess
内容如下:
AuthType Basic
AuthUserFile /usr/local/etc/apache22/vqadmin.passwd
AuthName vQadmin
require valid-user
satisfy any
更改文件.htaccess所有者和访问权限
#chown www .htaccess //所有者为apache用户
#chmod 644 .htaccess
建立相应的.htpasswd文件,里面存储Vqadmin管理员的用户名和密码
#htpasswd -bc /usr/local/etc/apache22/vqadmin.passwd admin admin
上面一行里的最后两个分别是用户名和密码,都是admin
#chmod 644 /usr/local/etc/apache22/vqadmin.passwd
重启apache,然后打开浏览器,输入:
http://mail.test.com/cgi-bin/vqadmin/vqadmin.cgi
输入上面设置的管理员和密码登录进去。试着添加一个虚拟域。
新添加的域的默认管理员为postmaster
七、安装maildrop
通过port装的为maildrop-2.0.1.tar.bz2
#cd /downloads/qmailrocks
#tar zxvf maildrop-1.6.3.tar.gz
#cd maildrop-1.6.3
#./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota
#make
#make install-strip
#make install-man
八、安装QmailAdmin
#cd /downloads/qmailrocks
#tar zxvf qmailadmin-1.2.9.tar.gz
#cd qmailadmin-1.2.9
#./configure \
--enable-cgibindir=/usr/local/www/apache22/cgi-bin \
--enable-htmldir=/usr/local/www/apache22/data \
--enable-imagedir=/usr/local/www/apache22/data/images \
--enable-help
#make && make install-strip
打开浏览器输入
http://mail.test.com/cgi-bin/qmailadmin
用postmaster就可以登录域进行管理了。
九、完成Qmail的配置
首先,创建脚本qmail supervise,rc,qmailctl并设置相应的权限。在Qmailrocks包里有个脚本直接运行,
#/downloads/qmailrocks/scripts/finalize/freebsd/finalize_freebsd.script
这些刚创建的脚本还不能直接用,修改一些东西就可以了
#ee /var/qmail/supervise/qmail-pop3d/run
把mail.example.com改为你的域名就可以了,我的虚拟域为mail.test.com
#ee /var/qmail/supervise/qmail-smtpd/run
#echo ‘127.:allow,RELAYCLIENT=” ”’ >>/etc/tcp.smtp
或者cp /usr/local/vpopmail/etc/tcp.smtp-dist /etc/tcp.smtp
#qmailctl cdb
建立别名
#echo postmaster >/var/qmail/alias/.qmail-root
#echo postmaster > /var/qmail/alias/.qmail-postmaster
#echo postmaster > /var/qmail/alias/.qmail-mailer-daemon
#ln –s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous
#chmod 644 /var/qmail/alias/.qmail*
十、卸载Sendmail
首先检查进程里是否有sendmail进程,如果有,结束它。
#ps –aux|grep sendmail
#kill xxx //xxx 为sendmail的进程号
移走sendmail程序
#mv /usr/sbin/sendmail /usr/sbin/sendmail.old
#chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old
修改/etc/rc.conf,确保有以下选项
#ee /etc/rc.conf
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
建立qmail链接
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
十一、 启动qmail
启动前先运行一个脚本检查一下
#/downloads/qmailrocks/scripts/util/qmr_inst_check
如果出现congratulation,说明qmail好了,可以启动了。
#qmailctl stop
#qmailctl start
检查qmail运行状况
#qmail stat
如果看到下面这些,说明qmail已经正常运行
/service/qmail-send: up (pid 90660) 6 seconds
/service/qmail-send/log: up (pid 90662) 6 seconds
/service/qmail-smtpd: up (pid 90666) 6 seconds
/service/qmail-smtpd/log: up (pid 90667) 6 seconds
/service/qmail-pop3d: up (pid 90671) 6 seconds
/service/qmail-pop3d/log: up (pid 90669) 6 seconds
messages in queue: 0
messages in queue but not yet preprocessed: 0
最后,测试一下
#telnet localhost 110
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.test.com.
Escape character is '^]'.
+OK <7737.1186892826@mail.test.com>
user test@test.com
+OK
pass 123456
+OK
quit
+OK
Connection closed by foreign host.
第二部分 IMAP, WEB邮件系统
一、 安装Courier imap/imaps和courierpassd
安装courier-authlib
#tar zxvf courier-authlib-0.58.tar.bz2
#cd courier-authlib-0.58
#./configure –prefix=/usr/local/courier-authlib\
--without-authpam \
--without-authldap \
--without-authpwd \
--without-authmysql \
--without-authpgsql \
--without-authshadow \
--without-authuserdb \
--without-authcustom \
--without-authcram \
--without-authpipe \
--with-authdaemon \
--with-authvchkpw
#gmake
#gmake install-strip
#gmake install-configure
#make config
安装 courier-imap
#tar zxvf courier-imap-4.1.3.tar.bz2
#cd courier-imap-4.1.3
#./configure \
--prefix=/usr/local/courier-imap\
--disable-root-check\
--with-trashquota\
--without-ipv6\
CPPFLAGS=’-I/usr/local/courier-authlib/include’\
COURIERAUTHCONFIG=’/usr/local/courier-authlib/bin/courierauthconfig’
#gmake
#gmake install
#gmake install-configure
建立IMAP-SSL服务器的SSL证书
#/usr/local/courier-imap/sbin/mkimapdcert
修改配置文件是其可以自动启动
#ee /usr/local/courier-imap/etc/imap
把IMAPDSTART=NO改为IMAPDSTART=YES
#ee /usr/local/courier-imap/etc/imapd-ssl
把IMAPDSSLSTART=NO改为IMAPDSSLSTART=YES
#cp /usr/local/courier-imap/libexec/imapd.rc /usr/local/etc/rc.d/imap.sh
#cp /usr/local/courier-imap/libexec/imapd-ssl.rc /usr/local/etc/rc.d/imaps.sh
安装courierpassd
#cd /usr/ports/security/courierpasswd
#make install clean
利用Daemontool配置为service。参考http://qmail.jms1.net/courierpassd.shtml
#cd /var/qmail/supervise
#mkdir -p 755 courierpasswd/log
在courierpasswd和log目录建立run文件,分别如下
#cd courierpasswd
#ee run
内容如下
#!/bin/sh
exec env -PATH="/usr/bin: /usr/local/bin: /usr/local/sbin" \
tcpserver 127.0.0.1 106 courierpasswd
#cd log
#ee run
内容如下
#!/bin/sh
exec env -PATH="/usr/bin:
建立链接
#ln -s /var/qmail/supervise/courierpasswd /service
二、 Web邮件系统 Squirrelmail
#cd /downloads
#tar zxvf squirrelmail-1.4.10a.tar.bz2
#mv squirrelmail-1.4.10a /usr/local/squirrelmail
#ln –s /usr/local/squirrelmail /usr/local/www/apache22/data/mail
#cd /usr/local/squirrelmail
#mkdir attach
#chown –R www:www attach
#/usr/local/squirrelmail/config/conf.pl
General
-------
1. Domain : test.com
2. Invert Time : false
3. Sendmail or SMTP : SMTP
IMAP Settings
--------------
4. IMAP Server : localhost
5. IMAP Port : 143
6. Authentication type : login
7. Secure IMAP (TLS) : false
8. Server software : other
9. Delimiter : detect
SMTP Settings
-------------
4. SMTP Server : localhost
5. SMTP Port : 25
6. POP before SMTP : false
7. SMTP Authentication : login
8. Secure SMTP (TLS) : false
General Options
1. Data Directory : /usr/local/squirrelmail/data/
2. Attachment Directory : /usr/local/squirrelmail/attach/
3. Directory Hash Level : 0
4. Default Left Size : 150
5. Usernames in Lowercase : false
6. Allow use of priority : true
7. Hide SM attributions : false
8. Allow use of receipts : true
9. Allow editing of identity : true
Allow editing of name : true
Remove username from header : false
10. Allow server thread sort : false
11. Allow server-side sorting : false
12. Allow server charset search : true
13. Enable UID support : true
14. PHP session name : SQMSESSID
15. Location base :
测试:
http://mail.test.com/mail/index.php