简易MailServer架设--Sendmail设定最近更新日期:2003/09/12在这个邮件服务器的架设中,我们首先谈论Mail与DNS的重要相关性,然后依序介绍MailServer的相关名词,以及MailServer的运作基本流程与协议,也会谈到相关的Relay与邮件认证机制等项目,这些项目对于未来邮件主机的管理与设定是重要的,请不要忽略了这方面问题的讨论喔。当然,主要的目的还是在于架设Sendmail这个使用最为广泛的邮件主机服务器软件啰!这里我们以RedHat7.x以及RedHat9为主体来说明Sendmail的主要架构,要说明的是,虽然本文是以RedHat为主体,但是Sendmail的架构仍然可以在其它使用Sendmail的Linux系统当中成立的。而重头戏则在最后面的Tarball安装一套完整的Sendmail喔(我是以Mandrake9.0及RedHat7.x版本来测试的)!如果您的Linux上面本来就没有Sendmail,并且您还是习惯Sendmail这个套件,那么,这篇文章仍然相当的适合您查阅!前言:邮件服务器运作原理::1.Mail与DNS系统的相关性:2.邮件的传送流程、MUA、MTA、MDA:3.使用的协议:4.什么是Relay与认证机制套件安装::1.使用RPM安装Sendmail:2.使用RPM安装IMAP套件主机的设定::1.SendmailServer的档案架构与基础说明:2.使用m4来简易设定sendmail:3.启动MailServer:4.设定主机名称local-host-names:5.设定邮件服务器使用权限/etc/mail/access:6.重要观念:一封信件的收受流程:7.设定使用者别名/etc/aliases:8.设定邮件转递~/.forward:9.察看信件队列(mailq)与mailers状态客户端的使用说明::1.Linux下使用mail功能(IP寄信,夹带档案):2.Linux下使用telnet功能:3.X-Window与Windows的MUA功能关于邮件主机安全的设定::0.sendmail本身的安全设定项目(Sendmail本身的建议):1.SMTP认证:2.关于ORDB抵挡openrelay邮件主机之机制说明与实作:3.Procmail相关说明以Tarball完整安装Sendmail(含SMTP邮件认证、procmail与ORGB的完全安装!)其它应用说明::0.无法寄信时的可能问题说明与解决之道:1.关于备份:2.关于quota的设定与/var/spool/mail目录的转移本章与LPI的关系参考资源:本章习题练习前言:电子邮件带来的好处:在目前的社会当中,没有电子邮件(e-mail)似乎是蛮奇怪的一件事!。可以说,现在e-mail已经成为一个很普遍的人与人之间的沟通管道了,电子邮件可以很快速的帮你将文件或讯息传送到地球上的任何一个有网络存在的角落,当然,你也可以在任何有网络的地方,连上Internet去收取你的信件!很快乐不是吗?是的!e-mail的存在是相当重要的,你可以藉由这个电子邮件取得最实时的一手数据!你也可以利用他帮你联络好朋友,还可以用来把马子哩!君不见前一阵子相当有名的『电子情书,Yougotamail』这部电影吗?呵呵!反正,电子邮件真的带给目前繁忙的人们一个相当轻松获得信息的方式!电子邮件衍生的问题:不过,遗憾的是,只要是有人类的地方,就会有很多你意想不到的事情会出现了,当然,e-mail也不例外,怎么说呢?我们来慢慢的分析一下吧:1.电子邮件夹带病毒:你可以常常听到电子邮件所夹带的病毒对吧!没错,利用电子邮件以及人们对于电子邮件的漫不经心的态度,使得以电子邮件为媒介的计算机病毒更容易『深入人群』当中吶!这个问题造成大大小小的伤害,如果发生在大企业当中,那可真是受不了那~那个主管受的了一天到晚计算机重新安装的~而且万一中毒的是大型主机,光是数据的损毁就可能让公司倒闭了....2.怪客入侵事件:没错!e-mail也是一个相当不安全的网络协议,你可以轻易的使用怪客软件(Cracker)就可以取得使用者在利用e-mail传送过程当中的,将他的账号与密码撷取下来,分析之后,并进一步的破解对方的邮件主机~哇!真是乱可怕一把的!3.广告与垃圾信件:这个可说是目前各大ISP心中永远的痛~这些垃圾信件可以占掉很多那少的可怜的频宽,使得正常使用者联机速度与质量下降,更可能造成网络的停顿~当然,常常收到垃圾信件的你,大概也不好过吧!4.暴力攻击事件:万一你没有将邮件主机设定好,嘿嘿!送信者可以藉由你主机收信的功能,发送大量的信件,让你『一次收个够!』灌爆你的主机硬盘,想要不当机都粉难~5.真实社会的讨厌事情:『黑函』!听到会不会很害怕?当然很害怕啦!偏偏,使用e-mail就可以作很多的坏事~这真是太不道德了~6.不实的信件内容:只要注意到消基会的讯息就可以知道啦,不明来源的电子邮件说的内容,嘿嘿!不要轻易的相信,因为,很多可是以讹传讹,结果,大家都被耍了的~例如,你的朋友收到一封信,认为『哇!这是大事情』,所以在没有求证的情况下,将信『转寄』给你看,嘿!你的朋友寄给你的,当然要相信他啦!立刻再转寄,如此一再地循环,嘿嘿!这个错误内容的讯息马上就让大家知道,更可怕的是『还会让大家接受~』所以,看到任何讯息时,请千万要记得求证一下吶!可怕吧!电子邮件会衍生出这么多的问题说~网管人员的痛:因为e-mail的便利性,与邮件主机的容易受到恶意的攻击,这两个事件真的是很难分的清,怎么说呢?如果为了使用者的便利性而大开便利之门,那么,您的邮件主机大概用不了多久,就会被列入黑名单之中,进而成为大家的拒绝往来户,呵呵!反而成为笑柄,并且反而造成了使用者的不便~而如果管制得太严格,又显的不够人性化~最起码,你的主管就会不太满意~怎么办呢?!哈哈!没错啦!邮件主机就是这么回事~让人又爱又怕的一个玩意儿,搞的定他,恭喜你,一切圆满顺利,搞不定他,主机被当成垃圾信件转运站事小,丢掉工作可就『兹事体大』啦~就因为他是这么重要,但是又这么难以搞定,所以啦,我们可要好好的学一学他吶!邮件服务器运作原理:既然要使用e-mail,当然就需要邮件主机服务器啰(MailServer)!不然你的信要怎样寄出去呢?事实上,mailserver的原理说难不难,但是说简单吗~似乎又有点难以理解ㄋㄟ~,所以,底下我们要来谈一谈他的原理部分,然后再针对主机的设定来进行说明咯!底下,我们首先要讲的,就是『Mailserver系统与DNS系统有什么关连性?』这个部分新手最容易被搞混哩,是否要架设mailserver就『宿命』的一定得架设DNS主机在你的主机上面吗?Mail与DNS系统的相关性:一直以来,Mailserver与DNS系统就是分不开的,怎么说呢?今天如果你要寄电子邮件的话,那么就得藉由邮件主机帮你将信件送出去,对吧!那么我们在DNS那个篇幅里面也谈到了相当多的概念了,就是,人脑实在无法记忆住计算机网络的IP数据,因此,才会有所谓的DomainNameSystem,DNS主机,这个DNS主要的功能之一,就是将主机名称转译成为IP,我想,这里您应该也已经了解了,对吧!如果是『不了解』,那么不要往下看了,请前往简易DNS服务器去瞧一瞧,瞧完了再回来继续吧!OK!好了,既然如此的话,那么使用邮件主机来寄信,并且不想要背主机所在的IP,那蛣M就一定需要让你的主机名称可以经由DNS系统来找到你的IP啰!对吧!没错,如果你真的要提供一个Internet上面的邮件主机,最好还是注册一个合法的主机名称,比较好记忆ㄋㄟ~好了,接下来要讨论的就是,既然我的主机需要DNS来转译主机名称使成为IP,那么我真的就得必须要架设DNS吗?当然不是!要注意的是,我们刚刚提到的是『我就得在Internet上面注册一个合法的主机名称来对应IP』而不是『一定得要架设DNS在我的主机上面!』这个很重要,因为有太多的新手被mailserver与DNSserver的关系搞错乱了!如果到这里又混乱了!那么请,真的,一定,回到DNS服务器那篇去慢慢的再从头读一次,否则.....也就是说,我们需要的是『合法注册过的主机名称』就是了!所以,你可以使用动态IP去申请一个动态IP的领域名称,也可以使用各大ISP提供的各项功能来注册,反正只要能够注册一个领域名称就是了!当然,你也可以自行去注册一个DNS主机,并且在你的主机上面建立DNS系统,但这并非是必要的!那么,假设我的主机名称对应IP已经成功的在Internet上面完成合法注册了,这样就好了吗?是这样没错啦!确实,只要有主机名称对应到IP,亦即是有A(Address)这个DNS的标志后,那么就可以架设mailserver了,并且,一般来说,应该不会有问题的!然而,DNS系统本身还有其它的功能可以支持mailserver,使mailserver更稳定与具有更佳的避免信件遗失功能,所以,就有MX这个DNS的标志产生啦!MX这个DNS设定中的标志,主要就是要给mailserver用的,基本上,MX就是MaileXchanger的缩写,他可以让Internet上面的信件马上找寻到Mail主机的位置,此外,由于MX后面可以接数字,因次,一个domain或者是一部主机,可以有多个MX标志,这有什么好处呢?主要的好处就是可以让,当主要的mailserver挂点时,由于有mx标号,因此,信件不会直接退回,而是跑到下一个MX设定的主机去,并且暂存在该处,等到主要的mailserver起来之后,这个MX设定的主机就会将信件给他传送到目的地!如此一来,甚至可以达到异地备援的功效呢!不只如此喔!MX的功效还很多!最大的优点就是有点类似router的功能,我们或许可以称之为邮件路由吧!当有了MX标志之后,由于这是DNS的设定,所以当你要传送mail的时候,那么就可以直接依据DNS的MX标志直接将信件传送到该设定的mx邮件主机,而不需要去寻问到底邮件要寄到哪里去!这功能相当的不错的!因为可以让你的邮件很快的而且正确的送达到目的地呢!此外,由于可以设定多个mx,因此,假设『此路不通』,也就是先使用的mx邮件主机不通的时候,那么信件就会往下一个mx邮件主机传送!这样可以避免信件被退信的机会!当然就更加的稳定啰!不过,这里也要特别强调,MX『一定』要设定正确,否则,呵呵!反而会让你的信件永远在Internet上面流浪呢!一般来说,邮件地址的写法为:account@server.name的写法,在小老鼠(@)前面的指的是『账号』,至于@后面的则是主机的名称!当你寄出这样的一封信时,首先,你的邮件主机会先去DNS系统寻找server.name这个主机名称对应的IP与MX标志,若有mx标志,那么这封e-mail将会把信先送到该mx主机,然后再由该mx主机将信件送达目的地(就是server.name这个主机啦),而如果有多个mx标志时,那么这封e-mail会送到最优先的mx主机去(也有可能这部主机就是目的地主机喔!),然后交给该主机来处理啰!而如果没有mx标志的话,那么在查得IP之后,信件才会慢慢的送达该邮件主机啰!在送达到邮件主机后,该主机则以前面的『账号』将信件发送到各个使用者的邮件目录下!所以啰,为什么说mail与DNS系统相关性很高呢?嘿嘿!由上面的说明您应该就不难了解啦!^_^邮件的传送流程、MUA、MTA、MDA约略了解了DNS与mailserver之间的关系之后,在接下来我们要了解的是,那么mail到底是如何传送到目的邮件主机的呢?底下我们分成『寄信』与『收信』两个主要的邮件主机使用方式来加以介绍啰!先说明一下关于『寄信』的部分好了,通常我们都是使用桌上型计算机来寄信的,举个例子来说好了,如果你以Netscape或者Kmail或者OutLookExpress来寄信的时候,那么那封信到底是怎么送出去的呢?可以参考一下底下的图示来说明:图一、电子邮件以邮件主机寄送信件示意图先来说明一下什么是MUA,MTA与MDA什么的,再