返回列表 发帖

Linux qmail安装指南

作者: 飞天 原文在这里: http://sylvestre.ledru.info/howto/h...il_vpopmail.php ; (english ) 本文档全面介绍如何使用qmail在Linux上建造一个高性能的邮件服务器,如何用Vpopmail实现虚拟的邮件域,如何使用qmailadmin 通过Web页面方便的管理用户,如何添加大容量的邮件列表支持,如何实现病毒邮件清除,如何实现中文垃圾邮件过滤,以及如何实现用户的Web登陆。 我将在linux下安装qmail分成若干步骤,您只要按照顺序完成这些步骤,则可安装一台基于Linux的qmail邮件服务器;此套安装方法已经在RedHat AS4和Cent OS4下测试通过;希望有时间又有兴趣的朋友能够加入其中,一起完善它,做一套最完善的中文qmail安装指南,以帮助更多的正在学习qmail的朋友少走些弯路。   此文所实现的邮件系统功能列表: · SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持 · POP3服务器:CRAM-MD5,APOP,和SSL支持 · IMAP服务器:TLS(SSL)支持 · 邮件病毒清除 · 邮件附件限制 · 中文垃圾邮件过滤(最高90%) · 自动回复 · 邮件列表 · Web管理 · 通过Web显示统计信息 · WebMail · MRTG 安装前准备: 第一节:安装引言 1.1 介绍 1.2 什么是qmail?为什么选择qmail? 1.3 何处可得到最新版本 1.4 本指南发展历史 1.5 参考文章 1.6 免责声明 1.7 致谢 第二节:安装qmail前软件和环境确认 2.1 磁盘空间确认 2.2 检查DNS设置 2.3 确认系统环境 2.4 设置防火墙 2.5 设置MySQL 2.6 卸载已有的邮件系统   安装邮件系统: 第三节:下载所需要的软件包 第四节:安装qmail 第五节:安装vpopmail 第六节:安装iGenus(可选) 第七节:安装iGenus_Admin(可选) 第八节:安装courier-imap 第九节:安装SquirrelMail(可选) 第十节:安装SqwebMail(可选) 第十一节:安装Wmail(可选) 第十二节:安装Autorespond&Ezmlm 第十三节:安装qmailadmin 第 十四节:安装Vqregister(可选) 第十五节:安装vQadmin 第十六节:安装SpamAssassin 第十七节:安装Clamav 第十八节:安装MailDrop 和TNEF reader 第 十九节:安装qmail-scanner&qms-analog 第二十节:安装qmailAnalog & qlogtools 第二十一节:安装isoqlog 第二十二节:安装MRTG   测试及维护: 第二十三节:测试 第二十四节:系统维护 第二十五节:FAQ(网上收集) 第一节:安装引言 TOP   1.1 介绍 本指南的目的是帮助你从头开始建立一个大容量(1000用户以上)、易管理、易扩充、分布式、用户界面友好的邮件系统。如果仅仅是为了支持内部网络的很少用户,你可以选择sendmail,甚至是基于NT平台的任何共享的邮件服务器软件,它们更加易与操作和设定。作为一种尝试,当然你也可以选择本系统,但是你必须对Linux系统有相当的了解,至少是可以独立的配置一台Linux网络服务器。 本文档并不是简单的把相关软件的安装文档及FAQ汉化,相反的,本文档几乎不包括任何相关软件的安装文档及FAQ,我认为作为一个qmail的使用者,他应该做到以下几点: · 熟悉了所有Dan Bernstein(qmail的作者)发布的文档; · 熟www.qmail.org(qmail官方站点)的相关资源; · 尽量理解Life With qmail; · 耐心阅读所有相关软件的安装文档及FAQ! qmail是一个非常复杂的系统,尽管它本身非常简洁。如果你对它的复杂性不够了解,你可以对照一下Sendmail, qmail就是设计用来取代Sendmail的。尽管qmail的配置要比Sendmail简单的多,而且通过第三方编程人员的不断努力,附加的add-on使得qmail更加易于配置和管理,但是它确实是一个非常复杂的系统。它需要你具有丰富的*NIX平台的管理经验,一旦你能正确的理解qmail,你就会发现,qmail确实是一个空前优秀的邮件系统。 本文档想起到一个“粘合剂”的作用,希望能够帮助qmail用户迅速实现一个以qmail为核心的大型邮件系统,并希望能够针对各组件的协调工作问题给出一个可行的解决方案。 本文档及其所有的附加脚本都已经经过了作者本人N(N>20)遍的测试,如果在你的系统上不能工作或出现异常错误,你可以参见第二节:安装qmail前软件和环境确认,对于其他的 *NIX 系统,我相信本文档的基本概念是正确的。   1.2 什么是qmail?为什么选择qmail? qmail是可以完全替代Sendmail-binmail体系的新一代UNIX邮件系统,它也是一个基于UNIX操作系统的Internet邮件传输机构( Internet Mail Transfer Agent 简称MTA)。它采用标准的简单邮件传输协议(Simple Mail Transfer Protocol 简称SMTP)与Internet上其他MTA交换信息。为了解决用户邮件存储问题,qmail提出了Maildir存储方式,每个邮件作为单独的一个文件保存在用户个人的邮件目录下,这就避免了加锁。同时,qmail支持虚拟域(Virtual Domain)和虚拟用户(Virtual User),使邮件系统的用户独立于UNIX系统用户。与Sendmail相比,qmail有以下优点:   *安全---- qmail将E-mail处理过程分为多个分过程,尽量避免以Root用户身份运行。同时qmail也禁止对特权用户(Root、Deamon等)直接发信。   *可靠---- qmail的直接投递保证了E-mail在投递过程中不会丢失。qmail同时支持新的更可靠的信箱格式——Maildir,保证系统在突然崩溃情况下不至破坏整个信箱。   * 高效----运行在奔腾的BSD上,qmail每天可以轻松地投递20万封电子邮件。   *简单---- qmail 要比其他的Internet Mail系统小得多。 它通过统一的向前机制完成Forwarding、Alias和Maillist等功能, qmail使用简单高效队列来处理投递。qmail-SMTPD可以由Inetd启动,节省了一定资源。   1.3 何处可得到本指南最新版本? 本文档最新版本从http://www.xuki.org/可以得到。   1.4 本指南的发展历史? 2.9-2005年4月8日 系统升级成RHEL 4/CentOS4,使用2.6的内核  补丁和脚本集升级成最新的toaster-scripts-0.7&qmail-toaster-0.7.2 Clamav升级至0.83 qmail-scanner升级至1.25 spamassassin升级至3.0.2,增加及集成中文垃圾邮件过滤和中国反垃圾邮件联盟实时黑名单服务 vpopmail升级至vpopmail-5.4.10   2.8-2004年11月22日,之前没有规范的记录 。 。 。 1.0-2004年10月份,记不太清楚了   1.5 参考文章 Bill';s Linux qmail Toaster Life with qmail The qmailrocks.org qmail Installation guide   1.6 免责声明 1. 此篇文章仅做参考,如果因为此文所引致的一切后果请自行负责; 2. 本人没有义务对此文做技术支持,各位如果有疑问请到我的论坛交流。   1.7 致谢 作者感谢所有对此文档及其相关内容提出疑问及报告错误的网友,是他们促进了本文档的完善,使本文档具有更好的可用性。   第二节:安装qmail前软件和环境确认 TOP   在成功安装qmail邮件系统之前,请务必确认安装中所需要的软件包和相关设置。此节给出一些确认清单,以方便各位朋友在安装之前进行相关设置的确认。当然不同的系统和服务器设置方法不一样,你可能发现有些确认动作没有列出来;如果各位有需要补充的,请联络我改正。 2.1 磁盘空间确认 下面是通常安装一套系统所需要的空间,根据需求不同空间要求也不一样。 最保守的磁盘空间必须有80-90MB;这些空间包括下载软件包和解开软件包所需要的磁盘空间。 在安装完成之后,删除下载的软件安装包,邮件服务运行所需要的安全空间15MB 就够了。 如果你的系统有多个分区: / 70MB. /var 10MB /home 起动邮件系统3MB够了,但因为邮件均存放在/home/vpopmail下,要根据实际情况调整 当然像现在硬盘价格这么低的状况下,我想硬盘空间不是什么问题的。 2.2 检查DNS设置 在开始之前,确保正确设置了DNS MX记录.例如使用"domain.com"作为邮件域,对MX记录进行测试: 在Linux下: host -t mx domain.com domain.com. mail is handled by 10 mail.domain.com. host -t a mail.domain.com mail.domain.com. has address xxx.xxx.xxx.xxx 在Windows下: C:\>nslookup Default Server: ns.domain.com Address: xxx.xxx.xxx.xxx >set type=mx >domain.com domain.com MX preference = 10, mail exchanger = mail.domain.com mail.domain.com internet address = xxx.xxx.xxx.xxx >exit 如果你的邮件服务器是用做公司内部邮件服务,不对外提供服务,此处可略过。 2.3 确认系统环境 确认下面的软件是否已经安装: rpm -q httpd php php-mysql mysql mysql-server mysql-devel gdbm gdbm-devel openssl openssl-devel stunnel krb5-devel 如果你还没有安装, 请先安装它们. 你可以到安装光盘或是在这里找到它们的RPM包http://www.rpmfind.net. 我的操作系统选择和安装包选择: 操作系统:RedHat EL4/CentOS 4 系统软件安装包选择: Desktops 无 Applications 无 Servers Web Server:加选php-mysql Mail Server:加选spamassassin,其它清除 FTP Server:Vsftpd MySQL Database:加选mysql-bench/mysql-server/php-mysql Development Development Tools SELinux: 像一些setuid程序,比如qmailAdmin, 将不能与SELinux同时工作,你必须在安装系统的时候关掉SELinux; 如果你已经安装好了操作系统并开启SELinux,并希望知道如何关掉它,请参考: http://www.redhat.com/docs/manuals/...ction-0068.html 如果要通过yum升级CentOS4系统,则需要导入CentOS4.0:RHEL4的dag rpm --import http://ftp.riken.jp/Linux/dag/packa...GPG-KEY.dag.txt ; 2.4 设置防火墙 安装完系统后,修改/etc/httpd/conf/httpd.conf,使web服务正常启用,为mysql添加root用户的密码。如果设置了防火墙,要打开如下端口: Outbound ports (tcp) 25 - SMTP 110 - POP 143 - IMAP 783 - Spamassassin 993 - IMAPS Inbound Ports (tcp) 22-SSH 25 - SMTP 80 - HTTP 110 - POP services 143 - IMAP 443 - HTTPS 783 - Spamassassin 993 - IMAPS 2.5 设置MySQL 启动mysql server: /etc/rc.d/init.d/mysqld start 设置mysql root口令: mysqladmin -u root password xukixu (设置你的密码) mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。 2.6 卸载已有的邮件系统 确认没有SMTP/POP/IMAP服务在运行: /etc/init.d/sendmail stop netstat -na | grep 25 netstat -na | grep 110 netstat -na | grep 143 service sendmail stop 删除已有的SMTP/POP/IMAP软件: rpm -e --nodeps sendmail 第三节:下载所需要的软件包 TOP   些篇文档所使用的软件清册如下: qmail – 本文的主角,世界上使用最广的邮件系统之一。此处使用的是netqmail-1.05的补丁集和shupp.org的Toaster 7.0运行脚本 ucspi-tcp - ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序 daemontools - 是inetd和winetd的代替品,用它来监听qmail-send,qmail-smtpd,qmail-pop3d Vpopmail - 一个以qmail为基础的虚拟域管理包,其允许在一个IP地址添加多个虚拟域 iGenus - 大麻兄的作品,PHP编写的Webmail iGenus_Admin -通过WEB添加域和帐号 Courier-imap -此邮件系统的IMAP模块 ezmlm – 一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置 autorespond – 自动回复程序,可以很好的与qmailadmin配合使用 qmailadmin – 通过WEB管理vpopmail域的极好工具 vqadmin – 通过WEB添加域 SpamAssassin – 垃圾邮件防止,中文垃圾邮件清理就靠它了 Clamav - 一个免费的杀毒软件,此邮件系统的杀毒模块 MailDrop – 邮件过滤工具,比较难以使用,但是值得学会它 qmail-scanner – 一个扫描邮件队列的插件,其调用Clamav和SpamAssassin进行清除邮件病毒和垃圾邮件的动作 qmailanalog – 分析难以理解的qmail日志,并每晚给出报告 isoqlog - 一个qmail日志分析工具,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表 MRTG - 多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具   为了方便大家使用,我把下文中所提到的软件打成了一个包,下载地址为: http://www.xuki.org/qmail_2.9.tar.gz; 大部份的软件都是用的最新版(2005年4月),我也将会跟踪软件的发行来更新些安装指南。   那么下面让我们开始安装必须的软件: #创建/home/pkg/目录 mkdir /home/ #下载软件 wget http://www.xuki.org/qmail_2.9.tar.gz #将软件解压缩到目录中 tar qmail_2.9.tar.gz 此安装指南中所使用的软件包有: autorespond-2.0.5.tar.gz clamav-0.83.tar.gz courier-authlib-0.55.tar.bz2 courier-imap-4.0.2.tar.bz2 daemontools-0.76.errno.patch daemontools-0.76.tar.gz ezmlm-0.53.tar.gz ezmlm-idx-0.42.tar.gz igenus_2.0.2_20040901_release.tgz igenus_admin_0.1.tgz isoqlog-2.1.1.tar.gz maildrop-1.8.0.tar.bz2 mrtg-2.10.15-1.i386.rpm netqmail-1.05.tar.gz perl-Razor-Agent-2.40-2.i386.rpm perl-suidperl-5.8.5-12.1.1.i386.rpm qlogtools_errno.patch qlogtools-3.1.tar.gz qmailadmin-1.2.3.tar.gz qmailanalog-0.70.errno.patch qmailanalog-0.70.tar.gz qmailmrtg7-4.0.tar.gz qmail-scanner-1.25.tgz qmail-toaster-0.7.2.patch.bz2 qms-analog-0.4.2.tar.gz spamassassin-3.0.2-2.1.el3.rf.i386.rpm tnef-1.2.3.1.tar.gz toaster-scripts-0.7.tar.gz ucspi-tcp-0.88.errno.patch ucspi-tcp-0.88.tar.gz vpopmail-5.4.10.tar.gz vqadmin-2.3.6.tar.gz #解压缩netqmail-1.05.tar.gz   chmod 755 -R pkg cd pkg tar -xzf netqmail-1.05.tar.gz cd netqmail-1.05 ./collate.sh 注意:./collate.sh这一步不要忘 第四节:安装qmail TOP   除非你确实熟悉各个软件和系统结构,否则请按照如下步骤一步一步安装软件,此文将引导你安装一套完整的邮件系统。这个安装过程基本上你只需要复制粘贴就可以完成。   安装daemontools daemontools是一个收集管理UNIX进程的工具.用它来监听qmail-send,qmail-smtpd,qmail-pop3d. 参考:http://cr.yp.to/daemontools.html ; #安装: cd /home/pkg tar -zxvf daemontools-0.76.tar.gz cd admin/daemontools-0.76 patch -p1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch package/install # 验证daemontools已经正常运行: sleep 5 ps ax | grep svscan 安装ucspi-tcp ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序。TcpServer是一个比inetd安全性更好的选择。它内建有基于规则的连接控制,能完善地在达到预定义的最大系统负载时将连接推迟,这点比 inetd好。Tcpserver也被推荐与qmail一同使用,因为它们是同一个作者编的程序。 参考:http://cr.yp.to/ucspi-tcp.html #安装: cd /home/pkg tar zxvf ucspi-tcp-0.88.tar.gz cd ucspi-tcp-0.88 patch -p1 < ../ucspi-tcp-0.88.errno.patch make make setup check 安装qmail 参考:http://www.qmail.org http://www.lifewithqmail.org/ 这个toaster补丁,是下面这几个补丁的组合: smtp auth (SMTP认证) spf (发信人DNS检查) qmail-queue (如果要使用病毒扫描引擎则需要这个补丁) maildir++ patch support oversize dns packets (not necessary if you use dnscache) chkuser (检查本地vpopmail用户表,信头的语法,这个补丁需要在安装vpopmail后被安装。) spam throttle qregex (匹配badmailfrom和badmailto文件里的规则) big concurrency (set the spawn limit above 255) #安装: #创建所需要的用户 mkdir /var/qmail groupadd nofiles useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin groupadd qmail useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin useradd qmails -g qmail -d /var/qmail -s /sbin/nologin #顺便添加vpopmail用户 groupadd vchkpw -g 89 useradd vpopmail -u 89 -g vchkpw #准备安装qmail cd /home/pkg tar -xzf toaster-scripts-0.7.tar.gz cd netqmail-1.05/netqmail-1.05/ # 搜索函数straynewline中的451改为553 vi qmail-smtpd.c # 当你的服务器收到无效格式的邮件时,会发送:"I am not going to accept that message at the moment,you can try again later",对方服务器收到后,几秒钟后又会发送同样的邮件给你,造成多次的重复。 # 改为553后,你的服务器将直接发送:"I am not going to accept that message,don';t try sending it again.",告诉对方的服务器不要再发这封无效的信件。 # RedHat/Fedora用户可能需要为TLS补丁链接一个include文件 # 输入如下命令: ln -s /usr/kerberos/include/com_err.h /usr/include/ # 删除sendmail的链接 rm -rf /usr/sbin/sendmail #qmail编译安装 make make setup check #注:qmail的补丁在vpopmail安装之后再打。 # 用你自己的主机名代替下面的mail.domain.com ./config-fast mail.domain.com #设置管理员的邮箱地址。 #发往root/postmaster/mailer-daemon地址的邮件将会由定义的管理员邮箱接收。 #将如下的“admin@domain.com"替换成你的管理员邮箱。 cd /var/qmail/alias echo "admin@domain.com" > .qmail-postmaster echo "admin@domain.com" > .qmail-mailer-daemon echo "admin@domain.com" > .qmail-root chmod 644 /var/qmail/alias/.qmail* #开启SPF设置 echo ./Maildir/ >/var/qmail/control/defaultdelivery echo 3 > /var/qmail/control/spfbehavior #添加qmail的帮助手册 echo MANPATH /var/qmail/man >> /etc/man.config #为qmail服务建立监控目录和日志文件: mkdir -p /var/qmail/supervise/qmail-send/log mkdir -p /var/qmail/supervise/qmail-smtpd/log mkdir -p /var/qmail/supervise/qmail-pop3d/log mkdir -p /var/qmail/supervise/qmail-pop3ds/log cp /home/pkg/toaster-scripts-0.7/send.run /var/qmail/supervise/qmail-send/run cp /home/pkg/toaster-scripts-0.7/send.log.run /var/qmail/supervise/qmail-send/log/run cp /home/pkg/toaster-scripts-0.7/smtpd.run /var/qmail/supervise/qmail-smtpd/run cp /home/pkg/toaster-scripts-0.7/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run cp /home/pkg/toaster-scripts-0.7/pop3d.run /var/qmail/supervise/qmail-pop3d/run cp /home/pkg/toaster-scripts-0.7/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run cp /home/pkg/toaster-scripts-0.7/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run cp /home/pkg/toaster-scripts-0.7/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run echo 20 > /var/qmail/control/concurrencyincoming chmod 644 /var/qmail/control/concurrencyincoming chmod 755 /var/qmail/supervise/qmail-send/run chmod 755 /var/qmail/supervise/qmail-send/log/run chmod 755 /var/qmail/supervise/qmail-smtpd/run chmod 755 /var/qmail/supervise/qmail-smtpd/log/run chmod 755 /var/qmail/supervise/qmail-pop3d/run chmod 755 /var/qmail/supervise/qmail-pop3d/log/run chmod 755 /var/qmail/supervise/qmail-pop3ds/run chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run mkdir -p /var/log/qmail/smtpd mkdir -p /var/log/qmail/pop3d mkdir -p /var/log/qmail/pop3ds chown -R qmaill /var/log/qmail #启动脚本: cd /home/pkg cp toaster-scripts-0.7/rc /var/qmail/rc chmod 755 /var/qmail/rc cp toaster-scripts-0.7/qmailctl /var/qmail/bin/ chmod 755 /var/qmail/bin/qmailctl ln -s /var/qmail/bin/qmailctl /usr/bin ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail rm -rf /usr/lib/sendmail ln -s /var/qmail/bin/sendmail /usr/lib/sendmail # 用daemontools来启动qmail-send和qmail-smtpd ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service #命令: # 启动,停止,重启,查看队列等 qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help # 检查服务 netstat -an | grep 25 ps -ef | grep qmail ps -efl | grep "service errors" | grep -v grep   #日志: /var/log/maillog /var/log/qmail/current /var/log/qmail/pop3d/current /var/log/qmail/pop3ds/current /var/log/qmail/smtpd/current 我建议重新回顾一下刚才我们所做的步骤以熟悉对qmail的安装. 下面我们将开始vpopmail的安装. 第五节:安装vpopmail TOP   vpopmail是一个以qmail为基础的虚拟域管理包;其允许在一个IP地址添加多个虚拟域;并且可以不需要使用系统帐号做邮件帐号。 参考:http://vpopmail.sf.net #创建目录: mkdir -p /home/vpopmail/etc # 设置默认域,红色部份改成你要设置的域。 echo "domain.com" > /home/vpopmail/etc/defaultdomain # 设置smtp规则,关闭open relays echo ';127.0.0.1:allow,RELAYCLIENT=""'; > /home/vpopmail/etc/tcp.smtp cd /home/vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp # 设置MySQL信息,第一个vpopmail是帐号,xukixu为密码,第二个vpopmail是数据库 echo "localhost|0|vpopmail|xukixu|vpopmail" > /home/vpopmail/etc/vpopmail.mysql chmod 640 /home/vpopmail/etc/vpopmail.mysql chown -R vpopmail.vchkpw /home/vpopmail/etc # 在MySQL里添加vpopmail的帐号 mysql -uroot -pxukixu CREATE DATABASE vpopmail; GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY ';xukixu';; FLUSH PRIVILEGES; QUIT #安装: cd /home/pkg/ tar zxvf vpopmail-5.4.10.tar.gz cd vpopmail-5.4.10 # 带数据库支持 ./configure --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --disable-valias --disable-mysql-limits --enable-learn-passwords make make install-strip #管理: echo ';export PATH=$PATH:/home/vpopmail/bin'; >> /etc/profile source /etc/profile # 添加域,红色部份前面是域名,后面是管理员(postmaster)密码 vadddomain domain.com xukixu # 添加用户,红色部份为注解,不用输入 vadduser -q 10485760S(邮箱大小) xukixu@domain.com(邮箱帐号) 1234(密码) vmoduser -c 许靖(邮箱描述) xukixu@domain.com # 设置邮箱容量达到90%的警告信息 vi /home/vpopmail/domains/.quotawarn.msg From: 邮箱管理员 Reply-To: postmaster@domain.com To: 邮箱用户 Subject: 邮箱空间警告 Mime-Version: 1.0 Content-Type: text/html; charset=gb2312 Content-Transfer-Encoding: base64 您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件. 如果需要帮助,请联系邮箱管理员: Email : postmaster@domain.com # 设置邮箱已满的警告信息 echo "邮件被拒绝,用户的邮箱空间已满." > /home/vpopmail/domains/.over-quota.msg #启动脚本: cp /home/pkg/toaster-scripts-0.7/vpopmailctl /var/qmail/bin ln -s /var/qmail/bin/vpopmailctl /usr/bin chmod 755 /var/qmail/bin/vpopmailctl #现在打上qmail的补丁: cd /home/pkg/netqmail-1.05/netqmail-1.05 bunzip2 -c /home/pkg/qmail-toaster-0.7.2.patch.bz2 | patch -p0 make clean make qmailctl stop make setup check chown -R vpopmail:vchkpw /var/qmail/spam #创建SSL Key make cert #按提示输入公司信息 [root@mail netqmail-1.05]# make cert Generating a 1024 bit RSA private key .............++++++ ...............++++++ writing new private key to ';/var/qmail/control/servercert.pem'; ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ';.';, the field will be left blank. ----- Country Name (2 letter code) [GB]:CN State or Province Name (full name) [Berkshire]:GD Locality Name (eg, city) [Newbury]:SZ Organization Name (eg, company) [My Company Ltd]omain Organizational Unit Name (eg, section) []omain Common Name (eg, your name or your server';s hostname) []:domain.com Email Address []:xukixu@domain.com make tmprsadh #注:这里可能要多等一会 chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem # 用"crontab -e"在crontab里增加下面这条,每天晚上更新temp keys 01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1 #起动qmail qmailctl start # 用daemontools来启动qmail-pop3d和qmail-pop3ds ln -s /var/qmail/supervise/qmail-pop3d /service ln -s /var/qmail/supervise/qmail-pop3ds /service #命令: # 启动,停止,重启,查看队列等 vpopmailctl start|stop|restart|stat|pause|cont|help # 检查服务 netstat -an | grep 110 ps -ef | grep qmail ps -efl | grep "service errors" | grep -v grep   安装选项参考: vpopmail 5.4.10 Current settings --------------------------------------- vpopmail directory = /home/vpopmail uid = 89 gid = 89 roaming users = OFF --disable-roaming-users (default) password learning = ON --disable-learn-passwords (default) md5 passwords = ON --enable-md5-passwords (default) file locking = ON --enable-file-locking (default) vdelivermail fsync = OFF --disable-file-sync (default) make seekable = ON --enable-make-seekable (default) clear passwd = ON --enable-clear-passwd (default) user dir hashing = ON --enable-users-big-dir (default) address extensions = OFF --disable-qmail-ext (default) ip alias = OFF --disable-ip-alias-domains (default) domain quotas = OFF --disable-domainquotas (default) auth module = mysql --enable-auth-module=mysql mysql replication = OFF --disable-mysql-replication (default) sql logging = ON --enable-sql-logging mysql limits = OFF --disable-mysql-limits (default) MySQL valias = OFF --disable-valias (default) auth inc = -I/usr/include/mysql auth lib = -L/usr/lib/mysql -lmysqlclient -lz -lm system passwords = OFF --disable-passwd (default) pop syslog = show failed attempts with clear text password --enable-logging=p auth logging = ON --enable-auth-logging (default) all domains in one SQL table = --enable-many-domains (default) #POP3和SMTP测试 用outlook测试qmail的smtp和pop3是否正常,注意由于vpopmail支持虚拟域名,所以在outlook中设置邮件帐号时,用户名后要加上域名,如demo@demo.com。smtp是带认证的,在outlook中也要作相应设置。建议先测试正常后再进行下一步安装。如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqld和maillog日志记录,这样容易很快找出问题。 第六节:安装iGenus(可选) TOP   iGENUS 不是一套独立的邮件系统,只是一个 Webmail 接口,需要配合 qmail+vpopmail+Mysql 使用。iGENUS 是由 PHP 写成,采用直接对 qmail 的 Maildir 进行读写操作,因而比 IMAP/POP 方式更快一点。 参考:http://www.igenus.org #安装: cd /home/pkg tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/ cd /var/www/ rm -rf html/ mv igenus html #建temp文件夹 mkdir /tmp/temp chmod -R 0755 /tmp/temp chown -R vpopmail:vchkpw /tmp/temp mkdir /home/netdisk chmod -R 0755 /home/netdisk chown -R vpopmail:vchkpw /home/netdisk chmod -R 0755 /var/www/html/ chown -R vpopmail:vchkpw /var/www/html/ #修改httpd.conf vi /etc/httpd/conf/httpd.conf User vpopmail Group vchkpw DocumentRoot "/var/www/html/" AddDefaultCharset GB2312 //使默认页面为中文 /etc/rc.d/init.d/httpd restart //重启apache,使修改生效 #修改config_inc.php文件 cd /var/www/html/config vi config_inc.php $CFG_BASEPATH = "/var/www/html/"; \\改成你安装的目录 $CFG_MYSQL_HOST = ';localhost';; $CFG_MYSQL_USER = ';vpopmail';; \\vpopmail访问mysql的帐号 $CFG_MYSQL_PASS = ';xukixu';; \\vpopmail访问mysql的密码 $CFG_MYSQL_DB = ';vpopmail';; \\数据库 $CFG_TEMP = "/tmp/temp"; \\删除$CFG_BASEPATH,并修改路径 #重新编制Mysql数据库表格 #删除之前创建的域名 vdeldomain domain.com #编辑数据库: mysql -uroot -pxukixu use vpopmail; drop table lastauth; drop table vpopmail; quit; #编辑/var/www/html/docs/iGENUS.sql vi /var/www/html/docs/iGENUS.sql # phpMyAdmin SQL Dump # version 2.5.3 # http://www.phpmyadmin.net # # Host: localhost # Generation Time: Jun 04, 2004 at 11:26 AM # Server version: 3.23.55 # PHP Version: 4.3.0 # # Database : `vpopmail` # # -------------------------------------------------------- # # Table structure for table `address` # use vpopmail; //加入这一行 CREATE TABLE `address` ( `id` int(11) unsigned NOT NULL auto_increment, `pw_id` int(5) NOT NULL default ';0';, `name` varchar(64) NOT NULL default ';';, `email` varchar(128) NOT NULL default ';';, UNIQUE KEY `id` (`id`), KEY `pw_id` (`pw_id`) ) TYPE=MyISAM PACK_KEYS=1 ; # -------------------------------------------------------- 。。。。。。。。。 。。。。。。。。。。 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(48) default NULL, `pw_dir` varchar(255) default NULL, `pw_shell` varchar(20) default NULL, `pw_clear_passwd` varchar(16) default NULL, \\加入这一行 `createtime` timestamp(14) NOT NULL, PRIMARY KEY (`pw_id`), KEY `pw_name` (`pw_name`,`pw_domain`) ) TYPE=MyISAM PACK_KEYS=1 ; #运行如下命令导入数据表 mysql -uroot -pxukixu ServerName mail.domain.com DocumentRoot /var/www/html chmod 777 /var/lib/php/session/ -R #重启apache: service httpd restart #如果需要,用vadddomain和vadduser添加新域名和新用户。 最后打开浏览器,输入http://domain.com/,就可以访问网站了。 第七节:安装iGenus_Admin(可选) TOP   一个基于Web的vpopmail域和帐号管理工具。 参考:http://www.igenus.org #安装 cd /home/pkg tar -xzvf igenus_admin_0.1.tgz -C /var/www/html/ #设置 vi /var/www/html/admin/includes/config_inc.php * * $Id: config_inc.php,v 1.11 2004/03/23 13:59:12 wuqiong Exp $ */ if(!defined("INCLUDE_CONFIG_OK")) { define("INCLUDE_CONFIG_OK","TRUE"); /* gid flags defind by vpopmail.h */ // define(';NO_PASSWD_CHNG';,0x01); define(';NO_POP';, 0x02); define(';NO_WEBMAIL';, 0x04); // define(';NO_IMAP';, 0x08); // define(';BOUNCE_MAIL';, 0x10); // define(';NO_RELAY';, 0x20); // define(';NO_DIALUP';, 0x40); // define(';V_USER0';, 0x080); // define(';V_USER1';, 0x100); // define(';V_USER2';, 0x200); // define(';V_USER3';, 0x400); define(';NO_SMTP';, 0x800); // define(';QA_ADMIN';, 0x1000); $CFG_VPOPMAIL_HOST = "localhost"; $CFG_VPOPMAIL_USER = "vpopmail"; \\改为你的帐号 $CFG_VPOPMAIL_PASS = "xukixu"; \\改为你的密码 $CFG_VPOPMAIL_DB = "vpopmail"; $CFG_VPOPMAIL_TABLE = "vpopmail"; $CFG_ADMIN_TABLE = "admin"; $CFG_LAGESITE = true; $CFG_NUMOFPAGE = 20; $CFG_MAILBOX[';inbox';] = "."; $CFG_MAILBOX[';outbox';] = ".Outbox"; $CFG_MAILBOX[';draft';] = ".Draft"; $CFG_MAILBOX[';trash';] = ".Trash"; $CFG_VPOPMAIL_PATH = "/home/vpopmail"; \\改为你的vpopmail安装目录  // $CFG_VPOPMAIL_PATH = "/home2/vpopmail"; $CFG_SYSADMIN_NAME = "Admin"; $CFG_SYSADMIN_PASSWD= ';$1$GvmONIco$0SwBB.mEoP3KJ5Zda7ioV0';; $CFG_SYSADMIN_PASSWD_FILE = $CFG_VPOPMAIL_PATH . "/etc/syspasswd.dat"; $CFG_TIMEOUT = 600; $CFG_IGENUS_ADM = "iGENUS邮件系统管理"; $CFG_TEMPLATE_PATH = "template/"; } ?> #保存退出 touch /etc/syspasswd.dat chown -R vpopmail.vchkpw /var/www/html chmod -R 755 /var/www/html #登录设置页面 http://domain.com/admin/sys/ ; 用户:Admin密码Admin来登录.注意A要大写..这个管理帐号密码登录后可以改的 登录后,首先点"更新数据库"你就会看见你的域名.然后点"编辑"把"登录权限 该域管理员(Postmaster)有权登录进行用户管理"这一项打勾,确认后,就可以用 http://domain.com/admin/ ; 来登录管理了。 第八节:安装courier-imap TOP   Courier-IMAP支持IMAP/SIMAP访问 参考:http://www.inter7.com/courierimap courier-imap 从 4版本开始,把 courier-authlib 独立出来了,需要先安装 courier-authlib. 具体步骤: cd /home/pkg tar -xjvf courier-authlib-0.55.tar.bz2 cd courier-authlib-0.55 ./configure --prefix=/usr/local --exec-prefix=/usr/local --with-authvchkpw --without-authldap --without-authmysql --disable-root-check --with-ssl --with-authchangepwdir=/usr/local/libexec/authlib --with-redhat make make install make install-configure #修改设置文件:/usr/local/etc/authlib/authdaemonrc,去掉不需要的认证模式,只留vchkpw方式,然后认证进程改成2个 #完成后启动它: /usr/local/sbin/authdaemond start #需要把这个脚本放到/etc/init.d, 然后在/etc/rc3.d 或/etc/rc5.d做一个符号连接,以便系统启动时自动运行。 #启动后,在内存中可以看到2个authlib进程: ps -aef |grep authlib root 20108 20107 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond root 20109 20108 0 Jan28 ? 00:00:00 /usr/local/libexec/courier-authlib/authdaemond   #这里可以想办法把运行身份改成vpopmail,毕竟用root运行,如果出现问题影响范围会大很多。 #测试是否正常: 运行/usr/local/sbin/authtest红字为输入内容,后面的1121221应该是pop3密码,后面部分应该是命令结果) authtest xukixu@domain.com 1121221 Authenticated: xukixu@domain.com (uid 509, gid 509) Home Directory: /var/vpopmail/domains/domain.com/xukixu Maildir: (none) Quota: (none) Encrypted Password: $1$LJjMeeeeqqeqF9VWUywtLV/O5ciqeg. Cleartext Password: xukixu Options: disablewebmail=0,disablepop3=0,disableimap=0 #出现上面的提示就是说authlib运行正常 #下面来安装courier-imap cd /home/pkg tar -xjf courier-imap-4.0.2.tar.bz2 cd courier-imap-4.0.2 # 作为vpopmail用户进行安装 chown -R vpopmail:vchkpw ../courier-imap-4.0.2 su vpopmail ./configure --with-redhat # 注:Redhat用户需要使用"--with-redhat"选项 make exit make install-strip make install-configure cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap chmod 755 /etc/rc.d/init.d/courier-imap chkconfig --add courier-imap #配置: # 修改文件/usr/lib/courier-imap/etc/authdaemonrc authmodulelist="authvchkpw" # 修改文件/usr/lib/courier-imap/etc/imapd IMAPDSTART=YES # 修改文件/usr/lib/courier-imap/etc/imapd-ssl IMAPDSSLSTART=YES # 修改文件/usr/lib/courier-imap/etc/imapd.cnf CN=domain.com emailAddress=postmaster@domain.com # 修改文件/usr/lib/courier-imap/etc/pop3d.cnf CN=domain.com emailAddress=postmaster@domain.com #启动: /etc/rc.d/init.d/courier-imap start 第九节:安装SquirrelMail(可选) TOP   待补充 第十节:安装SqwebMail(可选) TOP   待补充 第十一节:安装Wmail(可选) TOP   待补充 第十二节:安装Autorespond&Ezmlm TOP   autorespond是一个自动回复工具,可以很好的与qmailadmin配合使用 #安装: cd /home/pkg tar -xvzf autorespond-2.0.5.tar.gz cd autorespond-2.0.5 make make install 安装Ezmlm exmlm是一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置 #安装: cd /home/pkg tar -xvzf ezmlm-0.53.tar.gz tar -xvzf ezmlm-idx-0.42.tar.gz cp -rf ezmlm-idx-0.42/* ezmlm-0.53/ cd ezmlm-0.53 patch < idx.patch chmod u+x makelang make make man #汉字GB2312支持 make ch_GB make setup 第十三节:安装qmailadmin TOP qmailadmin除了不能添加删除虚拟域外,几乎可以完成所有的虚拟域管理 #安装: cd /home/pkg tar -xvzf qmailadmin-1.2.3.tar.gz cd qmailadmin-1.2.3 ./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/bin --disable-ezmlm-mysql --enable-maxusersperpage=20 --enable-maxaliasesperpage=20 --enable-modify-quota --enable-domain-autofill make make install-strip cd /usr/local/share/qmailadmin/lang mv en en.bak cp zh-cn en 安装选项参考: qmailadmin 1.2.3 Current settings --------------------------------------- cgi-bin dir = /var/www/cgi-bin html dir = /var/www/html image dir = /var/www/html/images/qmailadmin image URL = /images/qmailadmin template dir = /usr/local/share/qmailadmin qmail dir = /var/qmail vpopmail dir = /home/vpopmail autorespond dir = /usr/bin ezmlm dir = /var/qmail/bin/ezmlm ezmlm idx = yes mysql for ezmlm = no help = no modify quota = yes domain autofill = yes modify spam check = no 第十四节:安装Vqregister(可选) TOP   待补充 第十五节:安装vQadmin TOP vqadmin是一个基于web 的控制通道. 它允许系统管理员可以执行root用户才能进行的操作. #安装 cd /home/pkg tar -zxf vqadmin-2.3.6.tar.gz cd vqadmin-2.3.6 vi db_owner.c static const char *host="localhost"; static const char *user="vpopmail"; static const char *passwd="xukixu"; /* NULL for no password */ static const char *db="vpopmail"; ./configure make make install #现在我们需要将下面几行添加到httpd.conf文件中: vi /etc/httpd/conf/httpd.conf deny from all Options ExecCGI AllowOverride AuthConfig Order deny,allow #保存文件并退出. cd /var/www/cgi-bin/vqadmin chown nobody .htaccess chmod 600 .htaccess # 创建一个管理帐号及密码 htpasswd -bc /etc/httpd/conf/vqadmin.passwd admin(帐号) adminpass(密码) chown vpopmail.vchkpw /etc/httpd/conf/vqadmin.passwd chmod 644 /etc/httpd/conf/vqadmin.passwd chown -R vpopmail.vchkpw /var/www/cgi-bin #编辑.htaccess vi .htaccess AuthType Basic AuthUserFile /etc/httpd/conf/vqadmin.passwd AuthName vQadmin require valid-user satisfy any #重启Apache service httpd restart 在你的浏览器上测试一下安装结果: http://www.domain.com/cgi-bin/vqadmin/vqadmin.cgi 第十六节:安装SpamAssassin TOP Spam是一个让人讨厌的字眼. 大部分的人都不喜欢它. 如果你想保护自己免受spam, 你就需要安装SpamAssassin. 因我在安装系统的时候已经选择好了SpamAssassin。现在我们将其升级到最新版: cd /home/pkg rpm -Uvh spamassassin-3.0.2-2.1.el3.rf.i386.rpm   还需要安装另外一个软件包: rpm -Uvh perl-Razor-Agent-2.40-2.i386.rpm   #修改起动脚本使spamassassin支持vpopmail #修改如下一行: vi /etc/init.d/spamassassin SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v" vi /etc/sysconfig/spamassassin SPAMDOPTIONS="-d -c -m5 -H -x -u spamd -v" 下图是我在安装SpamAssassin时所列出的perl模块,SpamAssassin所要用到的一些Perl模块是:   perl-Time-HiRes perl-Digest-SHA1 perl-HTML-Parser perl-DB_File perl-HTML-Tagset perl-Razor-Agent perl-DBI perl-Net-DNS perl-URI 这些模块请安装上。   #spamassassin的过滤模板在/etc/mail/spamassassin/local.cf,修改为: vi /etc/mail/spamassassin/local.cf required_score 5.0 rewrite_header Subject ********SPAM******** report_safe 1 use_bayes 1 skip_rbl_checks 0 ok_languages zh en ok_locales en ko score HEAD_ILLEGAL_CHARS 0 score SUBJ_ILLEGAL_CHARS 0 score DATE_IN_PAST_03_06 0 score UPPERCASE_25_50 0 score UPPERCASE_50_75 0 score UPPERCASE_75_100 0 score X_MSMAIL_PRIORITY_HIGH 0 score X_PRIORITY_HIGH 0 score TO_TXT 100 score RATWARE_HASH_2 100 score RATWARE_HASH_2_V2 100 score BAYES_99 0.1 score BAYES_80 0.1 score BAYES_60 0.1 score FROM_ILLEGAL_CHARS 0.1 score MIME_BASE64_TEXT 0.1 score NO_RDNS_DOTCOM_HELO 0.1 score CHINA_HEADER 0.1 score NO_REAL_NAME 0.2 score HTML_MESSAGE 0.2 score MIME_HTML_ONLY 0.2 score MIME_HTML_ONLY_MULTI 0.2 score FORGED_MUA_OUTLOOK 0.2 score FORGED_HOTMAIL_RCVD 0.2 score FORGED_OUTLOOK_TAGS 0.2 score MAILTO_TO_SPAM_ADDR 0.2 #黑白名单 whitelist_from *@domain.com # --------------------------------------------------------------------------- # 使用中国反垃圾邮件联盟的CBL/CDL # URL: http://www.anti-spam.org.cn/ header RCVD_IN_CBL eval:check_rbl(';cbl';, ';cbl.anti-spam.org.cn.';) describe RCVD_IN_CBL Received via a relay in cbl.anti-spam.org.cn tflags RCVD_IN_CBL net header RCVD_IN_CDL eval:check_rbl(';cdl-notfirsthop';, ';cdl.anti-spam.org.cn.';) describe RCVD_IN_CDL CDL: dialup sender did non-local SMTP tflags RCVD_IN_CDL net #SCORE score RCVD_IN_CBL 4.0 score RCVD_IN_CDL 3.0 #运行ntsysv,将spamassassin设定的为开机运行 #使用CCERT 中文垃圾邮件过滤规则集Chinese_rules.cf wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf #启动SpamAssassin service spamassassin start #定期自动更新中文反垃圾邮件规则 contab –e #加入 0 0 1 * * wget -N -P /usr/share/spamassassin http://www.ccert.edu.cn/spam/sa/Chi....d/spamassassin ;restart;/etc/init.d/spamassassin restart; #建立SpamAssassin的学习系统 sa-learn --sync -D -p user_prefs #查看自学习的数据信息 sa-learn --dump all #查看调试信息 spamassassin --lint –D 第十七节:安装Clamav TOP #添加所需的组和用户 groupadd clamav useradd -g clamav -s /bin/false clamav #安装软件 cd /home/pkg tar -xzvf clamav-0.83.tar.gz cd clamav-0.83 ./configure --disable-zlib-vcheck make check make install #测试Clamav clamscan --recursive --log=/tmp/clamscan.log ./ //扫描当前目录,测试clamscn是否运行 cat /tmp/clamscan.log #更改/usr/local/etc/freshclam.conf文件,去掉下面选项前面的#: vi /usr/local/etc/freshclam.conf #Example \\前面加上# UpdateLogFile /var/log/freshclam.log \\去掉前面的# LogSyslog \\去掉前面的# PidFile /var/run/freshclam.pid \\去掉前面的# 更改/usr/local/etc/clamd.conf文件,去掉下面选项前面的#: vi /usr/local/etc/clamd.conf #Example \\前面加上# LogFile /var/log/clamav/clamd.log \\去掉前面的# LogFileMaxSize 2M \\去掉前面的# LogTime \\去掉前面的# PidFile /var/run/clamd.pid \\去掉前面的# LogSyslog \\去掉前面的# ScanMail \\去掉前面的# touch /var/log/freshclam.log chmod 644 /var/log/freshclam.log chown clamav:clamav /var/log/freshclam.log mkdir /var/lib/clamav chown clamav:clamav /var/lib/clamav #升级clamscan病毒库 freshclam --verbose #把freshclam加入crontab 定时更新病毒库,自动扫描/home目录 crontab -e 0 1 * * * freshclam --quiet -l /var/log/freshclam.log 0 6 * * * /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 #创建freshclam日志记录文件 mkdir -p /var/log/clamav touch /var/log/clamav/clamd.log chown clamav.clamav -R /var/log/clamav/ chmod 644 -R /var/log/clamav/ #创建clamav启动脚本 vi /etc/rc.d/init.d/clamav #!/bin/sh # # Startup / shutdown script for Clam Antivirus case "$1" in start) /usr/local/sbin/clamd && echo -n ';Clamd started'; /usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log echo -n '; freshclam started'; ;; stop) /usr/bin/killall clamd > /dev/null 2>&1 && echo -n ';Clamd stoped'; /usr/bin/killall freshclam > /dev/null 2>&1 && echo -n '; freshclam Stoped'; ;; *) echo "" echo "Usage: `basename $0` { start | stop }" echo "" exit 64 ;; esac #使其能够执行 chmod 755 /etc/init.d/clamav #随开机起动 ln -s /etc/init.d/clamav /etc/rc.d/rc3.d/S88clamav ln -s /etc/init.d/clamav /etc/rc.d/rc5.d/S88clamav 第十八节:安装MailDrop 和TNEF reader TOP TNEF是一个从"application/ms-tnef". 类型中找出MIME附件的程序.这仅仅是微软系统中的一种附件.TNEF程序允许将封装成TNEF的附件提取出来. 安装TNEF并不是必须的, 但我强烈推荐安装它! # 安装 maildrop cd /home/pkg tar -xjvf maildrop-1.8.0.tar.bz2 cd maildrop-1.8.0 ./configure make make install-strip make install-man # 安装 the tnef cd /home/pkg tar -xzvf tnef-1.2.3.1.tar.gz cd tnef-1.2.3.1 ./configure make make install #使用Maildrop调用SpamAssassin #在/home/vpopmail/domains/localhost.com(你创建的域)/ 建立mailfilter文件 touch mailfilter chown vpopmail:vchkpw mailfilter chmod 700 mailfilter vi mailfilter #mailfilter内容如下: VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST` VSPAM=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST` `test -d $VHOME/Maildir/` if( $RETURNCODE != 0 ) { echo "Sorry , but the user $EXT@$HOST dos not exist" EXITCODE=77 exit } if ( $SIZE < 262144 ) { exception { xfilter "/usr/bin/spamc -f -u $EXT@$HOST" } } if (/^X-Spam-Flag: YES/) { to "$VSPAM/Maildir/.Trash/." EXITCODE=0 } else { to "$VHOME/Maildir/." } #修改.qmail-default内容如下: vi .qmail-default | preline /usr/local/bin/maildrop mailfilter 第十九节:安装qmail-scanner&qms-analog TOP 为了能够扫描邮件服务器中进出的邮件, 我们需要安装 qmail-scanner. 如果你之前没有安装perl-suidperl,我们还需要安装它 cd /home/pkg rpm -Uvh perl-suidperl-5.8.5-12.1.1.i386.rpm #解开qmail-scanner... tar zxvf qmail-scanner-1.25.tgz #解压qms-analog... tar zxvf qms-analog-0.4.2.tar.gz cd qms-analog-0.4.2 make all #下一步,我们拷贝所需要的qms-analog文件到qmail-scanner安装目录 cp qmail-scanner-1.25-st-qms-20050219.patch /home/pkg/qmail-scanner-1.25 #现在,让我们打上qms-analog补丁 cd /home/pkg/qmail-scanner-1.25 patch -p1 < qmail-scanner-1.25-st-qms-20050219.patch #继续安装qmail-scanner,添加所需的组和用户 groupadd qscand useradd -g qscand -s /bin/false qscand #我们通过qms-config-script脚本来安装qmail-scanner,编辑qms-config-script vi qms-config #修改下面红色部份以达到我们的需求: ./configure --domain domain.com \ --admin postmaster \ --local-domains "domain.com" \ --add-dscr-hdrs yes \ --dscr-hdrs-text "X-Antivirus-MYDOMAIN" \ --ignore-eol-check yes \ --sa-quarantine 0 \ --sa-delete 0 \ --sa-reject no \ --sa-subject ":SPAM:" \ --sa-alt yes \ --sa-debug no \ --notify admin \ --redundant yes \ --qms-monitor no \ --lang en_GB \ --debug no \ --unzip yes \ --scanners clamscan,verbose_spamassassin \ "$INSTALL" #注意: "--admin" 和 "--domain" 参数组成了帐号"user"@"domain name". 警告消息将通过qmail-scanner 发往这个邮件帐号, 所以必须确认这是一个管理级别的帐号. 另外,所有域的警告信息都会发给这个帐号, 所以一定要小心. #保存并退出。 #现在我们测试qmail-scanner安装 chmod 755 qms-config ./qms-config #在第一步时, 按y 允许qmail-scanner提前configure. 第二步时, 按y,建立 qmail-queue-scanner.pl 文件. #测试如果没有错误 ,就可以进行下一步安装 ./qms-config install #看看/var/qmail/bin/qmail-scanner-queue.pl是否存在 chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl #然后用一个普通用户登陆,执行/var/qmail/bin/qmail-scanner-queue.pl -z #如果没有Can';t do setuid出现,安装OK setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z #查看qmailscan当前包含的特征 setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -r #保存qmailscan定义特征的修改,使他生效。 setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl chown -R qscand:qscand /var/spool/qmailscan vi /var/qmail/supervise/qmail-smtpd/run #在你的qmail启动脚本修改红色部份 #!/bin/sh qmailDUID=`id -u vpopmail` NOFILESGID=`id -g vpopmail` PATH=$PATH:/usr/local/bin:/var/qmail/bin qmailQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export qmailQUEUE MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` exec /usr/local/bin/softlimit -m 40000000 \ /usr/local/bin/tcpserver -v -H -R -l 0 \ -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \ -u "$qmailDUID" -g "$NOFILESGID" 0 smtp \ /var/qmail/bin/qmail-smtpd \ /home/vpopmail/bin/vchkpw /bin/true 2>&1 #后重新启动smtp服务 qmailctl stop qmailctl start qmailctl stat #这里有测试程序 cd /home/pkg/qmail-scanner-1.25/contrib/ chmod 755 test_installation.sh ./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-attachments.txt #主要的排错监测日志 /var/spool/qmailscan/quarantine.log /var/spool/qmailscan/qmail-queue.log /var/spool/qmailscan/qms-events.log /var/log/clamav/clamd.log /var/log/maillog 第二十节:安装qmailAnalog & qlogtools TOP qmailanalog针对qmail的日志进行一些最基本的分析,并将结果发送到你指定的位置。在我的方案中,设置qmailanalog每天晚上运行,并将结果发送给管理员。 在使用qmailanalog时,我们还将会用到qlogtools软件包。 qlogtools提供一系列分析qmail日志的工具,这些工具将文件中诲涩难懂的日志转换成便於我们阅读和能够理解的报告。当安装完成qmailstats和Qlogtools后,我将会创建一个脚本让它每天晚上运行,并将报告发送到管理员邮箱。这个脚本也可用到我们先前安装的qms-analog,qms-analog将会提供qmail-scanner运行状态报告。 #先安装qmailanalog cd /home/pkg/ tar zxvf qmailanalog-0.70.tar.gz cd qmailanalog-0.70 patch < /home/pkg/qmailanalog-0.70.errno.patch make && make setup check #安装qlogtools cd /home/pkg/ tar zxvf qlogtools-3.1.tar.gz cd qlogtools-3.1 patch < /home/pkg/qlogtools_errno.patch make ./installer #现在我们要创建一个脚本,并将它添加到cron,让其每天晚上运行并产生报告。 #下面是一个可靠的脚本,它将会收集qmailanalog输出的信息并产生报告。 cp /home/pkg/qms-analog-0.4.2/qmailstats /var/qmail/bin/ #红色部份改成你的域名。 vi /var/qmail/bin/qmailstats #!/bin/sh # qmailanalog invocation script PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:/bin:/usr/bin:/usr/local/bin qmailSTATS="/tmp/q.$$" EMAILMSG="/tmp/qms.$$" umask 077 cat /var/log/qmail/* /var/log/qmail/pop3d/* /var/log/qmail/pop3ds/* /var/log/qmail/smtpd/* | tai64n2tai | awk ';{$1=substr($1,1,index($1,".")+6);print}'; | matchup > $qmailSTATS 5>/dev/null DATE=`date +';%D';` echo "To: postmaster@yourdomain.com" > $EMAILMSG echo "From: postmaster@yourdomain.com" >> $EMAILMSG echo "Subject: Nightly qmail Stats Report for $DATE" >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG zoverall < $qmailSTATS >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG zfailures < $qmailSTATS >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG zdeferrals < $qmailSTATS >> $EMAILMSG echo "" >> $EMAILMSG echo "" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~ L a s t 2 4 H o u r s ~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG cat /var/spool/qmailscan/qms-events.log | qms-analog 24 >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A l l R e c o r d s ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> $EMAILMSG cat /var/spool/qmailscan/qms-events.log | qms-analog 0 >> $EMAILMSG cat $EMAILMSG | qmail-inject rm -f $qmailSTATS rm -f $EMAILMSG #设置此脚本可执行 chmod 750 /var/qmail/bin/qmailstats #现在,让我们运行脚本 /var/qmail/bin/qmailstats #确认你的管理员邮箱,你将会收到一份非常详尽的报告。 #如果测试运行正常,那就加入cron让其每天早上3点运行。 crontab –e 0 3 * * * /var/qmail/bin/qmailstats 1>/dev/null 2>/dev/null 第二十一节:安装isoqlog TOP isoqlog是一个qmail日志分析工具,它是用perl写的,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表,如果服务器上已经安装WEB服务,管理员就可以通过浏览器来查看这些报表。相对于qmailanalog,isoqlog分析的项目稍微少一些。 isoqlog可以生成多个邮件域的报表;对于每个邮件域,isoqlog可以统计出每天、每月、每年的邮件流量以及字节数,还生成相应的统计柱状图;对于每天的报表,isoqlog可以根据邮件投递的数量以及字节数的多少来对邮件用户进行排列。 #安装isoqlog cd /home/pkg tar zxvf isoqlog-2.1.1.tar.gz cd isoqlog-2.1.1 ./configure make make install make clean cd isoqlog mkdir /var/www/html/isoqlog cp -pr ./htmltemp/images ./htmltemp/library /var/www/html/isoqlog #配置isoqlog cd /usr/local/etc mv isoqlog.conf-dist isoqlog.conf vi isoqlog.conf #将下面红色部份改成你的安装目录和主机名称。 #isoqlog Configuration file logtype = "qmail-multilog" #log type qmai-multilog, qmail-syslog, sendmail, postfix logstore = "/var/log/qmail" # domainsfile = "/usr/local/etc/isoqlog.domains" # outputdir = "/var/www/html/isoqlog" #html outpur directory htmldir = "/usr/local/share/isoqlog/htmltemp" langfile = "/usr/local/share/isoqlog/lang/english" hostname = "mail.domain.com" maxsender = 100 maxreceiver = 100 maxtotal = 100 maxbyte = 100 #保存并退出。 #下一步是告诉isoqlog哪些虚拟域需要产生统计报表,我希望我的mail服务器能够报告每个域的状态,所以只需要简单的创建了个链接即可: ln -s /var/qmail/control/rcpthosts isoqlog.domains #现在,isoqlog应该能够正常运行了,运行如下命令测试一下效果: /usr/local/bin/isoqlog #通过如下页面查看输出结果: http://domain.com/isoqlog #你可以点击各个虚拟域名称显示其报表。 #我们希望isoqlog能够即时提供报表,将如下内容加入crontab crontab -e 58 * * * * /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null #每个小时的第58分钟运行一次 第二十二节:安装MRTG TOP 多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具。 MRTG 产生包含图表的HTML网页,它可以将系统中的通信情况实时的显示在页面上。 我们可以在我们的系统上使用它来监控电子邮件和spam情况。 #安装 cd /home/pkg rpm -Uvh mrtg-2.10.15-1.i386.rpm #通过安装inter7的qmailmrtg ,我们将在我们的系统上安装MRTG # 编译 qmailmrtg cd /home/pkg tar -xzf qmailmrtg7-4.0.tar.gz cd qmailmrtg7-4.0 make make install mkdir /var/www/html/qmailmrtg cp qmail.mrtg.cfg index.html /var/www/html/qmailmrtg cd /var/www/html/qmailmrtg/ #修改 qmail.mrtg.cfg 和 index.html文件, 将所有出现FQDN 的地方都改成你的完整域名(例如: test.com). 如果你的HTTP MRTG目录并不是默认的 (例如: 你并没有把 /var/www/html/作为你的web根目录), 则必须在/var/www/html/qmailmrtg/qmail.mrtg.cfg 文件中修改WorkDir变量为正确的路径. 如果你不需要记录某项服务, 你可以在所不需要记录的服务每一行的前面加一个# 来注释掉它,并删除index.html中对应的服务项目。 #你可以修改 pop3和smtp所在的行, 设置MaxBytes参数来重写tcpserver中-cX所在行. #你还可以修改concurrency来重写concurrencyremote或concurrencylocal 的值. 如果这些文件在/var/qmail/control 目录下并不存在,则qmail默认的值为20. #下面是我们的最后一步,将下面一段添加到crontab中, 以使我们能每五分钟升级一次MRTG数据. 运行如下命令: crontab -e #添加下面一段 (使MRTG每五分钟运行一次) 然后退出crontab: */5 * * * * /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg 2>&1 > /dev/null #现在运行MRTG三次来安装它. 你将会收到3次警告消息. 之后,你将不会再收到警告了. env LANG=C /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg #现在应该安装好了. 为了能显示些信息,我们等待15分钟的日志记录. 你可以通过下面的地址来检查图形监控情况: http://your.host.name/qmailmrtg/ 查看它们的图形监控情况! 第二十三节:测试 TOP 测试igenus http://domain.com/ ; 测试qmailadmin http://domain.com/cgi-bin/qmailadmin 测试vQadmin http://domain.com/cgi-bin/vqadmin/vqadmin.cgi 测试SMTP认证 [root@mail pkg]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is ';^]';. 220 domain.com ESMTP ehlo domain.com 250-domain.com 250-STARTTLS 250-PIPELINING 250-8BITMIME 250-SIZE 0 250 AUTH LOGIN PLAIN CRAM-MD5 starttls 220 ready for tls quit quit Connection closed by foreign host. [root@mail pkg]# 测试POP3 [root@mail pkg]# telnet localhost 110 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is ';^]';. +OK <12316.1112351637@mail.domain.com> user xuki@domain.com +OK pass xukixu +OK quit +OK Connection closed by foreign host. [root@mail pkg]# 测试IMAP [root@mail pkg]# telnet localhost 143 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is ';^]';. * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information. a001 login xuki@domain.com xukixu a001 OK LOGIN Ok. a001 login out a001 NO Error in IMAP command received by server. a001 logout * BYE Courier-IMAP server shutting down a001 OK LOGOUT completed Connection closed by foreign host. [root@mail pkg]# 第二十四节:系统维护 TOP 邮件系统相关日志 /var/log/maillog /var/log/qmail/current /var/log/qmail/pop3d/current /var/log/qmail/pop3ds/current /var/log/qmail/smtpd/current /var/spool/qmailscan/qmail-queue.log /var/spool/qmailscan/qms-events.log /var/spool/qmailscan/quarantine.log

Linux qmail安装指南

我晕,太麻烦了,现在用Sendmail的多

TOP

返回列表 回复 发帖