首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Qmail > Freebsd环境下基于qmail系统的反病毒反垃圾邮件系统构建 > 正文

Freebsd环境下基于qmail系统的反病毒反垃圾邮件系统构建

出处:5DMail.Net收集整理 作者:baoxin 时间:2009-9-9 14:36:17

  Freebsd 4.7环境下基于qmail系统的反病毒反垃圾邮件系统构建
  第一部分:前 言
  一. 版权信息
  本文档的版权属于作者姜培军[peijun.jiang]所有。转摘时请附带本信息,并且保证本文档的完整性!
  关于作者:
  作 者:Peijun.Jiang 『姜培军』
  邮件地址:peijun.jiang act tom.com
  出没地方:www.chianunix.net www.cnfug.org www.anti-spam.org.cn
  开源UNIX系统爱好者,工组于一家合资软件开发企业任系统管理员职务,负责Mail、Firewall、FTP、WEB等服务的维护工作。
  二.更新记录
  2003年05月14日 初次成稿
  2003年06月05日 对安装设置参数进行合理调整
  2003年09月08日 增加了Mail From补丁,加入了批量添加用户账号和Wmail
  2003年12月01日 加入简单的DNS设置
  2004年01月12日 加入病毒过滤和垃圾邮件过滤
  第二部分:安装前的准备
  一.所需软件
  • ucspi-tcp-0.88.tar.gz http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
  • cmd5checkpw-0.22.tar.gz http://members.elysium.pl/brush/cmd5checkpw/dist/cmd5checkpw-0.22.tar.gz
  • qmail-1.03.tar.gz http://cr.yp.to/software/qmail-1.03.tar.gz
  • qmail-smtpd-auth-0.30.tar.gz http://members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.30.tar.gz
  • qmail-1.03.patch http://www.ckdhr.com/ckd/qmail-103.patch
  • vpopmail-5.3.16.tar.gz http://www.inter7.com/devel/vpopmail-5.3.16.tar.gz
  • autorespond.tar.gz http://www.netmeridian.com/e-huss/autorespond.tar.gz
  • ezmlm-0.53.tar.gz http://cr.yp.to/software/ezmlm-0.53.tar.gz
  • sqwebmail-3.5.0-CN.tar.gz http://www.cooco.net/files/sqwebmail-3.5.0-CN.tar.gz
  • Qmail-smtpd.c http://www.cooco.net/files/qmail-smtpd.c
  • Qmail-smtpd.path http://www.cooco.net/files/qmail-smtpd.patch
  • mysql-3.23.53.tar.gz http://www.mysql.org/Downloads/MySQL-3.23/mysql-3.23.53.tar.gz
  • wmail-1.00rc1.20030811-quota.tar.gz http://www.cooco.net/files/wmail-1.00rc1.20030811-quota.tar.gz
  • qmailadmin-1.0.6.tar.gz http://www.inter7.com/qmailadmin/qmailadmin-1.0.6.tar.gz
  • 汉化文件 http://www.cooco.net/files/en-us
  二.注意事项
  • 所有程序下载后放在/down目录下
  • 在安装FreeBSD时请把/home和/var尽量分的大一些,因为/home目录是作为所有用户的邮件存放目录,/var是日志存放目录
  • 本文档所有操作都是在root权限下进行的,所以操作时请尽量仔细,不要由于误操作带来不必要的麻烦
  第三部分:DNS设定
  • 我们使用的是我们母公司的DNS服务器,所以我没有做自己的DNS服务器,只是把相关的A记录和MX记录解析到我相关的IP地址上。使用nslooks –q=mx mail.localhost.com命令可以查看到已经绑定到我们公司的IP地址上。
  • 注:mail.localhost.com为我们公司域名,以下相同。
  你可以按照以下方法设置自己的DNS服务器:
  DNS使用FreeBSD 4.7自带的8.3.3版本,所有的配置文件默认在/etc/namedb目录下。我的DNS服务器IP地址为192.168.80.53,Mail服务器的IP地址为192.168.80.80。解析一个域名localhost.com作为我的邮件服务的域名。
  一.打开named的启动开关
  #cd /etc
  #ee rc.conf //加入一下参数
  named_enable="YES"
  二. 使用make-localhost来生成反解文件localhost.rev
  #cd /etc/namedb
  #sh /etc/namedb/make-localhost
  三. 设置主配置文件
  #mv named.conf named.conf.old
  #touch named.conf
  #ee named.conf //添加一下内容
  options {
  directory "/etc/namedb";
  datasize 40M;
  forward only;
  forwarders {
  61.134.1.4; //此IP为我的ISP的DNS地址
  };
  };
  zone "." {
  type hint;
  file "named.root";
  };
  zone "0.0.127.in-addr.arpa" {
  type master;
  file "localhost.rev";
  };
  zone "localhost.com"
  type master;
  file "/etc/namedb/hosts/localhost.com.hosts";
  };
  zone "80.168.192.in-addr.arpa" {
  type master;
  file "/etc/namedb/rev/192.168.80.rev";
  };
  四. 在/etc/namedb目录下建立hosts目录,来存放正解配置文件
  #mkdir /etc/namedb/hosts
  #cp /etc/namedb/localhost.rev /etc/namedb/hosts/locolhost.com.hosts //使用现成的配置文件进行修改一下就行了
  #ee /etc/namedb/hosts/localhost.com.hosts //内容如下
  $TTL 3600
  @ IN SOA dns.localhost.com. root.dns.localhost.com.(
  20031231 //Serial号码
  3600 //DNS刷新时间
  900 //重试间隔时间
  3600000 //到期时间
  3600 ) //Minimum
  IN NS dns.cnunix.com.cn.
  IN MX 10 mail
  dns IN A 192.168.80.53
  www IN A 192.168.80.80
  mail IN A 192.168.80.80
  @ IN A 192.168.80.80
  五. 在/etc/namedb目录下建立reb目录,来存放反解配置文件
  #mkdir /etc/namedb/reb
  #cp /etc/namedb/localhost.rev /etc/namedb/reb/192.168.80.rev
  #ee /etc/namedb/reb/192.168.80.rev //内容如下
  $TTL 3600
  @ IN SOA dns.localhost.com. root.dns.localhost.com. (
  20031231
  3600
  900
  3600000
  3600 )
  IN NS dns.localhost.com.
  53 IN PTR dns.localhost.com.
  80 IN PTR www.localhost.com.
  80 IN PTR mail.localhost.com.
  80 IN PTR localhost.com.
  六. 更新根服务器
  #cd /etc/namedb
  #fetch ftp://ftp.rs.internic.net/domain/named.root
  七.修改/etc/resolv.conf
  #nameserver 192.168.80.53
  八.DNS服务器的日常维护命令
  #ndc start //如果提示new pid is NamedID,说明已经成功启动
  #ndc stop //停止named服务
  #ndc restart //重新启动named服务
  九. 测试named解析
  #nslookups
  >www.cnunix.com.cn
  >mail.cnunix.com.cn
  >dns.cnunix.com.cn
  如果能解析到192.168.80.53说明正常了
  >sohu.com
  >sina.com.cn
  如果能解析到域名相应的IP地址上,说明dns对外面的域名解析也正常。
  第四部分:基本服务安装过程
  一.安装webmin
  webmin是一个让你很方便的远程管理服务器的程序,所有管理工作都是基于Web方式进行的,支持中文等多个国家的语言。我主要使用他进行我的Mysql数据库和qmail邮件的队列的管理,我一直使用,很方便也很实用。
  #cd /down
  #tar zxvf webmin-1.070.tar.gz
  #mv webmin-1.070 /usr/local/webmin
  #cd /usr/local/webmin
  #./setup.sh
  根据提示输入安装路径、web访问端口、设置管理用户和密码等,也可以使用默认设置一路回车。
  二.Mysql的安装与设置
  1.安装mysql
  本文档的数据库是基于二进制包的方式安装的,作者以前也曾经使用过ports方式的安装方法,所以本文两种安装方法都提供给大家,以供大家选择。不过作者建议使用二进制包的方式安装,这样在安装mysql的过程中可以根据自己的需要定制参数。
  1.1、使用ports安装
  #cd /usr/ports/database/mysql323-server
  #make install
  #cd work/mysql-3.23.52
  #scripts/mysql_install_db
  #cp support-files/my-medium.cnf /etc/my.cnf
  #/usr/local/bin/safe_mysqld & //启动mysql服务
  1.2、使用二进制代码安装
  A.建组和用户
  #pw groupadd mysql
  #pw useradd mysql –g mysql –s /nonexitent
  B.进行编译
  #cd /down
  #tar zxvf mysql-3.23.53.tar.gz
  #cd mysql-3.23.53
  #./configure --prefix=/usr/local/mysql
  #make
  #make install
  2.设置Mysql
  2.1、运行脚本、添加目录
  #scripts/mysql_install_db
  #mkdir /usr/local/mysql/var
  2.2、更改文件和目录权限
  #chown -R root /usr/local/mysql
  #chown –R mysql /usr/local/mysql/var
  #chgrp –R mysql /usr/local/mysql
  2.3、复制mysql的配置文件到/etc目录下
  #cp ./support-files/my-medium.cnf /etc/my.cnf
  2.4、添加启动脚本
  #echo "/usr/local/mysql/bin/safe_mysqld --user=mysql –-skip-networking &" >> /etc/rc.local
  备注:--skip-networking参数是限制只有本机可以连接mysql,增加mysql的安全性。
  2.5、启动mysql服务
  #/usr/local/mysql/bin/sase_mysqld --user=mysql --skip-networking &
  2.6、更改root的密码
  #/usr/local/mysql/bin/mysqladmin -u root password '123456'
  2.7、拷贝mysql的lib文件和incdule文件到系统目录下
  #cp /usr/local/mysql/lib/mysql/* /usr/lib
  #cp /usr/local/mysql/incdule/mysql/* /usr/incdule
  备注:拷贝mysql的lib文件和头文件到系统的目录下是为了防止无法找到mysql的lib目录和incdule目录而产生的错误。
  2.8、添加vpopmail操作mysql的用户
  #/usr/local/mysql/bin/mysql -u root -p123456
  mysql>create database vpopmail;
  mysql>grant all on vpopmail.* to vpopmail@localhost identified by "123456";
  三.安装TCPSERVER
  这个程序包是类似于inetd的命令行方式的构造客户/服务器应用的工具程序,它设计的目的就是用以完全取代inetd而获得更好的性能和安全性。Tcpserver提供对并行进程数量的限制以防止内存和CPU资源被耗尽,Tcpserver还提供TCP访问控制,类似于tcp- wrappers/tcpd的hosts.deny和hosts.allow方式,但是速度要快很多。
  1、安装
  #cd /down
  #tar zxvf ucspi-tcp-0.88.tar.gz
  #cd ucspi-tcp-0.88
  #make setup check
  2、生成cdb文件
  #cd /etc
  #touch tcp.smtp
  #ee tcp.smtp //加入一下内容
  127.0.0.1:allow,RELAYCLIENT=""
  #/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
  四.安装cmd5checkpw
  cmd5checkpw和checkpassword完全兼容,cmd5checkpw只是增加了对CRAM-MD5的认证模式的支持,目前的最新版本是0.22,需要注意的是以前的版本有安全漏洞,一定要使用最新的版本。
  #cd /down
  #mkdir /usr/man
  #mkdir /usr/man/man8
  #tar zxvf cmd5checkpw-0.22.tar.gz
  #cd cmd5chedkpw-0.22
  #make
  #make install
  如果你不需要对/etc/passwd中的用户开放mail,则不需要安装checkpassword,因为我不需要,所以我没有安装。如果你要使用,可以参考一下方法:
  #cd /down
  #tar zxvf checkpassword-0.90.tar.gz
  #cd checkpassword-0.90
  #make setup check
  五.安装Qmail
  qmail是一个基于UNIX操作系统的邮件传输代理[Mail Transfer Agent,MTA],它采用标准的简单邮件传输协议[Simple Mail Transfer Protocol,SMTP]与Internet上的其他邮件传输代理[MTA]进行交换信息。qmail目前的版本是1.03,于1998年发布。目前 qmail仍然在开发中,下一个版本2.0还没有确定具体的发布时间。前几天又推出了1.04版本,该版本增加了一些qmail常用的一些补丁,有兴趣的朋友可以试一下这个版本。
  1.创建qmail目录、组和用户
  1.1、创建目录:
  #mkdir /var/qmail
  #mkdir /var/qmail/alias
  1.2、添加qmail运行的组用户:
  #pw groupadd nofiles
  #pw groupadd qmail
  #pw useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
  #pw useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
  #pw useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
  #pw useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
  #pw useradd qmailq -g qmail -d /var/qmail -s /nonexistent
  #pw useradd qmailr -g qmail -d /var/qmail -s /nonexistent
  #pw useradd qmails -g qmail -d /var/qmail -s /nonexistent
  2、安装编译Qmail
  2.1、补丁程序介绍
  A:qmail-103.patch
  这个补丁程序主要是为了解决某些DNS响应不完全遵循RFC标准,返回大于512Byte的DNS应答包时可能产生的问题,这
  种情况发生在发送邮件到一个有数量庞大的MX记录的大型邮件服务器上时,这个时候检查qmail的日志会发现以下出错信息:
  deferral:CNAME_lookup_failed_temporarily._(#4.4.3)/
  B:qmail-smtpd.c
  该补丁是更正smtp认证问题的程序。
  C: qmail-smtpd.patch
  该补丁是解决mail from和auth user name不一致也能发信的补丁,感谢网友gadfly提供!
  D:qmail-1.03.patch
  该补丁是使qmail支持SMTP认证的补丁。
  2.2、打patch并编译安装qmail
  #cd /down
  #tar zxvf qmail-1.03.tar.gz
  #patch –d ./qmail-1.03 < qmail-103.patch
  #tar zxvf qmail-smtpd-auth-0.30.tar.gz
  #cd qmail-smtpd-auth-0.30
  #cp README.auth base64.c base64.h ../qmail-1.03
  #patch –d ../qmail-1.03 < auth.patch
  #cd ..
  #cp qmail-smtpd.c ./qmail-1.03
  #patch –d ./qmail-1.03 < qmail-smtpd.patch
  #cd ./qmail-1.03
  #make setup check
  #config-fast localhost.com
  3、设置投递方式
  #cp /var/qmail/boot/home /var/qmail/rc
  #ee /var/qmail/rc //修改rc为以下内容
  exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail
  4、添加不能接收邮件的系统帐户的别名
  #touch /var/qmail/alias/.qmail-root
  #touch /var/qmail/alias/.qmail-postmaster
  #touch /var/qmail/alias/.qmail-mailer-daemon
  #echo postmaster > /var/qmail/control/bouncefrom //设置投递失败返回邮件的发送者为postmaster
  5、停止sendmail服务
  #ee /etc/rc.conf
  sendmail_enable="NO"
  sendmail_flags="-bd"
  sendmail_outbound_enable="NO"
  sendmail_submit_enable="NO"
  sendmail_msp_queue_enable="NO"
  #chmod 0 /usr/sbin/sendmail
  #mv /usr/sbin/sendmail /usr/sbin/sendmail.old
  连接qmail的sendmail外壳文件到系统的sendmail目录
  #ln –s /var/qmail/bin/sendmail /usr/sbin/sendmail
  #ln –s /var/qmail/bin/sendmail /usr/lib/sendmail
  六.vpopmail介绍、安装及配置
  1、介绍
  vpopmail是qmail的一个非常重要的扩展软件包,它是由Inter7公司[http://www.inter.com]开发的,主要针对 qmail本身支持虚拟邮件域,但是配置和用户管理非常复杂和麻烦而设计的。它的特点是实现了qmail所有的用户帐号只使用操作系统的一个用户帐号,所有的的vpopmail相关的进程都以一个GID/UID来运行,让邮件系统的帐户和操作系统的用户分离,提高了邮件系统的安全性。它支持基于域名和IP 地址的虚拟邮件域,每个虚拟邮件域之间互相独立,通过使用平衡树填充的技术,vpopmail可支持2300万个虚拟邮件域,每个虚拟邮件域可支持 2300万个邮件帐户。Vpopmail还支持LDAP、Oracle、Sybase、Mysql、PostgreSQL等用户认证信息存储方式,使得建立和维护百万级用户的大型邮件系统很方便的实现。
  2、实现虚拟域的原理
  qmail对邮件域有本地(local)和虚拟(virtual)的概念。本地域是实现匹配/etc/passwd系统帐号,而虚拟域则匹配在qmail 的配置文件virtualdomains中的各个域。Vpopmail利用qmail的users/assign和virtualdomains文件。 users/assign文件被编译成users/cdb的格式,它利用一个哈系数据库来加快查找速度,若任意一个模式得到匹配,qmail就使用文件中定义的uid和gid传送该邮件到文件中定义的目录。Vpopmail利用该方法实现使qmail以单一的vpopmail/vchkpw身份来传输用户所有的虚拟域的邮件,从而实现了将邮件传输到~vpopmail/domains/<virtualdomain>目录下的不同用户。
  对于qmail来说,qmail-local程序一旦从users/assign得到相关的信息,则其运行标准的.qmail文件操作。一般来说,. qmail-<user>文件被用来完成邮件的转发、别名、或者调用其他程序如ezmlm等。若没有找到匹配,则qmail-local查找.qmail-default文件,这是qmail-local邮件投递机制中的最后一步,qmail利用该文件激活vedlivermail程序,该程序以两个参数被调用,第一个当前没有作用,主要使用来向后兼容的,第二个参数使用来在一个虚拟域用户没有被找到时缺省投递,一般来说,缺省投递可以时将邮件投递到某个目录或者某个邮件地址返回没有此用户的返回信件。
  3、安装
  3.1、建立目录
  #mkdir /home/vpopmail
  #mkdir /home/vpopmail/etc
  3.2、建立组及用户
  #pw groupadd vchkpw
  #pw useradd vpopmail –g vchkpw
  3.3、安装vpopmail
  #cd /down
  #tar zxvf vpopmail-5.3.16.tar.gz
  #cd vpopmail-5.3.16
  #ee vmysql.h //修改以下内容
  #define MYSQL_UPDATE_SERVER "localhost" //mysql服务器名
  #define MYSQL_UPDATE_USER "vpopmail" //访问Mysql数据库的用户名
  #define MYSQL_UPDATE_PASSWD "123456" //访问Mysql数据库的vpopmail用户的密码
  #define MYSQL_READ_SERVER "localhost" //mysql服务器名
  #define MYSQL_READ_USER "vpopmail" //用户名
  #define MYSQL_READ_PASSWD "123456" //密码
  或者使用Mysql的root用户与密码也可以!
  3.4、创建tcp.smtp文件
  或者使用/etc/tcp.smtp文件也可以。
  #ee /home/vpopmail/etc/tcp.smtp
  127.0.0.1:allow,RELAYCLIENT=""
  3.5、编译安装
  #./configure
  --prefix=/home/vpopmail //指定安装路径
  --enable-mysql=y //是否应用Mysql数据库
  --enable-incdir=/usr/local/include/mysql //Mysql数据库include文件所在目录
  --enable-libdir=/usr/local/lib/mysql //Mysql数据库lib文件所在目录
  --enable-default-domain=localhost.com //定义虚拟域名
  --enable-passwd=n //是否使用系统密码验证方式
  --enable-defaultquota=52428800 //定义缺省邮箱大小,10485760为10MB,20971520为20MB,52428800s为50MB
  --enable-tcprules-prog=/usr/local/bin/tcprules //指定tcprules目录
  --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp //指定tcprules应用规则文件
  --enable-vpopuser=vpopmail //vpopmail的用户
  --enable-vpopgroup=vchkpw //vpopmail的组
  --enable-ip-alias-domains=n //在虚拟域中允许通过反向IP地址查找虚拟域名
  --enable-roaming-users=n //是否支持外地用户的SMTP的RELAY
  --enable-sqwebmail-pass=y //sqwebmail的密码支持
  #make
  #make install-strip
  #chmod +s /home/vpopmail/bin/vchkpw
  七.pop3和smtp的启动脚本
  1、创建pop3启动脚本
  #mkdir /etc/qmail
  #cd /etc/qmail
  #touch pop.sh
  #chmod 755 pop.sh
  #ee pop.sh //添加一下内容
  #!/bin/sh
  /usr/local/bin/tcpserver -c 100 -v –l localhost.com -H -U -R 0 pop3 \ /var/qmail/bin/qmail-popup localhost.com /home/vpopmail/bin/vchkpw \ /var/qmail/bin/qmail-pop3d Maildir &
  2、创建smtp启动脚本
  #touch smtp.sh
  #chmod 755 smtp.sh
  #ee smtp.sh 添加一下内容:
  #!/bin/sh
  LOG_AUTH=1
  export LOG_AUTH
  QMAILUID=`id -u qmaild`
  QMAILGID=`id -g qmaild`
  /usr/local/bin/tcpserver -H -R -l localhost.com -t 1 -c 100 -v -p –x /etc/tcp.smtp.cdb \ -u $QMAILUID -g $QMAILGID 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw \ /usr/bin/true /bin/cmd5checkpw /usr/bin/true &
  注意:如果使用的patch是0.31,在qmail-smtpd后面加入localhost.com,就可以解决auth的问题了
  3、qmail启动脚本
  #mkdir start.sh
  #chmod 755 start.sh
  #ee start.sh //加入一下内容:
  #!/bin/sh
  csh -cf '/var/qmail/rc &'
  /etc/qmail/pop.sh
  /etc/qmail/smtp.sh
  #echo "/etc/qmail/start.sh">> /etc/rc.local //设置系统启动时自动启动qmail及相关脚本
  4、重新启动系统
  #reboot
  5、检查是否能够添加虚拟域
  #cd /home/vpopmail/bin
  #./vadddomain localhost.com
  如果添加失败一定要删除虚拟域,然后查看mysql数据库是否有vpopmail表,如果没有请检查mysql用户vpopmail是否拥有对数据库拥有全部权限(或者修改vpopmail源文件的vmysql.h使用root用户访问数据库),然后重新安装vpopmail程序。
  #./vdeldomain localhost.com
  八.重新编译mysql数据库
  1、修改mysql数据库
  在修改之前记得使用vdeldomain命令删除你添加过的所有的邮件域。
  #/usr/local/mysql/bin/mysql –u root –p123456
  use vpopmail;
  drop table vpopmail;
  create table vpopmail (
  pw_id int(5) unsigned NOT NULL auto_increment,
  pw_name varchar(32) NOT NULL default '',
  pw_domain varchar(64) NOT NULL default '',
  pw_passwd varchar(40) NOT NULL default '',
  pw_uid int(11) default NULL,
  pw_gid int(11) default NULL,
  pw_gecos varchar(64) default NULL,
  pw_dir varchar(160) default NULL,
  pw_shell varchar(20) default NULL,
  pw_clear_passwd varchar(16) default NULL,
  PRIMARY KEY (pw_id),
  KEY pw_name (pw_name,pw_domain)
  ) TYPE=MyISAM;
  quit
  2、重新添加虚拟域和用户
  #cd /home/vpopmail/bin
  #./vadddomain localhost.com
  输入postmaster密码,这是以后使用qmailadmin管理虚拟域localhost.com的密码
  #./vadduser test
  输入密码test
  3、测试qmail
  使用客户端Foxmail或者Outlook测试邮件账户test@localhost.com, 用户名test(或者test@localhost.com,因为localhost.com作为默认域名,所以不用输入test后面的 @localhost.com),密码test,选择smtp需要认证,测试该账户能不能进行收发邮件。如果你完全按照以上的方法操作,并且没有任何错误的话,我想你一定没有问题的。祝你好运^_^。
  至此,一个带smtp认证、mail from校验、支持多虚拟域的基本的邮件系统已经设置完成。如果你想加入更多的功能,请接着往下做,我会一步一步的带你完成。
  第五部分:安装qmailadmin
  一.安装apache
  1、安装
  #cd /down
  #tar zxvf apache_1.3.26.tar.gz
  #cd apache_1.3.26
  #./configure --prefix=/usr/local/apache --with-mysql=/usr/local/bin --enable-shared=max
  #make
  #make install
  2、启动
  #/usr/local/apache/bin/apachectl start
  #echo “/usr/local/apache/bin/apachectl start” >> /etc/rc.local //设置Apache随系统一起启动
  二.安装qmailadmin
  1、安装设置ezmlm
  1.1、安装
  #cd /down
  #tar zxvf ezmlm-0.53.tar.gz
  #cd ezmlm-0.53
  #make
  #make man
  #make setup
  1.2、ezmlm加入mysql支持的方法
  A: 创建ezmlm数据库
  #/usr/local/mysql/bin/mysql -u root –p
  mysql>create database ezmlm;
  B: 设置ezmlm加入mysql支持
  #tar -zxvf ezmlm-0.53.tar.gz
  #tar -zxvf ezmlm-idx-0.40.tar.gz
  #mv ezmlm-idx-0.40/* ezmlm-0.53/
  #cd ezmlm-0.53
  #patch < idx.patch
  #cd sub_mysql
  #ee sub_mysql/conf_sqlcc
  -I/usr/local/mysql/include/mysql
  #ee sub_mysql/conf_sqld
  -L/usr/local/mysql/lib/mysql -lmysqlclient -lnsl -lm –lz
  #cd ..
  #make mysql
  #make clean
  #make man
  #make ch_GB
  #make setup
  以上只是提供一个网友的设置ezmle加入mysql支持的方法,由于我得邮件列表不算太大,所以我就没有尝试安装,而仅仅只是安装了
  ezmle。如果你需要mysql支持,你可以尝试一下!
  2、安装autorespond
  #cd /down
  #tar zxvf autorespond.tar.gz
  #cd /autorespond
  #gcc -Wall -o autorespond autorespond.c
  #cp autorespond /usr/local/bin/autorespond
  3、安装qmailadmin
  qmailadmin是一个web方式的vpopmail管理软件,使用它你可以很方便的添加/删除用户、更改用户密码、设置邮件转发和自动回复以及管理邮件列表等等功能,只要你使用它,你一定会爱上它的,因为它确实能给你的管理工作带来方便。
  #cd /down
  #tar zxvf qmailadmin-1.0.6.tar.gz
  #cd qmailadmin-1.0.6
  #./configure
  #make
  #make install-strip
  4、汉化qmailadmin的管理页面
  #cd /down
  #cp en-us /usr/local/share/qmailadmin/html/en
  5、测试qmailamdin
  http://mail.localhost.com/cgi-bin/qmailadmin
  输入域:localhost.com
  输入postmaster的密码,也就是你添加虚拟域localhost.com时输入的密码
  第六部分:安装webmail
  一.Sqwebmail的安装与设置
  1、安装sqwebmail
  #cd /down
  #tar zxvf sqwebmail-3.5.0-cn.tar.gz
  #cd sqwebmail-3.5.0
  #./configure --without-authpam --with-db=db --enable-webpass=yes --without-authpwd --without-authshadow --without-authmysql --with-authldap --with-authuserdb --with-authpwd --with-authvchkpw --without-authdaemon
  #make configure-check
  #make
  #make install-strip
  #make install-configure
  2、特殊设置
  如果你需要同时使用系统用户和虚拟用户两种验证方式,需要进行一下设置:
  #echo “authvchkpw authshadow” > /usr/local/share/sqwebmail/authmodulelist
  经过上面的设置以后,你的系统用户采用shadow验证,虚拟域采用vchkpw验证,禁止其他验证方式。
  3、测试sqwebmail
  http://mail.localhost.com/cgi-bin/sqwebmail
  使用用户test,密码test,登陆进出以后就可以测试收发邮件了!
  4、修改Apache
  #cd /usr/local/apache/htdocs
  #touch index.html
  #ee index.html //输入一下内容:
  <html>
  <head>
  <title>MAIL SYSTEM</title>
  <meta http-equiv="Content-Type" content="test/html;charset=gb2312">
  <meta http-equiv="refresh" content="0;url=http://mail.localhost.com/cgi-bin/sqwebmail">
  </head>
  <body bgcolor="#FFFFFF" test="#000000">
  </html>
  经过以上修改以后,你就可以通过:
  http://mail.localhost.com
  直接来访问sqwebmail了,这样就方便多啦:)
  二.安装Wmail
  1、安装Wmail
  #cd /down
  #tar zxvf wmail-1.00rc1.20030811-quota.tar.gz
  #cd wmail-1.00rc1.20030724
  #./install
  默认安装到/home/wmail目录下。你也可以通过修改wmail的原代码目录中的install文件来修改安装的目录和定制编译参数。
  2、配置Wmail
  修改/home/wmail/html/zh-cn的index.html和invalid.html相关项为以下内容:
  <input type="hidden" name="down" value="localhost.com">
  3、修改Apache
  编辑apache的httpd.conf文件,在最后加入以下内容:
  NameVirtualHost 192.168.80.80
  <VirtualHost 192.168.80.80:80>
  SetEnv SQWEBMAIL_TEMPLATEDIR /home/wmail/html
  ScriptAlias "/cgi-bin/" "/home/wmail/www/cgi-bin/"
  <Directory "/home/wmail/www">
  AllowOverride All
  Options +Includes
  </Directory>
  ServerAdmin postmaster@localhost.com
  DocumentRoot /home/wmail/www
  ServerName mail2.localhost.com
  </VirtualHost>
  4、测试Wmail
  http://mail2.localhost.com
  使用用户test,密码test,登陆进出以后就可以测试收发邮件了!
  三.Sqwebmail和Wmail共存的设置
  经过以上对Wmail的设置以后,你会发现sqwebmail和qmailadmin使用它们的URL无法登陆啦,这是因为设置了虚拟主机的问题引起的,使sqwebmail和qmailadmin无法找到CGI路径的原因。所以还需要对sqwebmail和qmailadmin的访问地址进行虚拟主机设置,只要在Apache的配置文件httpd.conf中的最后面加入以下内容就OK.
  <VirtualHost 192.168.0.2:80>
  ScriptAlias "/cgi-bin/" "/usr/local/apache/cgi-bin"
  <Directory "/usr/local/apache/htdocs">
  AllowOverride All
  Options +Includes
  </Directory>
  ServerAdmin postmaster@localhost.com
  DocumentRoot /usr/local/apache/htdocs
  ServerName mail.localhost.com
  </VirtualHost>
  经过这样设置以后,各个访问的URL如下:
  Sqwebmail: http://mail.localhost.com
  QmailAdmin: http://mail.localhost.com/cgi-bin/qmailadmin
  Wmail: http://mail2.localhost.com
  第七部分:使用shell批量添加用户
  一. 第一种方法
  1.在/home目录下建立文件adduser.sh
  #touch adduser.sh
  #chmod 755 adduser.sh
  2、编辑adduser.sh
  #ee adduser.sh //加入一下内容:
  #!/usr/bin
  while read line
  do
  echo $line
  /home/vpopmail/bin/vadduser $line $line
  done < user
  3、建立文件账户列表文件
  #touch user
  #ee user //格式如下
  peijun.jiang
  user
  user1
  user2
  ......
  4、执行adduser.sh
  #./adduser.sh
  这样user文件中的用户就添加到默认域中了,用户名和密码相同。
  备注:该方法是由网友 红袖天香 提供!
  二. 第二种方法
  1、建立batchuseradd.sh文件
  #cd /home
  #touch batchuseradd.sh
  #chmod 755 batchuseradd.sh
  #ee batchuseradd.sh //内容如下:
  #!/bin/sh
  #batchadduser.sh: batch add mail user.
  #install step.
  #chmod u+x batchadduser
  #./batchadduser.sh domain datafile
  if [ $# -lt 2 ]
  then
  echo "usage: $0 domain datafile"
  exit 1
  fi
  domain=$1
  datafile=$2
  addcmd=/home/vpopmail/bin/vadduser
  while read username passwd
  do
  $addcmd $username@$domain $passwd
  done < $datafile
  2、建立datafile文件
  #touchu datafile
  #ee datafile //格式如下:
  user1 passwd1
  user2 passwd2
  user3 passwd3
  ..... ......
  #chmod u+x datafile
  3、使用方法
  #./batchuseradd localhost.com datafile
  备注:该方法是由网友 gadfly 提供!
  第八部分:病毒扫描和垃圾邮件过滤设置
  本文所使用的是一个专门为qmail设计的邮件扫描程序,他可以实现一下功能:
  1.可以同时和多个其他商业的病毒扫描器集成在一起扫描邮件中的病毒
  2.可以过滤含有特定字符或者特征的邮件,比如含有特定的字符串和内容,或者来自特定夺得发送者,以及含有特定后缀文件名的文件等等。
  它的工作原理是在邮件在压入邮件队列以后对邮件进行扫描,qmail-scanner要替换的
  是qmail-queue程序,从原理上来说处理效率应该不错。
  一. 安装Clamav
  1.下载Clamav
  # cd /down/
  # fetch http://download.sourceforge.net/clamav/clamav-0.65.tar.gz
  # tar zxvf clamav-0.65.tar.gz
  2.添加所需的组和用户
  # pw groupadd clamav
  # pw useradd clamav -g clamav -d /nonexistent -c "Clam Antivirus" -s /sbin/nologin
  3.安装Clamav
  # cd clamav-0.65
  # ./configure
  # make install
  4.测试Clamav
  # clamscan --recursive --log=/tmp/clamscan.log ./ //扫描当前目录,测试clamscn是否运行
  5.升级Clamav
  # freshclam --verbose //升级clamscan病毒库
  6.创建freshclam日志记录文件
  # touch /var/log/freshclam.log
  # chmod 644 /var/log/freshclam.log
  # chown clamav:clamav /var/log/freshclam.log
  7.创建Clamav自动启动脚本
  #touch /usr/local/etc/rc.d/clamav.sh //内容如下
  #!/bin/sh
  #
  # Startup / shutdown script for Clam Antivirus
  case "$1" in
  start)
  /usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log
  echo -n ' freshclam'
  ;;
  stop)
  /usr/bin/killall freshclam > /dev/null 2>&1 && echo -n ' freshclam'
  ;;
  *)
  echo ""
  echo "Usage: `basename $0` { start | stop }"
  echo ""
  exit 64
  ;;
  esac
  # chmod 744 /usr/local/etc/rc.d/clamav.sh
  更改/usr/local/etc/clamav.conf文件,去掉下面选项前面的#:
  #Example 前面加上#
  LogFile /tmp/clamd.log 去掉前面的#
  LogFileMaxSize 2M 去掉前面的#
  LogTime 去掉前面的#
  PidFile /var/run/clamd.pid 去掉前面的#
  DataDirectory /var/lib/clamav 去掉前面的#,并且修改路径为/usr/local/share/clamav
  7.添加自动升级脚本
  # crontab –e
  0 8 * * * /usr/local/bin/freshclam --quiet -l /var/log/freshclam.log
  8.添加自动扫描/home目录
  # corntab –e
  0 6 * * * root /usr/local/bin/clamscan --recursive
  --infected
  --exclude /usr/local/share/clamav/viruses.db
  --exclude /usr/local/share/clamav/viruses.db2
  --log=/var/log/clamscan.log
  /home
  二. SpamAssassin
  1.安装Perl模块
  使用webmin或者perl –MCPAN –e shell
  Time::HiRes
  File::Spec
  Getopt::Long
  Pod::Parser
  HTML::Tagset
  HTML::Parser
  MIME::Base64
  MIME::QuotedPrint
  Net::Cmd
  Net::Ping
  Net::DNS
  Digest::SHA1
  File::Copy
  Digest::Nilsimsa
  URI::Escape
  2.安装SpamAssassin
  # cd /down
  # fetch http://spamassassin.taint.org/released/Mail-SpamAssassin-2.61.tar.gz
  # tar -zxvf Mail-SpamAssassin-2.61.tar.gz
  # cd Mail-SpamAssassin-2.61
  # perl Makefile.PL
  # make
  # make install
  3.测试SpamAssassin
  # spamassassin -t < sample-spam.txt > spam.out
  # cat /spam.out
  X-Spam-Status: Yes, hits=14.7 required=5.0
  tests=ALL_CAPS_HEADER,CALL_FREE,DATE_IN_PAST_24_48,
  DRASTIC_REDUCED,FROM_HAS_MIXED_NUMS,HOME_EMPLOYMENT,
  INVALID_DATE,INVALID_MSGID,LINES_OF_YELLING,
  MSGID_HAS_NO_AT,NO_REAL_NAME,ONCE_IN_LIFETIME,REMOVE_SUBJ,
  SMTPD_IN_RCVD,SPAM_PHRASE_21_34,UNDISC_RECIPS
  version=2.61
  X-Spam-Flag: YES
  X-Spam-Level: **************
  X-Spam-Checker-Version: SpamAssassin 2.61 (1.115.2.20-2002-10-15-exp)
  # spamassassin -t < sample-nonspam.txt > nonspam.out
  X-Spam-Status: No, hits=0.9 required=5.0
  tests=GAPPY_TEXT,LINES_OF_YELLING,PGP_SIGNATURE,
  SPAM_PHRASE_02_03,TO_BE_REMOVED_REPLY
  version=2.61
  X-Spam-Level
  :
  3.创建SpamAssassin启动脚本
  # touch /usr/local/etc/rc.d/spamd.sh //内容如下
  #!/bin/sh
  #
  # Startup / shutdown script for SpamAssassin daemon
  case "$1" in
  start)
  /usr/bin/spamd -a -d -v -u vpopmail -F 0 && echo -n 'spamd'
  ;;
  stop)
  spamdpid=`ps -ax | grep spamd | grep -v grep | grep -v sh | awk '{ print $1 }'`
  if [ "$spamdpid" != "" ]; then
  kill $spamdpid > /dev/null 2>&1
  echo -n " spamd"
  fi
  ;;
  *)
  echo "Usage: `basename $0` {start|stop}" >&2
  ;;
  esac
  exit 0
  # chmod 744 /usr/local/etc/rc.d/spamd.sh
  # /usr/local/etc/rc.d/spamd.sh start
  三. Maildrop
  # cd /usr/ports/mail/maildrop
  # make
  # make install
  # cd /usr/ports/archivers/zip
  # make install
  http://telia.dl.sourceforge.net/sourceforge/tnef/tnef-1.2.3.tar.gz
  TNEF是一个从"application/ms-tnef". 类型中找出MIME附件的程序.这仅仅是微软系统中的一种附件
  # ./configure
  # make
  # make install
  四. Qmail-scan
  1. qmail-queue补丁程序
  # cd /down
  # fetch http://www.qmail.org/qmailqueue-patch
  # patch –d ./qmail-1.03 < qmailqueue-patch
  # killall qmail-send
  # make setup check
  # csh –cf ‘/var/qmail/rc &’
  2. 安装qmail-scanner
  # cd /down
  # fetch http://telia.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.20.tgz
  # tar -zxvf qmail-scanner-1.20.tgz
  # cd qmail-scanner-1.20
  # pw groupadd qscand
  # pw useradd qscand –c “Qmail-Scanner Account” –g qsand –s /bin/false
  # ./configure –help
  # ./configure --admin "user" --domain "test.com" --scanner clamscan,verbose_spamassassin --lang en_GB –install
  # chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
  # chown -R qmailq:qmail /var/spool/qmailscan/
  # chown qmailq:qmail /var/qmail/bin/qmail-scanner-queue.pl
  # /var/qmail/bin/qmail-scanner-queue.pl -r //查看qmailscan当前包含的特征
  # /var/qmail/bin/qmail-scanner-queue.pl –g //保存qmailscan定义特征的修改,使他生效。
  # chmod 4511 /usr/bin/suidperl
  如果提示:can’t do setuid,那就就是suidperl没有设置set位,或者没有安装perlsetuid。
  3.设置qmail使用qmail-scan
  在smtp启动脚本中添加:
  PATH=$PATH:/usr/local/bin:/var/qmail/bin
  QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
  export PATH QMAILQUEUE
  然后重新启动smtp服务
  4.测试安装
  # cd /usr/local/qmail-scanner/qmail-scanner-1.20
  # ./contrib/test_installation.sh -doit
  这个脚本会设定的管理员邮件地址发送3个邮件,第一个邮件是一般的正常邮件,第二个邮件中会包含eicar.com测试病毒,第三个邮件同样包含eicar.com测试病毒,不过所附带的文件名不是eicar.com。
  如果qmail-scanner安装正确,管理员就应该可以收到关于后面的两个邮件的警告邮件。
  如果系统出错,可以查看/var/spool/qmailscan/qmail-queue.log日志文件。
  qmail-scanner的特征过滤在/var/spool/qmailscan/quarantine-atachments.txt
  五. SpamAssassin的使用
  建立SpamAssassin的学习系统
  #sa-learn --rebuild -D -p user_prefs
  sa-learn --dump all可以查看自学习的数据信息
  spamassassin的过滤模板在/etc/mail/spamassassin/local.cf,修改为:
  required_hits 5.0
  rewrite_subject 1
  subject_tag ********SPAM********
  report_safe 1
  defang_mime 0
  rewrite_subject 0
  report_header 1
  use_terse_report 1
  use_bayes 1
  auto_learn 1
  skip_rbl_checks 1
  use_razor2 0
  use_dcc 0
  use_pyzor 0
  score SUBJ_FULL_OF_8BITS 0.0
  score BASE64_ENC_TEXT 0.0
  score BAYES_99 0.1
  score BAYES_90 0.1
  score SUBJ_ILLEGAL_CHARS 0.1
  score FROM_ILLEGAL_CHARS 0.5
  score HEAD_ILLEGAL_CHARS 0.5
  score MIME_BASE64_TEXT 0.5
  ok_locales en zh
  六. 使用Maildrop调用SpamAssassin
  在/home/vpopmail/domains/localhost.com/建立mailfilter文件
  # touch mailfilter
  # chown vpopmail:vchkpw mailfilter
  # chmod 700 mailfilter
  mailfilter内容如下:
  VPOP="| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
  VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
  if ( $SIZE < 262144 )
  {
  exception {
  xfilter "/usr/bin/spamc -f -u $EXT@$HOST"
  }
  }
  if (/^X-Spam-Flag: YES/)
  {
  # try filtering it using user-defined rules
  exception {
  include $VHOME/Maildir/.mailfilter
  }
  # then try delivering it to a Spam folder
  exception {
  # to "$VPOP"
  to "$VHOME/Maildir/.Spam/"
  }
  # ah well, I guess they'll just have to live with disappointment
  exception {
  to "$VPOP"
  }
  }
  else
  {
  exception {
  include $VHOME/Maildir/.mailfilter
  }
  exception {
  to "$VPOP"
  }
  }
  修改.qmail-default内容如下:
  maildrop mailfilter
  第九部分:附 录
  1.Qmail的主要配置文件
  qmail的配置文件是由多个文件组成的,不是集中在一个文件中,每个文件控制相应部分的功能和属性,一个可执行程序可能有多个配置文件控制,所有的配置文件共同决定了qmail运行的实现和模式。这些配置文件都在qmail的control目录中,本文的配置文件位于 /var/qmail/control目录中
  1.1、badmailfrom
  这个配置文件是控制邮件系统拒绝接收的邮件地址和邮件域,主要是为了防止垃圾邮件。如果一个邮件地址或者邮件域被列入到这个文件中,系统就会拒绝接收这个邮件地址发来的邮件,或者拒绝邮件域下所有邮件地址发来的邮件。不过这个配置文件只是一般的垃圾邮件防范手段,对于比较全面的垃圾邮件过滤技术还要靠第三方软件来实现。该文件的格式如下:
  11@11.com //拒绝这个地址发来的邮件
  22@2w.com
  @33.com //拒绝这个邮件域下的所有帐号发来的邮件
  @44.com
  1.2、boucefrom
  bouceform是定义当邮件投递失败时系统返回给发送者一个包含失败信息的邮件时的发送者。如果不存在这个文件,默认的发送者是MAILER-DAEMON。比如本文的
  echo postmaster > /var/qmail/control/bouncefrom
  就是定义投递者为postmaster,这样所有投递失败的返回邮件的发送者就成了postmaster。
  1.3、concurrencylocal
  这个文件定义了qmail可以同时投递的本地邮件的个数。这个参数的缺省值是10,也就是说系统允许同时有10个邮件在本地投递。concurrencylocal这个参数的最大值是由编译时的conf-spawn参数来决定的,缺省值是120,最大值是255。
  1.4、concurrencyremote
  这个参数定义了qmail可以同时投递的远端邮件的个数,这个参数的缺省值是20。这个参数的最大值也是由conf-spawn来决定的。
  1.5、defaultdomain
  它主要用于邮件用户在投递给同一邮件服务器的邮件用户时的邮件投递处理,比如邮件服务器cnunix.com.cn用户user发送邮件给另一个邮件用户 user1@cnunix,这实qmail-inject会将defaultdomain中定义的邮件域名加入到这个邮件的目标地址中,qmail会自动认为这个邮件的目标地址是user1@cnunix.com.cn,并按照这个地址进行投递。当这个文件不存在的时候,qmail会从配置文件me中读取这个参数。如果系统变量QMAILDEFAULTDOMAIN已经设置,defaultdomain定义的参数将被忽略。
  1.6、defaulthost
  它和defaultdomain类似,当邮件系统接收到没有目标主机名的邮件时,这个设置文件定义了系统往这个邮件中加入的目标主机名名称。在缺省情况下,qmail-inject会将defaulthost中定义的名称加入到没有定义投递邮件地址的邮件的目标主机名中,如果defaulthost不存在,加入的目标主机名将时字符串“defaulthost”,defaulthost主要用于邮件用户在投递给同一邮件服务器的邮件进行投递处理。如果系统变量QMAILDEFAULTHOST已经设置,defaulthost定义的参数将被忽略。
  1.7、databyes
  它定义了qmail-smtpd所允许接收的邮件的最大字节数。这个参数的缺省值为0,表示对接收邮件的字节数没有限制。如果要限制最大的接收为10M,操作如下:
  echo 10485760 > /var/qmail/control/databytes
  这是任何大于10M的邮件都会被拒绝。这个参数最好设置上,以避免恶意的对你服务器发送大量的超大邮件,产生邮件服务器负荷过大,甚至系统崩溃的危险。
  1.8、doublebouncehost
  这个配置文件定义了出现“双重反弹”的时候,系统转发的邮件的主机名称。“双重反弹”就是当系统因为投递失败将邮件返回给发送者时,发送者又将此邮件返回,这个时候qmail将会把这个邮件转发到另一个邮件地址,一般这个地址就是管理员的地址。doublebouncehost就是定义这个转发的邮件地址的主机名部分,而这个邮件地址的用户名部分是由doublebouceto来定义的,因此这两个配置文件一般都是结合起来使用的。当 doublebouncehost不存在的时候,系统将会从配置文件me中读取这个参数。
  1.9、doublebounceto
  这个参说是结合blebouncehost来使用的,当这个参数不存在的时候,系统缺省值是postmaster用户。
  1.10、helohost
  这个配置文件定义了当程序qmail-remote和远程邮件系统建立连接时所使用的主机名。如果这个配置文件不存在,系统将会从配置文件me中读取这个参数值,如果me不存在,qmail-remote将不能正常运行工作。
  1.11、locals
  这个配置文件是定义本地邮件域的,在qmail-send处理邮件投递时,将会使用locals定义的值和邮件的目标地址进行比较,如果相同,系统就会将这个邮件投递到本地交给qmail-lspawn来处理。如果一个邮件的目标主机名在locals找不到,系统将会把这个邮件投递到远端邮件服务器系统,即使这个邮件的目标地址可能是本地邮件系统的。如果locals不存在,系统将会从配置文件me中读取这个参数,如果me不存在,qmail-send将不能正常运行。
  1.12、me
  这个配置文件是qmail系统十分重要的一个文件,如果这个文件不存在,qmail系统将无法运行。me是用来定义本地邮件服务器的主机名的,上面已经介绍到了,有多个配置文件是和me有关联的,如果那些配置文件不存在系统默认会从me中读取参数值的。me这个配置文件一般都是在qmail系统安装时使用 configure-fast来创建的,在上面qmail系统安装的时候已经使用过了这个参数。
  1.13、queuelifetime
  这个配置文件是定义一个邮件在邮件队列中存活的时间,缺省值为7天(604800s),这个期限掉了以后qmail-send将会进行最后一次的投递尝试,如果投递失败,该邮件将会从邮件队列中删除。
  1.14、rcphosts
  这个配置文件也是qmail一个十分重要的文件,这个文件是定义系统允许转发邮件的邮件域,如果这个文件不存在或者为空,你的系统将会接收 Internet上所有的域的邮件转发,即你的系统是Open relay。配置文件rcpthosts最多可以支持50个主机名和域名,如果超个这个数字,就需要保存到他的扩充配置文件morercphosts中,然后使用qmail的命令程序qmail-newmrh(在本系统中,该文件在/var/qmail/bin目录下)来生成二进制的 morercpthosts.cdb文件,这样qmail-smtpd才可以从这个二进制文件中读取信息。
  1.15、virtualdomains
  这也是qmail的一个非常重要的配置文件,它定义了qmail的虚拟邮件域,qmail结合vpopmail的虚拟域管理功能可以定义多个虚拟邮件域。
  1.16、smtproutes
  这个配置文件是定义qmail邮件系统的静态SMTP路由表信息的,他的格式应该是:
  HOST: targetHOST //HOST可以是主机名或者域名。这行所表示的是意思是将所有目标是HOST的邮件转发到targetHOST邮件服务器中,这个是最常规的表示方式。
  下面给一些例子和一些特殊的表示方法:
  cnunix.com.cn:cnunix.com //这行表示的意思是将所有发往cnunix.com.cn的邮件全部转发到cnunix.com这个邮件服务器。qmail不会在 cnunix.com.cn邮件服务器中投递时查询DNS中的MX记录,直接投递到cnunix.com邮件服务器中,加快了投递的速度。
  .cnunix.net: //这行表示强迫qmail对DNS的MX记录进行查询,因为没有定义转发的主机名,qmail将在DNS中查询任何以.cnunix.net结尾的邮件服务器
  :mail.cnunix.com.cn:2525 //这行定义表示所有发往该机器的所有邮件都将会转发到mail.cnunix.com.cn这个邮件服务器,并且转发到对方的2525端口,这个方式一般都是做邮件网关时用的到的。
  注意:smtproutes如果设置不正确或者DNS的变动会产生邮件的循环投递。
  1.17、timeoutconnect
  这个配置文件定义了qmail-remote在和远端SMTP服务器在SMTP连接断开以前接受一个新的连接等待的最大时间(单位为秒s),默认值为一分钟(60s)。如果你的网络连接速率比较低,就需要相应的调整这个参数到一个适合的值。
  1.18、timeoutremote
  这个配置文件定义了qmail-remote等待远端的SMTP服务器相应时等待的最大时间,默认值为20分钟(1200s),如果到达这个最大值没有相应,qmail才和对方断开连接并且把失败的记录写到qmail的日志中。
  1.19、smtpgreeting
  这个配置文件定义了用户在登录SMTP服务时显示的系统欢迎信息。修改这个信息可以掩盖一些你的系统的本身的信息,可以相对的迷惑一下登录者:)
  2. vpopmail参数附录
  一般选项:
  2.1、--enable-roaming-users=n|y
  当pop3认证通过后,是否打开对该用户的邮件转发(mail relay),缺省是关闭的。若设置该选项为y,当某个用户通过了pop3认证,则将其IP地址加入许可通过该邮件服务器进行relay的列表中。一个名为clearopensmtp的cronjob程序可以用来实现在这一段时间以后从允许转发邮件地址列表中将该IP地址清除。这个选项要求以-x /etc/tcp.smtp.cdb选项来使用tcpserver运行smtp服务器。
  2.2、--enable-hardquota=size|n
  size为具体的数字。设置或打开磁盘限额功能,NOQUOTA缺省为50M,这里=后面的数字单位为字节,如果要限制磁盘限额为10M就需要使用下面这个配置参数:
  --enable-hardquota=10000000
  若磁盘限额超出,将拒绝接受该用户的新邮件,并返回一封拒绝信息邮件,其中的信息可以定制。
  2.3、--enable-default-domain=name
  该选项为设定缺省域名,推荐将所有的域都设置为虚拟域,并选中一个作为缺省域。对于缺省域的用户,其通过接受邮件时,只需要在用户名中设置其邮件用户名即可,对于其他非缺省域的用户,则需要将用户名设置为<user>@<virtualdomain>的格式才能通过pop3接受信件。
  2.4、--enable-ip-alias-domains=y|n
  允许通过反向解析来查看虚拟域。缺省情况下,每个域使用基于虚拟域的名字,也就是用户必须在pop3用户名中提供相应的域信息,也就是< user>@<virtualdomain>.当然也可以使用enable-default-domain配置选项来覆盖该要求。 Vpopmail同样支持基于IP地址的虚拟域,若该选项打开则用户不需要在pop3用户名中提供@<virtualdomain>, vpopmail自动对该用户连接的服务器IP地址进行反向解析,若解析得到一个域名,则vpopmail使用该名字作为域,例如:IP:x.x.x.x 对应域名test.com,用户设置pop3服务器的IP地址进行反向DNS查询,得到test.com域名,用户使用test作为用户名, vpopmail使用test.com。
  2.5、--enable-relay-clear-minutes=360
  允许漫游用户通过邮件服务器的转发邮件的时间段。 若--enable-roamin-users=y,则该选项设置clearopensmtp应该保持该IP在允许列 表中的时间,缺省是3小时。
  Mysql options:
  2.6、--enable-mysql=n|y
  使用mysql,缺省是no.允许通过将账号存放在mysql数据库中来认证用户。
  注意:在配置和编译以前需要修改文件vmysql.h,正确的设置mysql服务器的Name/Ip, mysql用户和mysql用户密码。该用户必需要拥有创建数据库和在其中创建表格的权限。
  2.7、--enable-sqlincdir=
  sql头文件的目录,缺省为/usr/local/mysql.
  2.8、--enable-sqllibdir=/usr/lib/mysql
  库文件libmysqlclient.a的目录,缺省为/usr/lib/mysql
  2.9、--enable-sqllibs=mysqlclient
  mysql库名,缺省为libmysqlclient.a.
  2.10、--enable-large-site=n|y
  缺省值为no,使用该选项是为了适应大量用户的情况。缺省的vpopmail将所有的域信息存放在同一个table-vpopmail中,这对于一般情况下具有很好的效率。但是对于大量用户的系统,则需要将该选项设置为yes。这时候,vpoomail将为每个域创建一个table。最主要的区别是域名不存放在数据库中,因为表格包含了域名。对于大于500,000+的用户,这可以节省大量的磁盘空间。但是对于有大量虚拟域的系统可能会影响mysql的性能。
  Vpasswd/cdb options
  2.11、--enable-ucspi-dir=dir
  编译好ucspi-tcp包的目录位置,使用该目录来设定ucspi-tcp软件包的路径,缺省为../ucspi-tcp-0.84。vpopmail需要使用该目录中的头文件和两个.a文件。
  Logging options
  2.12、--enable-logging=e|y|n
  打开(y)或关闭(n)使用syslog进行log,或e仅仅log错误信息。设置log级别,缺省仅仅记录pop认证错误信息。
  2.13、--enable-log-name=vpopmail
  设置log名
  User/group options
  2.14、--enable-vpopuser=vpopmail
  若使用其他的用户来安装该软件包,则在该选项中指定组名。
  2.15、--enable-vpopgroup=vchkpw
  若使用其他的组来安装该软件包,则在该选项中指定组名。
  2.16、--enable-admin-email=email-address
  系统管理员的电子邮件地址。
  Directory and file location options
  2.17、--enable-tcpserver-file=/etc/tcp.smtp tcpserver –x
  使用的邮件转发配置文件的存放目录,缺省为/etc
  2.18、--enable-qmaildir=dir
  qmail的安装目录指定,缺省为/var/qmail。
  2.19、--enable-tcprules-prog=/usr/local/bin/tcprules
  tcprules程序的安装位置,缺省为/usr/local/bin
  2.20、--enable-apop-file=/etc/apop-secrets
  apop密钥存放目录
  Other options
  2.21、--enable-apop=y|n
  允许或禁止apop认证,缺省是yes
  2.22、--enable-passwd=y|n
  允许或禁止/etc/passwd(或shadow)认证。覆盖自动配置,缺省的配置程序将自动检测系统是使用passwd或shadow密码,通过设置该选项为no,可以禁止所有的/etc/passwd账号认证。
相关文章 热门文章
  • AS4上架设Qmail带身份验证*ibm服务器安装
  • 阿里巴巴招聘qmail邮件系统管理工程师
  • qmail的smtp与pop服务及相关日志完全解决方案
  • 修正Qmail auth smtp中电子邮件地址任意的patch
  • Qmail 启动设置
  • qmail 全套安装笔记
  • Qmail邮件系统管理工程师--阿里巴巴(中国)网络技术有限公司
  • 虚拟环境下选择成两难 用iSCSI还是FC?
  • 实现QMail邮件账户的Web管理:使用QMailadmin
  • 什么是分布式的Qmail邮件系统(上)
  • Qmail邮件系统下防止滥用mail relay
  • 成功将qmail用户迁移到postfix(extmail+extman)下
  • Linux邮件服务器软件比较
  • 域名和邮件服务器FAQ
  • Qmail自动安装包Qmail_setup-v1.5.3发布
  • freebsd+qmail+mysql+vpopmail之完全ports安装
  • qmail+vpopmail+MySQL+igenus+RedHat 7下建立邮件系统
  • QMAIL终极安装指南
  • 配置你的第一台e-mail服务器
  • qmail+webmail on Linux9 安装全过程
  • 分布式的Qmail邮件系统
  • qmail+vpopmail+mysql+qmailadmin+ezmlm+igenus构建企..
  • qmail+webmail on Linux9 安装全过程
  • Qmail Server Howto
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号