天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧网络 >> 正文

SENDMAIL邮件服务器的安装与设置

2010-3-28未知未知

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之前的版本就一定要换成最新版。



  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 还是比较简单又不会出错:)

 

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之前的版本就一定要换成最新版。



  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 还是比较简单又不会出错:)

 4.1 设置Sendmail.cf
  产生出来的YYY.cf一般得要改个地方才能正常的收信。请寻找"Cw",原来产生的.cf 档,Cw应是:Cwlocalhost
  请在localhost 之後加上你那一台机器所有可能用来当收信地址的host name 。
  例如我有一台机器叫:ftp.games.net.cn,而且也叫:gopher.games.net.cn,
  而我希望这一台机器这两个名字都能收信,那我要这么作:
  Cwlocalhost ftp.games.net.cn gopher.games.net.cn

  顺便说一下,Cw之後只能写入本机器的名字,千万不能写入其他机器的名字,否则,甚麽地方都能寄,那被写的就
  一定不能寄。

  上面其实是简略的说法,如果你对DNS 也熟悉的话,可参考这节来作判断,判断是否须要在Cw之後写入东东。否则
  请直接跳过这一小节,闭上眼睛把本机器所用的所有名字都写上就是了:)

  1.在一台机器上,如果有多个名字(hostname),而是用CNAME 建立的,如:
  $ORIGIN games.net.cn
  ftp IN A 140.119.1.2
  gopher IN CNAME ftp

  那麽可以不必在Cw上标明。系统会透过DNS 找到其 Canonical name。

  2.如果一台机器有多个名字,可是,每个名字是用A record 建立的。如:
  $ORIGIN games.net.cn.
  ftp IN A 192.168.25.2
  gopher IN A 192.168.25.2
  这种情况【一定】要记得在Cw後写上你所要收信的名字。如果这个忘了写,会有怎样的问题呢?
  忘了将会有从外面机器寄信来,没有写上的机器名将却收不到信,机器会抱怨:
  "Local configuration error" 。

  如:我的sendmail.cf中的Cw这行是如下: Cw games.net.cn
  那我将无法使用这个地址:
  username@games.net.cn
  而只能用
  username@ftp.games.net.cn 否则将出现上述错误。

  如果发现了错误,那再加上去也就可以了。

  3.如果一台机器有多interface ,各interface有其本身的名字,且要收信。
  这个情况也要在Cw之後写明所有要收信的hostname。




  4.2 设置access

  打开/etc/mail/access,你会看到 (注意一些系统的access文件不再/etc/mail下,如找不到请用whereis查找或检查是否安装正常)

  # Check the /usr/doc/sendmail-8.9.3/README.cf file for a description
  # of the format of this file. (search for access_db in that file)
  # The /usr/doc/sendmail-8.9.3/README.cf is part of the sendmail-doc
  # package.
  #
  # by default we allow relaying from localhost...
  localhost.localdomain RELAY
  localhost RELAY

  如果您的IP地址是192.168.25.11的话,这样请在最后一行加上192.168.25.11 RELAY
  其文件的最后三行应是:

  localhost.localdomain RELAY
  localhost RELAY
  192.168.25.11 RELAY

本文来源:未知 作者:未知

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行