Sendmail对一般的系统管理者而言,往往是个不敢手的「禁区」,因为绝大多数系统的使用者对E-Mail的需求与依赖的程度之高,可说是稍有分毫差错,系统管理者就要准备接受如雪片般飞来的抗议与抱怨!而Sendmail这个东东的「内函」,似乎又有点不太容易理解:与设定有关的sendmail.cf档,如果不是下过一番死功夫,则读起来如同读天书一样,只知道里面有英文字与数字!所以一般人总是能不动则不动,只要能用就好。不过,很不幸的,一般跟著机器而来的sendmail总是有著令人心惊胆跳的「附加功能」,就是常常都有一些可以让无聊人士作为侵入路径的BUG或後门,某些BUG还可以让侵入者经由Sendmail而取得最高权限的root!一旦root权限被人拿走了,那麽这机器就可被人任意屠宰,最恶劣的,还可能破坏系统!
Sun在国内的使用人口相当的多,笔者对Sun也稍微比较熟悉一点。不过,Sun的Sendmail却是令人颇不敢恭维的,几乎可以说:只要还在使用Sun的Sendmail而没有「常常」patch的话,那甚麽系统安全都不必谈了,谈了也是白谈;如果还在使用Sun的Sendmail,那就如果系统抱著一颗不定时炸弹,随时一个不注意,都可能引爆:(。这一点,大家可以翻一翻CERT或8lgm看一看,几乎是只要有sendmail的问题,Sun大多跑了....。其他系统的Sendmail也不要偷笑,虽然大家的出场率没有Sun高,可是也常会问题的。另一方面,Sendmail8.6.9与之前的版本最近刚发现有个ident方面的Bug。如果方便的话,请大家务必换成最新版。如果不方便的
话,在v8.6.5之後的版本有个克难式的补救法,即在sendmail.cf加入这麽一行:
Orident=0
表示不作ident的检查。
v8.6.5之前的版本就一定要换成最新版。
本软体在系统安全方面,是目前评价最高的,目前已知的BUG都已经改好了,最主要的原因,当然是要感谢作者EricAllman,他(或他们)能作到一发现重大的Bug(如系统安装)就立刻出新版。本软体是一publicdomain,可以在网路上各ftpserver上找到其sourcecode。由於该软体的发展者把一些必要的设定步骤自动化了,所以,其实安装这个软体并不是想像中那麽样的困难。如果连compile的时间也算下去,顺利的话,不用半个小时就可以安装完毕!
3.1下载Sendmail最新版本
最新版本的Sendmail可以从ftp://ftp.sendmail.org/pub/sendmail/得到!
如sendmail.8.9.3.tar.gz这是截止到文章发布的最新版本,size:1068290byte
有关最新版本的发布,请浏览Sendmail的主页http://www.sendmail.org
3.2安装Sendmail
用root登陆或su成root后,先把tar.gz的包解开tarfvxzsendmail.8.9.3.tar.gz,用make-f开始编译
编译完成后系统会产生系统设定文件,也就是sendmail.cf(一般这个文件都存放在/etc下)
接下来,这按几步继续安装:(注:~/sendmail为解开后的sendmail目录)
1.请切换至设定档目录~/sendmail/cf/cf之下。找一个合适自己系统的XXXX.mc档。笔者一般上是使用tcpproto.mc
这一个不用uucp的档。如果是用tcpproto.mc这个档,笔者在solaris2.3试了,得记得在档中要加上一行:
OSTYPE(solaris2)
Sun4.1.3不必,其他系统就不晓得了。在目录~/sendmail/cf/ostype下有几个OSTYPE()可以的档,
只有这个目录有资料的才可能能够OSTYPE()。还有,如果是systemV的/bin/mail,似乎就得要加OSTYPE()。
一句老话,详情请看DOCUMENT:~/sendmail/cf/README。这希望有经验的朋友能够补充:)
如果不小心忘了加上OSTYPE()会怎样?也不会怎样,只会有"unknowmailererror"的错误,然後信收不到。
有一点要提醒大家的,就是:在~/sendmail/cf/cf所看到的各种系统的.mc档,都是Sendmail8.6.x的作者
EricAllman「演示」给大家看的,所以,可以看到档名都有个"cs",要是没有修改就用这些档的话,那一定会发生错误的。而要修改,有相当多地方要改,所以,如笔者一般懒的人,用tcpproto.mc还是比较简单又不会出错:)