出 处: rose.dlut.edu.cn
说明:sendmail的最新版本为8.8.8, 但sendmail的安装基本相同,如有时间的 话我会在此文章的基础上写一篇有关sendmail最新版本安装及配置的文章。 --------------------------------------------------------------------- 发信人: [email protected] (不认识我,别PAGE我!), 信区: Unix 标 题: □Sendmail 8.6.9安装简介□ 发信站: 交大资科_BBS (Tue Dec 13 17:41:16 1994) 转信站: Palmarama!netnews.ntu!news.csie.nctu!news.cc.nctu!news.cis.nctu!cis_nc
□以下内容有任何不正确、令人误解的地方,欢迎指正;本文只定位 自己是一颗「石头」,希望引出真正的玉来。所以希望各高手们能 不吝分享自己的经验(如除了Sun 之外的系统要如何装等等),那 我这个小丑也当得有义意了:)
【Sendmail 8.6.9安装简介】 Sendmail对一般的系统管理者而言,往往是个不敢手的「禁区」 ,因为绝大多数系统的使用者对E-Mail的需求与依赖的程度之高,可 说是稍有分毫差错,系统管理者就要准备接受如雪片般飞来的抗议与 抱怨!而Sendmail这个东东的「内函」,似乎又有点不太容易理解: 与设定有关的sendmail.cf 档,如果不是下过一番死功夫,则读起来 如同读天书一样,只知道里面有英文字与数字!所以一般人总是能不 动则不动,只要能用就好。不过,很不幸的,一般跟著机器而来的 sendmail总是有著令人心惊胆跳的「附加功能」,就是常常都有一些 可以让无聊人士作为侵入路径的BUG 或後门,某些BUG 还可以让侵入 者经由Sendmail而取得最高权限的root!一旦root权限被人拿走了, 那麽这机器就可被人任意屠宰,最恶劣的,还可能破坏系统!
Sendmail 8.6.9是目前Sendmail 8.6.x系列的最高版本。系统安 全方面,是目前评价最好的,目前已知的BUG 都已经改好了。本软体 是一public domain ,可以在网路上各ftp server上找到其source code。由於该软体的发展者把一些必要的设定步骤自动化了,所以, 其实安装这个软体并不是想像中那麽样的困难。如果连compile 的时 间也算下去,顺利的话,不用半个小时就可以安装完毕!所以,「麦 惊」啦!:)
笔者把Sendmail的安装分成几个步骤: 步骤○:用任何手段(其实大概是用ftp :))抓到此软体。如果在 ftp://ftp.nccu.edu.tw/pub/mail/ 下找到的,会是好几个 名叫"sendmail.8.6.9.XXX"的档案,请使用者至少把: sendmail.8.6.9.base.tar.gz sendmail.8.6.9.cf.tar.gz sendmail.8.6.9.xdoc.tar.gz 这三个档抓回,其中,第一个档是此软体的程式,第二个档 是此软体的设定,此二者是必要的档案;第三个是文件档, 如果不想看,可以不要。 抓回之後,tar 开。强烈建议大家有空读一读此软体的 Document。不过,如果「没有空」读,那麽阅读本文大概也 是装得起来的....
PS. 以下的符号:"~/sendmail" 是表示抓来的sendmail所 tar 开的目录。
步骤1:全tar 开後应该会在该目录下建立几个目录,其中程式是在 "~/sendmail/src" 的目录下,设定档在"~/sendmail/cf" 目录下。请转换至"~/sendmail/src" 的目录,用ls可以看 到许多名 Makefile.XXX 的档案。请使用者找到一个适合自 己系统的makefile,如: 假设是用IBM AIX 的系统,那就使用Makefile.AIX;用HP的 系统,那就用Makefile.HP-UX;如果是Sun 系统,那就用 Makefile.SunOS.x.x,但如果是SunOS 4.1.3 ,那得要用 Makefile.SunOS这个makefile档,而是Solaris 2.3 ,则得 要用Makefile.SunOS.5.x。 用vi或任一种编辑器,叫出刚挑出的makefile档,作一点点 必要的修改。所要修改的地方不多,下面是可能要修改的地 方:
1."CC ="如果原档所用的compiler并不是我们系统的,这才 要改。
2.本系统是否有安装Berkerlay 的New database?如果有, 跳过本点,到第3 点。 如果没有(如:一般SunOS 都没有装),那麽请修改这几 行(下面以Makefile.SunOS为例,但其他系统也类似):
A.在 DBMDEF= -DNDBM -DNEWDB -DNIS 一行,请改成: DBMDEF= -DNDBM -DNIS (即去掉-DNEWDB)
B.把这两行REMARK起来: INCDIRS=-I/usr/sww/include/db --> # INCDIRS=-I/usr/sww/include/db LIBDIRS=-L/usr/sww/lib --> # LIBDIRS=-L/usr/sww/lib
C.修改LIBS= -ldb -ldbm -lresolv 这一行成: LIBS= -ldbm -lresolv (即去掉-db )
3.把nroff 的"-mandoc "参数改成一般系统可以接受的 "-man"(当然,这得依你的系统而定)。如果不改也并不 会影响sendmail的安装,只是不能看到格式化後的 sendmail相关文件罢了。
步骤2:输入make -f Makefile.XXX (当然,Makefile.XXX是指刚刚 从众里千百度挑出的那个档) 。然後就可以泡杯茶耐心的等 compile完毕。 不过,我们可以乘这个空档把旧的sendmail相关档案备份起 来,以防万一有甚麽不测,还可以向老板交代:)。要备份的 的档,当然是:/usr/lib/sendmail 和 sendmail.cf(後者 所在位置得依原系统而定,不过,一般都是在/etc下或 /etc/mail 之下)。 有一点要记得的是,原来的/usr/lib/sendmail 是个suid root的程式,备份的请记得执行chmod u-s XXXX,要不然, 留著这样一个suid root 的程式,也是会让人有机可乘的!
步骤3:此一步骤也是可以在compile 程式时进行的,就是要产生系 统设定档,也就是sendmail.cf 。
1.请切换至设定档目录~/sendmail/cf/cf 之下。找一个合 适自己系统的XXXX.mc档。笔者一般上是使用tcpproto.mc 这一个不用uucp的档。如果是用tcpproto.mc 这个档,笔 者在solaris 2.3 试了,得记得在档中要加上一行: OSTYPE(solaris2) sun 4.1.3 不必,其他系统就不晓得了(在目录 ~/sendmail/cf/ostype 下有几个OSTYPE()可以的档,只 有这个目录有资料的才可能能够OSTYPE()。一句老话,详 情请看DOCUMENT:~/sendmail/cf/README ) 。这希望有经验的朋友能够补充:)
如果不小心忘了加上OSTYPE()会怎样?也不会怎样,只会 有"unknow mailer" 的错误,然後信寄不出去。
2.好,选定了某一个合意的.mc 档,那接下来可执行m4产生 .cf 档。请下指令: # m4 XXX.mc > YYY.cf 如果是sun 4.1.3 ,可能系统会抱怨m4的版本太旧了。那 请试一试用: # /usr/5bin/m4 XXX.mc >YYY.cf 要是还是不行,那就请去抓新版的m4回来compile。
3.产生出来的YYY.cf一般得要改个地方才能正常的收信。请 寻找"Cw",原来产生的.cf 档,Cw应是: Cwlocalhost 请在localhost 之後加上你那一台机器所有可能用来当收 信地址的host name ,如: Cwlocalhost bird.nccu.edu.tw man.nccu.edu.tw 如果这个部步骤忘了作,会有怎样的问题呢? 忘了将会有从外面机器寄信来却收不到,机器会抱怨: "configure error ...."
步骤4:终於来到令人紧张兴奋的时刻了!这个步骤是要把compile 好的东东install 到系统上去了。
罗嗦的我还是得再一次提醒您看看:把旧档案备份好了吗?
好,假设compile 的结果非常没挑战性的没有任何错误,产 生.cf 档过程也没有甚麽值得注意的讯息。所产生的.cf 档 也改好了。而且最重要的:作好旧档的备份(不是我要吓人 ,这是以防万一)。 1.挑个老板没有在用mail的时间,快手快脚的切换至目录 ~/sendmail/src ,下指令: # make -f Makefile.XXX install 系统会把compile出来的~/sendmail/src/sendmail与man document拷贝到它们该有的目录(所以你还如果没有备份 /usr/lib/sendmail ,那赶快祈祷待回不要出问题,要不 然就赶快准备泪水哭吧!因为旧的会被compile 出来的 sendmail覆盖)
2.切换至目录~/sendmail/cf/cf ,把产生出来的YYY.cf档 拷贝到本系统sendmail.cf 应该在的地方,如:/etc或 /etc/mail 。
3.把旧sendmail daemon 的process 杀掉。(这应该不用我 罗嗦吧!用ps -ax |grep sendmail |grep -v grep 找出 旧daemon的process(或cat /etc/sendmail.pid 或cat /etc/mail/sendmail.pid),然後用kill -9 processID干 掉它。
4.启动新daemon。例如下指令: /usr/lib/sendmail -bd -q30m 当然,保守一点,看旧的daemon怎麽跑,照旧的来下参数 应该是没有问题。
步骤5:嗯嗯,东东都装上了,这个步骤当然就只是测试罢了。记得 要测: 1.local 的收、发信。 2.remote的收、发信。 3.最好当然能试试不同的domain 或甚至net 的收发情况。 如果一切都正常,那太恭喜你了:) 如果有甚麽问题,可以post到bbs 求救。或者,post到news 的group :comp.mail.sendmail。cms 这个讨论群还可以看 得到sendmail 8.6.X的作者Eric Allman 常在上面为人解答 哩!或者,可以直接mail到:[email protected], 会有专人解答。
============================================================ 作者:陈彩合 (♂) Email: [email protected] 日期:1994/12/12日完稿 ============================================================
-- —————┐ 人和鸟 │Hup ever , Hup forever .□ [email protected] 鸟□守人│ forever HUP hup ......□ 这是坏人,没事别page! └—————————————————————————— -- ☆ [Origin: ◎椰林风情◎] [From: woju.g1.ntu.edu.tw ] [Login: **] [Post: **]
-- ※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: 202.118.65.49]
|
|