qmail

 

Qmail

开放分类:Q开头单词手机程序英文单词英语

qmail是一个因特网邮件传送代理(简写为MTA),它运行在linux/Unix兼容系统下,是一个直接代替UNIX下Sendmail软件的邮件传送程序。qmail使用SMTP协议与其它系统上的MTA交换邮件。Qmail具有安装方便、安全性高、邮件结构合理、支持SMTP服务、队列管理、邮件反弹、基于域名的邮件路由、SMTP传输、转发和邮件列表、本地(邮件)传送、POP3 服务等强大的功能。与它的竞争对手不同的是,Qmail已经许多年没有更新了,用户已经习惯于通过第三方的插件及补丁来使qmail增加新的功能。
编辑摘要
基本信息
名称:
Qmail
目录

1
介绍
2
实战应用部署

介绍/Qmail
Qmail
Qmail图册

作为Linux下面主流的邮件系统内核,大量著名的商业邮件系统都是在Qmail内核下开发,比如Hotmail

等。Qmail具有安装方便、安全性高、邮件结构合理、支持SMTP服务、队列管理、邮件反弹、基于域名的邮件路由、SMTP传输、转发和邮件列表、本地(邮件)传送、POP3 服务等强大的功能。它已经逐渐替代传统的Sendmail成为linux下邮件系统内核的主流选择。qmail是面向安全而设计的,作者曾经悬赏500美元来找出qmail的安全漏洞,但是直到2006年,还是没有人能领取这笔奖金。

qmail的主要竞争对手是Exim以及Postfix。与它的竞争对手不同的是,Qmail已经许多年没有更新了,用户已经习惯于通过第三方的插件及补丁来使qmail增加新的功能。

qmail 的源代码现已开放为公有领域。
实战应用部署/Qmail

目录

qmail 安装部署1

一、准备工作1

二、LAMP残留(执行即可)1

三、上传所需安装包2

四、 检查DNS配置2

五、 设置或关闭防火墙2

六、 卸载已有的邮件系统3

七、 解压缩netqmail-1.05.tar.gz3

八、 安装daemontools3

九、 安装ucspi-tcp3

十、 创建所需的用户4

十一、 准备安装qmail4

十二、 qmail编译安装5

十三、 设置管理员的邮箱地址5

十四、 开启SPF设置5

十五、 添加qmail的帮助手册5

十六、 为qmail服务建立监控目录和日志文件5

十七、 检查服务6

十八、 安装vpopmail7

十九、 检查服务9

二十、 用POP3和SMTP测试10

二十一、安装qmailadmin14

一、准备工作

1.1 需要安装LAMP环境,mysql必须为单实例,apache支持cgi

1.2若apache、mysql的路径不在/usr/local下,那么需要做一个软连接

#ln –s /application/apache2.2.13 /usr/local/apache2

#ln –s /application/webserver/mysql /usr/local/mysql

//ln –s 源 目标

1.3 配置DNS,详见《安装配置DNS》文档。

二、LAMP残留(执行即可)

2.1 Put the dns and apache statr cmd to /etc/rc.local file

#echo “/usr/local/sbin/named” >>/etc/rc.local

#echo “/usr/local/apache2/bin/apachectl restart” >>/etc/rc.local

#echo “rndc reload” >>/etc/rc.local

2.2 Start named and apache services

#/usr/local/sbin/named

#/usr/local/apache2/bin/apachectl restart

#rndc reload

三、上传所需安装包

#cd /home/jeacen/tool/qmail

#rz

所需上传安装包

Daemontools-0.76.tar.gz

ucspi-tcp-0.88.tar.gz

toaster-scripts-0.7.tar.gz

vpopmail-5.4.13.tar.gz

netqmail-1.05

qmailadmin-1.2.13.tar.gz

四、 检查DNS配置

在开始之前,确保正确设置了DNS?MX记录.例如使用”etiantian.org”作为邮件域,

对MX记录进行测试:在Linux下:

首先要把etiantian.org 的mx 记录指向mx1.etiantian.org. (DNS里已设置好)

由于本文档是本机配置的DNS,因此需执行:

#echo “127.0.0.1”>/etc/resolv.conf

#host -t a mx1.etiantian.org

mx1.etiantian.org has address 10.0.0.139

#host -t mx etiantian.org

etiantian.org mail is handled by 10 mx1.etiantian.org.

#host mx1.etiantian.org

mx1.etiantian.org has address 10.0.0.139

五、 设置或关闭防火墙

a. 关闭防火墙

#service iptables stop

b. 设置防火墙

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

六、 卸载已有的邮件系统

确认没有SMTP/POP/IMAP服务在运行,同时卸载掉mysql

#rpm -aq sendmail mysql

#service sendmail stop

#rpm -e –nodeps sendmail

#rpm -e –nodeps mysql

#rpm -aq sendmail mysql

七、 解压缩netqmail-1.05.tar.gz

#chmod 755 -R /home/jeacen/

#cd /home/jeacen/tool/qmail

#tar -xzf netqmail-1.05.tar.gz

#cd netqmail-1.05

#./collate.sh

#cd /home/jeacen/tool/qmail

八、 安装daemontools

#tar -zxvf daemontools-0.76.tar.gz

#cd admin/daemontools-0.76

#patch -p1 < ../../daemontools-0.76.errno.patch #./package/install #ps ax | grep svscan 验证daemontools已经正常运行: #ps ax | grep svscan 28555 ? Ss 0:00 /bin/sh /command/svscanboot 28557 ? S 0:00 svscan /service 九、 安装ucspi-tcp 说明 ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序。 TcpServer是一个比inetd安全性更好的选择。它内建有基于规则的连接控制,能完善 地在达到预定义的最大系统负载时将连接推迟,这点比 inetd好。Tcpserver也被推荐 与qmail一同使用,因为它们是同一个作者编的程序。 参考:http://cr.yp.to/ucspi-tcp.html 安装 #cd /home/jeacen/tool/qmail #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 十、 创建所需的用户 #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/jeacen/tool/qmail #tar -xzf toaster-scripts-0.7.tar.gz #cd netqmail-1.05/netqmail-1.05/ #vi qmail-smtpd.c +50 搜索函数straynewline中的451改为553 第50行 当你的服务器收到无效格式的邮件时,会发送:"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/ #rm -rf /usr/sbin/sendmail //删除sendmail的链接 十二、 qmail编译安装 #make #make setup check //注:qmail的补丁在vpopmail安装之后再打。 用你自己的域名代替下面的mx1.etiantian.org #./config-fast mx1.etiantian.org 十三、 设置管理员的邮箱地址 发往root/postmaster/mailer-daemon地址的邮件将会由定义的管理员邮箱接收。 将如下的“admin@etiantian.org"替换成你的管理员邮箱。 #cd /var/qmail/alias #echo "admin@etiantian.org" > .qmail-postmaster

#echo “admin@etiantian.org” > .qmail-mailer-daemon

#echo “admin@etiantian.org” > .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

#cd /home/jeacen/tool/qmail

#cp /home/jeacen/tool/qmail/toaster-scripts-0.7/send.run /var/qmail/supervise/qmail-send/run

#cp /home/jeacen/tool/qmail/toaster-scripts-0.7/send.log.run /var/qmail/supervise/qmail-send/log/run

#cp /home/jeacen/tool/qmail/toaster-scripts-0.7/smtpd.run /var/qmail/supervise/qmail-smtpd/run

#cp /home/jeacen/tool/qmail/toaster-scripts-0.7/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run

#cp /home/jeacen/tool/qmail/toaster-scripts-0.7/pop3d.run /var/qmail/supervise/qmail-pop3d/run

#cp /home/jeacen/tool/qmail/toaster-scripts-0.7/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run

#cp /home/jeacen/tool/qmail/toaster-scripts-0.7/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run

#cp /home/jeacen/tool/qmail/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

Start script:

#cd /home/jeacen/tool/qmail

#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

# ps -ef | grep qmail|grep -v grep |wc –l

9

# ps -efl | grep “service errors” | grep -v grep

4 S root 3729 3289 0 78 0 – 619 pipe_w 16:03 ? 00:00:00 readproctitle service errors: ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………….

日志:

/var/log/maillog

/var/log/qmail/current

/var/log/qmail/pop3d/current

/var/log/qmail/pop3ds/current

/var/log/qmail/smtpd/current

十八、 安装vpopmail

vpopmail是一个以qmail为基础的虚拟域管理包;其允许在一个IP地址添加多个虚拟域;并且可以不需要使用系统帐号做邮件帐号。

参考:http://vpopmail.sf.net

创建目录,设置默认域。

#mkdir -p /home/vpopmail/etc

#echo “etiantian.org ” > /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是帐号,123456为密码,第二个vpopmail是数据库 #echo "localhost|0|vpopmail|123456|vpopmail" > /home/vpopmail/etc/vpopmail.mysql

#chmod 640 /home/vpopmail/etc/vpopmail.mysql

#chown -R vpopmail.vchkpw /home/vpopmail/etc

在MySQL里添加vpopmail的帐号

#mysql -uroot -p’123456′

Mysql>CREATE DATABASE vpopmail;

Mysql>GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY ‘123456’;

Mysql>FLUSH PRIVILEGES;

Mysql>QUIT;

安装:

#cd /home/jeacen/tool/qmail/

#tar zxvf vpopmail-5.4.13.tar.gz

#cd vpopmail-5.4.13

#./configure –enable-incdir=/usr/local/mysql/include/mysql –enable-libdir=/usr/local/mysql/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

//带数据库支持 #./configure这里的–enable-incdir 和 –enable-libdir要配置到mysql的安装目录下的include和lib

设置/etc/profile

#echo ‘export PATH=$PATH:/home/vpopmail/bin’ >> /etc/profile

#source /etc/profile

添加域,前面是域名,后面是管理员(postmaster)密码

#ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.15 /lib/libmysqlclient.so.15

#vadddomain etiantian.org 123456

添加用户

#vadduser -q 10485760S ranhongyuan@etiantian.org 123456

#vadduser -q 10485760S wubin@etiantian.org 123456

#vmoduser -c ranhongyuan ranhongyuan@etiantian.org

#vmoduser -c wubin wubin@etiantian.org

配置Linux支持中文

#echo “LANG=”zh_CN.GB18030” “>/etc/sysconfig/I18N

#echo “SUPPORTED=”zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en””>>/etc/sysconfig/i18n

#echo “SYSFONT=”latarcyrheb-sun16” “>>/etc/sysconfig/i18n

#cat /etc/sysconfig/i18n

#source /etc/sysconfig/i18n

设置邮箱容量达到90%的警告信息

#cat >> /home/vpopmail/domains/.quotawarn.msg < From: 邮箱管理员 Reply-To: postmaster@etiantian.org To: 邮箱用户 Subject: 邮箱空间警告 Mime-Version: 1.0 Content-Type: text/html; charset=gb2312 Content-Transfer-Encoding: base64 您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件. 如果需要帮助,请联系邮箱管理员: Email : postmaster@etiantian.org EOF 设置邮箱已满的警告信息 #echo "邮件被拒绝,用户的邮箱空间已满." > /home/vpopmail/domains/.over-quota.msg

#cat /home/vpopmail/domains/.over-quota.msg

启动脚本

#cp /home/jeacen/tool/qmail/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/jeacen/tool/qmail/netqmail-1.05/netqmail-1.05

#bunzip2 -c /home/rhy/tools/qmail/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

按提示输入公司信息

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:beijing

Locality Name (eg, city) [Newbury]:beijing

Organization Name (eg, company) [My Company Ltd]:etiantian.org

Organizational Unit Name (eg, section) []:etiantian.org

Common Name (eg, your name or your server’s hostname) []:etiantian.org

Email Address []:admin@etiantian.org

#make tmprsadh

#chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem

启动qmail

#qmailctl start

用daemontools来启动qmail-pop3d和qmail-pop3ds

#ln -s /var/qmail/supervise/qmail-pop3d /service

#ln -s /var/qmail/supervise/qmail-pop3ds /service

十九、 检查服务

#netstat -an | grep 110

# ps -ef | grep qmail |wc -l

16

# ps -efl | grep “service errors” | grep -v grep

4 S root 3729 3289 0 78 0 – 619 pipe_w 16:03 ? 00:00:00 readproctitle service errors:

二十、 用POP3和SMTP测试

用Outlook Express测试qmail的smtp和pop3是否正常,注意由于vpopmail支持虚拟域名,所以在outlook中设置邮件帐号时,用户名后要加上域名,如demo@demo.com。smtp是带认证的,在outlook中也要作相应设置。建议先测试正常后再进行下一步安装。如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqld和maillog日志记录,这样容易很快找出问题。(这个地方不存在日志,主要通过 ps –ef |grep qmail 和 vpopmail 数据库来看。)

 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.