《Linux从入门到提高第16章Mail服务器配置》由会员分享,可在线阅读,更多相关《Linux从入门到提高第16章Mail服务器配置(33页珍藏版)》请在金锄头文库上搜索。
1、第16章 Mail服务器配置邮件系统简介邮件系统简介SMTP介绍介绍建立建立Sendmail服务器服务器建立建立Dovecot邮件服务器邮件服务器配置邮件客户端配置邮件客户端防范垃圾邮件防范垃圾邮件本章小结本章小结Linux的电子邮件系统可以划分为三个模块:邮件传递代理(MTA)、邮件存储和获取代理(MSA)、以及邮件客户代理(MUA),下面分别进行介绍。16.1 邮件系统简介16.1.1 邮件传递代理(MTA)Linux系统下的邮件传递代理(系统下的邮件传递代理(Mail Transfer Agent)通常使用通常使用Sendmail,该系统几乎在任何,该系统几乎在任何UNIX平台上都有相平
2、台上都有相应的版本。应的版本。在大多数情况下,安装和设置在大多数情况下,安装和设置MTA系统比较容易,不系统比较容易,不过强大功能的实现是以复杂的设置为代价的。如果用户所在过强大功能的实现是以复杂的设置为代价的。如果用户所在的机构选择定制的的机构选择定制的MTA来满足特定的路由、体系、安全性和来满足特定的路由、体系、安全性和反垃圾邮件等要求,就需要更加复杂的设置选项,配置包括反垃圾邮件等要求,就需要更加复杂的设置选项,配置包括设计并处理设计并处理MTA和各种子系统之间的关系。和各种子系统之间的关系。 一旦安装并设置完成了MTA,还要对MSA(Mail Submission Agent)系统进行
3、同样的配置。如今大多数机构并不直接将邮件传送到桌面客户系统,而是将邮件存储到服务器,让用户通过POP或IMAP来读取各自的邮件。16.1.2 邮件存储和获取代理(MSA)16.1.3 邮件客户代理(MUA)邮件客户代理MUA(Mail User Agent)有很多种,它们大都遵循POP和IMAP协议。在Linux系统下,许多用户使用Fetchmail抓取邮件并保存在本地邮箱,然后使用任何一种邮件客户代理,例如elm、pine、mutt、MH/exmh、rmail,vmail、mh-e、gnus、以及带有GUI界面的Balsa、Mahogany等来处理邮件。SMTP(Simple Mail Tr
4、ansfer Protocol)协议是为了保证电子邮件的可靠和高效传送。TCP/IP协议的应用层中包含有SMTP协议,但事实上它与传输系统和机制无关,仅要求一个可靠的数据流通道。该协议可以工作在TCP协议上,也可以工作在NCP、NITS等协议上。在TCP上,它使用端口25进行传输。SMTP的一个重要特点是可以在可交互的通信系统中转发邮件。16.2 SMTP介绍SMTP提供了一种邮件传输的机制,当接收方和发送方都在一个网络上时,可以把邮件直传给对方;当双方不在同一个网络上时,需要通过一个或几个中间服务器转发。SMTP首先由发送方提出申请,要求与接收方SMTP建立双向的通信渠道,接收方可以是最终收
5、件人也可以是中间转发的服务器。接收方服务器确认可以建立连接后,双发就可以开始通信。16.2.1 SMTP的模型SMTP定义了15个命令,它们分别是:HELO、MAIL FROM、RCPT TO、DATA、RSET、SEND FROM、SOML FROM、SAML FROM、VRFY、EXPN、HELP、NOOP、QUIT、TURN。其中,HELO、MAIL FROM、RCPT TO、DATA、REST、NOOP和QUIT这7个命令是SMTP工作的基础。16.2.2 SMTP的基本命令16.2.3 电子邮件介绍电子邮件的工作过程遵循客户/服务器模式。每封电子邮件的发送都要涉及到发送方和接收方,发
6、送方构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。16.2.3 电子邮件介绍邮件的结构邮件的结构03. Subject: Explaination of mail format04. Date: Thu, 01 Jul _. 18:06:23 GMT05.06
7、. Hi, Jack 07. This mail is to explain you the mail format08. - - - -09. Thanks10. Bob 16.2.3 电子邮件介绍邮件的信头邮件的信头 Date: Thu, 01 Jul 2010 15:36:23 GMTSubject: GreetingsReceived: from ( 153.42.0.9) by (8.13.8/8.13.8) with ESMTP id LAA20869; Thu, 01 Jul 2010 15:37:06 GMTReceived: from ( 153.42.0.9) by
8、 (8.13.8) id 004A21; Thu, 01 Jul 2010 15:36:23 GMTDate: Thu, 01 Jul 2010 15:36:23 GMTSubject: Greetings由于技术的原因,在80年代前,网络还不是很健全,计算机之间很少能直接对话发送邮件,人们必须找出一条有效的连接通道来,然后信件沿着通道一步一步传送到目的地。SMTP协议中就明确指出当邮件在不同的网络间传送时,需要借助中间服务器的Relay。邮件在接收方和发送方之间会经过毫不相干的第三方服务器,这就是邮件转发(Relay)。16.2.4 Open Relay的原理本节将首先给出Sendmail服
9、务器的安装与启动方法,然后详细介绍各个配置文件,最后讨论一些实际应用问题。16.3 建立Sendmail服务器Sendmail邮件服务器有两种安装方法:从安装光盘中获取RPM包进行安装,或者从Sendmail的官方站点下载软件的源代码,编译后安装。#service sendmail start#service sendmail status16.3.1 安装与启动Sendmail是Sendmail的配置文件,一般情况下位于/etc/mail目录下。安装Sendmail完成之后,会自动生成一个适合本系统使用的文件,同时在目录下还有许多适应各类系统的文件样本,根据文件名可以判断它们适用的场合,如果
10、需要可以选择它们替换原有的文件。配置文件中的命令: D:定义宏 V:配置版本级别 C与F:定义类 M:定义邮件传输程序 O:设置选项 H:定义邮件的首部格式 T:定义可信任的用户 R:定义重写规则 P:设置优先级 S:设置重写规则集 K:关键文件声明16.3.2 设置由于的语法深奥难懂,很少有人会直接去修改该文件来对Sendmail服务器进行配置。一般通过m4宏处理程序来生成所需的文件,该过程中需要一个模板文件,默认情况下位于/etc/mail目录下。 备份原有文件 根据模板文件生成文件,并导出到/etc/mail/目录下 重启sendmail服务# service sendmail rest
11、art16.3.3 使用文件在Linux系统中,要为一个新的用户开通E-mail账号非常简单。只要在系统中新增一个用户就可以了,系统将为每个新建的用户默认提供一个邮件账号。例如要为一个新用户test开通E-mail账号,可以使用如下命令:# adduser test# passwd test16.3.4 创建新的邮件账号在邮件的使用过程中,有一些用户希望使用多个E-mail地址,但Linux并不会给这些用户分配多个IP地址,否则,这样将会增加对账号管理的难度。Linux系统提供了一种方法:设置账号别名。16.3.5 设置账号别名16.3.6 使用access数据库是一个散列表数据库,位于是一个
12、散列表数据库,位于/etc/mail目录下,它是目录下,它是使用使用access文件生成的,该文件为纯文本文件,其格式文件生成的,该文件为纯文本文件,其格式如下:如下:地址地址 操作操作 地址:地址: domain:用户域内所有主机:用户域内所有主机 ip address:网段内的或特定的主机:网段内的或特定的主机 usedomain:特定的邮件地址:特定的邮件地址 uer:用户名为:用户名为user的邮件的邮件16.3.6 使用access数据库操作: OK:无条件接受或发送 RELAY:允许SMTP中继邮件 REJECT:拒绝接受并给出错误信息 DISCARD:丢弃邮件,但不提供错误信息、
13、 RELAY10.0.6.134RELAY192.168.10 RELAY REJECT16.3.7 配置带SMTP认证的Sendmail服务器使用access数据库可以管理用户,合法地使用SMTP服务器进行邮件的传递。然而,随着用户的不断增多,而且很多用户都是在一个网段内,如果仅仅依靠access数据库,很难有效地管理SMTP服务器的使用,那样会使得access数据库规模增大,管理混乱,从而造成效率降低,甚至是出错。这样,既不能保障一些合法用户正常地使用邮件服务器的Open Relay功能,也给一些不法的用户提供了可趁之机,他们可以利用这来发送一些垃圾邮件和一些非法邮件。所以,非常有必要使R
14、HEL 5发行套件自带的身份认证程序库,配合Sendmail服务器一起使用,对使用SMTP服务的用户进行身份认证,从而确保该服务的合法使用。Sendmail服务器配置完成之后,就可以完成邮件的发送工作了。如果要使用POP3和IMAP协议接收邮件,还需要安装相应的软件包。RedHat Enterprise Linux 5使用Dovecot做POP3 /IMAP服务器。Dovecot是一个比较新的软件,由Timo Sirainen开发,最初发布于_年_月,在安全性方面比较出众。16.4 建立Dovecot邮件服务器Dovecot有两种安装方法:从安装光盘中获取RPM包进行安装,或者从其官方站点下载
15、软件的源代码,编译后安装。16.4.1 安装Dovecot服务器Dovecot安装完成之后,就可以对其进行配置了,Dovecot的配置文件为,位于/etc或/usr/local/dovecot/etc目录下。# Dovecot configuration file# 支持imap imaps pop3 pop3s协议protocols = imap imaps pop3 pop3s# 设置邮件位置# mail_location = maildir:/Maildir# mail_location = mbox:/mail:INBOX=/var/mail/%u# mail_location = m
16、box:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n# IMAP相关设置protocol imap # Login executable location. #login_executable = /usr/libexec/dovecot/imap-login .16.4.2 配置Dovecot服务器# POP3相关设置protocol pop3 # Login executable location. #login_executable = /usr/libexec/dovecot/pop3-login .# 本地投递代理设置protoco
17、l lda # 发送拒绝信时使用的邮件地址 # 默认的认证设置auth default # 使用plain认证机制 mechanisms = plain .16.4.2 配置Dovecot服务器启动Dovecot服务器:# service dovecot start查看Dovecot的状态:# service dovecot status16.4.3 启动Dovecot服务器下面通过一个实例来介绍如何在Linux系统中,使用Sendmail和Dovecot来发送/接收邮件。16.4.4 发送/接收邮件实例在Sendmail和Dovecot安装和启动之后,就可以发送/接收邮件了。但由于命令行方式
18、的使用比较麻烦而且需要一定的背景知识,所以普遍的方式是使用一些邮件客户端软件来发送和接收邮件。16.5 配置邮件客户端16.5 配置邮件客户端电子邮件的廉价和操作简便在给人们带来巨大便利的同时,也诱使一些人将它作为大量散发自己信息的工具,最终导致了Internet世界中垃圾邮件的泛滥。垃圾邮件不仅会消耗了网络资源,也给人们带来了极大的不便。据统计,_年第1季度垃圾邮件在本季度平均占所有电子邮件流量的83%。16.6 防范垃圾邮件广泛使用的防范垃圾邮件技术: SMTP用户认证技术 逆向DNS解析 实时黑名单过滤 白名单过滤 内容过滤16.6.1 常用技术 关闭Sendmail的Relay功能 在Sendmail中添加RBL功能 打开Sendmail的SMTP认证功能16.6.2 使用Sendmail防范垃圾邮件16.7 本章小结本章主要知识点:本章主要知识点: 邮件系统的原理邮件系统的原理 SMTP模型及基本命令模型及基本命令 电子邮件的构成电子邮件的构成 配置和使用配置和使用Sendmail发送邮件发送邮件 配置和使用配置和使用Dovecot接受邮件接受邮件 垃圾邮件的概念及其防范措施垃圾邮件的概念及其防范措施