免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1731 | 回复: 0
打印 上一主题 下一主题

freebsd 7.0 安装配置dns服务-bind9.5.0 [复制链接]

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-04 11:04 |只看该作者 |倒序浏览

这次 在Freebsd7.0上
安装
并成功运行了bind9.5, 感觉还不错.. 以下是我的安装及配置方案..
1: 安装
bind
.
   你可以通过
ports
方式安装. 因为ports里面的是bind9.4.2,之前也装了一次,感觉还是用9.5的爽.嘻嘻..
  ports方法很简单..
  cd /usr/ports/dns/bind94
  make install clean
我是自己
编译
安装的.

下载
你要的
文件
bind-9.5.0.tar.gz

tar
-zxvf bind-9.5.0.tar.gz
  cd bind-9.5.0
  ./configure --prefix=/usr/local/named95 --enable-threads  --enable-largefile --enable-ipv6
   # threads 支持 多线程
   # largefile 好像是支持大文件
   # ipv6 支持ipv6 协议 ip解析.
   # 具体参数说明,可以通过 ./configure --help
   make && make install
    2:建立账户
因为之前我用ports方式安装过bind,所以已经帮我自动建立了bind账户. 所以建立账户这步我可以省略了.
如果你是第一次编译安装, 那为了
安全
,还是新建一个账户来启动bind服务.
groupadd bind
useradd -g bind -d /usr/local/named95 -s /sbin/nologin bind  

#新建bind账户,并绑定目录到bind的安装目录.
3: 配置
/usr/local/named95/sbin/rndc-confgen > /etc/rndc.conf
#我的路径不同,不是默认的/sbin这里自己根据情况来修改.        
tail -10 /etc/rndc.conf|head -9|sed s/#\//g > /etc/named.conf
#这里 是通过rndc来加密bind的连接, 主要是在主副
dns
服务器,以及rndc连接的时候做加密用,
#在安全方面做防护. 和
ssh
的key方式连接差不多意思.         
建立log文件 下面会用到.
touch /var/log/named/dns_warning
touch /var/log/named/dns_log
chown bind:bind /var/log/named/dns_waring
chown bind:bind /var/log/named/dns_log

这里提个醒,写这些文档的时候,注意不要遗漏了{} ; 这几个符号,前后对应,我写的时候也吃了好几次亏.
以下是我的named.conf文件内容,仅作参考:
key "rndc-key" {
       algorithm hmac-md5;
       secret "HA4Sdtp0QprQbSPH4UFy7g==";
};

controls {
       inet 127.0.0.1 port 953
               allow { 127.0.0.1; } keys { "rndc-key"; };
};

acl "my-lan" {
127.0.0/8;     216.16.16/24;                             
       #192.168.25/24;
};


#acl是控制列表.设置允许dns查询的ip,安全设置

acl bogusnets {
0.0.0.0/8; 1.0.0.0/8; 2.0.0.0/8; 192.0.2.0/24; 224.0.0.0/3; 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16
; };

# bogusnets 是禁止的列表,其中一部分ip是网络上没有的,防止被攻击,acl的控制名,你可以不用"".
options {
       directory "/usr/local/named95/etc/namedb";      


# 这个是域名查询时正反解析文件存放的目录.
      

forwarders { 202.96.209.6; };                    

#转发器ip的设置.这个是上海的dns,自己根据当地情况修改.
      

notify no;                                    

  # 这个是多dns服务器之间域名更新的通知,我这里设置不通知,暂时没有做多dns的负载.
       pid-file "/var/run/run/named.pid";            

# 这个是bind的进程的pid号存放的文件.
       auth-nxdomain no;                                

# 设置不支持域内验证.内网域模式管理的,用不到.
       version "
Windows
server 2008 DNS 8.0";           

# 设置bind的版本,做欺骗作用.安全设置.

     blackhole { bogusnets; };  #设置阻止的ip名单.上面写到的.

       allow-recursion { "my-lan"; };               

    #设置允许
递归
查询的ip列表,就是上面提到的acl控制.
       listen-on port 53 {
                216.16.16.83;                        
};

# 设置监听端口,以及ip,因为我的单网卡绑定了双ip, 但我只想监听其中一个ip,作为服务.
#这个在多网卡的服务器上可以用上.

       max-cache-size 50M;                           # 最大缓存大小.
       allow-query {                              

       "my-lan";
};


#允许递归循环查询的ip列表.也就是自己域名列表中没有要查询的dns,可以转发到转发器的
#dns得到所要查询的域名,这在内网控制上有用,比如不允许内网个别用户查询公网.这里就可以控制了

       allow-transfer {
# 192.168.25/24;
       216.16.16/24;  127.0.0/8;     };

};

# transfer 是主副dns服务器之间域名zone 数据的传输许可.

logging {
  channel warning {
   file "/var/log/named/dns_warning" versions 3 size 1240k;
   severity warning;
   print-category yes;
   print-severity yes;
   print-time yes;
  };
  channel general_dns {
      file "/var/log/named/dns_log" versions 3 size 1240k;
      severity info;
      print-category yes;
      print-severity yes;
      print-time yes;
  };
  category default {
      warning;
  };
  category lame-servers { null; };         
  category edns-disabled { null; };
  category queries {
      general_dns;
  };
};



# log文件, 其中
#category lame-servers { null; };         
#category edns-disabled { null; };


#是取消 错误提示, 就是当你查询的域名查不到的时候,会有错误的提示,什么time out .... deny edns的提示,很烦,我就取消这个记录了.

##以下是域名文件, "name.root" "localhost.zone" "named.127.0.0" 3个文件是基本的.
#quan-study.com 是我自己添加的域名,你可以通过zone来添加n多域名. 当然还有一种方式,就是通过
#include 来书写, 另外新建一个文件,统一管理,不过我这里只需要几个域名,直接在named.conf中书写了.
#至于include的方式,你可以看手册做参考.alleyes.com是广告网站,很烦,所以我给他指定到我自己的服务
#器. 这个也是种方法来重定向. 本打算做个dns劫持的. 就是不允许上公网的用户,都重定向到内网web.可
#惜没做成. 以后再考虑了.

zone "." in {
       type hint;
       file "name.root";
};

zone "localhost" in {
       type master;
       file "localhost.zone";
};

zone "0.0.127.in-addr.arpa" in {
       type master;
       file "named.127.0.0";
       allow-update { none; };
};

zone "quan-study.com" in {
       type master;
       file "quan-study.com";
       allow-update { none; };
};

zone "16.16.216.in-addr.arpa" in {
       type master;
       file "quan-study.216.16.16";
       allow-update { none; };
};

zone "alleyes.com" in {
       type master;
       file   "deny.list";
};


以下是 几个域名文件内容 :
name.root 是实时更新的,自己下载.
ftp
://ftp.internic.org/domain/named.root
localhost.zone:
$TTL   86400
$ORIGIN localhost.
@       1D       IN       SOA       @      
root
(
                       42       ; serial (d. adams)
                       3H       ; refresh
                       15M       ; retry
                       1W       ; expiry
                       1D )       ; minimum
       1D       IN       NS       @
       1D       IN       A       127.0.0.1

named.127.0.0:
$TTL       86400
@       IN       SOA       localhost.       root.localhost. (
                       1997022700       ; Serial
                       28800               ; Refresh
                       14400               ; Retry
                       3600000               ; Expire
                       86400 )               ; Minimum
        IN       NS       localhost.
1       IN       PTR       localhost.

quan-study.com
$TTL   86400
$ORIGIN    quan-study.com.
@      IN     SOA    email.quan-study.com.  root.quan-study.com. (
                       23     ;
                       12h    ;
                       2h     ;
                       3w     ;
                       2h
                       )      ;

               IN     NS     email.quan-study.com.
       3w     IN     MX     10     mail.quan-study.com.
#3w是3week,3周,邮局ip一般不变
email          IN     A      216.16.16.83                  
mail           IN     A      216.16.16.83
www            IN     A      216.16.16.83
test.ho        IN     A      216.16.16.83        #2级域名,你也可以设置多级域名.
*              IN     A      216.16.16.83        #范域名解析
quan-study.216.16.16
$TTL   86400
$ORIGIN 16.16.216.IN-ADDR.ARPA.
@      IN     SOA    email.quan-study.com.  root.quan-study.com. (
                       23     ;
                       12h    ;
                       2h     ;
                       3w     ;
                       2h     ;
                       )      ;

       IN     NS     email.quan-study.com.
83     IN     PTR    email.quan-study.com.
83     IN     PTR    mail.quan-study.com.
83     IN     PTR    www.quan-study.com.

deny.list
$TTL   86400
$ORIGIN   alleyes.com.
@      IN     SOA    email.quan-study.com.  root.quan-study.com. (
                       23     ;
                       12h    ;
                       2h     ;
                       3w     ;
                       2h
                       )      ;
       NS     email.quan-study.com.

*      IN     A      216.16.16.83
以上设置几点说明, 注意几个文件中的点号 ".",不要忘记了, email.quan-study.com. 是我服务器的hostname,相当于windows下的计算机主机名.(当然不能完全这样理解), quan-study.com是我的域名.不要把2个搞混淆了. 因为我的hostname 和域名都差不多, 你也可以把主机名改成dnsserver这样的形式,但要和/etc/rc.conf文件中指定的命令 hostname "email.quan-study.com" 相同, 可以和域名区别开.
之后可以 启动测试:
/usr/local/named95/sbin/named -gc /etc/named.conf &

# "&"是后台允行,这样你可以继续别的操作.如果没有错误提示,一切顺路就是running.
# 可以用nslookup来查询你的域名.
最后,设置自动启动. 默认是通过在rc.conf传递参数,但我觉得系统默认写的named自动启动
脚本
太繁琐了.
自己写了一个.仅做参考.
新建一个文件
vi /etc/named2
case "$1" in
start)
if [ -x /usr/local/named95/sbin/named ]; then
/usr/local/named95/sbin/named -u bind -c /etc/named.conf && echo . && echo 'BIND9 server started.'
fi
;;

stop)
kill `cat /var/run/run/named.pid` && echo . && echo 'BIND9 server stopped.'
;;
restart)
echo .
echo "Restart BIND9 server"
$0 stop
sleep 10
$0 start
;;
*)
echo "$0 start | stop | restart"
;;
esac

然后在新建一个文件 rc.local 默认没有这个文件, 这个好像是老版本的自启动方式,因为这种方式,
在自启动程序多的时候,就会不方便管理.freebsd新版本通过rc.conf来传递参数,遍历/etc/rc.d 目录下的自启动程序.
我也是为了偷懒, 嘻嘻..
vi /etc/rc.local 写入这一行.
/etc/named2 start
这样就做好了..
  最后别忘了
chown -R bind:bind /usr/local/named95

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/4206/showart_1359106.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP