在Linux下安装邮件服务器 |
|---|
| 作者:xuki 2005-01-21 14:50:53 来自:Linux公社 |
|
在Linux下安装邮件服务器 (RHAS3+Qmail+Apache+PHP+smtp-auth+Vpopmail+MySQL+Igenus+ezmlm+autorespond+qmailadmin) 许靖 mail:xuki_007@163.net QQ:19852439 MSN:seawolf_o@hotmail.com 版本:2.1 最后更新日期: 2004年10月29日 功能列表 SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持,病毒和垃圾邮件检测 POP3服务器:CRAM-MD5,APOP,和SSL支持 IMAP服务器:TLS(SSL)支持 自动回复 邮件列表 Web管理 WebMail -------------------------------------------------------------------------------- 安装准备 安装环境 这个安装过程基本上你只需要复制粘贴就可以完成.我在RedHat上安装成功,其他系统还没试过. 为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel和mysql-server开发包一定要装上.另外大家在安装LINUX时一定要装上软件开发和内核开发两个软件组,这样可以避免不必要的由于编译环境的问题而导致的安装问题,这点对于LINUX 新手犹为重要。安装系统后,一般另需安装php-mysql这个包,在安装光碟第三张。AS3.0安装后,并没有mysql-server软件包,需自行下载安装,为方便大家,mysql-server软件包我已经与所有软件放在一个包中。 要确认下面的软件是否已经安装: rpm -q httpd rpm -q php rpm -q php-mysql rpm -q mysql rpm -q mysql-server rpm -q mysql-devel rpm -q gdbm rpm -q gdbm-devel rpm -q openssl rpm -q openssl-devel rpm -q stunnel rpm -q krb5-devel 如果你还没有安装, 请先安装它们. 你可以到安装光盘或是在这里找到它们的RPM包 http://www.rpmfind.net. 启动mysql server: # /etc/rc.d/init.d/mysqld start 设置mysql root口令: # mysqladmin -u root password ‘xukixu’(设置你的密码) Enter passwod:(直接回车) mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。 安装完Redhat3.0后,修改/etc/httpd/conf/httpd.conf,使web服务正常启用,为mysql添加root用户的密码。如果设置了防火墙,要打开服务器的www 80、smtp 25和pop3 110三个端口。 检查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 卸载已有的邮件系统 确认没有SMTP/POP/IMAP服务在运行: /etc/init.d/sendmail stop netstat -na | grep 25 netstat -na | grep 110 netstat -na | grep 143 ntsysv 删除已有的SMTP/POP/IMAP软件: rpm -e --nodeps sendmail rpm -e --nodeps postfix 下载软件 文中所用的软件: netqmail-1.05.tar.gz daemontools-0.76.tar.gz daemontools-0.76.errno.patch autorespond-2.0.5.tar.gz toaster-scripts-0.6.tar.gz qmail-toaster-0.6-1.patch.bz2 ezmlm-0.53.tar.gz ezmlm-idx-0.42.tar.gz courier-imap-2.2.2.20040207.tar.bz2 igenus_2.0.2_20040901_release.tgz mysql-server-3.23.58-1.i386.rpm qmailadmin-1.2.3.tar.gz chkuser-0.6.mysql.patch ucspi-tcp-0.88.a_record.patch ucspi-tcp-0.88.errno.patch ucspi-tcp-0.88.nobase.patch ucspi-tcp-0.88.tar.gz vpopmail-5.4.7.tar.gz qmailadmin-1.2.3.tar.gz vqadmin-2.3.6.tar.gz Mail-SpamAssassin-3.0.1.tar.gz clamav-0.80.tar.gz qmail-scanner-1.22.tgz qms-analog-0.3.4.tar.gz maildrop-1.7.0.tar.bz2 tnef-1.2.3.1.tar.gz qmailanalog-0.70.tar.gz qmailanalog-0.70.errno.patch qlogtools-3.1.tar.gz qlogtools_errno.patch zlib-1.1.4.tar.gz libpng-1.2.7.tar.gz gd-1.8.3.tar.gz mrtg-2.10.15.tar.gz qmailmrtg7-4.0.tar.gz 我把下文中所提到的软件打成了一个包,下载地址为:http://www.zioncom.net/qmail_2.0.tar.gz ;我一般把软件放在/home/pkg下面,根据个人习惯吧。 tar -xzf netqmail-1.05.tar.gz cd netqmail-1.05 ./collate.sh 注意:./collate.sh这一步不要忘 -------------------------------------------------------------------------------- 安装软件 daemontools daemontools是一个收集管理UNIX进程的工具.用它来监听qmail-send,qmail-smtpd,qmail-pop3d. 安装: cd /home/pkg tar -zxvf /home/pkg/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包括tcpserver和tcpclient,一个命令行工具来建立client-server应用程序. 安装: cd /home/pkg tar zxvf ucspi-tcp-0.88.tar.gz cd ucspi-tcp-0.88 patch -p1 < ../ucspi-tcp-0.88.a_record.patch patch -p1 < ../ucspi-tcp-0.88.errno.patch patch -p1 < ../ucspi-tcp-0.88.nobase.patch make make setup check qmail 这个toaster补丁,是下面这几个补丁的组合: smtp auth 0.4.2 qmail-queue (to allow for virus scanners) maildir++ patch support oversize dns packets (not necessary if you use dnscache) mfcheck (check that the envelope sender has a dns entry) tarpit delay qregex (regular expression matching in badmailfrom and badmailto) big concurrency (set the spawn limit above 255) 安装: mkdir /var/qmail groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias useradd -g nofiles -d /var/qmail qmaild useradd -g nofiles -d /var/qmail qmaill useradd -g nofiles -d /var/qmail qmailp groupadd qmail useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails # 在这里把vpopmail用户也加上 groupadd -g 89 vchkpw useradd -u 89 -g vchkpw vpopmail cd /home/pkg tar -xzf toaster-scripts-0.6.tar.gz cd netqmail-1.05/ bunzip2 -c ../qmail-toaster-0.6-1.patch.bz2 | patch -p0 cd netqmail-1.05 # 注:在RedHat上,需要为TLS补丁链接一个include文件: ln -s /usr/kerberos/include/com_err.h /usr/kerberos/include/krb5.h \ /usr/kerberos/include/profile.h /usr/include/ make make setup check # 用你自己的主机名代替下面的mail.domain.com ./config-fast mail.domain.com cd /var/qmail/alias touch .qmail-postmaster .qmail-mailer-daemon .qmail-root chmod 644 /var/qmail/alias/.qmail* cd - echo 1 > /var/qmail/control/mfcheck echo ./Maildir/ >/var/qmail/control/defaultdelivery make cert # 按提示输入公司信息 make tmprsadh # 注:这里可能要多等一会 # 用"crontab -e"在crontab里增加下面这条,每天晚上更新temp keys 01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1 为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 chmod +t /var/qmail/supervise/qmail-send chmod +t /var/qmail/supervise/qmail-smtpd chmod +t /var/qmail/supervise/qmail-pop3d/log chmod +t /var/qmail/supervise/qmail-pop3ds/log cp /home/pkg/toaster-scripts-0.6/send.run /var/qmail/supervise/qmail-send/run cp /home/pkg/toaster-scripts-0.6/send.log.run /var/qmail/supervise/qmail-send/log/run cp /home/pkg/toaster-scripts-0.6/smtpd.run /var/qmail/supervise/qmail-smtpd/run cp /home/pkg/toaster-scripts-0.6/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run cp /home/pkg/toaster-scripts-0.6/pop3d.run /var/qmail/supervise/qmail-pop3d/run cp /home/pkg/toaster-scripts-0.6/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run cp /home/pkg/toaster-scripts-0.6/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run cp /home/pkg/toaster-scripts-0.6/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 启动脚本: cp /home/pkg/toaster-scripts-0.6/rc /var/qmail/ cp /home/pkg/toaster-scripts-0.6/qmailctl /var/qmail/bin/ chmod 755 /var/qmail/rc chmod 755 /var/qmail/bin/qmailctl ln -s /var/qmail/bin/qmailctl /usr/bin ln -s /var/qmail/bin/sendmail /usr/sbin/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 vpopmail是一个以qmail为基础的虚拟域管理包 vpopmail的用户和组我们前边已经建立了 配置: mkdir -p ~vpopmail/etc # 设置默认域,红色部份改成你要设置的域。 echo "domain.com" > ~vpopmail/etc/defaultdomain # 设置smtp规则,关闭open relays echo '127.0.0.1:allow,RELAYCLIENT=""' > ~vpopmail/etc/tcp.smtp cd ~vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp # 设置MySQL信息,第一个vpopmail是帐号,xukixu为密码,第二个vpopmail是数据库 echo "localhost|0|vpopmail|xukixu|vpopmail" > ~vpopmail/etc/vpopmail.mysql chmod 640 ~vpopmail/etc/vpopmail.mysql chown -R vpopmail.vchkpw ~vpopmail/etc # 在MySQL里添加vpopmail的帐号 /usr/local/mysql/bin/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.7.tar.gz cd vpopmail-5.4.7 # 带数据库支持 ./configure --enable-auth-module=mysql \ --enable-incdir=/usr/include/mysql \ --enable-libdir=/usr/lib/mysql \ --enable-mysql-logging \ --enable-mysql-limits \ --enable-valias \ --enable-logging=y 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 ~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 "邮件被拒绝,用户的邮箱空间已满." > ~vpopmail/domains/.over-quota.msg 启动脚本: cp /home/pkg/toaster-scripts-0.6/vpopmailctl /var/qmail/bin ln -s /var/qmail/bin/vpopmailctl /usr/bin chmod 755 /var/qmail/bin/vpopmailctl # 用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 # 用MySQL-Front查看数据库 补丁: # 带数据库支持 cd /home/pkg/netqmail-1.05/netqmail-1.05 patch -p0 < /home/pkg/chkuser-0.6.mysql.patch # 如果数据库是自定义安装的,还要把libmysqlclient.a复制到指定位置 mkdir -p /usr/local/mysql/lib/mysql/ cp /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/mysql/ make clean make qmailctl stop make setup check qmailctl start 安装选项参考: vpopmail 5.4.5 ------------------------------------ vpopmail directory = /home/vpopmail uid = 89 gid = 89 roaming users = OFF --disable-roaming-users (default) password learning = OFF --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) mysql logging = ON --enable-mysql-logging mysql limits = ON --enable-mysql-limits MySQL valias = ON --enable-valias auth inc = -I/usr/include/mysql auth lib = -L/usr/lib/mysql -lmysqlclient -lz -lm system passwords = OFF --disable-passwd (default) pop syslog = log success and errors including passwords --enable-logging=v auth logging = ON --enable-auth-logging (default) one domain per SQL table = --disable-many-domains -------------------------------------------------------------------------------- courier-imap Courier-IMAP支持IMAP/SIMAP访问 安装: cd /home/pkg tar -xjf courier-imap-2.2.2.20040207.tar.bz2 cd courier-imap-2.2.2.20040207 # 作为vpopmail用户进行安装 chown -R vpopmail:vchkpw ../courier-imap-2.2.2.20040207 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 启动: /etc/rc.d/init.d/courier-imap start -------------------------------------------------------------------------------- autorespond Autorespond是一个自动回复工具,可以很好的与qmailadmin配合使用 安装: cd /home/pkg tar -xvzf autorespond-2.0.5.tar.gz cd autorespond-2.0.5 make make install ezmlm exmlm是一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置 1.注意:为了启用maillist的MySQL支持,你必须首先: 建立mysql管理用户:(Ex:user:ezmlm,pass:ezmlm) # mysql -u root –pxukixu >use mysql; >insert into user values('localhost','ezmlm','','y','y','y','y','y','y','y','y','y','y','y','y','y', 'y'); >update user set password=password('ezmlm') where user='ezmlm'; >FLUSH PRIVILEGES; >exit; 建库:(Ex:database:ezmlm) # mysqladmin -u root -pxukixu create ezmlm 2.安装: 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 mysql #MySQL 支持 make clean make man make ch_GB #汉字GB2312支持 修改conf-sqlcc文件 内容为:-I/usr/include/mysql 修改conf-sqlld 内容为: -L/usr/lib/mysql -lmysqlclient -lnsl -lm -lz 修改conf-bin 第一行:/var/qmail/bin/ezmlm 修改conf-man 第一行:/var/qmail/man 修改conf-qmail 第一行:/var/qmail # make setup 3.在你建立一个基于MySQL的maillist之前,你必须保证ezmlm库中已存在一个对应的表: Ex:你想建一个基于MySQL的maillist:testlist # /var/qmail/bin/ezmlm/ezmlm-mktab -d testlist | mysql -uezmlm -pezmlm -f ezmlm 这样就在ezmlm库中为testlist建立了一系列相关表格: +------------------------+ | Tables | +------------------------+ | testlist | | testlist_allow | | testlist_allow_slog | | testlist_cookie | | testlist_deny | | testlist_deny_slog | | testlist_digest | | testlist_digest_cookie | | testlist_digest_mlog | | testlist_digest_slog | | testlist_mlog | | testlist_mod | | testlist_mod_slog | | testlist_slog | +------------------------+ 你可以用一下命令察看! # mysqlshow -u root -pxukixu ezmlm -------------------------------------------------------------------------------- qmailadmin 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 \ --enable-ezmlmdir=/var/qmail/bin/ezmlm \ --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 --------------------------------------- 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 = /usr/local/bin/ezmlm ezmlm idx = yes mysql for ezmlm = yes help = no modify quota = yes domain autofill = yes modify spam check = no -------------------------------------------------------------------------------- 安装并运行igenus 1.到http://www.igenus.org下载最新的安装包,我用的是igenus_2.0.2_20040901_release.tgz #tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/ #cd /var/www/ #rm -rf html/ #mv igenus html 2.建temp文件夹 cd /var/www/html/ #mkdir temp #chmod -R 0755 temp #chown -R vpopmail:vchkpw 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/ 3.修改httpd.conf #vi /etc/httpd/conf/httpd.conf Group vchkpw User vpopmail DocumentRoot "/var/www/html/" AddDefaultCharset GB2312 //使默认页面为中文 #/etc/rc.d/init.d/httpd restart //重启apache,使修改生效 4.修改config_inc.php文件 # cd /var/www/html/igenus/config # vi config_inc.php $CFG_BASEPATH = "/var/www/html/igenus"; \\改成你安装的目录 $CFG_MYSQL_HOST = 'localhost'; $CFG_MYSQL_USER = 'vpopmail'; \\vpopmail访问mysql的帐号 $CFG_MYSQL_PASS = 'xukixu'; \\vpopmail访问mysql的密码 $CFG_MYSQL_DB = 'vpopmail'; \\数据库 $CFG_TEMP = $CFG_BASEPATh."/temp"; \\改成你安装的目录的当前目录下 5.重新编制Mysql数据库表格 删除之前创建的域名 #/home/vpopmail/bin/vdeldomain domain.com /usr/local/mysql/bin/mysql -uroot --pxukixu alter table vpopmail.vpopmail drop primary key; alter table vpopmail.vpopmail add column pw_id int(5) unsigned NOT NULL PRIMARY KEY auto_increment; alter table vpopmail.vpopmail add KEY pw_name (pw_name,pw_domain); 编辑/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 ; # -------------------------------------------------------- 删除创建'lastauth'表部份。 运行 #mysql -u root -pxukixu </var/www/html/docs/iGENUS.sql 导入数据表。 6. 设置igenus 定义允许上传下载的邮件的大小 编辑/etc/php.ini max_execution_time=60 memory_limit=20M post_max_filesize=10M file_uploads=on upload_max_filesize=10M register_globals=On session.bug_compat_42=0 session.bug_compat_warn=0 Sendmail = /var/qmail/bin/qmail-inject 7.编辑/etc/http/conf/httpd.conf AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.php index.html NameVirtualHost * <VirtualHost *> ServerName mail.domain.net DocumentRoot /var/www/htdocs/igenus </VirtualHost> 重启apache: #service httpd restart 8. 修改index.php,signup.php,submit.php,help.php这几个文件中有关域名的地方,将它改成自己的域名. 9.如果需要,用vadddomain和vadduser添加新域名和新用户。 最后打开浏览器,输入http://domain.com/,就可以访问网站了。 10.Qmail限制附件的大小 在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。 smtp方式是以qmail的databytes作限制的 创建databytes并设置邮件最大为4m # echo 4000000 >/var/qmail/control/databyte 11.限制单域的邮箱数量 vi /home/vpopmail/domains/domain.com/.qmailadmin-limits maxpopaccounts 200 default_quota 52428800s chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits 这样就把邮箱总数限制在200个,每个邮箱为50M了 12.用qmail封mailfrom vi/var/qmail/control/badmailfrom 这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如: peng@96633.net -----限制一个特定的用户 @sina.com -----限制整个域中的邮件 -------------------------------------------------------------------------------- vqadmin 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 --enable-mysql=y make make install 编辑数据库,加入domain_owner表 mysql -uroot -pxukixu use vpopmail; CREATE TABLE domain_owner ( domain CHAR(64) NOT NULL, owner CHAR(32) NOT NULL, PRIMARY KEY(domain, owner) ); 现在我们需要将下面几行添加到httpd.conf文件中: vi /etc/httpd/conf/httpd.conf <Directory "/var/www/cgi-bin/vqadmin"> deny from all Options ExecCGI AllowOverride AuthConfig Order deny,allow </Directory> 保存文件并退出. cd /var/www/cgi-bin/vqadmin chown nobody .htaccess chmod 600 .htaccess # 创建一个管理帐号及密码 htpasswd -bc /etc/httpd/conf/vqadmin.passwd admin(帐号) adminpass(密码) chown nobody.nobody /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 service httpd restart 在你的浏览器上测试一下安装结果: http://www.domain.com/cgi-bin/vqadmin/vqadmin.cgi -------------------------------------------------------------------------------- SpamAssassin 安装 SpamAssassin Spam是一个让人讨厌的字眼. 大部分的人都不喜欢它. 如果你想保护自己免受spam, 你就需要安装SpamAssassin. 安装SpamAssassin 要用到Time-HiRes、Digest-SHA1、HTML-Parser和HTML-Tagset. 如果你没有安装的话,必须首先安装它,此文件均在RHAS3安装光盘第二和第三张中。对应的软件包为: perl-Time-HiRes-1.38-3.i386.rpm perl-Digest-SHA1-2.01-15.1.i386.rpm perl-HTML-Parser-3.26-17.i386.rpm perl-HTML-Tagset-3.03-28.noarch.rpm # 安装SpamAssassin groupadd spamd useradd -g spamd -s /bin/false spamd cd /home/pkg tar -xzvf Mail-SpamAssassin-3.0.1.tar.gz cd Mail-SpamAssassin-3.0.1 export LC_ALL=C perl Makefile.PL make make install #我们想要SpamAssassin 随系统自动启动,安装目录中提供了一个起动脚本 cp spamd/redhat-rc-script.sh /etc/rc.d/init.d/spamd vi /etc/rc.d/init.d/spamd SPAMDOPTIONS="-d -c -u spamd -H /home/spamd -m5 -H" 修改其中一行为上所示。 chmod 755 /etc/rc.d/init.d/spamd chkconfig --add spamd 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 chmod 755 /etc/rc.d/init.d/spamd chkconfig --add spamd service spamd start # 进行一个spam和non-spam的测试 spamassassin -t < sample-spam.txt > spamtest.txt less spamtest.txt spamassassin -t < sample-nonspam.txt > nospamtest.txt less nospamtest.txt spamtest.txt文件在主题一段中将包含"*****SPAM*****" 这一行, 而nospamtest.txt文件中则没有. 建立SpamAssassin的学习系统 #sa-learn --rebuild -D -p user_prefs sa-learn --dump all可以查看自学习的数据信息 -------------------------------------------------------------------------------- Clamav 添加所需的组和用户 groupadd clamav useradd -g clamav -s /bin/false clamav 安装软件 tar -xzvf clamav-0.80.tar.gz cd clamav-0.80 ./configure make check make install 测试Clamav clamscan --recursive --log=/tmp/clamscan.log ./ //扫描当前目录,测试clamscn是否运行 cat /tmp/clamscan.log 升级clamscan病毒库 freshclam --verbose 更改/usr/local/etc/freshclam.conf文件,去掉下面选项前面的#: vi /usr/local/etc/freshclam.conf #Example \\前面加上# UpdateLogFile /var/log/freshclam.log \\去掉前面的# LogSyslog \\去掉前面的# 更改/usr/local/etc/clamav.conf文件,去掉下面选项前面的#: vi /usr/local/etc/clam.conf #Example \\前面加上# LogFile /var/log/clamav/clamd.log \\去掉前面的# LogFileMaxSize 2M \\去掉前面的# LogTime \\去掉前面的# PidFile /var/run/clamd.pid \\去掉前面的# DataDirectory /var/lib/clamav \\去掉前面的#,并且修改路径为/usr/local/share/clamav LogSyslog \\去掉前面的# ScanMail \\去掉前面的# 把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 clamav.clamav -R /var/log/clamav/ touch /var/log/freshclam.log chmod 644 /var/log/freshclam.log chown clamav:clamav /var/log/freshclam.log 创建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/rc.d/init.d/clamav 随开机起动 echo /etc/rc.d/init.d/clamav start >/etc/rc.d/rc.local -------------------------------------------------------------------------------- qmail-scanner&qms-analog 为了能够扫描邮件服务器中进出的邮件, 我们需要安装 qmail-scanner. 如果你之前没有安装perl-suidperl,我们还需要安装它 cd /home/pkg rpm -Uvh perl-suidperl-5.8.0-88.3.i386.rpm 解开qmail-scanner... tar zxvf qmail-scanner-1.22.tgz 解压qms-analog... tar zxvf qms-analog-0.3.4.tar.gz cd qms-analog-0.3.4 make all 下一步,我们拷贝所需要的qms-analog文件到qmail-scanner安装目录 cp qmail-scanner-1.22-st-qms-20040530.patch /home/pkg/qmail-scanner-1.22/ cp qms-config-script /home/pkg/qmail-scanner-1.22/ 现在,让我们打上qms-analog补丁 cd /home/pkg/qmail-scanner-1.22 chmod 755 qms-config-script patch -p1 < qmail-scanner-1.22-st-qms-20040530.patch 继续安装qmail-scanner,添加所需的组和用户 groupadd qscand useradd -g qscand -s /bin/false qscand 我们通过qms-config-script脚本来安装qmail-scanner,编辑qms-config-script vi qms-config-script 修改下面红色部份以达到我们的需求: #!/bin/sh if [ "$1" != "install" ]; then INSTALL= else INSTALL="--install" fi ./configure --domain domain.com \ --qmail-queue-binary /var/qmail/bin/qmail-queue \ --admin postmaster \ --local-domains "domain1.com,domain2.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 \ --lang en_GB \ --debug yes \ --unzip yes \ --scanners clamscan,verbose_spamassassin \ "$INSTALL" 注意: "--admin" 和 "--domain" 参数组成了帐号"user"@"domain name". 警告消息将通过qmail-scanner 发往这个邮件帐号, 所以必须确认这是一个管理级别的帐号. 另外,所有域的警告信息都会发给这个帐号, 所以一定要小心. 保存并退出。 现在我们测试qmail-scanner安装 ./qms-config-script 在第一步时, 按y 允许qmail-scanner提前configure. 第二步时, 按y,建立 qmail-queue-scanner.pl 文件. 测试如果没有错误 ,就可以进行下一步安装 ./qms-config-script 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 setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z //如果没有Can't do setuid出现,安装OK setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -r //查看qmailscan当前包含的特征 setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g //保存qmailscan定义特征的修改,使他生效。 chown qscand:qscand /var/qmail/bin/qmail-scanner-queue chmod 4755 /var/qmail/bin/qmail-scanner-queue chmod 0755 /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.23/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-atachments.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 -------------------------------------------------------------------------------- MailDrop and TNEF reader TNEF是一个从"application/ms-tnef". 类型中找出MIME附件的程序.这仅仅是微软系统中的一种附件. TNEF程序允许将封装成TNEF的附件提取出来. 安装TNEF并不是必须的, 但我强烈推荐安装它! # 安装 maildrop cd /home/pkg tar -jzvf maildrop-1.7.0.tar.bz2 cd maildrop-1.7.0 ./configure make make install-strip make install-man # 安装 the tnef cd /home/pkg tar -xzvf tnef-1.2.3.1.tar.gz cd nef-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 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内容如下: | /usr/local/bin/maildrop ./mailfilter -------------------------------------------------------------------------------- QmailAnalog & qlogtools 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输出的信息并产生报告。 红色部份改成你的域名。 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 -------------------------------------------------------------------------------- MRTG 安装 MRTG 多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具。 MRTG 产生包含图表的HTML网页,它可以将系统中的通信情况实时的显示在页面上。 我们可以在我们的系统上使用它来监控电子邮件和spam情况。 # 安装 zlib (压缩的图形文件包) cd /home/pkg tar -xzf zlib-1.1.4.tar.gz mv zlib-1.1.4/ zlib cd zlib ./configure make cd .. # 安装 libpng (PNG图片格式包) tar -xzf libpng-1.2.7.tar.gz mv libpng-1.2.7/ libpng cd libpng make -f scripts/makefile.std CC=gcc ZLIBLIB=../zlib ZLIBINC=../zlib rm *.so.* *.so cd .. # 安装 gd (制图软件包) tar -xzf gd-1.8.3.tar.gz mv gd-1.8.3/ gd cd gd make INCLUDEDIRS="-I. -I../zlib -I../libpng" LIBDIRS="-L../zlib -L. -L../libpng" LIBS="-lgd -lpng -lz -lm" make install cd .. # 编译 MRTG tar -xzf mrtg-2.10.15.tar.gz cd mrtg-2.10.15/ ./configure --prefix=/usr/local/mrtg-2 –-with-gd=/home/pkg/gd/ --with-z=/home/pkg/zlib/ --with-png=/home/pkg/libpng/ make make install 所有MRTG需要的软件包都安装在了 /usr/local/mrtg-2 目录下. 你现在可以安全的删除上面编译的源码. 但是你最好留着,以便你编译下一个版本的MRTG时所需. 通过安装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 /usr/local/apache/htdocs/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/local/mrtg-2/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg 2>&1 > /dev/null 现在运行MRTG三次来安装它. 你将会收到3次警告消息. 之后,你将不会再收到警告了. env LANG=C /usr/local/mrtg-2/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg 现在应该安装好了. 为了能显示些信息,我们等待15分钟的日志记录. 你可以通过下面的地址来检查图形监控情况: http://your.host.name/qmailmrtg/ 查看它们的图形监控情况! -------------------------------------------------------------------------------- 测试 测试igenus http://domain.com/ 测试qmailadmin http://domain.com/cgi-bin/qmailadmin 测试vQadmin http://domain.com/cgi-bin/vqadmin/vqadmin.cgi 测试SMTP认证 # telnet localhost 25 Trying 127.0.0.1... Connected to mail.domain.com (127.0.0.1). Escape character is '^]'. 220 mail. domain.com ESMTP EHLO hostname 250-mail.domain.com 250-AUTH LOGIN CRAM-MD5 PLAIN 250-AUTH=LOGIN CRAM-MD5 PLAIN 250-PIPELINING 250 8BITMIME 测试POP3 # telnet localhost 110 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. +OK Hello there. user xy.wang@domain.com +OK Password required. pass [password] +OK logged in. quit +OK Bye-bye. Connection closed by foreign host. 测试IMAP # 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 user@test.com [password] a001 OK LOGIN Ok. a001 logout * BYE Courier-IMAP server shutting down a001 OK LOGOUT completed Connection closed by foreign host. -------------------------------------------------------------------------------- 邮件系统维护: 邮件系统相关日志 /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 设置Qmail用户邮箱的容量 # cd /home/vpopmail/bin #./vsetuserqutoa domain.com 10500000s --domain.com这个域,都设成10m的 #./vsetuserqutoa xuki@domain.com 10500000s ---只把xuki@domain.com这个用户单独设置为10m。 批量添加用户 例1: 新建一文件 batchadduser.sh,将以下内容拷入文件中保存 ,运行chmod u+x batchadduser.sh使其可执行。 #!/bin/bash #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 uname passwd do $addcmd $username@$domain $passwd done < $datafile user文件内容的格式 username1 passwd username2 passwd2 ............ 运行batchadduser.sh user即可批量添加用户。 例2: 我把用户名放到一个文本文件中,一个名字一行,密码和它的帐号一致,用户自己再去改密码。 while read line do echo $line ./vadduser $line $line done < user 有选择地清理不需要的Mail Queue 1、处理队列中的邮件: 如想在队列中的邮件马上传递,可以 # kill -HUP qmail-send 要删除队列中的邮件 1) 停止QMAIL 2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/ 3) 重启QMAIL. 队列中的邮件包含在以下目录中 /var/qmail/queue/{info,mess,remote,local}/hash/#number 2、在邮件队列中快速删除从一个地方发过来但又不存在的邮件 设bad.jite.com是这个域。可以键入以下命令 # echo # > ~alias/.qmail-baddomain-default # echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains # echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes 然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号 3、删除队列中的大量广告信息 先停止QMAIL. 1) 停止qmail, qmail-smtpd 2) 在以下默认目录下 /var/qmail/queue/mess find /var/qmail/queue/mess -type f -exec grep "^Subject:dss" {} \; -print -exec rm {} \; 3) 运行queue-fix清除相关文件, 4) 重启qmail. 使用sh备份qmail+mysql数据到指定的ftp地址的方法 备份vpopmail的domains目录、qmail的control目录和mysql的var数据存放目录,使用crontab定时进行操作。下面是脚本文件,具体的目录视自己的系统更改: mkdir /var/qmailbakup cd /var/qmailbakup touch qmailbakup.sh chmod 755 qmailbakup .sh vi qmailbakup.sh [code:1:d480555598] #!/bin/sh DATE=`date +%Y-%m-%d-%H` cd /var/qmailbakup/ tar cvzf domains.$DATE.tar.gz /home/vpopmail/domains tar cvzf control.$DATE.tar.gz /var/qmail/control tar cvzf mysql.$DATE.tar.gz /usr/local/mysql/var ftp -n 192.168.0.21 << ! //你的ftp服务器的地址 user qmail qmailbakup //ftp用户名和密码,注意要有put权限 binary put domains.$DATE.tar.gz put control.$DATE.tar.gz put mysql.$DATE.tar.gz bye ! rm -f domains.$DATE.tar.gz control.$DATE.tar.gz mysql.$DATE.tar.gz //删除本机产生的文件,如果你想在本服务器也保存一份备份,去掉该项即可。 [/code:1:d480555598] 使用crontab定时执行: vi /etc/crontab 00 20 * * 0-6 /var/qmailbakup/qmailbakup.sh 这样每天晚上8:00执行改备份程序。 给新浪发信的解决办法 qmail echo "我的邮件服务器的真实域名(A记录)" > /var/qmail/control/helohost 临时限制一个用户的pop3 vmoduser -p email_addr or domain ( for the entire domain ) 修改默认的域名 A: 要更改haohao.com为默认域。 方法: 更改~qmail/control/ defaultdomain me plusdomains 逐一更改启动pop3和 smtp的启动脚本: 修改:email.3sk.com为haohaoo.com 在最上边添加:export VPOPMAIL_DOMAIN=haohaoo.com 将一个系统的Qmail用户完整地转移到另一个系统 A: a.cdb配置的?那么请把/home/vpopmail/domains这个文件夹备份好就可以了。用户和密码文件,还有用户信件都在这个目录下。 还应该备份/var/qmail/control下的相关配置文件。 b.如果是以MYSQL数据库方式来存储用户认证信息的 只需要备份 ~vpopmail/domain下的所有邮件 /var/qmail/control的配置文件 MYSQL数据库目录下的vpopmail库目录。一般是/var/lib/mysql(RPM)、/usr/local/mysql/data、/usr/local/mysql/var下面。 把一邮件域的名字比如a.com更改为b.com,如何实现 以下几个步骤: 1、cd /home/vpopmail/domains mv a.com b.com 2、把vpopmail数据库的vpopmail表导出把所有a.com改为b.com,然后删除vpopmail表,再导入. 3、把把vpopmail数据库的dir_control表的a.com改为b.com 4、在/home/qmail/control 目录下把 virtualdomains和rcpthosts下的的a.com改为b.com. 5、在/home/qmail/users目录下把assign文件的a.com改为b.com 6、需要运行qmail-newu重新生成cdb。assign只是配置文件,cdb才是实际的数据文件。 加快 qmail 投递邮件速度 A: /var/qmail/control下面是qmail的控制文件,这两个文件: Concurrentcylocal default: 10 最大本地同时传送数 Concurrencyremote default: 20 最大远程同时传送数 更改域的默认管理账号 A: vmoduser有个-a参数,可以赋予用户管理权限。 如果想全面禁用postmaster的特殊权限话,就只能改源代码了。 QMAIL下的主要配置文件(/var/qmail/control目录下): 文件名 默认值 使用者 用途 badmailfrom none qmail-smtpd 黑名单地址 bouncefrom MAILER-DAEMON qmail-send 退回邮件 bouncehost me qmail-send 退回邮件 concurrencylocal 10 qmail-send 本地同时投递邮件的数目 concurrencyremote 20 qmail-send 同时投递至远程主机的数目 defaultdomain me qmail-inject 默认域名 defaulthost me qmail-inject 默认主机名 databytes 0 qmail-smtpd 邮件的最大容量 (0=无限制) doublebouncehost me qmail-send doublebounceto postmaster qmail-send envnoathost me qmail-send 没有"@"的默认域名 helohost me qmail-remote 主机名 idhost me qmail-inject Message-ID的主机名 localiphost me qmail-smtpd 本地IP的替代名 locals me qmail-send 传递至本地的域名 me 系统正式域名 various morercpthosts none qmail-smtpd 第二个rcpthosts percenthack none qmail-send 使用 "%"格式的域名 plusdomain me qmail-inject qmqpservers none qmail-qmqpc QMQP服务器的IP地址 queuelifetime 604800 qmail-send 在队列中邮件保存的时间(秒) rcpthosts none qmail-smtpd 接收邮件的域名 smtpgreeting me qmail-smtpd smtproutes none qmail-remote timeoutconnect 60 qmail-remote SMTP连接超时时间 timeoutremote 1200 qmail-remote 等待远程主机的时间 timeoutsmtpd 1200 qmail-smtpd SMTP客户连接超时的时间 virtualdomains none qmail-send 虚拟域名 Qmail限制附件大小 我的配置经验==》Qmail限制附件大小: 1.在/var/qmail/control/databytes 中设置附件大小,这个文件要手动建立,直接输入数字就行,默认单位为bytes,如10485760为10M; 2.Webmail中发送附件默认只支持500K左右,如想支持5M附件,修改如下文件 # vi /etc/php.ini post_max_filesize=5M //320行 upload_max_filesize=5M //405行 session.bug_compat_42=0 //加入到641行 session.bug_compat_warn=0 # vi /etc/httpd/conf.d/php.conf LimitRequestBody 5242880 //修改14行的值为5M WebMail上传附件大小限制 (解决上传文件不能大于512KB的问题) 更改/etc/httpd/conf.d/php.conf: LimitRequestBody 524288中的524288正好跟512KB相等,将其更改为10485760,设置允许最大上传的附件为10MB。 -------------------------------------------------------------------------------- 希望能够加精!谢谢 (编辑:zhou_rm)
|