王朝网络
分享
 
 
 

SENDMAIL邮件服务器-安装篇

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

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 高,可是也常会问题的。 另一方面,Sendmail 8.6.9与之前的版本最近刚发现有个ident方面的Bug 。如果方便的话,请大家务必换成最新版。如果不方便的话,在v8.6.5之後的版本有个克难式的补救法,即在sendmail.cf 加入这麽一行:

Orident=0

表示不作ident 的检查。

v8.6.5之前的版本就一定要换成最新版。

本软体在系统安全方面,是目前评价最高的,目前已知的BUG都已经改好了,最主要的原因,当然是要感谢作者Eric Allman ,他(或他们)能作到一发现重大的Bug (如系统安装)就立刻出新版。本软体是一public domain ,可以在网路上各ftp server上找到其source code。由於该软体的发展者把一些必要的设定步骤自动化了,所以,其实安装这个软体并不是想像中那麽样的困难。如果连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的包解开tar fvxz sendmail.8.9.3.tar.gz,用make -f 开始编译

编译完成后系统会产生系统设定文件,也就是sendmail.cf (一般这个文件都存放在/etc下)

接下来,这按几步继续安装: (注:~/sendmail为解开后的sendmail目录)

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()。还有, 如果是 system V的/bin/mail,似乎就得要加OSTYPE()。

一句老话,详情请看DOCUMENT:~/sendmail/cf/README。这希望有经验的朋友能够补充:)

如果不小心忘了加上OSTYPE()会怎样?也不会怎样,只会有"unknow mailer error" 的错误,然後信收不到。

有一点要提醒大家的,就是:在~/sendmail/cf/cf 所看到的各种系统的.mc 档,都是Sendmail 8.6.x的作者Eric Allman 「演示」给大家看的,所以,可以看到档名都有个"cs",要是没有修改就用这些档的话,那一定会发生错误的。而要修改,有相当多地方要改,所以,如笔者一般懒的人,用tcpproto.mc 还是比较简单又不会出错:)

2.好,选定了某一个合意的.mc 档,那接下来可执行m4产生.cf 档。请下指令:

# m4 XXX.mc YYY.cf 如果是sun 4.1.3 ,可能系统会抱怨m4的版本太旧了。那请试一试用:

# /usr/5bin/m4 XXX.mc YYY.cf

要是还是不行,那就请去抓新版的m4回来compile (可以在 http://www.gnu.org 找到gnu 的m4)。

这个步骤是要把compile好的files, 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(或head -1 /etc/sendmail.pid 或 head -1 /etc/mail/sendmail.pid),

然后用 kill -9 processID干掉它(或直接用 kill -9 `head -1 /etc/sendmail.pid`)。

4.启动新daemon。例如下指令:

/usr/lib/sendmail -bd -q30m

当然,保守一点,看旧的daemon怎麽跑,照旧的来下参数应该是没有问题。

这时,初步安装就已经完成了,接下来请看设置sendmail

3.3安装Sendmail注意事项

如果安装不成功,请参考下面的问题:

用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"(当然,这得依你的系统而定,

如果你是用groff,那就可以很愉快的直接使用,不必改这个参数:)。如果不改也并不会影响

sendmail的安装,只是不能看到格式化後的sendmail相关文件罢了。

关于DIRECTORY PERMISSIONS的问题你需要执行2条命令:

chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

许多系统的spool目录使用/usr/spool来代替/var/spool,设置别名的etc/mail取而代之的是/etc,

如果你要在sendmail.cf设置RunAsUser许选项,/var/spool/mqueue这个目录需要RunAsUser 用户的权利,ok,这时开始编译Sendmail,执行这条命令

sendmail -v -bi

这时,开始初始化alias database. 如果它显示:

WARNING: writable directory /etc

WARNING: writable directory /usr/spool/mqueue

那么这个目录列出了不适当的写特权,应该避免多方面的的安全攻击。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有