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

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Qmail > qmail+vpopmail+MySQL+igenus+RedHat 7下建立邮件系统 > 正文

qmail+vpopmail+MySQL+igenus+RedHat 7下建立邮件系统

出处:《网管员世界》 作者:《网管员世界》 时间:2004-8-31 17:45:00
由于提供Web和E-mail服务对稳定性和性能要求特别高,因此一般都使用Unix作为服务器的操作系统,例如,Hotmail使用FreeBSD和Solaris,国内163等站点也是BSD系列。然而,Unix的标准E-mail系统也不适合用做这种大容量服务,考虑到性能因素,单台服务器支持的用户数量最好不要超过10万。 为了具有支持更多用户的可扩展性,并考虑到安全性、性能及可管理性,一般采用非Unix系统用户来作为E-mail用户。而保存用户数据通常采用支持网络访问的数据库形式,一般常用的有LDAP、标准数据库,以及E-mail系统自己实现的用户数据库。其中,LDAP由于是提供目录服务的标准,因此应该为最佳的选择,其常用的开放源代码实现为OpenLDAP。而标准数据库由于实现方便、可扩展性强,因此在Internet上最常用的为MySQL。此外,也有使用其它方式的实现。
本文就以qmail+vpopmail+MySQL+igenus为基本构架,来介绍一下Webmail的构建方法,希望对正在构建、或正准备构建自己的企业邮件服务器的用户能有所帮助。本文中所构建的邮件服务器具有SMTP身份认证功能、ETRN等扩展功能,对于一般的邮件系统应用已经足够。
本文档针对SolarisR8、RedHat 7而写,并且已经正确测试通过,稍加变通可适用于FreeBsd和其他Unix操作系统。使用该文档您基本上照搬即可,可以改动的笔者基本都做了说明。

安装步骤

安装平台:Solaris 8 for x86 / (redhat 7.2)
安装的机器:mail.ccbtc.com
软件包详细清单略,文件皆在/home文件夹。

安装qmail
首先创建qmail安装目录,添加qmail必需的用户和组。经过解压、解包和编译后,安装补丁包,将qmail目录下,的qmail-smtp.c拷贝到qmail-smtpd-auth-0.26目录下然后对该文件进行补丁处理。
然后将qmail-smtpd.c 拷贝到qmail 的源文件目录里,编译qmail软件包。进入qmail目录后,仔细阅读一下README和INSTALL文件,然后开始编译qmail。
之后进行配置:
#./config-fast mail.ccbtc.com
(mail.ccbtc.com是您的邮件服务器主机名)
建立系统别名,可以在这些别名文件中指定管理用户来接受这些系统邮件,如:
#echo 'admin' > /var/qmail/alias/.qmail*
建立启动文件和用户的maildir,编辑 /var/qmail/rc,修改其中./Mailbox成为./Maildir以支持maildir的pop收信方式,如下:
# !/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Maildir by default.
exec env - PATH="/var/qmail/bin:$PATH"\
qmail-start ./Maildir splogger qmail
其中splogger qmail指令是用来将日志文件记录在/中。

安装ucspi-tcp-0.88、daemontools和vpopmail
ucspi-tcp-0.88的执行文件被安装在/usr/local/bin中;daemontools的执行文件安装于/usr/local/bin中。安装daemontools工具后可以用
#mkdir /var/run/qmail
#supervise /var/run/qmail /var/qmail/rc
来启动qmail,还可以用svc来关闭或重启qmail,用svstat监视qmail运行情况,或者直接启动qmail:
/var/qmail/rc &
然后安装vpopmail。安装完毕之后,添加域用户:
#./vadduser  test@ccbtc.com  passwd
具体命令的使用方法请参阅vpopmail手册。

停止Sendmail服务,以qmail的Sendmail libraby取代原有Sendmail
#pkill sendmail
#mv /usr/lib/sendmail   /usr/lib/sendmail.old
#mv /usr/sbin/sendmail  /usr/sbin/sendmail.old
#ln -s /var/qmail/bin/sendmail  /usr/lib/sendmail
#ln -s /var/qmail/sbin/sendmail  /usr/sbin/sendmail
移除Sendmail启动程序,以Linux为例,移除inetd.conf中的sendmail之设定,以及/etc/rc.d/init.d下的Sendmail启动文件。

启动qmail SMTP,POP3 daemon系统服务
一、建立SMTP转信规则
建立 /home/vpopmail/etc/tcp.smtp,
:allow,RELAYCLIENT=""
此为接受任何Client端所发出子转送信件。
若要拒绝某些IP所发出的Relay,则修改/etc/tcp.smtp如下:
127.:allow, RELAYCLIENT=""
本文因支持身份认证功能所以采用以下规则:
127.0.0.1:allow,RELAYCLIENT=""
#echo 127.0.0.1:allow,RELAYCLIENT="" >> /home/vpopmail/etc/tcp.smtp
二、转换tcp.smtp成为cdb格式
#/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
注意,若对tcp.smtp有任何变更,都必须经过tcprules转换成为cdb文件才会生效。另外,tcp.smtp若为空白,则表示拒绝所有的转送,因为预设的规则为deny。
至此,转送规则已建立,稍后将依此规则启动qmail-smtpd。
三、设置/home/vpopmail/bin/vchkpw的SetUID和SetGID
这点很重要,否则认证无法通过,这是因为smtpd 的进程是由qmaild 执行的。而密码验证程序原来只使用于POP3进程,分别由root或vpopmail执行,为的是读shadow或数据库中的密码,并取出用户的邮件目录。这些操作qmaild 都没有权限去做。如果SMTP进程要调用密码验证程序,则必须要使用setuid和setgid。其实这点大可放心,这两个密码验证程序都是带源代码的,本身非常安全,只需要放在安全的目录里就可以了。设置其他用户,除qmaild可执行外,都没有权限执行。其实如果没有其它SHELL帐户,也就不用这么麻烦了。
#chmod 4755 /home/vpopmail/bin/vchkpw
#chmod 755 /home/vpopmail/bin
四、设定SMTP及POP3 daemon的启动
移除inetd.conf中有关SMTP及POP3的设定(加上#号),编辑/etc/services,改为以下设定:
smtp 25/tcp
pop3 110/tcp
pop3 110/udp
启动 SMTP:
/usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb\
-u UID -g GID 0 smtp/var/qmail/bin/qmail-smtpd\
/home/vpopmail/bin/vchpkw /usr/bin/true  /bin/cmd5checkpw \
/usr/bin/true & | /var/qmail/bin/splogger smtpd 3 &
其中UID和GID为前述新增qmail系统账号qmaild的User ID,以及nofiles的group ID。
/var/qmail/bin/splogger那一行会将log文件写在/var/log/maillog中。
启动POP3,编辑启动档加入以下设定:
tcpserver -H -R 0 pop3 \
/var/qmail/bin/qmail-popup mail.ccbtc.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

qmailAdmin的安装
首先安装ezmlm和autorespond,然后即可安装qmailAdmin。安装前首先要考虑满足以下几项要求:
是否拥有一个vpopmail用户vchkpw
◆ cgi-bin目录的所在位置;
◆ ezmlm目录的所在位置;
◆ autorespond目录的所在位置;
◆ 如果能够达到以上要求,可以继续安装。
检测安装是否正确,可以在浏览器中打开路径http://mail.ccbtc.com/cgi-bin/qmailadmin,看根据前面设置的用户和密码是否能够成功登录进去。

WebMail的安装
一、MySQL的安装
Solaris x86安装pkg包,因为Solaris系统平台编译MySQL有问题,笔者一直无法编译通过,所以采用pkg安装。
二、安装imap的PHP模块
#gzip -d c-client.tar.Z
#tar xf c-client.tar
#cd imap-2002
#make gso  SSLTYPE=none
#cp c-client/c-client.a /usr/local/lib/libc-client.a
#cp c-client/rfc822.h mail.h linkage.h  /usr/local/include
make gso表示在Solaris系统上安装imap,不同的系统有不同的参数,可以通过more Makefile 找到关于您Unix系统相应的参数,例如:RedHat的参数为lrh。
三、安装PHP模块
如果您以前安装PHP的时候没有采用以模块的方式安装php(--with-apxs),那您只好连Apache一起重新安装,由于笔者以前安装PHP的时候采用模块化的安装,所以没有对Apache进行任何改动。
然后进入PHP解压后的目录,重新编译PHP模块:
#./configure -prefix=/usr/php4 --with-apxs=/usr/apache/bin/apx with-imap=/home/imap-2002 -with-mysql=/usr/local/mysql
#make
#make install
将/usr/php/lib中的php.ini文件修改如下:
[php]
register_globals=on
重新启动Apache使修改生效。
四、igenus的安装
igenus是一个国内制作的Webmail,省去了我们还要对国外Webmail进行翻译的麻烦。
将解压后的Snap目录放入Web浏览的目录下面,如/home/snap。
在/home目录建立临时目录,然后修改以下部分:
$CFG_BASEPATH = "/home/snap"; --->是iGNEUS webmail安装在系统的路径
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'root';
$CFG_MYSQL_PASS = 'yyyyy';
$CFG_MYSQL_DB = 'vpopmail'
$CFG_HOSTNAME = "http://mail.ccbtc.com";
$CFG_LANGUAGE = gb
$CFG_GMT = +8;
$CFG_TEMP = $CFG_BASEPATH."./temp";确保浏览的目录和temp的目录在同一路径。
然后修改默认登录域的设置。编辑login.php文件:
<OPTION value="ccbtc.com" selected>ccbtc.com</OPTION>---->默认登录域
<OPTION value="test.com">test.com</OPTION> ---->其它域名。
将运行apache的用户和组修改为vpopmail、vchkpw,重新启动Apache,浏览http://mail.ccbtc.com 就可以出现如图1和图2的页面:

图1

图2

构建ETRN支持

ETRN是一个通知ESMTP服务传送邮件队列的命令,通常用于到ISP的拨号连接和备份邮件服务器,当一个远端客户发送一个ETRN命令时,队列中远端客户的消息会被发送给客户,ETRN是TURN命令的一个扩展版本,加上了安全特性。TURN命令被用作启动远端计算上队列中消息的传送。但是,TURN有一个安全问题,因为没有远端主机名的校验。ETURN提供了远端主机名的校验,这样,除了专门接收消息的那一台主机以外,其他都不能接收消息,并且,ETRN并不是发起的连接上传输信息,而是,重新启动一个新的连接进行数据传输,即使,有人伪装客户主机发出ETRN命令,系统也会连接到正确的目标主机进行信息交换,从而,保证了信息的安全性。
qmail本身是不支持ETRN功能的,但是我们可以提供一种方法来欺骗qmail系统,使得系统可以正确应答客户端所发出的ETRN命令,并进行正确的信息交换。

ETRN的运行条件
客户端必须有有效的主机字符串(DNS主机名)或有效的静态IP地址(假设为1.2.3.4)和正确的DNS解析纪录(如域 mydomain.com):
mydomain.com    mx  10    mail.ccbtc.com

serialmail的安装及配置
一、建立邮件缓冲区
#mkdir  /var/qmail/autoturn
#chgrp qmail /var/qmail/autoturn
#chmod 2755 /var/qmail/autoturn
二、设置本地接收用户
将此行"+autoturn-:qmaild:7770:2108:/var/qmail/autoturn:-::"导入到/var/qmail/user/assign,用您的qmaild用户的ID替代7770,nofiles组的gid替代2108,并且运行:
#../bin/qmail-newu
至此,autoturn用户应该已经生效。
三、将您需要使用ETRN功能的域名导入
/var/qmail/control/rcpthosts 如mydomain.com:
#echo mydomain.com >> /var/qmail/control/rcpthosts
四、设置默认转发
#echo mydomain.com:autoturn-1.2.3.4 >> /var/qmail/control/virtualdomains
将发送到mydomain.com的信件全部转发给本地的autoturn用户,1.2.3.4区分ETRN用户。
五、设置maildir邮件投递规则
# cd  /var/qmail/autoturn
# maildirmake 1.2.3.4
# chown -R qmaild 1.2.3.4
# echo ./1.2.3.4/ > .qmail-1:2:3:4-default
# chmod 644 .qmail-1:2:3:4-default
确认以上步骤设置成功,qmail系统会根据远程客户的IP地址及其本地的maildir投递规则,将邮件转发到相应的maildir信箱。如需设置多域名的ETRN功能,重复以上步骤即可。

启动方式

用以下字符串替代 /var/qmail/bin/qmail-smtpd即可。
sh -c '
/var/qmail/bin/qmail-smtpd
cd /var/qmail/autoturn
exec setlock -nx $TCPREMOTEIP/seriallock \
maildirsmtp $TCPREMOTEIP autoturn-$TCPREMOTEIP- $TCPREMOTEIP AutoTURN
至此您的qmail已安装完毕,希望您能看见您的qmail!

,
相关文章 热门文章
  • AS4上架设Qmail带身份验证*ibm服务器安装
  • 阿里巴巴招聘qmail邮件系统管理工程师
  • qmail的smtp与pop服务及相关日志完全解决方案
  • 修正Qmail auth smtp中电子邮件地址任意的patch
  • Qmail 启动设置
  • qmail 全套安装笔记
  • Freebsd环境下基于qmail系统的反病毒反垃圾邮件系统构建
  • Qmail邮件系统管理工程师--阿里巴巴(中国)网络技术有限公司
  • 虚拟环境下选择成两难 用iSCSI还是FC?
  • 实现QMail邮件账户的Web管理:使用QMailadmin
  • 什么是分布式的Qmail邮件系统(上)
  • Qmail邮件系统下防止滥用mail relay
  • Linux邮件服务器软件比较
  • 域名和邮件服务器FAQ
  • Qmail自动安装包Qmail_setup-v1.5.3发布
  • freebsd+qmail+mysql+vpopmail之完全ports安装
  • qmail+vpopmail+MySQL+igenus+RedHat 7下建立邮件系统
  • QMAIL终极安装指南
  • 配置你的第一台e-mail服务器
  • qmail+webmail on Linux9 安装全过程
  • 分布式的Qmail邮件系统
  • qmail+vpopmail+mysql+qmailadmin+ezmlm+igenus构建企..
  • qmail+webmail on Linux9 安装全过程
  • Qmail Server Howto
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号