⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0380sendmail.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<center><img src="0380sendmail_files/0380sendmail-2.jpg" nosave="" height="338" width="476"><br><a name="fig_02"></a><font color="#000066">图二、客户端收受邮件主机的电子邮件示意图</font></center> <br>远程用户使用的计算机直接连接到他的 MTA ,跟 MTA 要求察看自己的 mailbox是否有信件,而 MTA 透过 MDA 去检查之后,如果有信件的话,就会将他传送回使用者的MUA 中!同时,根据 MUA 的不同设定, MTA 会选择将该 mailbox 清除掉,或者继续保留!若继续保留的话,那么下次使用者再次的接收信件时,保留的信件会再次的被下载,因此,通常使用者MUA 都是预设删除掉 MTA 上面的 Mailbox 内容的!接下来我们得谈一谈,那么寄信与收信使用的是什么协议呢?</blockquote><blockquote><hr width="100%"><a name="theory_protocol"></a><font size="+1" color="#000099">使用的协议</font></blockquote><blockquote>总是得了解一下使用的协议吶!我们在寄信的时候,亦即由 MUA 将信件发送到MTA 的过程中,以及 MTA 将信转递到下一个 MTA 的功能,目前绝大部分的邮件主机都是使用<font color="#000066">SMTP ( Simple Mail Transfer Protocol )</font> 这个协定,port number 为25 啦!在寄信的时候,你的 MUA 会主动的连接 MTA 的 port 25 ,然后将信经由MTA 的 smtp 协议 ( port 25 ) 而送出去!而邮件主机 MTA 在转递的时候,也是经由下一部MTA 的 port 25 来将信送出去的!所以啰,不论你是使用什么 MUA 或 MTA 邮件架设软件,只要大家都支持smtp ,那么信件就可以顺利的流传啰!</blockquote><blockquote>收信呢?收信则是 MUA 经由 <font color="#000066">POP ( PostOffice Protocol )</font> 协议来连接到 MTA 的使用者 Mailbox,以读取或者下载使用者在Mailbox 当中的信件。,目前常用的 POP 协议为 POP3 ( Post Office Protocolversion 3 ),这个协议产生的 port number 为 110 ,所以,你的 MUA 经由 MTA的 port 110 将信件由 MTA 的 mailbox 当中将信件收到本地端的 MUA 上面供你浏览!同样的,只要MTA 与 MUA 同时支持 POP3 这个协议,那么信件就可以自由的收受了!此外,目前也很流行使用IMAP 这个协定来收受信件。在 pop3 的收信协议中,一般来说,当 client 端收完了主机端的信件之后,则该信件会主动的被主机端所删除!不过,IMAP 则可以避免这个问题! IMAP 具有让使用者 ( client 客户端 ) 自行定义信件放置的目录功能,以及是否要储存下载的信件之后,原信件是否保留在主机上面的功能!目前我们常见的Web 接口的电子邮件使用,大部分就是以 imap 来达成的!</blockquote><blockquote>所以我们知道了!<b><font color="#000066">通常一部提供收发信件的MTA ( 不考虑 Web 接口的邮件主机 ) 至少需要两个协议,分别是 SMTP 与 POP3!</font></b>而且,只要你的 MUA 与 MTA 同时均支持 SMTP 与 POP3 ,那么彼此就可以沟通啰!这也是为什么你使用Outlook express 寄出的信,但是你的朋友可以使用 Netscape 收下来的原因!总之,就是『网络协议』的沟通啦!<br> <br><hr width="100%"><a name="theory_relay_auth"></a>	<font size="+1" color="#000099">什么是Relay 与认证机制</font></blockquote><blockquote>由<a href="#fig_01">图一的寄信流程图</a>里面的第三步骤 ( step3 ) 中,我们知道, MTA 在分析收到的邮件之后,如果收件者不是本身主机的账号,则会将该信件再传送到下一个MTA 上面,<b><font color="#000066">这个由 MTA 帮忙转信的功能就称为 Relay啦</font></b>。那么在这个功能当中,您有没有发现一件奇怪的事情啊!那就是:『<b><font color="#000066">是否任何人都可以使用我的MTA 邮件主机服务器来传送他的邮件呢?</font></b>』这个问题涉及到 Mail Server的设定技巧了!如果设定不良的话,例如早期的 Sendmail 版本中,他就没有针对使用者来进行管制,也就是说,任何人都可以使用这样的一部邮件主机来达到信件传送的目的!<b><font color="#000066">这种主机我们称为『OpenRelay』的电子邮件主机喔</font></b>!这里请仔细的思考一下,如果我的 MTA对于寄信的人没有一个限制的话,结果会如何呢?呵呵!没有错,结果就是任何人都可以使用你的MTA 来发信了!那有什么好可怕的?我们在<a href="#before">前言</a>的地方就已经稍微说过了,那个所谓的『广告信、垃圾信件』的问题,而<b><font color="#000066">如果你的MTA 没有对寄信的人作限制的话,由于任何人都可以使用你的 MTA 来发信,你的MTA 将会变的『很笨重!』</font></b>什么意思?那就是,你的 MTA 将会帮任何人寄信,如此一来,你的『<b><font color="#000066">网络频宽将会被广告信件所用光</font></b>!』结果将导致你的MTA 变成『<b><font color="#000066">Open Relay 主机黑名单</font></b><font color="#000000">的一份子</font>~』!!!<br> <br>为了避免这个问题,所以,目前所有新版的邮件主机服务器架设软件 ( Mailserver packages ) 预设的情况之下,都不会对外完全的开放 Relay 的功能的!预设通常仅『<font color="#000066"><b>针对主机( localhost ) 开放 Relay 的功能</b>!</font>』,不过,这样的 MTA 是可以收受来自Internet 上面的,注明收件者是我们 MTA 主机内部账号的信件的,因此, MTA在『收信』上面是没有问题的!<br> <br>但是关闭了 Relay 之后,虽然可以避免掉我们 MTA 主机被当成广告信发送站,不过如此一来又造成了一些困扰!何解?因为通常我们仅针对主机,或者一些规范的IP 或者是网段等信任的主机来开放他们的 Relay 的功能,所以在这个设定的范围内的Client 端计算机可以自由的收发信件,至于没有规范到的 IP 来源的寄信信件,将完全的挡掉。然而万一您使用的是ADSL 计时制的呢?又或者您是常常在外面出差的大老板,则你的 IP 将『不会固定』,完蛋啦~怎么办?既不能完全开放Relay ,又没有固定 IP ,无解了吗?呵呵!还好,有所谓的<b><font color="#000066">邮件认证机制</font></b> 来帮我们解决这个困境啦!<br> <br>所谓的『邮件认证机制』就是在刚刚我们<a href="#fig_01">图一的寄信流程图</a>中,在MTA 当中加入需要检查发信者的『账号与密码』比对的功能,当 MTA 接到来自 Client端的传信需求时,会检查来自 Client 端的认证比对(账号密码),如果账号与密码比对正确,则开始接受信件并帮忙转信,如果比对不正确则将该MTA 并不会接受该封信件,直接在 Client 端显示『不接受您的信件』之类的讯息喔!目前有相当多种的邮件认证机制,这里我们偏向于介绍目前广为使用的<font color="#000066">SMTP邮件认证</font>这个机制。<br> <br>所谓的 <font color="#000066">SMTP 邮件认证机制</font>,顾名思义,就是在smtp 这个协定上面动手脚的一个机制啰!亦即是在寄信的时候,(由 MUA 到 MTA那个 step 1 的步骤中 ),我们的 MTA 主机『<font color="#000066">一定要求检验MUA 发信者的账号与密码!</font>』这样的功能!果真能做到这一点的话,那么你的MTA 就可以在经过认证之后,提供认证者的 Relay 功能,而不需要针对某些信任网域或IP 来分别设定开放 Relay 的功能啦!因为经由『认证』的机制,你的 MTA 会去分析寄信者的相关信息,通过后才会接受信件并帮他们寄信,否则就不接受信件!呵呵!没错!就是这样!透过这样的机制,您将不需要规范Relay 的 IP 或网段,直接交给 SMTP 邮件认证来帮你管理你寄件者的 Relay 功能,从此以后,你的Clients 就不会常常向你抱怨说 MTA 不稳定啰!<br> <br>我们底下将介绍使用 <a href="http://asg.web.cmu.edu/cyrus/" target="_blank">cyrus-sasl</a>这种密码验证的认证机制啰!好了!底下我们将要介绍一下目前邮件服务器占有率上面应该依然是第一的sendmail 这个 mail server 的架设!</blockquote><hr width="100%"><a name="package"></a><font size="+1" color="#000099">套件安装:</font><blockquote>使用 <a href="http://linux.vbird.org/linux_basic/0520rpmtarball.php">RPM</a> 来安装Sendmail 实在是『快乐得不得了~』太简单了~目前提供 Sendmail 做为邮件主机服务器的主要为Red Hat 这个 Linux distribution ,至于其它的 Linux distribution 是否提供Sendmail 就得请您自行到该<a href="http://linux.vbird.org/othersites/index.php">官方网站</a>上面查询一下啰!底下我们主要是以Red Hat 7.x 以及 Red Hat 9 的 Linux 系统做为 Sendmail 的介绍,此外, OpenLinuxserver 3.1.1 亦是使用此一相关功能套件的喔!那么需要安装哪些套件呢?还记得我们在<a href="#theory_protocol">MailServer 使用的协议</a>里面谈到的几个基本的协定吧?亦即是 SMTP 与 POP3 这两个,此外,由于Sendmail 必须『读入』一些数据库格式,所以也必须要安装相关的数据库的函式库喔!<br> <br>不过,如果您的系统是比较老旧的,例如 Red Hat 6.x 以前的版本,又或者是您的系统本来就不存在Sendmail ,例如 Mandrake 等其它版本的 Linux distribution 时,那么您就得使用<a href="http://linux.vbird.org/linux_basic/0520rpmtarball.php">Tarball</a>的方式来安装了! ( 事实上,几乎所有的 Linux distribution 都会纳入 sendmail,只是有些套件,例如 Mandrake 预设是安装 postfix 就是了! ) 安装 Tarball的 Sendmail 真是一件很『雪特』的苦差事,而且安装的不够好的话,还有可能产生一些设定上的困扰,此外,安装的过程当中,使用到很多的『<font color="#000066">天书一般的设定档案与牛屎一般的一大沱设定数据</font>』,这些数据如果没有一定程度的Sendmail 架构知识,是无法安装起来的,还有还有, Tarball 安装的话,最好是所有的Sendmail 相关套件都一起安装,而不是分开来安装,所以,鸟哥将 <a href="#Tarball_sendmail">Sendmail的 Tarball 安装方法</a>放在最后面,希望您至少看完『<a href="#server">主机的设定</a>』该节的完整内容,以及浏览过『<a href="#security">关于邮件主机安全的设定</a>』之后,再来尝试以Tarball 完整的安装起属于您自己的 Sendmail 邮件主机喔!<br> <br>好了,底下我们就来安装 Sendmail 及 POP3 这两个邮件服务器上面的组件吧!</blockquote><blockquote><hr width="100%"><a name="package_RPM_sendmail"></a><font size="+1" color="#000099">使用RPM 安装 sendmail ( 适用于原本 Linux 就是使用 sendmail )</font></blockquote><blockquote>如果您是使用 Red Hat 7.3 以前的版本,例如 Red Hat 7.1, 7.2,7.3 ,或者是 Open Linux Server 3.1.1 的话,那么请先确定一下底下的套件是否已经安装上去了呢?<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">rpm -qa | grep sendmail</font></font><br><font size="-1" color="#ffffff" face="SimSun">sendmail-cf-8.11.6-3</font><br><font size="-1" color="#ffffff" face="SimSun">sendmail-8.11.6-3</font><br><font size="-1" color="#ff6666" face="SimSun"># 若有属性相依的问题时,请将您的原版安装光盘拿出来,mount 上去后,</font><br><font size="-1" color="#ff6666" face="SimSun"># 仔细的,一个一个的将相依的套件安装上去啰!^_^</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">rpm -qa | grep m4</font></font><br><font size="-1" color="#ffffff" face="SimSun">m4-1.4.1-5</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">rpm -q mailx</font></font><br><font size="-1" color="#ffffff" face="SimSun">mailx-8.1.1-22</font></td></tr></tbody></table> <br>那个 <font color="#000066">sendmail 就是主要的邮件服务器程序</font>,<font color="#000066">sendmail-cf 是一些设定档案</font>, 这两个套件是『一定』要安装的!至于那个m4 的套件,则是转换 sendmail 设定文件的一支程序啰!也要安装喔!而那个 mailx就是提供最简单的 mail 这支寄信与收信的套件啦!由于我的测试系统是 Red Hat7.2 ,所以使用的算是比较旧一点点的 sendmail 8.11.6 版,如果您想要换装新版的sendmail 8.12.xx 的话,请参考底下『Tarball 完整安装 Sendmail 服务器』的步骤!不过,这里我们先还是玩一玩这个预设的版本即可!记得喔!安装完毕之后,请到Red Hat 的网站上面去下载更新的 RPM 来更新吧 <a href="http://www.redhat.com/apps/support/errata/" target="_blank">http://www.redhat.com/apps/support/errata/</a>!或者是台湾的映射站喔!<a href="ftp://linux.sinica.edu.tw/pub1/redhat/updates/" target="_blank">ftp://linux.sinica.edu.tw/pub1/redhat/updates/</a><br> <br><hr width="100%"><a name="package_RPM_imap"></a><font size="+1" color="#000099">使用RPM 安装 IMAP 套件</font></blockquote><blockquote>这个 IMAP 套件,就是负责收信的 POP3 那个协定啦!请使用 RPM确认他已经安装在您的系统上面啰!<br> <table bgcolor="#000000" border="1" cols="1" width="500"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">rpm -qa | grep imap</font></font><br><font size="-1" color="#ffffff" face="SimSun">imap-devel-2001a-1.72.0</font><br><font size="-1" color="#ffffff" face="SimSun">imap-2001a-1.72.0</font></td></tr></tbody></table> <br>那个 imap 就是我们主要的 POP3 那个协议的套件啰!如果您是使用 Open Linux的话,那么设定档应该会是在 /etc/inet.d 内,而如果是使用新的 xinetd 的话,那么设定档就会是在/etc/xinetd.d 里面啰!等一下我们再来好好的谈一谈啦! ( <i><font color="#000066">注:本章节并没有谈到imap 这个协议的设定与应用,事实上, imap 这个套件同时提供了 pop2, pop3,imap 等协议的设定与相关功能喔!</font></i> )</blockquote><hr width="100%"><a name="server"></a><font size="+1" color="#000099">主机的设定:</font><blockquote>知道如何安装 Sendmail 之后,接下来,我们得了解一下在邮件服务器架设之前,您需要先进行什么样的工作呢?<ul><li><font color="#000066">若想要架设的邮件主机未来是对 Internet 提供服务的,那么请确定您已经申请了『<b>主机名称</b>』或者已经具备有『<b>经过合法授权的DNS 主机</b>』的服务了!重要的地方在于你的主机必须能够让大家在 Internet上面查询的到啊!</font></li><li><font color="#000066">虽然有 A 这个 DNS 的标志就可以架设 Mail server ,不过,<b>毕竟有MX 标志还是比较好的</b>,所以,特别提醒大家,如果要架设 Mail Server ,<b>最好(非必要)还是请您的上层

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -