人们在互联网上最常使用的就是电子邮件,很多企业用户也经常使用免费电子邮件系统。由于垃圾邮件的泛滥,许多免费邮件提供商之间互相拒收对方的电子邮件,这为我们正常使用电子邮件带来不便。此时,企业架设一台自己的邮件服务系统就十分必要了。我们以RedHat 7.0(默认Server方式安装)为例,说明RedHat完整邮件系统的全部架设过程。这里假设计算机已经安装好RedHat 7.0,并能正常启动,且这台计算机拥有一个合
法的IP地址、拥有一个或多个域名,并作好了相应的DNS以及MX交换记录。
架设RedHat完整邮件系统涉及的软件环境为:Redhat linux 7.0、Qpopper4.0.1、sendmail-
8.12.0、cyrus-sasl-1.5.24、Outlook express 5(测试用)。
免费获得软件
首先,必须下载需要用到的所有文件。
1. SASL函数库(cyrus-sasl-1.5.24.tar.gz),该函数库提供了我们所需要的安全认证函数。
下载地址:ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-1.5.24.tar.gz。
2. Qpopper(qpopper4.0.1.tar.gz),这个软件可以让我们从主机上通过110端口来接收信件,目前最新版本是4.0.1。
下载地址:ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.1.tar.gz。
3. sendmail,版本在8.10.0以上的sendmail才支持SMTP认证功能。虽然RadHat 7.0内含的sendmail是8.11.0,但是因为我们要重新编成包含新功能的sendmail,所以还是需要重新下载。目前最新的版本是8.12.0-Beta7。
下载地址:ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.12.0.Beta7.tar.gz。
以root身份登录到主机,并把上面的软件复制到工作目录下。注意:我们后面的工作都需要root身份运行。
备份必要文件,主要是/etc/mail/sendmail.cf以及sendmail的执行文件,以便出现错误后可以安全恢复。
安装软件
一、安装Qpopper
1.进入工作目录,展开Qpopper源文件:#tar zxvf qpopper4.0.1.tar.gz。
2. 进入qpopper4.0.1目录:#cd qpopper4.0.1。
3.生成编译文件:#./configure -enable-specialauth。这里的参数表示,验证方式采用shadow口令来进行身份验证。也就是说,只有主机的系统用户才能由Qpopper来提供服务。当然,也可以使用“-disable-specialauth”来禁止使用系统用户。
4. 编译并生成可执行文件:#make
5. 如果没有意外,编译完成后会在当前目录的popper目录下生成一个popper的执行文件。将这个文件复制到/usr/local/lib目录下:
#cd popper
#cp popper /usr/local/lib/popper
6.在/etc/xinetd.d目录下创建一个文件,文件名为pop3,文件属性改为644,把程序1(见文后注)的内容添加进去。
7.修改/etc/services,找到定义110端口的那一行,改为:pop3 110/tcp # Post Office。
二、安装SASL函数库
1.回到工作目录,展开并进入cyrus-sasl-1.5.24.tar.gz目录:
#tar zxvf cyrus-sasl-1.5.24.tar.gz
#cd cyrus-sasl-1.5.24
2. 生成配置文件:
#./configure-enable-login -with
-pwcheck
各种客户端软件的验证方法是不一样的。本文以Outlook Expresss为例,所以加入LOGIN的认证方法-enable-login。OE的口令验证方式也不是缺省的方式,所以也需要加入-with-pwcheck的选项。
3. 配置默认安装路径:
SASL库默认安装到/usr/local/lib下,但是sendmail默认使用的库文件是在/usr/lib目录下的,所以需要修改configure这个文件。找到其中的一行文字:ac_default_prefix=/usr/local,并把它修改为:ac_default_prefix=/usr,保存并退出。
4. 编译和安装SASL库:
#make
#make install
5. 建立目录/var/pwcheck,pwcheck命令需要使用这个目录。pwcheck是一个后台监视程序,负责检查用户的输入口令,以root权限件使用shadow口令文件。
6. 在/usr/lib/sasl目录下建立文件sendmail.conf,加入:pwcheck_method:pwcheck。
三、 安装含SMTP认证sendmail
RedHat 7.0的默认安装是包含了sendmail-8.11.0的,但是只能通过这个sendmail在本机发送邮件。为了安全起见,在/etc/mail/access文件中,只默认设置了对应Localhost的RELAY(接收)。
为了让这个服务器可以为其他用户提供发送邮件服务,简单的办法是配置/etc/mail/access文件,来设置可以RELAY或者REJECT(拒绝)的域或者IP段。这对工作地点在多个域内或不固定IP的拨号用户而言,有些不适用。我们得给SMTP服务加上认证功能,只转发那些通过身份认证的用户的信件。方法如下。
1. 展开sendmail.8.12.0.Beta7.tar.gz,并进入所在的目录:
#tar zxvf sendmail.8.12.0.Beta7.tar.gz
#cd sendmail.8.12.0.Beta7
在devtools/Site/目录下创建site.config.m4文件,加入两行文字:APPENDDEF(`confENVDEF', `-DSASL');APPENDDEF(`conf_sendmail_LIBS', `-lsasl'),把SMTP认证功能编译到sendmail中。
2. 回到sendmail.8.12.0.Beta7目录,再进入sendmail目录,开始编译sendmail。
#cd -
#cd sendmail
#./Build -c
-c参数表示编译时先删除原先编译的结果。
3. 编译成功后,运行./Build install安装软件:
#./Build install
4. 生成sendmail的配置文件。回到上一级目录,再进入cf/cf目录,创建config.mc:
#cd -
#cd cf/cf
config.mc文件内容略。
5. 编译生成/etc/mail/sendmail.cf文件:
#m4 ../m4/config.m4 config.mc
/etc/mail/sendmail.cf
6. 启动sendmail:
#sendmail -bd -q10m
四、安装sendmail守护进程
表面上看,到上一步,我们的安装工作应该完成了。但事实上,由于我们设置了SMTP的认证,sendmail不论是发信还是收信,都会要求对方提供身份验证的密码。而给我们发信的人应该是无需身份验证的,所以我们把刚刚安装的含认证功能的sendmail安装在26端口,然后我们再单独安装一份sendmail守护进程。它在25端口专门接收别人发送到这台服务器的信件。具体方法略。
配置启动文件
按照上面的过程安装完成之后,Qpopper和26端口的sendmail进程会在下次启动时自动启动,但是25端口的sendmail和用于检查口令的守护程序不会自动运行,所以需要把它们加入启动文件中。
最直接的是修改/etc/rc.local,把下面的两行文字加入到这个文件的尾部适当位置。
/usr/sbin/sendmail_daemon-bd -q10m
-C/etc/mail/sendmail_daemon.cf
nohup pwcheck %26amp;%26amp;
测试
重新启动计算机,上面我们所安装的进程都会自动启动。登录到主机,对Qpopper、含SMTP认证的sendmail、不含SMTP认证的sendmail、pwcheck分别测试。再进行整体测试:用另外一台安装有OutLook Express 5.0的计算机,配置好账户属性后,分别用不同主机的电子邮件地址做收发测试。注意:发送邮件选择“我的服务器需要身份验证”时,可以选择和POP3相同,也可以选择不同;另外,发送邮件服务器的端口号是26,而不是默认的25。
如果拥有不止一个域名,你需要在/etc/ local-host-names这个文件里加上其他的域名名单。如果想做邮件转发,如发送给webmaster@sysok.com的邮件自动转发给look@sysok.com以及admin@sysok.com,就在/home/webmaster目录下创建一个.forward文件,加入文字:look@sysok.com;admin@sysok.com。这时,发送给webmaster@sysok.com的邮件就会自动转发给look@sysok.com和admin@sysok.com。
RedHat Linux是目前国内应用比较广泛的服务器操作系统之一,sendmail以及Qpopper等都是免费软件。这套RedHat完整邮件系统完全可以负担公司内部甚至更复杂的系统工作。