《配置qmail邮件服务器【优质内容】》由会员分享,可在线阅读,更多相关《配置qmail邮件服务器【优质内容】(100页珍藏版)》请在金锄头文库上搜索。
1、 Linux服务器配置与管理服务器配置与管理作者:冯昊清华大学出版社1高级培训第第10章章 配置配置qmail邮件服务器邮件服务器2高级培训10.1 10.1 邮件服务系统简介邮件服务系统简介电子邮件服务系统由邮件传输代理(Mail Transfer Agent,缩写为MTA)和邮件用户代理(Mail User Agent,缩写为MUA)两部分构成 。邮件用户代理就是邮件系统的客户端程序,比如常用的Foxmail、Outlook等。另外,目前也常通过Web页面来进行邮件的收发。邮件服务器属于服务器端程序,其职责一般为: 接收和传递(转发)由客户端发送的邮件。 为需要发送的邮件进行排队。 接收从
2、其他邮件服务器转发来的用户邮件,并将邮件放置在一个指定的存储区域,直到用户连接本邮件服务器收回邮件。 根据设定的条件,有选择地转发或拒绝转发用户的邮件,或有选择地拒绝接收用户的邮件(邮件过滤)。 1. 邮件系统的组成邮件系统的组成3高级培训10.1 10.1 邮件服务系统简介邮件服务系统简介发送邮件使用SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)协议来实现的,是最基本的Internet邮件服务协议,该协议使用TCP 25号端口。ESMTP称为扩展的SMTP,增加了发件认证功能。 接收邮件可使用POP3(Post Office Protocol,邮局协
3、议) 或IMAP协议。POP3允许用户从邮件服务器接收邮件的协议,常与SMTP协议相结合使用,POP3是目前较常用的电子邮件服务协议。该协议使用TCP 110号端口。 IMAP是Internet Message Access Protocol的缩写,称为Internet消息访问协议,目前常用的是版本4,即IMAP4,为用户提供了有选择性的从邮件服务器接收邮件、基于服务器的信息处理和共享邮箱等功能。 2. 邮件系统使用的协议邮件系统使用的协议4高级培训10.1 10.1 邮件服务系统简介邮件服务系统简介MIME协 议 是 多 用 途 Internet邮 件 扩 展 ( Multipurpose
4、Internet Mail Extensions),作为对SMTP协议的扩展,MIME规定了通过SMTP协议传输非文本电子邮件附件的标准。 Linux/Unix平台常用的邮件服务器(MTA)主要有Sendmail、Postfix和qmail。Sendmail和Postfix是Red Hat Linux自带和默认安装的邮件服务器。Sendmail在UNIX系统中属元老级的邮件传送代理,但配置比较麻烦,安全性较差。qmail可运行在UNIX/Linux系统,是面向安全而设计的,其目标是比Sendmail更容易使用,并且运行更快速、高效和更安全,是目前最受欢迎的一种邮件服务器之一 。2. 邮件系统使
5、用的协议邮件系统使用的协议5高级培训10.1 10.1 邮件服务系统简介邮件服务系统简介安全性更高 qmail采用模块化设计,将邮件处理分为多个过程,采用不同的进程来分别实现,并尽量避免使用root用户运行。 可靠性更高 为了保证可靠性,qmail只有在邮件被正确地写入到磁盘才返回处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保证邮件不被丢失,而是重新投递。运行更高效 qmail支持邮件的并行投递,缺省配置情况下, 能够达到20个并行邮件同时传送。 . qmail的优点的优点6高级培训10.2 qmail10.2 qmail工作流程工作流程qmail是采用模块化设计的邮件
6、服务器,提供本地和远程邮件的传送和转发,每一个子功能都是由一个程序(进程)来实现的,每个程序的运行方式,则是由一个或多个配置文件和环境变量来共同控制的。 qmail的进程由相应的程序启动,这些程序位于/var/qmail/bin目录中。1. qmail简介简介7高级培训10.2 qmail10.2 qmail工作流程工作流程(1) qmail-smtpd与qmail-injectqmail-smtpd进程以qmaild用户身份运行,用于接收/拒收通过SMTP传递的邮件,若允许发送,则将邮件传递给qmail-queue进程处理。 qmail-smtpd并不常驻内存,可用tcpserver或xin
7、etd服务管理器来激活。tcpserver可监视系统的IP连接请求,若侦听到SMTP连接请求,tcpserver就会启动qmail-smtpd进程,然后将连接请求交由qmail-smtpd处理,SMTP连接建立后,远端主机就可将邮件投递到本邮件服务器了。qmail-inject进程则用于接收本地域邮件用户投递的邮件,并将邮件传递给qmail-queue进程处理。 2. qmail主要进程简介主要进程简介8高级培训10.2 qmail10.2 qmail工作流程工作流程(2) qmail-queue该进程处理从qmail-smtpd和qmail-inject传递过来的邮件,并将这些邮件传递到邮件
8、队列中。 (3) qmail-send该进程以qmails用户身份运行,用于投递来自消息队列的邮件。当一个邮件被放入邮件队列之后,qmail-send就开始对该邮件进行处理,它会检查邮件队列中的每一个邮件的状态,对于没有投递过的和投递暂时失败的邮件,qmail-send会将目标地址是本地主机的传递给qmail-lspawn,目标地址是远端主机的传递给qmail-rspawn,对于投递永久失败的邮件,qmail-send将把该邮件传递给qmail-clean,让其永久删除该邮件。2. qmail主要进程简介主要进程简介9高级培训10.2 qmail10.2 qmail工作流程工作流程(4) qm
9、ail-rspawn与qmail-lspawn qmail-rspawn进程常驻内存,以qmailr用户身份运行,其作用是调度邮件投递的时间和顺序,然后启动qmail-remote进程完成与目标邮件服务器的连接和邮件的投递。qmail-lspawn与qmail-rspawn功能相似,它启动qmail-local进程,来完成目标地址是本地域的邮件的投递,以root身份运行该进程。 (5) qmail-clean该进程也是常驻内存,其作用是从邮件队列中删除投递永久失败的邮件,以qmailq用户身份运行。2. qmail主要进程简介主要进程简介10高级培训10.2 qmail10.2 qmail工作
10、流程工作流程(6) qmail-remote与qmail-localqmail-remote进程通过SMTP协议将邮件投递给远端的用户,默认允许运行20个qmail-remote并发进程。一个qmail-remote进程每次只能同一个远端主机(目标邮件服务器)连接,在连接时,可以同时投递在这个远端主机上的多个接收者的邮件。qmail-local进程用于投递目标地址是本地邮件服务器的邮件,并负责将邮件投递到本地邮件用户的邮箱中,默认允许运行10个qmail-local并发进程。 2. qmail主要进程简介主要进程简介11高级培训10.2 qmail10.2 qmail工作流程工作流程12高级培
11、训10.2 qmail10.2 qmail工作流程工作流程7qmail-popup与qmail-pop3dqmail-popup进程用于通过网络获取客户端提交的pop账户和密码,然后调用vchkpw程序对用户身份进行验证,并设置相应的环境变量,验证通过后,再交给qmail-pop3d进程处理,实现用户邮件的读取或删除。qmail-pop3d是POP3的后台服务程序,是qmail自带的POP服务器。qmail-popup进程通常用tcpserver或xinetd服务管理器来对其进行管理,并在110端口进行监听POP连接请求。 2. qmail主要进程简介主要进程简介13高级培训10.3 10.3
12、 安装安装qmailqmail邮件服务器邮件服务器netqmail-1.05.tar.gz qmail 1.05基本系统软件包qmail-smtpd-auth-0.31.tar.gz SMTP发信认证补丁程序,使qmail支持ESMTPucspi-tcp-0.88.tar.gz 提供tcpserver服务checkpassword-0.90.tar.gz pop用户验证程序cmd5checkpw-0.22.tar.gz pop用户验证程序vpopmail-5.4.6.tar.gz 基于qmail的虚拟邮件域创建管理程序sqwebmail-4.0.7.tar.bz2 一个web界面的邮件客户端,
13、使用CGI实现。igenus_21.0.1_20040713_release.tgz web界面的邮件客户端,使用php实现。vqsignup-0.5.tar.gz 提供web方式的邮件用户注册ezmlm-0.53.tar.gz提供用户邮件列表管理。autorespond-2.0.4.tar.gz邮件自动回复程序qmailadmin-1.2.2.tar.gz提供web界面来管理vpopmail邮件域daemontools-0.76.tar.gz用于对qmail进程进行管理courier-imap-3.0.7.tar.bz2使qmail支持IMAP4服务的软件包。 . 相关软件包相关软件包14高
14、级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 申请注册域名,并设置该域的MX记录 此处假设已申请了域名,用于web服务,作为邮件服务器的主机名。 必须添加MX记录,并将域名解析为邮件服务器的IP地址。(2) 检查MX是否生效可使用nslookup命令来检查域名的MX记录是否添加和生效。操作命令为: C:nslookup server 61.128.192.68 set type=mx 2. 安装前的准备工作安装前的准备工作15高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器检查域的检查域的MX记录是否生效记录是否生效16高级培训10.3
15、 10.3 安装安装qmailqmail邮件服务器邮件服务器 (3) 卸载SendmailRed Hat Linux 9默认安装了Sendmail,有的可能还安装了postfix邮件服务器,在决定安装使用qmail之前,应先卸载已安装的邮件服务器,其实现命令为: rootrh9 root# rpm -e sendmail -nodeps #删除sendmail邮件服务器rootrh9 root# rpm -e postfix -nodeps #删除postfix邮件服务器 rootrh9 root# rm -rf /var/mail #删除邮件目录 2. 安装前的准备工作安装前的准备工作17高
16、级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 (4)创建qmail和vpopmail所需的用户和用户组 qmail的工作目录默认为/var/qmail,若要更改,可在编译qmail之前,编辑源代码目录中的conf-qmail文件。 qmail工作时将要用到名为qmail和nofiles的用户组,以及一些用户账户,在编译安装qmail之前必须事先创建好。创建方法为:rootrh9 root# mkdir /var/qmail #创建qmail工作目录rootrh9 root# groupadd -g 91 nofilesrootrh9 root# useradd -
17、g nofiles -u 91 -s /bin/false -d /var/qmail/alias aliasrootrh9 root# useradd -g nofiles -u 92 -s /bin/false -d /var/qmail qmaildrootrh9 root# useradd -g nofiles -u 93 -s /bin/false -d /var/qmail qmaillrootrh9 root# useradd -g nofiles -u 94 -s /bin/false -d /var/qmail qmailprootrh9 root# groupadd -g
18、92 qmailrootrh9 root# useradd -g qmail -u 95 -s /bin/false -d /var/qmail qmailqrootrh9 root# useradd -g qmail -u 96 -s /bin/false -d /var/qmail qmailrrootrh9 root# useradd -g qmail -u 90 -s /bin/false -d /var/qmail qmails 2. 安装前的准备工作安装前的准备工作18高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 (1)编译安装qmail rootr
19、h9 root# cd /usr/local/src/qmail rootrh9 qmail# tar -zxvf netqmail-1.05.tar.gz rootrh9 qmail# cd netqmail-1.05 rootrh9 netqmail-1.05# lsrootrh9 netqmail-1.05# ./collate.sh #打补丁,将1.03升级到1.05rootrh9 netqmail-1.05# lsrootrh9 netqmail-1.05# bunzip2 -c ./qmail-toaster-0.6-1.patch.bz2 | patch -p0rootrh9 n
20、etqmail-1.05#cd netqmail-1.05下面为TLS(SSL)补丁所需的include文件创建符号连接,需要系统安装有openssl。rootrh9 netqmail-1.05# ln -s /usr/kerberos/include/com_err.h /usr/kerberos/include/krb5.h 3安装安装qmail 1.05软件包软件包 19高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 rootrh9 netqmail-1.05#make WITH_QMAILQUEUE_PATCH=yes setup check (2) 配置
21、邮件域名rootrh9 qmail-1.03# ./config-fast 下面启用邮件发送者信封域名检查,以检查邮件的信封中是否有合法的DNS域名,以防止垃圾邮件。rootrh9 netqmail-1.05#echo 1 /var/qmail/control/mfcheck (3)建立qmail需要的系统别名 rootrh9 qmail-1.03# cd aliasrootrh9 alias# touch .qmail-postmaster .qmail-mailer-daemon .qmail-rootrootrh9 alias# chmod 2755 aliasrootrh9 alia
22、s# chmod 644 alias/.qmail* 3安装安装qmail 1.05软件包软件包 20高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 rootrh9 alias#echo mailmaster /var/qmail/alias/.qmail-postmasterrootrh9 alias#echo mailmaster /var/qmail/alias/.qmail-root (4)创建sendmail的符号连接很多程序默认调用sendmail来发送邮件,在删除sendmail邮件服务器后,需要利用qmal提供的sendmail程序,在原sendm
23、ail所在的位置,创建一个sendmail的符号链接,其创建方法为:ln -s /var/qmail/bin/sendmail /usr/sbin/sendmailln -s /var/qmail/bin/sendmail /usr/lib/sendmail若不创建该链接,原来依赖于sendmail发信的程序,可能无法正常发送邮件。 3安装安装qmail 1.05软件包软件包 21高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 (5)设置qmail使用Maildir邮箱格式 rootrh9 qmail# cp /var/qmail/boot/home /var/q
24、mail/rcrootrh9 qmail# vi /var/qmail/rc #编辑rc,将默认的Mailbox更改为Maildir#!/bin/sh#Using splogger to send the log through syslog.#Using qmail-local to deliver messages to /Maildir by default.exe env -PATH=/var/qmail/bin:$PATH qmail-start ./Maildir/ splogger qmail 修改后存盘退出vi。 3安装安装qmail 1.05软件包软件包 22高级培训10.3
25、 10.3 安装安装qmailqmail邮件服务器邮件服务器rootrh9 qmail# chmod 755 /var/qmail/rc #设置为可执行文件以后就可通过执行/var/qmail/rc来启动qmail的守护进程了,启动时注意带&符号,让其以后台方式运行,其启动方法为: rootrh9 qmail# /var/qmail/rc & 到此为止,qmail服务器的基本系统就安装完毕,但qmail的SMTP和POP3服务进程还未启动,因此,目前还无法发送和接收邮件。qmail的SMTP服务进程qmail-smtpd和POP3服务的进程qmail-popup,通常采用tcpserver服务
26、管理器来管理。 3安装安装qmail 1.05软件包软件包 23高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 安装checkpassword rootrh9 root# cd /usr/local/src/qmailrootrh9 qmail# mv ./netqmail-1.05/other-patches/* . #将补丁移到qmail目录rootrh9 qmail# tar -zxvf checkpassword-0.90.tar.gzrootrh9 qmail#cd checkpassword-0.90rootrh9 checkpassword-0.90
27、# patch -p1 ./checkpassword-0.90.errno.patchrootrh9 checkpassword-0.90# makerootrh9 checkpassword-0.90# make setup checkrootrh9 checkpassword-0.90# chmod 4755 /bin/checkpasswordrootrh9 checkpassword-0.90# ll /bin/checkpassword-rwsr-xr-x 1 root root 7716 Aug 30 17:01 /bin/checkpassword 4安装安装checkpass
28、word和和cmd5checkpw软件包软件包24高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 安装cmd5checkpwrootrh9 qmail# tar -zxvf cmd5checkpw-0.22.tar.gzrootrh9 qmail# mkdir /usr/manrootrh9 qmail# mkdir /usr/man/man8rootrh9 qmail# cd cmd5checkpw-0.22rootrh9 cmd5checkpw-0.22#makerootrh9 cmd5checkpw-0.22#make installcp cmd5check
29、pw /bin/; cp cmd5checkpw.8 /usr/man/man8/ 4安装安装checkpassword和和cmd5checkpw软件包软件包25高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 安装tcpserver软件包rootrh9 qmail# tar -zxvf ucspi-tcp-0.88.tar.gzrootrh9 qmail# cd ucspi-tcp-0.88rootrh9 ucspi-tcp-0.88# patch -p1 ./ucspi-tcp-0.88.a_record.patchrootrh9 ucspi-tcp-0.88#
30、 patch -p1 ./ucspi-tcp-0.88.errno.patchrootrh9 ucspi-tcp-0.88# patch -p1 ./ucspi-tcp-0.88.nobase.patchrootrh9 ucspi-tcp-0.88# makerootrh9 ucspi-tcp-0.88# make setup check其可执行文件安装在/usr/local/bin/目录中,常用的主要有tcpserver和tcprules。 5tcpserver与邮件中继与邮件中继 26高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 qmail的邮件中继控制 邮
31、件中继(Relay)简介 邮件中继(relay)是指服务器接受客户端的smtp发信请求,并将客户端发往第三方(非本域邮件用户)的邮件进行转发。当邮件服务器开放中继功能后,若不对允许中继的用户进行有效控制,邮件服务器将成为垃圾邮件转发的中继站。qmail可使用发件认证和中继规则来防止邮件中继被滥用。对于具有发信认证功能的ESMTP,在会话过程中,将验证用户的身份(利用邮件账户和密码),只有身份验证通过后,才允许该用户发送邮件。发件认证是目前防止转发垃圾邮件的常用手段之一,对于拥用合法身份的邮件发送者,若要禁止其中继或者要禁用某个或某些用户对邮件服务器的访问,则可进一步使用中继规则来进行控制。5t
32、cpserver与邮件中继与邮件中继 27高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 设置relay规则 qmail的qmail-smtpd进程用于接收用户的发信请求,并将其传递给邮件队列处理,但该进程并不常驻内存,因此需要使用tcpserver进程来监听SMTP连接请求。当有SMTP连接请求时,tcpserver会根据中继规则,决定是否允许该用户连接,若允许,则为其设置相关环境变量,然后启动激活qmail-smtpd进程,并将SMTP请求交给qmail-smtpd进程处理,若当前RELAYCLIENT环境变量被设置,则rcpthost文件将被忽略,此时允许用
33、户中继;若RELAYCLIENT环境变量未被设置,则将拒绝中继。因此,利用中继控制文件,可实现SMTP的访问控制。 5tcpserver与邮件中继与邮件中继 28高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器对中继规则的设置,使用tcpserver的配置文件tcp.smtp来实现,其配置命令用法为:IP地址或网络号:deny | allow , RELAYCLIENT=deny表示拒绝连接;allow表示允许连接;RELAYCLIENT=用于设置环境变量,以决定是否允许中继。比如,若允许转发本地主机用户所发送的邮件,则配置命令为:127.0.0.1:allow,
34、RELAYCLIENT=若要禁止61.186.170.230用户连接访问邮件服务器,则配置命令为:61.186.170.230:deny中继规则是使用SMTP请求者的IP地址来进行控制的,一般适合于IP地址相对固定的情况。对于未明确设定的IP地址,中继规则默认为deny。 5tcpserver与邮件中继与邮件中继 29高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器tcp.smtp文件建议存放/home/vpopmail/etc目录中,vpopmail也需要使用该文件。 假 设 局 域 网 用 户 通 过 代 理 访 问 Internet, 代 理 服 务 器 的
35、IP地 址 为61.186.170.130,,允许内网用户的邮件转发(中继),则中继控制文件的创建方法为: rootrh9 root# mkdir -p /home/vpopmail/etcrootrh9 root# vi /home/vpopmail/etc/tcp.smtp127.0.0.1:allow, RELAYCLIENT=61.186.170.130:allow,RELAYCLIENT=:allow5tcpserver与邮件中继与邮件中继 30高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器tcpserver并不直接使用tcp.smtp文件,中继规则设置
36、好后,需要将其编译转换为cdb格式的中继控制文件,才能被tcpserver识别和使用。转换方法为:rootrh9 root# cd /home/vpopmail/etcrootrh9 etc# /usr/local/bin/tcprules tcp.smtp.cdb tcp.smtp.tmpcreate database vpopmail;mysqlshow databases;mysqlgrant select on vpopmail.* to vpoponlyreaduserlocalhost identified by password;mysqlgrant select,insert,
37、update,delete,create,drop on vpopmail.* to vpopmailuserlocalhost identified by yourpassword;mysqlquit注意为vpoponlyreaduser和vpopmail用户设置登录密码。这两个账户用于vpopmail进程对vpopmail数据库进行连接和操作。 创建创建vpopmail所需的数据库和用户所需的数据库和用户 33高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器vpopmail进程使用名为/home/vpopmail/etc/vpopmail.mysql的配置文件,
38、来提供用于连接MySQL数据库的登录连接信息,这些信息包括MySQL服务器的主机名,端口号,MySQL用户名、密码和要访问的数据库,该配置文件的表达格式为:read_MySQLServer|read port|read_user|read_password|database_nameupdate_MySQLServer|update port|update_user|update_password|database_name vpopmail.mysql配置文件的创建方法为:rootrh9 qmail# mkdir vpopmail/etcrootrh9 qmail# vi vpopmail/
39、etc/vpopmail.mysqllocalhost|0|vpoponlyreaduser|password|vpopmaillocalhost|0|vpopmailuser|yourpassword|vpopmail保存并退出vi。 创建创建vpopmail.mysql配置文件配置文件 34高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器然后设置属主和权限。rootrh9 qmail#chown vpopmail.vchkpw vpopmail/etc/vpopmail.mysqlrootrh9 qmail#chmod 640 vpopmail/etc/vpop
40、mail.mysql该配置文件在编译安装vpopmail之前,应事先创建好。注意该文件的权限设置,不要为其他用户分配权限,否则对MySQL数据库服务器有很大的安全影响。 创建创建vpopmail.mysql配置文件配置文件 35高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 解压并查看配置选项rootrh9 root# cd /usr/local/src/qmailrootrh9 qmail# tar -zxvf vpopmail-5.4.6.tar.gzrootrh9 qmail# cd vpopmail-5.4.6 rootrh9 vpopmail-5.4.6
41、# ./configure -help | less #查看配置功能选项 vpopmail配置选项简介 vpopmail的配置项参见教材第272-274页。 编译安装vpopmail /home/vpopmail/etc是 vpopmail的 配 置 文 件 目 录 , 邮 件 默 认 域 保 存 在defaultdomain文件中,默认邮件域的用户账户在身份认证时,可直接使用用户名,而不需要指定域名信息。下面先将设置为默认邮件域,然后再编译安装vpopmail。 编译安装编译安装vpopmail 36高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器rootrh9
42、vpopmail-5.4.6# mkdir /home/vpopmail/etcrootrh9 vpopmail-5.4.6# echo /home/vpopmail/etc/defaultdomainrootrh9 vpopmail-5.4.6# chown -R vpopmail.vchkpw /home/vpopmail/etcrootrh9 vpopmail-5.4.6# ./configure -prefix=/home/vpopmail -enable-valias -enable-auth-module=mysql -enable-incdir=/usr/local/mysql
43、/include/mysql -enable-libdir=/usr/local/mysql/lib/mysql -disable-passwd -enable-vpopuser=vpopmail -enable-vpopgroup=vchkpw -enable-domainquotas -disable-mysql-limits -enable-auth-logging -enable-mysql-logging -enable-logging=e -enable-roaming-users -enable-tcprules-prog=/usr/local/bin/tcprules -ena
44、ble-relay-clear-minutes=40 -enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp -disable-ip-alias-domains -enable-default-domains= 编译安装编译安装vpopmail 37高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器rootrh9 vpopmail-5.4.6# makerootrh9 vpopmail-5.4.6# make install-stripvpopmail提供的对域的管理命令均存放在/home/vpopmail/bin目录中。
45、 创建虚拟域vpopmail提供了对虚拟域的创建与删除、邮件用户的创建、修改和删除等操作。 复制MySQL共享库到/usr/lib目录若MySQL的共享库未安装在标准的/usr/lib目录中,则在执行vadddomain命令前,应将libmysqlclient.so.10共享库复制到/usr/lib目录中,否则在运行vadddomain命令时,将出现以下错误提示信息:./vaddomain: error while loading shared libraries: libmysqlclient.so.10: cannot open shared object file: No such fi
46、le or directoryrootrh9 root# cp /usr/local/mysql/lib/mysql/libmysqlclient.so.10 /usr/lib 编译安装编译安装vpopmail 38高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 创建与删除虚拟域使用vadddomain命令创建邮件虚拟域,其命令的用法为:vadddomain 域名 域管理员密码域管理员密码实际上设置的是该域的postmaster邮件账户的密码,该账户属于管理员账户。在安装了qmailadmin软件包后,就可利用postmaster邮件账户和此处设置的密码登录,并实
47、现对该域的管理。比如,若要创建一个名为的邮件虚拟域,则创建命令为:rootrh9 root# cd /home/vpopmail/binrootrh9 bin# ./vadddomain snbj20010814执行该命令后,将在MySQL的vpopmail数据库中,自动生成4个数据表,其表名分别为dir_control、lastauth、vlog和vpopmail,其中vpopmail数据表用于存贮所有邮件虚拟域的邮件账户信息。 编译安装编译安装vpopmail 39高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器查看虚拟域对应的数据表的操作命令为:rootrh
48、9 bin# /usr/local/mysql/bin/mysql -u root -pEnter password:mysqlshow databases;mysqluse vpopmail;mysqlshow tables;mysqlselect * from vpopmail; #表中已创建出postmaster邮件账户mysqlquit执行添加域的命令后,还会在vpopmail/domains目录下面,创建出一个与域相同名称的文件夹,该文件夹用于存放该域的用户邮箱目录Maildir。若要删除指定的虚拟域,则可使用vdeldomain命令,其用法为vdeldomain 域名。 编译安装编
49、译安装vpopmail 40高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 创建与删除邮件用户邮件虚拟域创建好后,就可使用vadduser命令,为域添加邮件用户。为了表达该用户是属于哪一个域的,用户名中必须包含域名信息,即要采用“用户名虚拟域名”的方式来表达,其命令用法为:vadduser 用户名 用户密码例如,若要在虚拟域,创建名为answer和mailmaster的邮件账户,并设置邮箱空间限额分别为20M和50M,则创建命令为:rootrh9 bin#./vadduser -q 20971520S snbjklrootrh9 bin#./vadduser -
50、q 52428800S hys0814 若要删除某邮件用户,则可使用vdeluser命令来实现,命令用法为:vdeluser 用户名修改用户账户的属性,可使用vmoduser命令来实现,比如若要为mailmaster账户设置一个描述信息,则设置方法为:rootrh9 bin#./vmoduser -c for mail master. 账户的描述信息存贮在pw_gecos字段中。 编译安装编译安装vpopmail 41高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 设置vchkpw的属性和权限设置vchkpw程序的属主具有读写和s权限,所属组和其他用户具有读和执
51、行权限。s权限可使用户在需要时临时具有root用户的权限。rootrh9 root# chmod 4755 /home/vpopmail/bin/vchkpwrootrh9 root# ll /home/vpopmail/bin/vchkpw-rwsr-xr-x 1 vpopmail vchkpw 64684 Aug 31 13:40 /home/vpopmail/bin/vchkpw 设置邮箱容量限额与限额警告信息 设置邮箱容量限额对邮箱容量的配额,可通过vpopmail的配置文件来实现。设置默认邮箱空间的大小,以及定义整个邮件域允许使用的磁盘空间和允许的邮件消息数,可通过编辑修改配置文件v
52、popmail/etc/vlimits.default来实现,该文件仅在.qmailadmin-limits文件不存在时生效。rootrh9 vpopmail# vi vpopmail/etc/vlimits.default 编译安装编译安装vpopmail 42高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器根据需要进行设置修改后,存盘退出vi。该配置文件已包含了对整个邮件域的设置,因此,.qmailadmin-limits文件通常就不再使用。 default_quota和default_maxmsgcount配置项用于设置默认的邮箱空间大小和允许的消息数,该设置
53、是对每一个邮件账户的,设置好该配置项后,以后所创建的新用户,将自动应用该规则。默认配置文件中该配置项前面加了#,进行了注释,并未启用,可去掉前面的#来启用,并根据需要修改默认邮件空间的大小和允许的邮件数。启用邮件空间限额后,在用户的邮箱目录Maildir目录,就会增加一个maildirsize文件,该文件记录着该用户允许使用的磁盘空间和允许的邮件数等信息。 另外还可利用vmoduser -q、vadduser或vsetuserquota命令来设置或修改用户的邮箱容量配额。vsetuserquota后面若指定一个具体的邮件账户,则对该账户设置配额,若指定的是一个邮件域名,则对该邮件域进行设置。
54、设置邮箱容量限额43高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器例如,现添加一个名为的邮件账户,密码为webhys,并设置邮箱容量为20M,允许的邮件数为500封,则实现的操作命令为:rootrh9 root# ./bin/vadduser -q 20971520S,500C webhysrootrh9 root# cat /home/vpopmail/domains/ 0另外也可使用vsetuserquota命令来设置。vadduser -q常用于创建新用户时,对其进行设置,vsetuserquota用于对已存在的用户进行设置或修改。 设置邮箱容量限额44高
55、级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器下面先创建一个测试用户,然后进行操作。rootrh9 root# vpopmail/bin/vadduser 123rootrh9 root#vpopmail/bin/vsetuserquota 20971520S,500Crootrh9 root# cat vpopmail/domains/ 0rootrh9 root# vpopmail/bin/vdeluser vpopmail/etc/.qmailadmin-limits文件用于对整个域允许使用的磁盘空间和允许的邮件数进行设置和限制,其创建方法为:rootr
56、h9 vpopmail# vi vpopmail/etc/.qmailadmin-limitsquota 500maxmsgcount 2000编辑好后,存盘退出vi。quota的磁盘空间单位为Mb。 设置邮箱容量限额45高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器在设置邮箱的容量限额后,默认情况下,当达到或超过限额的90%时,系统会自动将限额警告信息文件中的内容,发送到该用户的邮箱中。 在vpopmail的源代码中有限额警告消息文件quotawarn.msg的样本,可将其复制成vpopmail/domains/.quotawarn.msg文件,然后根据需要进行
57、适当的修改即可。rootrh9 root# cd /usr/local/src/qmail/vpopmail-5.4.6rootrh9 vpopmail-5.4.6#cp quotawarn.msg vpopmail/domains/.quotawarn.msgrootrh9 vpopmail-5.4.6#chown vpopmail.vchkpw vpopmail/domains/.quotawarn.msgrootrh9 vpopmail-5.4.6#vi vpopmail/domains/.quotawarn.msg 设置限额警告信息 46高级培训10.3 10.3 安装安装qmailq
58、mail邮件服务器邮件服务器 tcpserver命令简介qmail的smtp和pop3服务,采用tcpserver服务管理器进行管理。tcpserver用于接收请求的TCP连接,并将请求交给指定的进程处理,基本用法为:tcpserver opts host port prog 其中opts参数-c用于指定允许运行多少个prog子进程,默认为40;-v显示错误和状态消息;-x /etc/tcp.smtp.cdb用于指定中继规则控制文件;-H不通过DNS反向查询获得远程主机的主机名;-R不查询远程主机的信息,若不指定该参数,qmail发完信后,会试图连接客户端的113号端口,会使发信过程显得缓慢;
59、-l localname表示不通过DNS查询本地主机名,localname通常设置为数字0,即-l 0,设置使用-H -R -l 0,可加快发信过程;-u和-g用于设置运行指定进程的用户名和用户组。 7编写编写SMTP和和POP3服务启动脚本服务启动脚本 47高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器主机名host若设置为0,则代表侦听本机的所有IP地址。主机名也可用点分的IP地址来表达。端口port若设置为0,表示自动选择没有被使用的TCP端口,端口也通常用在/etc/services文件中定义的端口别名来表达,比如smtp代表SMTP服务使用的TCP 25
60、号端口,pop3代表POP3服务所使用的TCP 110号端口。prog为要启动和管理的进程程序,程序后面可带所需的参数。 /var/qmail/rc启动脚本在前面已完成,它用于启动qmail邮件发送的一系列守护进程。 7编写编写SMTP和和POP3服务启动脚本服务启动脚本 48高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 编辑smtp服务启动脚本(/var/qmail/startsmtp)qmail-smtpd进程以qmaild用户身份运行,因此需要使用-u和-g参数为其指定用户名和所属的用户组,该进程用于接收用户的SMTP发信请求。rootrh9 root#
61、vi /var/qmail/startsmtp#!/bin/shQMAILDUID=qmaildNOFILESGID=nofiles/usr/local/bin/tcpserver -H -R -t 1 -l 0 -c 80 -v -x /home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true &编辑好后存盘退出vi。 7编写编写SMTP
62、和和POP3服务启动脚本服务启动脚本 49高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 编辑POP3服务启动脚本(/var/qmail/startpop3) qmail-popup进程用于通过网络从客端读取用户的pop账户和口令,然后交给vchkpw进行身份验证,验证通过后,再交给qmail-pop3d服务进程处理,该进程负责用户邮件的具体读取和删除等操作。qmail-pop3d由qmail-popup进程调用,而qmail-popup进程通常用tcpserver服务管理来管理,作为它的一个子进程来运行,因此,启动POP3服务的命令基本格式为:tcpserver
63、 options qmail-popup hostname vchkpw qmail-pop3d Maildir 下面创建启动qmail的POP3服务的启动脚本startpop3:rootrh9 root# vi /var/qmail/startpop3#!/bin/sh /usr/local/bin/tcpserver -H -R -U -v -t 1 -c 80 0 pop3 /var/qmail/bin/qmail-popup /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2&1 7编写编写SMTP和和POP3
64、服务启动脚本服务启动脚本 50高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 设置启动脚本为可执行文件rootrh9 root#chmod 755 /var/qmail/startsmtprootrh9 root#chmod 755 /var/qmail/startpop3若要实现qmail服务器在开机时自动启动,可将这3个启动脚本放入/etc/rc.local文件中。rootrh9 root# vi /etc/rc.local#!/bin/sh/var/qmail/rc &/var/qmail/startsmtp/var/qmail/startpop3 7编写编
65、写SMTP和和POP3服务启动脚本服务启动脚本 51高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 启动qmail邮件服务器依次执行以下启动脚本,启动qmail邮件服务器。rootrh9 root# /var/qmail/rc & #启动qmail。注意&不能少,以后台方式运行。rootrh9 root# /var/qmail/startsmtptcpserver: status:0/80rootrh9 root# /var/qmail/startpop3rootrh9 root# ps -auxw | grep qmail #查看qmail进程 7编写编写SMT
66、P和和POP3服务启动脚本服务启动脚本 52高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器 测试qmail邮件服务器测试有两种方法,一是利用Foxmail或Outlook等客户端邮件收发软件,来测试能否正常收发邮件。另一种方法是直接利用SMTP和POP命令来测试。下面介绍利用命令来测试,这样可直接在服务器上完成测试。SMTP服务使用TCP25号端口,因此,可使用利用telnet去连接服务器的25号端口,然后通过执行相关的SMTP命令来进行测试。 7编写编写SMTP和和POP3服务启动脚本服务启动脚本 53高级培训10.3 10.3 安装安装qmailqmail邮件
67、服务器邮件服务器 测试qmail邮件服务器SMTP服务器测试方法:rootrh9 root# telnet localhost 25 Trying 127.0.0.1.Connected to localhost.Escape character is .220 ESMTP ehlo localhost 250-250-STARTTTLS #支持IMAP服务器使用的TLS(SSL)250-PIPELINING #支持流水服务扩展250 8BITMIME #支持全8-bit字符250-AUTH LOGIN PLAIN CRAM-MD5 #支持PLAIN和CRAM-MD5认证类型 7编写编写SM
68、TP和和POP3服务启动脚本服务启动脚本 54高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器HELO snbj #以邮件用户名作参数,成功返回250代码。250 MAIL FROM: #指定发件人的邮件地址250 okRCPT TO: #指定收件人的邮件地址250 okDATA #执行DATA命令,开始邮件内容的书写354 go aheadSubject: mail test. #邮件主题From:snbj #指定发件人This is a test!. #邮件书写完毕,以小数点加回车结束250 ok 321622537 qp 2108 #命令执行成功,ok之后为邮
69、件的ID号。QUIT #退出并断开SMTP连接 7编写编写SMTP和和POP3服务启动脚本服务启动脚本 55高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器接收邮件测试:rootrh9 root#telnet localhost 110Trying 127.0.0.1.Connected to .Escape character is .+OK USER #user后跟邮件账户+OKPASS webhys #pass后指定该账户的密码+OKSTAT #查询当前用户邮件总数和邮件总大小+OK 1 374 #显示共有1封邮件,邮件共有374字节7编写编写SMTP和和P
70、OP3服务启动脚本服务启动脚本 56高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器LIST#显示邮件列表。将显示各邮件的序号和大小+OK 1 messages (374 octets)1 374.RETR 1 #接收邮件,后跟邮件序号作参数+OK 374 octetsReceived: from 61.186.170.104 by with ESMTP(SMTPD32-7.00) id A52D24F701B6;Tue,07 Sep 2004 15:37:17 +0800Received: (qmail 2640 invoked from network);
71、7 Sep 2004 07:38:04 -0000Received: from unknown (HELO snbj) (127.0.0.1) by 0 with SMTP;7 Sep 2004 07:38:04 -0000Subject:mail testfrom:snbjthis is a test!X-UIDL 321622537.7编写编写SMTP和和POP3服务启动脚本服务启动脚本 57高级培训10.3 10.3 安装安装qmailqmail邮件服务器邮件服务器DELE 1 #删除邮件,以邮件序号为参数,该命令仅给邮件作删除标记,结束会话时才正式删除。若要取消删除,可执行RSET命令
72、,该命令没有参数。+OK msg deletedQUIT #结束会话,断开POP连接+OKConnection closed by foreign host. 7编写编写SMTP和和POP3服务启动脚本服务启动脚本 58高级培训10.4 10.4 安装安装qmailadminqmailadminqmailadmin是一个基于qmail的虚拟域管理软件包,提供了基于web页面的虚拟域管理方式。在安装之前,应先安装好web服务器的CGI支持,vpopmail,autorespond和ezmlm软件包。 1安装autorespondautorespond用于实现自动回复邮件,最新软件包为autore
73、spond-2.0.4.tar.gz。rootrh9 qmail# tar -zxvf autorespond-2.0.4.tar.gzrootrh9 qmail# cd autorespond-2.0.4rootrh9 autorespond-2.0.4# makerootrh9 autorespond-2.0.4# make install 2安装ezmlmezmlm用于提供用户邮件列表管理,最新的软件包为ezmlm-0.53.tar.gz,ezmlm-idx-0.40.tar.gz是对ezmlm的一个功能扩展,ezmlm-idx-0.53.400.unified_41.patch是ezm
74、lm的“undefined reference to errno”编译错误补丁,其安装方法为: 59高级培训10.4 10.4 安装安装qmailadminqmailadminrootrh9 qmail# tar -zxvf ezmlm-0.53.tar.gzrootrh9 qmail# tar -zxvf ezmlm-idx-0.40.tar.gz # 解压补丁rootrh9 qmail#cp -rf ezmlm-idx-0.40/* ezmlm-0.53/rootrh9 qmail# cd ezmlm-0.53rootrh9 ezmlm-0.53#patch idx.patchrootrh
75、9 ezmlm-0.53#patch -p1 -enable-cgibindir=/usr/local/apache2/cgi-bin -enable-qmaildir=/var/qmail -enable-ezmlmdir=/usr/local/bin -enable-vpopmaildir=/home/vpopmail -enable-vpopuser=vpopmail -enable-vpopgroup=vchkpw -enable-maxusersperpage=15 -enable-maxaliasessperpage=15 -enable-modify-quota -enable-
76、domain-autofill -disable-help -enable-ezmlm-mysql rootrh9 qmailadmin-1.2.2#makerootrh9 qmailadmin-1.2.2#make install-strip 3安装与运行qmailadmin61高级培训10.4 10.4 安装安装qmailadminqmailadminqmailadmin编译安装后,网页文件安装在/usr/local/share/qmailadmin/html目录中,语系 文 件 安 装 在 /usr/local/share/qmailadmin/lang目 录 中 。 qmailadmi
77、n文 件 安 装 在/usr/local/apache2/cgi-bin目录中。qmailadmin是一个基于web页面的虚拟域管理工具。可在浏览器中使用以下地址来访问qmailadmin管理页面。http:/服务器主机域名或IP地址/cgi-bin/qmailadmin 运行qmailadmin62高级培训10.510.5安装与配置安装与配置webmailwebmailwebmail是指web界面的邮件客户端,可利用网页来实现邮件的收发。对于qmail邮件服务器,常用的webmail主要有sqwebmail和igenus,前者采用CGI脚本实现,后者是采用PHP脚本实现的,均通过直接读写用户
78、的邮箱目录,来实现邮件的收发。 10.5.1 安装与配置安装与配置sqwebmail 1安装sqwebmailrootrh9 qmail# tar -jxvf sqwebmail-4.0.7.tar.bz2rootrh9 qmail#cd sqwebmail-4.0.7 63高级培训10.510.5安装与配置安装与配置webmailwebmailrootrh9 sqwebmail-4.0.7# ./configure #编译配置,将耗时约12分钟 -without-authpwd -without-authshadow -without-authpam -without-authuserdb
79、-without-authldap -without-authdaemon -with-authvchkpw -with-fcgi -with-cachedir -without-gzip -enable-cgibindir=/usr/local/apache2/cgi-bin -enable-imagedir=/usr/local/apache2/htdocs/webmail -enable-mimetypes=/usr/local/apache2/conf -enable-unicode -with-defaultlang=zh -with-maxformargsize=8388608 -
80、with-maxargsize=10485760 -enable-hardtimeout=7200 -enable-softtimeout=1200rootrh9 sqwebmail-4.0.7#makerootrh9 sqwebmail-4.0.7#make install #安装sqwebmailrootrh9 sqwebmail-4.0.7#make install-configure #安装配置文件 64高级培训10.510.5安装与配置安装与配置webmailwebmail2sqwebmail界面的中文化界面的中文化 sqwebmail默认使用英文界面,软件包中并不包含中文界面的网页
81、模块。在编译配置时,通过-with-defaultlang配置项将默认语言设置为了中文(zh),编译安装后,需要利用英文的网页模板,通过复制的方式产生中文界面的网页模板,然后再对这些网页模板进行中文化处理即可实现界面的中文化。 rootrh9 root# cd /usr/local/share/sqwebmail/htmlrootrh9 html#cp -a en-us zh-cn #复制产生中文界面的网页模板rootrh9 html#ln -s zh-cn zh #创建一个链接rootrh9 html#cd zh-cn65高级培训10.510.5安装与配置安装与配置webmailwebmai
82、l下面对相关的配置文件进行修改,设置为中文语系。rootrh9 zh-cn# echo cn50 zh-cn LANGUAGE_PREFrootrh9 zh-cn# echo zh_CN LOCALErootrh9 zh-cn# echo gb2312 CHARSETrootrh9 zh-cn# echo chinese ISPELLDICT最后逐一对zh-cn目录下面的网页进行中文化处理即可。另外,还可对这些页面,根据需要进行样式和风格的修改,以使界面更美观。 66高级培训10.510.5安装与配置安装与配置webmailwebmail3启动authdaemond守护进程在利用网页访问sqw
83、ebmail页面之前,还需要启动authdaemond 守护进程,其启动脚本文件是/usr/local/share/sqwebmail/libexec/sqwebmaild.rc,该脚本的用法为:启动authdaemond进程,实现命令:sqwebmaild.rc start重启authdaemond进程,实现命令:sqwebmaild.rc reload停止authdaemond进程,实现命令:sqwebmaild.rc stop下面启动authdaemond守护进程:rootrh9 zh-cn# cd /usr/local/share/sqwebmail/libexecrootrh9 li
84、bexec# ./sqwebmaild.rc start 67高级培训10.510.5安装与配置安装与配置webmailwebmail4访问sqwebmail页面在浏览器中键入地址http:/ 安装与配置安装与配置igenusigenus是一套基于qmail + vpopmail + mysql 平台的邮件客户端程序,采用PHP脚本语言开发,采用直接读写qmail的Maildir目录结构,速度快,是很好的一个邮件客户端程序。 1安装igenus软件包rootrh9 qmail#tar -zxvf igenus_21.0.1_20040713_release.tgz -C /usr/local/
85、apache2/htdocs软件包中的文件将解压到/usr/local/apache2/htdocs/igenus目录中。2创建igenus所使用的临时目录igenus需要一个临时目录来存放邮件列表或邮件正文的编码等。此处将其创建在/tmp目录下面,其创建方法为: 69高级培训10.510.5安装与配置安装与配置webmailwebmailrootrh9 qmail#mkdir /tmp/igenusrootrh9 qmail#cd /tmprootrh9 tmp#chmod -R 0755 igenusrootrh9 tmp#chown -R vpopmail:vchkpw igenus3修
86、改igenus的配置文件igenus的 配 置 文 件 位 于 igenus目 录 下 的 config目 录 中 , 文 件 名 为config_inc.php。需要修改该配置文件,以设置igenus的安装目录,存取MySQL服务器的账户和密码信息。 rootrh9 igenus# vi ./config/config_inc.php70高级培训10.510.5安装与配置安装与配置webmailwebmail4修改Apache配置文件修改Apache的配置文件,让Internet用户以vpopmail的用户身份运行网页,修改方法为:rootrh9 igenus# vi /usr/local/
87、apache2/conf/httpd.conf .User vpopmailGroup vchkpw即将用户名设置为vpopmail,用户组设置为vchkpw。然后重新启动Apache服务。 rootrh9 igenus# /usr/local/apache2/bin/apachectl restart 71高级培训10.510.5安装与配置安装与配置webmailwebmail5修改php.ini配置文件igenus的PHP脚本使用了注册全局变量的功能,必须在PHP的配置文件中开启该项功能,否则PHP脚本将无法正常运行。其修改方法为:rootrh9 igenus# vi /usr/local
88、/apache2/conf/php.ini max_execution_time=60 ;允许脚本执行的时间,单位为秒,默认为30秒。memory_limit=20M;允许脚本使用的内存空间大小,默认为8M。post_max_filesize=10Mfile_uploads=On;允许文件上传。upload_max_filesize=10M;默认为2M。允许上传文件的最大大小。register_globals = On;默认为Off,将其设置为On,允许注册全局变量。post_max_size=10M;默认为8M,更改为10M。PHP允许提交的最大数据容量。default_charset=gb
89、2312;设置默认字符集为gb2312session.save_path=/tmp ;默认未设置。session.bug_compat_42=0;默认为0。session.bug_compat_warn=0;默认值为1。Sendmail=/var/qmail/bin/qmail-inject ;指定发送邮件的程序 72高级培训10.510.5安装与配置安装与配置webmailwebmail6修改并添加igenus所需的表igenus的脚本在vpopmail数据表中,使用pw_id字段来标识用户的唯一性,而在原vpopmail数据表中没有pw_id字段,只有一个pw_uid字段,因此需要添加一个
90、pw_id字段,并设置为主关键字段。 修改vpopmail数据表结构,添加pw_id字段 创建igenus所需要的其他8个数据表。在igenus安装目录下的docs目录中,提供了一个数据表的sql创建脚本,该文件名为iGENUS.sql,其中包含了igenus所需的10个数据表的创建脚本(包含vpopmail和lastauth数据表)。 由于vpopmail和lastauth数据表已经有了,因此需对iGENUS.sql脚本文件进行编辑修改,将vpopmail和lastauth数据表的创建脚本注释掉。 73高级培训10.510.5安装与配置安装与配置webmailwebmail7访问igenus
91、 webmail在浏览器地址栏中输入http:/ 1安装vqsignup软件包rootrh9 qmail# tar -zxvf vqsignup-0.5.tar.gzrootrh9 qmail# cd vqsignup-0.5rootrh9 vqsignup-0.5# ./configure -enable-qmaildir=/var/qmail -enable-vpopuser=vpopmail -enable-vpopgroup=vchkpw -enable-cgibindir=/usr/local/apache2/cgi-bin -enable-htmldir=/usr/local/ap
92、ache2/htdocs 75高级培训10.610.6邮件账户的邮件账户的webweb注册注册rootrh9 vqsignup-0.5# vi vqsignup.conf修改配置文件,设置允许用户注册邮件账户的虚拟域。 假设默认域为,另一个域为,则将以上配置项修改为:add_domain add_domain rootrh9 vqsignup-0.5#vi vqsignup.html在vqsignup.html网页文件中修改并设置可供选择的虚拟域列表。rootrh9 vqsignup-0.5# makerootrh9 vqsignup-0.5# make install76高级培训10.610
93、.6邮件账户的邮件账户的webweb注册注册2配置vqsignupvqsignup安装后还需对配置文件和网页文件中的部分代码作相应的修改,才能正常运行。 修改vqsignup.html首页文件将更改为: 修改vqsignup.conf配置文件软件包在安装时,相关的网页文件是安装在/cgi-bin/vqsignup/html目录中的。在配置文件中指定的网页文件路径,是相对于vqsignup.cgi脚本文件的,因此,其路径应作相应修改。77高级培训10.610.6邮件账户的邮件账户的webweb注册注册 修改html目录下的网页文件,设置允许注册的邮件域 vqsignup的网页文件安装在/usr/
94、local/apache2/cgi-bin/vqsignup/html目录中,利用vi分别修改domain.html、failed-domain.html、failed-user.html和fields.html文件,设置允许用户注册的虚拟邮件域。修改方法与对vqsignup.html文件的修改相同。 3运行vqsignup,测试用户注册在浏览器地址栏中输入http:/ 1安装daemontools软件包rootrh9 qmail#mkdir /packagerootrh9 qmail#chmod 1755 /packagerootrh9 qmail#tar -zxvf daemontools
95、-0.76.tar.gz -C /packagerootrh9 qmail#cp daemontools-0.76.errno.patch /packagerootrh9 qmail# cd /packagerootrh9 package# mv admin/daemontools-0.76/ daemontools-0.76rootrh9 package# rmdir admin/rootrh9 package#patch -p0 -enable-maildrop-gid=vchkpw -enable-userdb -enable-syslog=1rootrh9 maildrop-1.7.0
96、#makerootrh9 maildrop-1.7.0#make install-striprootrh9 maildrop-1.7.0#make install-man87高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件3安装TNEF软件包rootrh9 qmail#tar -zxvf tnef-1.2.3.1.tar.gzrootrh9 qmail#cd tnef-1.2.3.1rootrh9 tnef-1.2.3.1# ./configurerootrh9 tnef-1.2.3.1#makerootrh9 tnef-1.2.3.1#make install
97、编译安装后,可执行文件tnef位于/usr/local/bin目录中。 4 安装perl的DB_File和Time:HiRes模块rootrh9 qmail#rpm -ivh perl-DB_File-1.804-88.i386.rpmrootrh9 qmail#rpm -ivh perl-Time-HiRes-1.38-3.i386.rpmrootrh9 qmail#rpm -ivh perl-suidperl-5.8.0-88.i386.rpm 88高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件5安装与配置反病毒软件clamav是一个开放源代码的免费杀毒软
98、件。Clam Anti-Virus反病毒软件默认使用clamav的用户身份运行,所属的组也为clamav,其创建方法为:rootrh9 qmail# groupadd clamavrootrh9 qmail# useradd -g clamav -s /bin/false -c Clam Antivirus clamav 安装clamav反病毒软件 rootrh9 qmail# tar -zxvf clamav-0.75.1.tar.gzrootrh9 qmail#cd clamav-0.75.1rootrh9 clamav-0.75.1# ./configurerootrh9 clamav-
99、0.75.1#makerootrh9 clamav-0.75.1#make checkrootrh9 clamav-0.75.1#make install 89高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件 测试病毒检查 rootrh9 clamav-0.75.1#cd /usr/local/bin rootrh9 bin#clamscan -r -l scanreport.txt其中参数-l用于指定报告文件,-r表示递归检查当前目录下的所有文件。 clamav的配置文件在配置编译clamav软件包时,没有使用-prefix指定安装位置,默认安装在/usr/l
100、ocal目录下,所以可执行文件安装在/usr/local/bin目录中,其配置文件因此安装在/usr/local/etc目录中。 rootrh9 etc# vi clamav.conf 对freshclam.conf配置文件的修改,对于共有的配置项,如对病毒库位置的设置,要注意与clamav.conf中的设置保持一致。rootrh9 etc# vi freshclam.conf 90高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件 启动clamd守进程 rootrh9 etc# /usr/local/sbin/clamd #启动clamd守护进程rootrh9
101、etc#ps -auxw | grep clamd #查看该进程 clamav病毒库的升级反病毒软件应定期更新病毒库,以便能检查和杀除一些新出现的病毒。clamav病毒库的更新有两种方式,一是从官方网站下载病毒升级库文件,然后使用clamscan命令来装载病毒库,其命令用法为:/usr/local/bin/clamscan -d file/dir-d参数用于指定病毒库升级文件或目录,若为目录,则从该目录下的所有升级文件中,加载病毒库。clamav的病毒升级库文件扩展名为.cvd,安装后有daily.cvd和main.cvd 两个病毒库文件。91高级培训10.910.9qmailqmail防病毒
102、与反垃圾邮件防病毒与反垃圾邮件另一种升级方式是使用freshclam命令实现从官方网站自动升级病毒库,在设置好freshclam.conf配置文件后,即可实现病毒库的按时自动升级。另外,也可通过手工执行该命令,来主动升级病毒库,其操作命令为:rootrh9 etc#/usr/local/bin/freshclam6. 安装反垃圾邮件软件SpamAssassassin目 前 的 正 式 版 为 2.64, 该 软 件 包 需 要 perl的Mail:SpamAssassin模块支持,在安装SpamAssassassin之前,可利用以下命令,利用在线方式安装该模块。rootrh9 qmail#pe
103、rl -MCPAN -e shellCPANo conf prerequisites_policy askCPANinstall Mail:SpamAssassin #在线安装指定的模块CPANquit #退出CPAN命令行 92高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件rootrh9 qmail#tar -zxvf Mail-SpamAssassassin-2.64.tar.gzrootrh9 qmail#cd Mail-SpamAssassin-2.64rootrh9 Mail-SpamAssassin-2.64#LANG=en_US perl Mak
104、efile.PLrootrh9 Mail-SpamAssassin-2.64#makerootrh9 Mail-SpamAssassin-2.64#make installrootrh9 Mail-SpamAssassin-2.64#make test #测试安装结果若最后报告“All tests successful.”,则安装成功。 该软件包默认安装在/usr目录下,可执行文件spam、spamc、spamd、spamassassin安装在/usr/bin目录中。 93高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件spamd是 SpamAssassin的
105、后 台 守 护 进 程 程 序 , 在 源 代 码 目 录 Mail-SpamAssassin-2.64下面有一个名为spamd的子目录,在该目录中有一个名为redhat-rc-script.sh的启动脚本,将其复制到/etc/rc.d/init.d/目录中,即可实现在开机时的自动启动,其操作命令为:rootrh9 Mail-SpamAssassin-2.64#cd spamdrootrh9 spamd# cp ./redhat-rc-script.sh /etc/rc.d/init.d/spamassassin 另外也可利用以下命令来实现该守护进程的启动、重启、停止和状态查询。启动spamd
106、守护进程,实现命令:service spamassassin start重新启动spamd守护进程,实现命令:service spamassassin restart停止spamd守护进程,实现命令:service spamassassin stop查询spamd守护进程的启动状态,实现命令:service spamassassin status 94高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件7. 安装qmail-scannerqmail-scanner进程默认使用qscand用户身份运行,该用户默认所属的用户组也为qscand,该用户的主目录(home
107、directory)为/home/qscand,其创建方法为:rootrh9 qmail# groupadd qscandrootrh9 qmail# useradd -g qscand -s /bin/false qscand下面安装qmail-scanner:rootrh9 qmail#tar -zxvf qmail-scanner-1.23.tgzrootrh9 qmail#gunzip q-s-1.23st-20040819.patch.gzrootrh9 qmail#cd qmail-scanner-1.23rootrh9 qmail-scanner-1.23#patch -p1 -
108、spooldir /var/spool/qmailscan -qmaildir /var/qmail -bindir /var/qmail/bin -qmail-queue-binary /var/qmail/bin/qmail-queue -admin-fromname Mail admin -scanners clamscan, verbose_spamassassin -scanners-per-domain yes -admin postmaster -domain -lang en_GB -notify sender,admin,recips -silent-viruses aut
109、o -archive yes -unzip yes -redundant yes -add-dscr-hdrs yes -log-crypto 0 -sa-subject *SPAM* -sa-delete 5 -install 以上语句将自动检测当前系统所安装的软件,并创建安装目录树。安装过程参见教材318页至320页。96高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件8. 设置使用qmail-scanner-queue.pl为了通知qmail-smtpd进程使用qmail-scanner-queue.pl,替代qmail原来的qmail-queue进程,需
110、要设置QMAILQUEUE环境变量,并将该环境变量的值指定为qmail-scanner-queue.pl。若 使 用 daemontools来 管 理 qmail服 务 的 启 动 , 则 修 改 /var/qmail/supervise/qmail-smtpd/run文件,在该文件中添加以下对QMAILQUEUE环境变量的定义。QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.plexport QMAILQUEUE 9. qmail的其他反垃圾邮件措施 封发件者的IP或网段 利用tcp.smtp 配置文件实现。 封邮件账户或邮件域 利用badmail
111、from配置文件来拒收这些账户所发送来的邮件。 97高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件 使用实时黑名单拒绝垃圾邮件 启用实时黑名单反垃圾邮件的方法是:在 SMTP启 动 脚 本 的 “0 smtp”和 “/var/qmail/bin/qmail-smtpd”之 间 , 加 上/usr/local/bin/rblsmtpd,并用-r参数指定实时黑名单数据库的提供网址,可同时指定多个黑名单数据库。添加实时黑名单反垃圾邮件功能后的SMTP启动脚本为:#!/bin/shQMAILDUID=qmaildNOFILESGID=nofilesMAXSMTPD=c
112、at /var/qmail/control/concurrencyincomingQMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.plexport QMAILQUEUEexec /usr/local/bin/softlimit -m 15000000 /usr/local/bin/tcpserver -v -H -R -t 1 -l 0 -x /home/vpopmail/etc/tcp.smtp.cdb -c $MAXSMTPD -u $QMAILDUID -g $NOFILESGID 0 smtp /usr/local/bin/rblsmtpd
113、-r cblless.anti- -r relays.ordb.org /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2&1 98高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件添加实时黑名单反垃圾邮件功能后的SMTP启动脚本为:#!/bin/shQMAILDUID=qmaildNOFILESGID=nofilesMAXSMTPD=cat /var/qmail/control/concurrencyincomingQMAILQUE
114、UE=/var/qmail/bin/qmail-scanner-queue.plexport QMAILQUEUEexec /usr/local/bin/softlimit -m 15000000 /usr/local/bin/tcpserver -v -H -R -t 1 -l 0 -x /home/vpopmail/etc/tcp.smtp.cdb -c $MAXSMTPD -u $QMAILDUID -g $NOFILESGID 0 smtp /usr/local/bin/rblsmtpd -r cblless.anti- -r relays.ordb.org /var/qmail/bi
115、n/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2&1 99高级培训10.910.9qmailqmail防病毒与反垃圾邮件防病毒与反垃圾邮件 设置.qmail-default文件默认情况下,qmail会认为所有邮箱都是合法的,当有其他邮件发到qmail邮件服务器时,qmail都会接收,而不管该邮箱在服务器中是否真的存在。这一点就有可能被利用,导致收到的垃圾邮件过多,增加服务器的负荷,为此,可对.qmail-default文件进行以下设置:rootrh9 root#vi /var/qmail/alias/.qmail-default/home/vpopmail/bin/vdelivermail bounce-no-mailbox这样当邮件发送到本服务的一个并不存在的邮箱时,邮件服务器就会自动弹回邮件,并告知“no this mailbox”。 100高级培训