本文来自:[url]http://java.chinaitlab.com/server/36163.html[/url]
 
 一、为ec.com配置DNS 服务器(限于局域网内部)
  
  1、安装DNS 套件 :BIND
  
  这个套件是配置DNS 服务器所必需的。使用RPM 来检验一下:
  [root@appserver etc]# rpm -qa | grep bind
  bind-utils-9.2.2-21      <=这个是用来作为 Client 端搜寻domain name 的指令
  redhat-config-bind-2.0.0-14
  ypbind-1.12-5
  bind-9.2.2-21       <=这个是用来安装 Server 的
  
  基本上,BIND的主要设定档为/etc/named.conf,各种针对主机的设定值都在这个档案中设定!但是具体的hostname<——>IP 的对应关系,则是由zone 来设定的!但是注意的是:这个zone 的档案名称则是需要在/etc/named.conf 里面命名好。zone 的档案一般放置在/var/named 里面。
  
  2、设定部分
  DNS server 的类型分为三类:Master\Slave\Cache-only
  由于我们只有一部主机提供DNS 服务,所以采用的是Master
  
  A.手动规划hostname 与IP 的对应表
  这里我们的domain name(域名)是ec.com,网域为192.168.0.0/256,只是设定一部电脑,为:
  电脑系统        电脑IP     电脑名称       说明
  Red Hat 9      192.168.0.10  mail.ec.com  这台电脑即我们DNS 主机,名称为mail.ec.com
  
  B.设定/etc/named.conf 档案
  在档案里加入下面代码,即定义出我们自己的的一组正反解设定,就是所谓的 zone
  zone "ec.com" IN {    //这个 zone表示domain name 为ec.com ,正解
  type master;
  file "named.ec.com";  //zone 对应的档案名,可以随便取,档案位于/var/named
  };
  
  zone "0.168.192.in-addr.arpa" IN { //反解的IP 网段!那个in-addr.arpa是固定的IP 段写法!
  type master;      //注意,它是192.168.0 反过来写的 0.168.192,最后一定加上in-addr.arpa
  file "named.192.168.0";
  };
  
  C.创建/var/named/named.ec.com 档案 (即与上面/etc/named.conf 档案里的zone 对应)
  代码如下:
  $TTL  86400  //这个和清除 cache的时间有关系,单位是秒,一般设为一天
  @    IN   SOA   mail.ec.com. root.mail.ec.com. (
  1997022700 ; Serial
  28800   ; Refresh
  14400   ; Retry
  3600000  ; Expire
  86400 )  ; Minimum
  @       IN   NS   mail.ec.com.   //指明管理域名ec.com 的主机为mail.ec.com
  @       IN   MX 10  mail.ec.com. //指明
[email][email protected][/email] 的邮件服务器为mail.ec.com
  mail      IN   A    192.168.0.10   //指明mail.ec.com主机的IP 地址
  一些相关说明:
  @   这个即代表 zone里定义的东西。以这个档案为例,因为我们在/etc/named.conf里定义出ec.com 这个
  domain name 为一个zone 的,所以,在这里,@代表的就是 ec.com
  SOA  ¥即Start of Authority 的缩写。这个东西在每个zone 的设定档里都会出现
  ¥SOA后面会接两个名称,第一个为主机名称,注意的是在mail.ec.com后面有个小数点(。)它代表一个完整的hostname + domain name !如果没有加上(。)的话,那么就表示仅为 hostname ,还需要加上 domain name !例如这里我们不加的话,系统就会认为主机名为mail.ec.com.ec.com!第二个为管理员的email!因为不能使用@,所以这里同样用(。)来代替!
  
  D.创建/var/named/named.192.168.0 档案 (同样与上面/etc/named.conf 档案里的zone 对应)
  代码如下:
  $TTL  86400
  @    IN   SOA   mail.ec.com. root.mail.ec.com. (
  1997022700 ; Serial
  28800   ; Refresh
  14400   ; Retry
  3600000  ; Expire
  86400 )  ; Minimum
  @       IN   NS   mail.ec.com.
  10       IN   PTR   mail.ec.com. //指明192.168.0.10反解为mail.ec.com
  
  F.启动 named与port  (DNS 服务在53 端口)
  [root@appserver root]# /etc/rc.d/init.d/named start
  named 已经在运行
  [root@appserver root]# netstat -tuln | grep 53
  tcp    0   0 192.168.0.10:53     0.0.0.0:*        LISTEN
  tcp    0   0 127.0.0.1:53      0.0.0.0:*        LISTEN
  tcp    0   0 127.0.0.1:953      0.0.0.0:*        LISTEN
  udp    0   0 192.168.0.10:53     0.0.0.0:*
  udp    0   0 127.0.0.1:53      0.0.0.0:*
  
  3、Client 端的设定
  这里我们测试是在同一台Linux 机器上,所以要修改/etc/resolv.conf .这个档案指定DNS 主机的IP ,Client端正是用这里面设定的IP 去追踪名称解析的。
  [root@appserver root]# vi /etc/resolv.conf
  加入(不是覆盖为!!)下面这一行代码:
  nameserver 192.168.0.10
  在windows 下面即将DNS 主机地址设为 192.168.0.10
  最后我们来测试一下:
  [root@appserver root]# host mail.ec.com
  mail.ec.com has address 192.168.0.10
  
  [root@appserver root]# host 192.168.0.10
  10.0.168.192.in-addr.arpa domain name pointer mail.ec.com.
  
  [root@appserver root]# nslookup mail.ec.com
  Note: nslookup is deprecated and may be removed from future releases.
  Consider using the `dig' or `host' programs instead. Run nslookup with
  the `-sil[ent]' option to prevent this message from appearing.
  Server:     192.168.0.10
  Address:    192.168.0.10#53
  
  Name:  mail.ec.com
  Address: 192.168.0.10
  一切正常!!
  
  二、配置sendmail
  
  1、安装sendmail、IMAP套件
  Red Hat 9 已经默认安装,检查一下先:
  [root@appserver root]# rpm -qa | grep sendmail
  sendmail-cf-8.12.10-1
  sendmail-8.12.10-1
  [root@appserver root]# rpm -qa | grep m4
  m4-1.4.1-13
  [root@appserver root]# rpm -qa | grep imap
  php-imap-4.3.2-8.ent
  imap-2002d-2
  [root@appserver root]# rpm -q mailx
  mailx-8.1.1-31
  
  2、修改主要配置档案
  
  A.寻找档案的?容
  [root@appserver root]# cd /etc/mail
  [root@appserver mail]# vi sendmail.mc
  找到下面这一段:
  DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
  将他删除
  
  B.重新制作档案:
  [root@appserver mail]# m4 sendmail.mc > sendmail.cf
  
  3、启动 Mail Server
  
  A、启动sendmail
  # /etc/rc.d/init.d/sendmail start
  
  B、启动 POP3 服务
  [root@appserver root]# cd /etc/xinetd.d
  [root@appserver xinetd.d]# vi ipop3
  修改见下:
  service pop3
  {
  socket_type       = stream
  wait          = no
  user          = root
  server         = /usr/sbin/ipop3d
  log_on_success += HOST DURATION
  log_on_failure += HOST
  disable         = no  <--默认为yes,改为no!!
  }
  修改完毕后需要重新启动xinetd 使修改起作用
  # /etc/rc.d/init.d/xinetd restart
  
  C、启动imap 服务
  同上,只是档案是imap
  D、[root@appserver xinetd.d]# netstat -tl
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address      Foreign Address     State
  tcp    0   0 *:pop3         *:*           LISTEN
  tcp    0   0 *:imap         *:*           LISTEN
  tcp    0   0 *:smtp         *:*           LISTEN
  
  4、设定主机名称
  [root@appserver xinetd.d]# cd /etc/mail
  [root@appserver mail]# vi local-host-names //在里面增加主机名称
  mail.ec.com
  
  5、设定邮件服务器使用权限/etc/mail/access
  由于只是局域网内部使用,并不寄信到外部,所以不涉及到relay 的功能,所以这里不做改动。当然也可以reject/discard 内部的一部分IP 的发信,用不着。
  
  6、设定使用者别名/etc/aliases
  
  A、群发功能  (当帐号过多不好维护时,可以用include 的功能导入相关连的档案)
  /etc/aliases 的语法如下:
  在邮件上面的收件者帐号:   真实帐号1,真实帐号2,真实帐号3......
  pm:            pm1, pm2, pm3......
  这样发给
[email][email protected][/email] 的邮件就会复制成三份,分别发给 [email][email protected][/email] [email][email protected][/email] [email][email protected][/email]
  命令如下:
  # vi /etc/aliases  //在里面加入下面行
  pm: pm1,pm2,pm3
  #newaliases       //这行命令很重要!更新作用!!
  
  B、别名设定
  命令