飞嗨,欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。(本博已于2015.12.6升级到php7,运行环境php7 php-fpm + nginx1.8.0)

CentOS 7搭建DNS服务器,bind安装配置

Linux lf 10143℃ 0评论

虽然可以修改操作系统下的hosts文件劫持dns解析,但是如果在多台计算机之间测试,就得一行行的复制到多个计算机中。更有甚者,如果测试接口地址是测试域名,在未越狱的iphone中就没办法测试了,未越狱的iphone修改不了hosts。而且hosts只支持A记录,没办法设置MX,PTR,CNAME……搭建一个dns服务器这些问题就解决了。

1.安装

yum install bind-chroot

2.设置开机启动

systemctl enable named-chroot

3.配置bind

vim /etc/named.conf
options {
	listen-on port 53 { any; };
	listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
	statistics-file "/var/named/data/named_stats.txt";
	memstatistics-file "/var/named/data/named_mem_stats.txt";
	allow-query     { any; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.iscdlv.key";

	managed-keys-directory "/var/named/dynamic";

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
	type hint;
	file "named.ca";
};

zone "a.com" IN {
    type master;
    file "a.com.zone";
};

zone "0.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.0.zone";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

默认配置修改这两项:

listen-on port 53 { any; }表示监听任何ip对53端口的请求

allow-query { any; }表示接收任何来源查询dns记录

zone "a.com" IN {
    type master;
    file "a.com.zone";
};

此段增加一个a.com域名的解析,具体解析规则在/var/named/a.com.zone里。

zone "0.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.0.zone";
};

此段增加一个反向解析,即根据ip查域名(不需要的话可以不设置)

/var/named/a.com.zone文件内容,请注意named用户有读的权限

$TTL 1D
@	IN SOA	@ root.a.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	NS	@
	A	      192.168.0.111
www     A             192.168.0.112   
@       MX      10    mx.a.com.
	AAAA	      ::1

此段设置了
a.com的ip为192.168.0.111,
www.a.com的ip解析到192.168.0.112,
a.com的mx记录为mx.a.com

/var/named/192.168.0.zone文件内容,请注意named用户需要有读的权限

$TTL 86400
@       IN      SOA     localhost a.com. (
                         2014031101
                         2H
                         10M
                         7D
                         1D )
                 IN      NS      localhost.
111                  IN      PTR     a.com
112                IN      PTR     www.a.com.

此段设置了反查记录,即
192.168.0.111查询后得到的域名是a.com

192.168.0.222查询后得到的域名是www.a.com

最后,启动bind

systemctl start named-chroot

基本的DNS服务器搭建完成,并已经设置了一个a.com的域名解析,来测试一下。

windows右键网卡图标,打开网络和共享中心,更改适配器设置,右键网卡,属性,Internet 协议版本4(TCP/IPv4),勾选使用下面的DNS服务器地址,首选DNS服务器填入服务器ip,类nix系统编辑/etc/resolv.conf修改nameserver为服务器ip。115.28.142.187为我的dns服务器IP,下面的结果都是基于115.28.142.187dns服务器返回的结果.

查询a.com的dns记录

a.com A记录

a.com A记录

查询www.a.com的dns记录

www.a.com A记录

www.a.com A记录

查询a.com的MX记录

a.com MX记录

a.com MX记录

查询www.a.com的PTR记录
www.a.com PTR记录

www.a.com PTR记录

转载请注明:飞嗨 » CentOS 7搭建DNS服务器,bind安装配置

喜欢 (6)or分享 (0)
发表我的评论
取消评论
表情
(22)个小伙伴在吐槽
  1. 少时诵诗书所所所所
    匿名2018-09-13 10:23 回复
  2. 55555555555555555
    匿名2018-09-13 10:23 回复
  3. 维恩
    匿名2018-09-13 10:23 回复
  4. 23432432423
    匿名2018-09-13 10:21 回复
  5. 大胸弟,你配置文件有 ‘f.com.zone’,但是后面你并没有建这个文件,所以启动都会报错,
    匿名2018-04-13 10:35 回复
    • 感谢提醒,因为我测试的时候,写了两次,然后整理文章的时候忘记去掉了f.com测试域名。已修正文章。再次感谢。
      lf2018-04-17 09:34 回复
      • 23432432
        匿名2018-09-13 10:21 回复
  6. 点击查看
    匿名2018-01-05 15:21 回复
  7. 启动失败: Job for named-chroot.service failed because the control process exited with error code. See "systemctl status named-chroot.service" and "journalctl -xe" for details.
    匿名2017-11-28 17:41 回复
    • 这个问题一定是你的配置没写对,可以加入qq群258780872获取帮助,有空的时候可以远程帮你看看
      lf2017-12-12 11:29 回复
  8. :!:
    匿名2017-11-19 16:53 回复
  9. 受教了!呵呵!
    增达网2017-05-14 16:37 回复
  10. 学习使人进步,到此拜读!
    衣皇后2017-03-31 09:28 回复
  11. 真是时光荏苒!
  12. 文档评论
    匿名2017-01-21 16:46 回复
    • 欢迎随便谈谈你的感想
      lf2017-01-21 22:06 回复
  13. 需要向博主学习的地方还有很多,很多,很多……
    三五营销2017-01-04 15:20 回复
    • ddd
      匿名2017-01-21 16:44 回复
      • 还能回顾 :oops:
        匿名2017-01-21 16:47 回复
        • 能回复的,包括回复评论哟
          lf2017-01-21 22:06 回复
          • 444
            匿名2018-05-24 11:45
    • ...
      匿名2017-01-21 16:47 回复
粤ICP备15018643号-1