第14章 实现MAIL服务.docx
- 文档编号:9998924
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:21
- 大小:278.99KB
第14章 实现MAIL服务.docx
《第14章 实现MAIL服务.docx》由会员分享,可在线阅读,更多相关《第14章 实现MAIL服务.docx(21页珍藏版)》请在冰豆网上搜索。
第14章实现MAIL服务
实现EMAIL服务
本章内容:
⏹电子邮件系统基础
⏹Postfix的安装和配置
⏹配置SMTP/POP客户端
学习目标:
⏹了解电子邮件系统的相关概念
⏹熟悉电子邮件系统的工作原理
⏹掌握sendmail和imap的安装和配置方法
电子邮件(EMAIL)是internet上使用最为广泛的应用之一。
用户可以使用电子邮件实现网络最基本的功能——资源共享和信息传递。
而提供这种对外传送资讯功能的正是本章要介绍的邮件服务器。
一.电子邮件系统基础
电子邮件系统主要使用SMTP协议和POP3等协议完成通信的,本节将具体介绍电子邮件系统的组成及通信过程
1.电子邮件系统的概述
电子邮件翻译自英文的email或e-mail,它是通过电子通讯系统进行信件的书写、发送和接收。
是今天互联网上使用最为广泛的通讯系统。
电子邮件系统拥有收费低廉、传送快速、易于使用等特点。
它可以与世界上任何一个角落的网络用户实现文字、图象、声音等信息的传送。
与传统的邮件系统比较具有如下优点:
●价格低廉、传送快速、易于使用
●可以实现一信多发
●不用担心在邮件的发送和接收的过程中被中断
●可以在任何地方,任何时间发送和接收电子邮件
2.电子邮件系统的组成
若想使用电子邮件系统,用户首先需要有个电子邮箱(electronicmailbox),每个电子邮箱都有唯一的电子邮件地址(e-mailaddress)。
而完整的电子邮件地址必须包含两个部分:
用户名(标识用户)和域名(标识计算机),中间采用“@”符号连接。
如:
linux@
整个电子邮件系统主要由电子邮局系统、电子邮件投递系统、电子邮件的发送/接收系统组成。
(1)电子邮局系统
电子邮局系统就像传统的邮局一样,它在邮件的发送方和接收方充当桥梁的作用。
在电子邮件的术语中,将电子邮件系统称为邮件传输代理(MTA)。
MTA是电子邮件系统中负责处理信件收发工作的服务端程序。
它负责邮件的存储和转发,MTA会监视用户代理的请求,根据电子邮件的目标地址找出相对应的邮件服务器,将信件在服务器之间传输并且将收到的信件进行缓冲。
由MTA根据目标地址选择合适的主机进行转发。
其主要功能有:
●接收和转发信件
●维护邮件队列
●将客户发送过来的邮件存储在缓冲区
●回应使用者的收信要求
目前运行在电子邮局服务器上的服务端程序最为常用的是microsoftwindows中的exchange和linux中的sendmail、qmail、postfix。
本章主要介绍的是sendmail的使用。
(2)电子邮件投递系统
电子邮件传递系统,在电子邮件的术语中称为邮件交付代理(MDA)。
MDA是电子邮局系统中MTA下的一个小程序,主要负责分析MTA所收到的信件表头或内容,然后再决定邮件去向。
其实就是将MTA所收到的邮件传送到用户的邮箱中去。
因此MDA还有过滤垃圾信件和自动回复等功能。
大多数linux操作系统使用procmail或Mailscanner+Spamassassion作为MDA来接受邮件服务器的消息并发送到用户帐户。
(3)电子邮件发送/接收系统
电子邮件的发送/接收系统,在电子邮件的术语中称为邮件用户代理(MUA)。
MUA是电子邮件系统中负责信件的编写、处理、阅读的客户端程序。
最常用的是microsoftwindows中的outlookexpress,foxmail和linux中的pine、elm、kmail、thunderbird等。
MUA为用户与MTA之间建立联系的接口工具。
当邮件发送时,利用SMTP协议将用户的信件提交给MTA程序,当接收邮件时,使用POP或IMAP协议将目标邮件从MTA上接受下来,传送给用户阅读。
其主要功能有:
●编写邮件
●阅读邮件
●处理邮件(如删除、转发、整理、存储等)
3.电子邮件系统的工作协议
一般来说,电子邮件系统工作过程所需的协议有3个:
SMTP、POP和IMAP,如图13-1所示。
图13-1邮子邮件工作过程
(1)SMTP协议
SMTP(SimpleMailTransferProtocol)协议称为简单邮件传输协议。
是为了保证电子邮件的可靠和高效传送。
TCP/IP协议的应用层中包含有SMTP协议,它工作在TCP上,它使用端口25进行传输。
在整个电子邮件系统中,有两处需要使用smtp:
一处是电子邮件从客户机传输到服务器,另一处是电子邮件从某一个服务器传输到另一个服务器。
SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。
响应包括一个表示返回状态的三位数字代码。
表13-1列出常用的SMTP命令。
表13-1常用的SMTP命令集
命令
说明
HELO
向服务器标识用户身份
MAILFROM
指明发件人地址
RCPTTO
指明收件人地址
DATA
初始化数据传输,以.结束
REST
废弃一个邮件消息
VRFY
验证指定的用户/邮箱是否存在
EXPN
验证给定的邮箱列表是否存在,扩充邮箱列表,被禁用
HELP
查询服务器命令和命令的说明
NOOP
无操作,服务器应响应OK
QUIT
结束会话
RSET
重置会话,当前传输被取消
SMTP的一个重要特点是可以在可交互的通信系统中转发邮件,SMTP连接和发送过程如下。
(1)建立TCP连接
(2)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令服务器端正希望以OK作为响应,表明准备接收
(3)客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行
(4)协商结束,发送邮件,用命令DATA发送邮件内容,以.表示结束输入内容一起发送出去(5)结束此次发送,用QUIT命令退出
SMTP服务器基于DNS中的MX记录来路由电子邮件,MX记录注册了域名和相关的SMTP的接收主机,属于该域的电子邮件都应向该主机发送。
所以,在配置SMTP服务器时必须配置DNS服务的MX记录。
(2)Pop3协议
POP(postofficeprotocol)协议称为邮局协议,目前已发展到第三版,称为POP3。
Pop3监听的是110端口,提供邮件下载和脱机阅读。
POP3协议要检测用户登录名和口令,它是一种请求——响应式协议,由客户端向服务器发送命令,服务器进行响应。
(3)imap协议
Imap是pop的替代品,它除了具备pop协议的基本功能以外,还具备对邮箱同步的支持。
即提供了如何远程维护服务器上的邮件的功能,它监听的是143端口,由客户端向服务器发送命令,服务器进行响应。
与POP不同的是,IMAP允许用户邮件服务器上设置可以组织邮件的多个文件夹,它也支持使共享文件夹,几个用户可以共享关于某个主题的邮件。
IMAP4是IMAP的最新版本,它允许使用电子邮件程序来访问邮件服务器上电子邮件和公告栏信息。
4.Postfix简介
(1)Postfix是Linux平台下一个非常优秀的MAIL服务器产品,和sendmail相兼营
(2)Postfix具有高效率,其速度可达到sendmail的三倍
(3)Postfix具有良好的安全性
(4)Postfix可靠、健壮
二.Postfix的安装和配置
1.安装Postfix
#rpm-ivhpostfix-1.1.12-.7.i386.rpm
相关文件:
main.cf:
postfix主要配置文件
main.cf.default:
postfxi主要配置文件的样本文件
master.cf:
master进程的配置文件
2.Postfix的基本配置
#vi/etc/postfix/main.cf
文件格式:
参数=参数值
…
参数=$参数
………
常用配置参数:
(1)基本配置参数
Mail_owner=用户名
指定Postfix的邮件队列和守护进程的所属用户
Myhostname=主机名
指定运行Postfix服务的邮件主机的主机名称
Mydomain=域名
指定运行Postfix服务器所属的域名称
Myorigin=域名
指定由本地Postfix服务器寄出去的邮件头中mailfrom的地址
Inet_interfaces=all/主机名
指定Postfix监听的网络接口
Mydestination=域名/主机名
指定Postfix可接收的主机名或域名
Mynetworks_style=class/subnet/host
设置可转发邮件的网络类型
Mynetworks=IP地址/IP网络号[,…]
设置Postfix可转发哪些网络的邮件,该参数与mynetwork-sytle类似,一般只设置该参数,而不设置mynetworks_style
Relay_domain=域名
设置可转发来自哪些域的邮件
Notify_classes=delay/software/protocol…
设置服务器出现问题,Postfix会向管理员发送邮件报告错误
(2)性能限制
default_process_limit=数字
用于限定SMTP服务的最大同时连接数量
local_destination_concurrency_limit=数字
用于设置同时向本地同一个用户投递的邮件的最大数量
Initial_destination_concurrency=数字
用于设置对同一地址的最大同时初始连接数
Default_destination_concurrency_limit=数字
用于控制同时向同一服务器发送的为邮件的最大数量
Default_destination_recipent_limit=数字
用于设置同一封邮件可以最多发送给多少个接收者
Queue_run_delay=数字
用于设定队列处理程序对拖延邮件的扫描周期
maximal_queue_lifetime=数字
用于设定队列处理程序对滞留邮件的最长保存期
minimal_backoff_time=数字
用于设定队列处理程序对无法投递的邮件的最短巡回时间
smtpd_error_sleep_time=数字
当SMTP服务端口接收到非法的命令时,系统将缓冲处理的时间间隔
smtpd_soft_error_limit=数字
SMTP服务所允许的软错误次数。
这个参数对于防止恶意攻击非常有效。
smtpd_hard_error_limit=数字
SMTP服务所允许的硬错误次数。
这个参数对于防止恶意攻击非常有效。
(3)资源限制
line_length_limit=数字
设定SMTP所接受的最长字符行的长度
Message_size_limit=数字
用于限定系统所接受的最大的单封邮件长度
extract_recipient_limit=数字
限制扩展的收件人数量限制
header_size_limit=数字
设定SMTP所接受的最长邮件头部信息的长度
bounce_size_limit=数字
用于设定弹回的最大邮件尺寸
Queue_minfree=数字
设置邮件队列所在文件系统最少要剩余的存储空间
(4)过滤参数
header_checks=regexp:
表达式/pcre:
表达式
用于过滤邮件的头部信息
smtpd_client_restrictions=值
邮件服务器的各种客户端以及其他服务器进行限制,该参数值有:
-reject_unknown_client拒绝不能IP反向解析的地址;
-permit_mynetworks允许子网中的连接;
-check_client_accessmaptype:
mapname检测在mapname文件中设定的规则;
-reject_maps_rbl拒绝符合rbl行为条件的连接。
-reject_unauth_pipelining拒绝为认证的管道连接。
smtpd_helo_required=no/yes
邮件系统是否在SMTP连接时必须进行HELO或EHLO握手
smtpd_helo_restrictions=值
当HELO握手必须时,该参数用于验证握手信息是否符合要求.
-reject_invalid_hostname拒绝错误的hostname。
-permit_naked_ip_address拒绝裸IP地址。
-reject_unknown_hostname拒绝为被DNSA或MX纪录指定的域名。
-reject_non_fqdn_hostname拒绝不符合域名规则的域名。
-check_helo_accessmaptype:
mapname根据mapname中设定的信息限制。
smtpd_sender_restrictions=值
设定发信人地址必须符合的规则,可以设定以下参数:
-reject_unknown_sender_domain拒绝为没有DNSA或MX纪录的发信人域名。
-check_sender_accessmaptype:
mapname根据mapname文件中的规则设定。
-reject_non_fqdn_sender拒绝不符合规则的发信人地址
smtpd_recipient_restrictions=值
设定特殊的发信人地址参数限制,可以选择的参数有:
-check_relay_domains检测转发域。
-permit_auth_destination允许经过认证的目的地。
-reject_unauth_destination拒绝为经过认证的目的地。
-permit_mx_backup允许反查询MX主机名称。
-check_recipient_accessmaptype:
mapname根据mapname文件中设定的规则限制。
-reject_unknown_recipient_domain拒绝转发到没有DNSA或MX纪录的域名。
-reject_non_fqdn_recipient拒绝不符合规则的转发目标。
-reject_unknown_sender_domain拒绝没有IP反解析纪录的发件人域名。
3.虚拟域的配置
(1)认识虚拟域
虚拟域可以将发给虚拟域的邮件投递到真实域的用户邮箱中,实现邮件群发作用
(2)配置方法
#vi/etc/postfix/main.cf
添加如下行:
Virtual_alias_domains=
Virtual_alias_maps=hash:
/etc/postfix/virtual
#vi/etc/postfix/virtual
@@
admin@ad1,ad2,ad3
#postmap/etc/postfix/virtual(会自生成virtual.db文件)
4.用户别名配置
(1)认识用户别名
用户别名即为本地真实用户建立别名,主要用于实现邮件群发和隐藏真实邮件
(2)配置方法
#vi/etc/postfix/main.cf
添加如下内容:
Alias_maps=hash:
/etc/aliases
Alias_database=hash:
/etc/aliases
#vi/etc/aliases
Mail1:
s1,s2,s3@
Mail2:
:
include:
/etc/mail/ut303
#postalias/etc/aliases
5.SMTP认证的配置
(1)认识SMTP认证
邮件服务器可以对信任网段/域进行邮件转发,但是可以通SMTP认证对转发邮件的客户端进行身份验证,确保只有通过用户验证才可以转发邮件
(2)安装认证包
#rpm–ivhcyrus-sasl-1.5.24-25.i386.rpm
#rpm–ivhcyrus-sasl-md5-1.5.24-25.i386.rpm
#rpm–ivhcyrus-sasl-plain-1.5.24-25.i386.rpm
(3)配置postfix支持身份验证
#vi/etc/postfix/main.cf
Smtpd_sasl_auth_enable=yes
Smtpd_recipient_restrictions=permit_mynetworks
Smtpd_sasl_security_options=noanonymous
Smtpd_sasl_auth_clients=yes
(4)配置smtpd.conf
#vi/usr/lib/sasl/smtpd.conf
Pwcheck_method:
pam
(5)设置shadow文件和pam文件
#vi/etc/pam.d/smtp
Authrequired/lib/security/pam_stack.soservice=system-auth
Accountrequired/lib/security/pam_stack.soservice=system-auth
#chgrppostfix/etc/shadow
#chmod440/etc/shadow
13.3配置SMTP/POP客户端
MAIL客户端可以利用用户邮件程序编辑邮件、下载邮件及发送邮件,目前在Windows主机上常用的邮件程序有OutlookExpress和Foxmail两种,本节以WindowsXP为例讲解OutlookExpress的配置和使用方法。
OutlookExpress是由Microsoft公司出品的费软件,与Windows操作系统捆绑发行。
OutlookExpress的功能强大,具有完善的中文界面,操作简单等特点。
下面向大家介绍OutlookExpress的使用方法。
1.启动OutlookExpress
在WindowsXP环境下,用户可以通过单击“开始”菜单,选择“OutlookExpress”选项即可OutlookExpress软件,图13-2为OutlookExpress的主界面。
图13-2OutlookExpress主界面
2.建立邮件账号
(1)在OutlookExpreess主界面中,单击“工具”菜单,选择“帐号”,出现如图13-3所示的“internet帐号”对话框。
图13-3“internet帐号”对话框
(2)在“Internet帐号”对话框选择“邮件”标签,出现13-4所示“邮件”选项卡,点击“添加”按钮并选择“邮件”选项,将打开“Internet连接”向导,如图13-5所示。
图13-4“邮件帐号”对话框
图13-5“Internet连接向导”对话框
(3)在Internet连接向导对话框中输入显示名称,点击“下一步”按钮,打开“Internet电子邮件地址”对话框,如图13-6所示。
图13-6“Internet电子邮件”对话框
(4)在“电子邮件地址”文本框中输入用户的电子邮件地址,点击“下一步”按钮继续向导,出现如图13-7所示的“电子邮件服务器名”对话框。
图13-7“电子邮件服务器名”对话框
(5)在“电子邮件服务器名”对话框中,单击“下一步”按钮,打开“InternetMail登录”对话框,如图13-8所示。
图13-8“InternetMail登录”对话框
(6)在“InternetMail登录”对话框中输入登录用户名和口令,点击“下一步”即可完成帐号的建立过程。
3.编辑和发送邮件
在OutlookExpress主界面中,选择“创建”工具按钮,出现如图13-9所示“新邮件”窗口。
图13-9“新邮件”窗口
在“新邮件”窗口输入输入邮件的收件人地址,抄送地址,主题和邮件内容之后,点击工具栏中的“发送”按钮即可发送邮件。
4.接收邮件
用户通过点击OutlookExpress主界面中的“发送/接收”工具按钮,就可以从POP/IMAP服务器下载邮件,进行脱机阅读。
如图13-10所示。
图13-10 接收邮件
通过OutlookExpress的操作,用户就可以检验出邮件服务器是否能够正常的收发邮件。
13.4Sendmail配置案例
Sendmail的配置相对比较麻烦,下面给出一个配置案例,配置一台邮件服务器,使用sendmail作为域的STMP服务器,并达到以下要求。
●Sendmail监听IP地址192.168.0.1的接口
●Sendmail的本地主机名为和
●转发域内所有用户到任何位置的邮件
●为root用户建立邮件别名admin
●邮件服务器支持POP3协议,允许用户下载邮件
安装sendmail和imap软件之后,具体的配置过程如下。
//配置的DNS解析,并建立MX记录
#vi/etc/named.conf
添加以下内容
zone“”IN{
typemaster;
file“abc.zone”;
allow-update{none;};
};
#vi/var/named/abc.zone//使用vi建立的区域文件abc.zone
#cat/var/named/abc.zone
$TTL86400
$ORIGIN.
@1DINSOA..(
1288
2H
15M
1W
1D)
INNS.
INA192.168.0.1
dnsINA192.168.0.1
wwwINA192.168.0.2
mailINA192.168.0.2
INMX10.
#servicenamedstart
//修改sendmail.mc文件,配置sendmail
#vi/etc/mail/sendmail.mc
在默认文件的修改下列选项为
DAEMON_OPTIONS(`Port=smtp,Addr=192.168.0.1,Name=MTA')dnl
LOCAL_DOMAIN(‘')dnl
//配置为域内用户转发邮件
#vi/etc/mail/access
添加如下内容
RELAY
#cd/etc/mail/access
#makemaphashaccess.db //配置root用户的别名为admin #vi/etc/aliases 添加以下内容 admin: root #newaliases //配置sendmail的本机的主机名 #vi/etc/mail/local-host 添加以下内容 //启动sendmail和pop服务 #servicesendmailstart #vi/etc/xinetd.d/pop3 修改disable选项为 disable=no #servicexinetdrestart 小结 EMAIL服务利用SMTP传输协议进行相互通信,实现资源共享。 Linux系统可以利用sendmail架设EMAI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第14章 实现MAIL服务 14 实现 MAIL 服务