- 论坛徽章:
- 2
|
这次 在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 |
|