自建立基于Linux的邮件服务器.docx

上传人:b****8 文档编号:11492288 上传时间:2023-03-01 格式:DOCX 页数:24 大小:266.17KB
下载 相关 举报
自建立基于Linux的邮件服务器.docx_第1页
第1页 / 共24页
自建立基于Linux的邮件服务器.docx_第2页
第2页 / 共24页
自建立基于Linux的邮件服务器.docx_第3页
第3页 / 共24页
自建立基于Linux的邮件服务器.docx_第4页
第4页 / 共24页
自建立基于Linux的邮件服务器.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

自建立基于Linux的邮件服务器.docx

《自建立基于Linux的邮件服务器.docx》由会员分享,可在线阅读,更多相关《自建立基于Linux的邮件服务器.docx(24页珍藏版)》请在冰豆网上搜索。

自建立基于Linux的邮件服务器.docx

自建立基于Linux的邮件服务器

3.1建立基于Linux的邮件服务器

✧工作情境

电子邮件服务是Internet上最基本的服务之一,每一个企业都希望能够建立自己的邮件服务器。

运用Linux系统,建立一台postfix+cyrus-imapd+squirrelmail电子邮件服务器,实现企业内部网络的邮件服务,同时也能够在Internet收发邮件(接收邮件,企业必须在Internet上注册域名)。

✧学习目标

通过本章节的学习,能够了解电子邮件服务器的工作原理,并能够在Linux系统上建立一台postfix+cyrus-imapd+squirrelmail电子邮件服务器,实现Web方式的电子邮件收发服务。

✧考核评价

能够在Linux系统上建立一台postfix+cyrus-imapd+squirrelmail电子邮件服务器,并在邮件服务器上开设两个用户,分别在两台工作站上相互发送邮件,接收邮件。

 

电子邮件服务是Internet上最基本的服务之一,用户可以通过它与远程用户进行经济、方便、快捷且无需在线的信息交流。

在Internet上,超过30%的业务量是电子邮件,仅次于WWW服务。

3.11.1电子邮件服务的概述

1.电子邮件服务

电子邮件服务是Internet最基本的服务,电子邮件可以用来在Internet或Intranet上进行信息的传递和交流,具有快速、经济的特点。

发一份电子邮件给远在他方的用户,通常来说,对方几分钟之内就能收到。

如果选用传统邮件,发一封特快专递也需要至少一天的时间,而且电子邮件的费用最多只需几毛钱。

与实时信息交流,如电话相比,因为电子邮件采用存储转发的方式,发送邮件时,并不需要收件人处于在线状态,收件人可以根据实际需要随时上网从邮件服务器上收取邮件,方便了信息的交流。

2.电子邮件系统

与其他Internet服务相同,电子邮件服务是基于客户/服务器模式的。

对于一个完整的电子邮件系统而言,它主要由以下三部分构件组成。

(1)用户代理

用户代理(UserAgent,缩写为UA)就是用户与电子邮件系统的接口,在大多数情况下它就是在邮件客户端上运行的程序,主要负责将邮件发送到邮件服务器和从邮件服务器上接收邮件。

目前主流的用户代理主要有Microsoft公司的Outlook和国产的Foxmail等。

(2)邮件服务器

邮件服务器是电子邮件系统的核心构件,它的主要功能是发送和接收邮件,同时向发件人报告邮件的传送情况。

根据用途的不同,可以将邮件服务器分为发送邮件服务器(SMTP服务器)和接收邮件服务器(POP3服务器或IMAP4服务器)。

(3)电子邮件使用的协议

要实现电子邮件服务还必须借助于专用的协议才行。

目前,应用于电子邮件服务的协议主要有SMTP、POP3和IMAP4协议。

⏹SMTP协议

SMTP即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

通过SMTP协议所指定的服务器,就可以把E-mail寄到收件人的服务器上了。

SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

⏹POP3协议

POP3即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的协议。

它是Internet电子邮件的第一个离线协议标准,POP3允许从服务器上把邮件存储到本地主机即自己的计算机上,同时删除保存在邮件服务器上的邮件。

遵循POP3协议来接收电子邮件的服务器是POP3服务器。

⏹IMAP4协议

IMAP4即Internet信息访问协议的第4个版本,是用于从本地服务器上访问电子邮件的协议,它是一个客户/服务器模型协议,用户的电子邮件由服务器负责接收保存,用户可以通过浏览信件头来决定是否要下载此信。

用户也可以在服务器上创建或更改文件夹或邮箱,删除信件或检索信件的特定部分。

3.电子邮件服务的工作原理

电子邮件的工作过程遵循客户/服务器模式。

每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。

发送方通过邮件客户程序,将编辑好的电子邮件向邮件服务器(称为SMTP服务器)发送,通常采用SMTP协议。

邮件服务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。

邮件服务器将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。

接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。

通常Internet上的个人用户不能直接接收电子邮件,而是通过申请ISP邮件服务器的一个电子信箱,由ISP邮件服务器负责电子邮件的接收。

一旦有用户的电子邮件到来,ISP邮件服务器就将邮件移到用户的电子信箱内,并通知用户有新邮件。

因此,当发送一条电子邮件给一另一个客户时,电子邮件首先从用户计算机发送到ISP邮件服务器,再到Internet,再到收件人的ISP邮件服务器,最后到收件人的个人计算机。

ISP邮件服务器起着“邮局”的作用,管理着众多用户的电子信箱。

每个用户的电子信箱实际上就是用户所申请的账号名。

每个用户的电子邮件信箱都要占用ISP邮件服务器一定容量的硬盘空间,由于这一空间是有限的,因此用户要定期查收和阅读电子信箱中的邮件,以便腾出空间来接收新的邮件。

电子邮件在发送与接收过程中都要遵循SMTP、POP3、IMAP4等协议,这些协议确保了电子邮件在各种不同系统之间的传输。

其中,SMTP负责电子邮件的发送,而POP3或IMAP4则用于接收Internet上的电子邮件。

在Internet上将一个邮件从一台计算机传送到另一台计算机上,是通过两种协议来完成,即SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)和POP3(Post Office Protocol,邮局协议3)或IMAP4(第4个版本的Internet信息访问协议)。

SMTP是Internet协议集中的邮件标准。

在Internet上能够接收电子邮件的服务器都有SMTP。

电子邮件在发送前,发件方的SMTP服务器与接收方的SMTP服务器联系,确认接收方准备好了,则开始邮件传递;若没有准备好,发送服务器便会等待,并在一段时间后继续与接收方邮件服务器联系。

这种方式在Internet上称为“存储——转发”方式。

POP3和IMAP4可允许E-mail客户向某一SMTP服务器发送电子邮件,另外,也可以接收来自SMTP服务器的电子邮件。

换句话说,电子邮件在客户PC机与服务提供商ISP之间的传递是通过P0P3或IMAP4来完成的,而电子邮件在Internet上的传递则是通过SMTP来实现。

 

3.11.2邮件服务器介绍

在Linux平台中,有许多邮件服务器可供选择,但目前使用较多的是Sendmail服务器、postfix服务器和Qmail服务器。

1.Sendmail服务器

从使用的广泛程度和代码的复杂程度来看,Sendmail是一个很优秀的邮件服务软件。

几乎所有Linux的缺省配置中都内置了这个软件,只需要设置好操作系统,它就能立即运转起来。

但它的安全性较差,Sendmail在大多数系统中都是以root身份运行,一旦邮件服务发生安全问题,就会对整个系统造成严重影响。

同时在Sendmail开放之初,Internet用户数量及邮件数量都较少,使Sendmail的系统结构并不适合较大的负载,对于高负载的邮件系统,需要对Sendmail进行复杂的调整。

2.Postfix服务器

postfix是一个由IBM资助、由WietseVenema负责开发的自由软件工程产物,它的目的就是为用户提供除Sendmail之外的邮件服务器选择。

postfix在快速、易于管理和提供尽可能的安全性方面都进行了较好的考虑。

postfix是基于半驻留、互操作的进程的体系结构,每个进程完成特定的任务,没有任何特定的进程衍生关系,使整个系统进程得到很好的保护。

同时postfix也可以和Sendmail邮件服务器保持兼容性以满足用户的使用习惯。

3.Qmail服务器

Qmail是由DanBemstein开发的可以自由下载的邮件服务器软件,其第一个beta版本0.70.7发布于1996年1月24日。

Qmail是按照将系统划分为不同的模块的原则进行设计的,在系统中有负责接收外部邮件的模块,有管理缓冲目录中待发送的邮件队列的模块,也有将邮件发送到远程服务器或本地用户的模块。

同时只有必要的程序才是setuid程序(即以root用户权限执行),这样就减少了安全隐患,并且由于这些程序都比较简单,因此就可以达到较高的安全性。

3.11.3邮件服务器的安装与配置

RedHatEnterprise Linux提供了Sendmail和postfix两种STMP邮件服务软件,让用户可以随意地选择其中一种。

与Sendmail相比,postfix的安全性和配置文件的可读性优于Sendmail,同时,postfix也和Sendmail邮件服务器保持兼容性,满足用户的使用习惯。

本章节,采用postfix实现STMP邮件服务,提供邮件的转发和本地的分发功能;采用cyrus-imapd软件实现POP或IMAP服务,实现邮件的异地接收功能;通过第三方的Webmail软件(如squirrelmail)实现Web方式收发邮件,提供Web邮件服务。

因此,通过一个实例,建立一台postfix+cyrus-imapd+squirrelmail电子邮件服务器,实现企业内部网络的邮件服务,同时也能够向Internet发送邮件。

为什么不能从Internet接收邮件邮件呢?

是性能不足吗?

这个简单的问题,留给读者思考。

[实例3.11.1]使用实例3.8.2构建的DNS服务器和所使用的域名:

teach.com。

构建一台postfix+cyrus-imapd+squirrelmail电子邮件服务器,其IP地址:

192.168.1.252,域名:

mail.teach.com。

同时申请两个用户邮件地址,实现邮件的相互收发,并在网络能够连接互联网时,向读者的常用邮箱发送一个邮件。

1.Postfix邮件服务的安装

(1)先检查并停止sendmail的服务

Red HatEnterpriseLinux默认情况下安装程序已经将Sendmail安装到系统中了,如果要使用postfix,就必须先将Sendmail服务停止,然后再安装postfix服务软件。

用下面的命令检查Sendmail服务是否已启动。

netstat-nutlp|grep:

25

该命令的执行结果如图3.11.1所示,表明Sendmail服务正在监听TCP的25号端口。

图3.11.1Sendmail服务正在监听TCP的25号端口

(2)关闭Sendmail服务及开机时自启动功能

设置关闭Sendmail服务及开机时自启动功能,采用命令如下:

/etc/rc.d/init.d/sendmailstop

chkconfigsendmailoff

执行了关闭命令后,情况如图3.11.2所示。

关闭自启动功能后,还可以用以下命令来查看其效果。

chkconfigsendmail --list

图3.11.2关闭Sendmail服务及开机自启动

2.安装postfix服务

通过Linux安装光盘的Server目录中的RPM安装包:

postfix-2.3.3-2.1.el5_2.i386.rpm安装postfix服务。

安装命令:

rpm -ivh/mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm。

命令执行后,如果出现图3.11.3所示的结果,则表示postfix服务安装成功。

图3.11.3成功安装postfix的过程

3.Postfix邮件服务的配置

Postfix的主要配置文件是/etc/postfix/main.cf。

按照默认值也可以运行,但它只监听127.0.0.1这个接口的邮件收发,如果要使它能够支持客户端完成最基本的邮件收发任务,通常还需要进行下面的设置,修改/etc/postfix/main.cf文件内容。

(1)设置运行postfix服务的邮件主机的主机名、域名

用myhostname参数指定运行postfix服务的邮件主机的主机名称(FQDN名),而用mydomain参数指定该主机的域名称。

myhostname=mail.teac

mydomain=teach.com

当然这两个参数也可以不进行设置,缺省情况下,myhostname参数被设置为本地主机名,而且postfix自动将myhostname参数值的第一部分删除并将其余部分作为mydomain参数的值。

(2)设置由本机寄出的邮件所使用的域名或主机名称

myorigin参数实际上是设置由本台邮件主机寄出的每封邮件的邮件头中mailfrom的地址。

建议用户将myorigin参数设置为本地邮件主机的域名(即:

myorigin=teach.com或$mydomain),这样一封由本地邮件主机寄出的邮件的邮件头中就会含有如类似“From:

“username”c:

\iknow\docshare\data\cur_work\mailto:

”这样的内容,显然更具有可读性。

ﻩmyorigin=$mydomain

(3)设置postfix服务监听的网络接口

默认时,inet_interfaces参数的值被设置为localhost,表明只能在本地邮件主机上寄信。

如果邮件主机上有多个网络接口,而又不想使全部的网络接口都开放postfix服务,就可以用主机名指定需要开放的网络接口。

不过,通常是将所有的网络接口都开放,以便接收从任何网络接口来的邮件,即将inet_interfaces参数的值设置为“all”。

ﻩinet_interfaces=all

(4)设置可接收邮件的主机名称或域名

mydestination参数非常重要,因为只有当发来的邮件的收件人地址与该参数值相匹配时,postfix才会将该邮件接收下来。

例如,这里将该参数值设置为$mydomain和$myhostname,(其中,xxx表示某用户的邮件帐户名),还是,postfix都会接收这些邮件。

ﻩmydestination =$myhostname, $mydomain

(5)设置可转发(Relay)哪些网络的邮件

可以使用mynetworks参数来设置。

可将该参数值设置为所信任的某台主机的IP地址,也可设置为所信任的某个IP子网或多个IP子网(用“,”或者“”分隔)。

这里,将mynetworks参数值设置为192.168.1.0/24,则表示这台邮件主机只转发子网192.168.1.0/24中的客户端所发来的邮件,而拒绝为其他子网转发邮件。

mynetworks=192.168.1.0/24

(6)设置可转发哪些网域的邮件

mynetworks参数是针对邮件来源的IP来设置的,而relay_domains参数则是针对邮件来源的域名或主机名来设置的。

例如,将该参数值设置为teach.com,则表示任何由域teach.com发来的邮件都会被认为是信任的,postfix会自动对这些邮件进行转发。

现在将该参数值设置为$mydestination,实际包含了mail.teach.com和teach.com。

relay_domains=$mydestination

(7)重新启动postfix服务

使用命令/etc/init.d/postfixrestart重新启动postfix服务。

完成了上面的基本设置后,重新启动postfix服务后,这台postfix邮件主机就基本准备好了。

但是目前它仅支持客户端发信,还不支持收信。

4.SMTP认证的配置

Postfix默认不会对外开放转发功能,而仅对本机(localhost)开放转发功能。

实际应用中,虽然必须在Postfix主配置文件中通过设置mynetworks、relay_domains参数来开放一些所信任的网段或网域,但是,还必须通过SMTP认证,对要求转发邮件的客户端进行用户身份(用户帐户与密码)验证。

只有通过了验证,才能接收该用户寄来的邮件并帮助转发。

目前,常用的SMTP认证机制是通过Cyrus SASL软件来实现的。

以下是实现使用CyrusSASL软件实现SMTP认证的具体方法。

(1)检测Cyrus-SASL认证包的安装

RedHatEnterpriseLinux系统默认将安装Cyrus-SASL认证包。

可查看其安装了什么版本。

图3.11.4表明默认安装的Cyrus-SASL认证包版本是2.1.22-4(V2版)。

但相关程序还未安装完全。

图3.11.4 检测Cyrus-SASL安装情况

进一步运行下面的安装Cyrus-SASL认证包相关的程序:

rpm-ivh /mnt/cdrom/Server/cyrus-sasl-gssapi-2.1.22-4.i386.rpm

rpm -ivh/mnt/cdrom/Server/cyrus-sasl-md5-2.1.22-4.i386.rpm

(2)Cyrus-SASLV2的密码验证机制

默认情况下,Cyrus-SASLV2版使用saslauthd这个守护进程进行密码认证,使用saslauthd -v命令可以查看当前系统中的Cyrus-SASLV2所支持的密码验证机制。

图3.11.5 查看系统中的Cyrus-SASLV2所支持的密码验证机制

使用saslauthd-v命令的执行情况如图3.11.5所示,说明了当前可使用的密码验证方法有getwent、kerberos5、pam、rimap、shadow和ldap。

现在采用shadow验证方法,也就是直接用邮件服务器Linux系统的/etc/shadow文件中的用户帐户及密码进行验证。

因此,在配置文件/etc/sysconfig/saslauthd中,应修改当前系统所采用的密码验证机制为shadow,即修改/etc/sysconfig/saslauthd文件中的内容,将

默认的语句MECH=pam修改为MECH=shadow。

修改后的结果如图3.11.6所示。

图3.11.6采用shadow验证时/etc/sysconfig/saslauthd文件内容

(3)测试Cyrus-SASLV2的认证功能

由于Cyrus-SASL V2版默认使用saslauthd这个守护进程进行密码认证,因此需要使用下面的命令:

psaux|grepsaslauthd来查看saslauthd进程是否已经运行。

如果命令ps aux|grepsaslauthd执行的结果类似于图3.11.7所示,表明saslauthd进程已经在运行。

图3.11.7捕获正在运行的saslauthd进程

如果没有发现saslauthd进程,则可用下面的命令启动该进程并设置它开机自启动。

/etc/init.d/saslauthd start

chkconfig saslauthdon

假定这个Linux邮件服务器系统已有两个普通用户teacher和student,密码分别是“qwerty”和“poiuyt”,然后,可用下面的命令测试saslauthd进程的认证功能。

测试teacher账号认证的命令如下:

/usr/sbin/testsaslauthd-u teacher-p'qwerty'

图3.11.8所示的结果,则表示通过teacher、student账号和密码的认证,说明saslauthd的认证功能已起作用。

图3.11.8 使用saslauthd的认证teacher、student账号和密码

(4)设置postfix启用SMTP认证

要让postfix启用SMTP认证,就必须对postfix的主配置文件/etc/postfix/main.cf进行修改,添加有关SMTP认证的设置,因此,在/etc/postfix/main.cf文件后面添加如图3.11.9所示的内容。

图3.11.9 添加启用SMTP认证内容

在完成上述设置后,必须使用命令/etc/init.d/postfixreload重新载入配置文件,或使用重新启动Postfix服务命令/etc/init.d/postfix restart,重新启动Postfix服务。

此外,由于当Postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpd.conf文件中的内容,以确定所采用的认证方式,因此如果要使用saslauthd这个守护进程来进行密码认证,就必须确保/usr/lib/sasl2/smtpd.conf文件中的内容为这么一句:

pwcheck_method:

saslauthd。

(5)测试postfix是否启用了SMTP认证

经过上面的设置,Postfix邮件服务器应该已具备了SMTP认证功能。

可以采用Telnet命令,连接到Postfix服务器端口25来进行测试,测试过程如图3.11.10所示,测试时当然必须先启动postfix服务,再进行测试。

图3.11.10测试Postfix是否启用了SASL认证

图3.11.10所示的情况表明,输入ehlo命令向远程126.com域发出消息,在随后得到的本地Postfix响应信息中,如果出现第12、13行信息(显示当前Postfix所支持的认证方式),则表明Postfix已启用了SMTP认证功能。

5.启动和停止Postfix服务

(1)启动Postfix服务

启动Postfix服务的命令为:

/etc/init.d/postfixstart

(2)停止Postfix服务

停止Postfix服务的命令为:

/etc/init.d/postfix stop

(3)重新启动Postfix服务

重新启动Postfix服务的命令为:

/etc/init.d/postfixrestart

(4)重新载入Postfix主配置文件

重新载入Postfix主配置文件的命令为:

/etc/init.d/postfix reload

每当修改了Postfix主配置文件/etc/postfix/main.cf后,想要使新的配置生效,虽然可以通过重新启动服务来实现,但是如果当前Postfix服务正在运行,重新启动服务就会花费不少的时间。

最好的方法就是让Postfix重新载入主配置文件的内容,并使新的配置立即生效。

(5)自动启动Posffix服务

如果需要让Postfix服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“postfix”服务,在其前面加上星号(*),然后选择“确定”即可。

6.防火墙与Posffix服务

Postfix服务使用TCP协议的25端口,如果Linux服务器开启了防火墙功能,就应关闭防火墙功能或设置允许TCP协议的25端口通过。

可以使用以下命令开放TCP协议的25端口。

iptables -IINPUT-ptcp--dport25-jACCEPT

7.IMAP邮件服务的实现

Postfix服务只是一个邮件传输代理,它只提供SMTP服务,也就是只提供邮件的转发及本地的分发功能。

要实现邮件的异地接收,还必须安装POP或IMAP服务。

通常情况下,都是将STMP服务和POP或IMAP服务安装在同一台主机上,那么这台主机也就称为电子邮件服务器。

在本例子中采用RedHatEnterprise 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1