DNS解析及简单安全控制

一、软件安装

BIND的安装配置:BIND是 Berkeley Internet Name Domain 简称,是开源dns协议的实现。

dns: 协议

bind: dns协议的一种实现

named:bind程序的运行的进程名

程序包:

bind-libs:被bind和bind-utils包中的程序共同用到的库文件;

bind-utils:bind客户端程序集,例如dig, host, nslookup等;

bind:提供的dns server程序、以及几个常用的测试程序;

bind-chroot:选装,让named运行于jail模式下;

bind配置:

主配置文件:/etc/named.conf

或包含进来其它文件;

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

主配置文件格式

全局配置段:

options { ... }

日志配置段:

logging { ... }

区域配置段:定义那些由本机负责解析的区域,或转发的区域;

zone { ... }

注意:每个配置语句必须以分号结尾;

缓存名称服务器的配置:

监听能与外部主机通信的地址;

listen-on port 53;

listen-on port 53 { 172.16.100.67; };

学习时,建议关闭dnssec

dnssec-enable no;

dnssec-validation no;

dnssec-lookaside no;

关闭仅允许本地查询:

//allow-query  { localhost; };

检查配置文件语法错误:

named-checkconf   [/etc/named.conf]

解析库文件:

/var/named/目录下;

一般名字为:ZONE_NAME.zone,事实上叫什么名字无所谓。

注意: (1) 一台DNS服务器可同时为多个区域提供解析;

(2) 必须要有根区域解析库文件: named.ca;

(3) 还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;

正向:named.localhost

反向:named.loopback

rndc:remote name domain contoller,远程域名服务器控制器

953/tcp,但默认监听于127.0.0.1地址,因此仅允许本地使用;

说明:bind程序安装完成之后,默认即可做缓存名称服务器使用;如果没有专门负责解析的区域,直接即可启动服务;

(这种情况下可以链接网络,并为设置DNS为其地址的服务器得到递归结果,并缓存)

CentOS 6: service  named  start

CentOS 7: systemctl  start  named.service

测试工具:

dig, host, nslookup等

dig命令:

dig  [-t RR_TYPE]  name  [@SERVER]  [query options]:用于测试dns系统,因此其不会查询hosts文件;

查询选项:

+[no]trace:跟踪解析过程;

+[no]recurse:进行递归解析;

注意:反向解析测试

dig  -x  IP

模拟完全区域传送:

dig  -t  axfr  DOMAIN  [@server]

host命令:

host  [-t  RR_TYPE]  name  SERVER_IP

nslookup命令:

nslookup  [-options]  [name]  [server]

交互式模式:

nslookup>

server  IP:以指定的IP为DNS服务器进行查询;

set  q=RR_TYPE:要查询的资源记录类型;

name:要查询的名称;

rndc命令:named服务控制命令

rndc  status

rndc  flush # 清空服务器缓存

二、 配置解析一个正向、方向区域(以magedu.com域为例)

配置正向区域

(1) 定义区域

在主配置文件中或主配置文件辅助配置文件中实现;

zone  "ZONE_NAME"  IN  {               # ZONE_NAME即为域名;
    type  {master|slave|hint|forward};
    file  "ZONE_NAME.zone";               # 默认在/var/named目录下
};

例如:

tail /etc/named.rfc1912.zones
zone "magedu.com" IN {
	type master;
	file "magedu.com.zone";
};

(2) 建立区域数据文件(主要记录为A或AAAA记录)

在/var/named目录下建立区域数据文件;

文件为:/var/named/magedu.com.zone

$TTL 3600$ORIGIN [email protected]       IN      SOA     ns1.magedu.com.(
主DNS可以用@或magedu.com.
)   
dnsadmin.magedu.com. (
    2017010801
        1H    
        10M    
        3D    
        1D 
)
       IN      NS       ns1
       IN      MX   10    mx1
       IN      MX   20    mx2
ns1     IN      A       172.16.100.67
mx1     IN      A       172.16.100.68
mx2     IN      A       172.16.100.69
www     IN      A       172.16.100.67
web     IN      CNAME       www
bbs     IN      A       172.16.100.70
bbs     IN      A       172.16.100.71

权限及属组修改:

# chgrp  named  /var/named/magedu.com.zone# chmod  o=  /var/named/magedu.com.zone

检查语法错误:

# named-checkzone  ZONE_NAME   ZONE_FILE
# named-checkzone  magedu.com /etc/named/magedu.com.zone
# named-checkconf

(3) 让服务器重载配置文件和区域数据文件

# rndc  reload 或# systemctl  reload  named.service

配置一个反向区域 解析

(1) 定义区域

在主配置文件中或主配置文件辅助配置文件中实现;

zone  "ZONE_NAME"  IN  {
    type  {master|slave|hint|forward};
    file  "ZONE_NAME.zone"; 
};
    例如:
zone "100.16.172.in-addr.arpa" IN {
}

注意:反向区域的名字:反写的网段地址.in-addr.arpa,如:100.16.172.in-addr.arpa

(2) 定义区域解析库文件(主要记录为PTR,不用写MX,CNAME类型的记录)

示例,区域名称为100.16.172.in-addr.arpa;

$TTL 3600
$ORIGIN 100.16.172.in-addr.arpa.
@       IN      SOA     ns1.magedu.com.  nsadmin.magedu.com. (
    2017010801
    1H    
    10M    
    3D    
    12H 
)
        IN      NS      ns1.magedu.com.
67      IN      PTR     ns1.magedu.com.
68      IN      PTR     mx1.magedu.com.
69      IN      PTR     mx2.magedu.com.
70      IN      PTR     bbs.magedu.com.
71      IN      PTR     bbs.magedu.com.
67      IN      PTR     www.magedu.com.

权限及属组修改:

# chgrp  named  /var/named/172.16.100.zone# chmod  o=  /var/named/172.16.100.zone

检查语法错误:

# named-checkzone  ZONE_NAME   ZONE_FILE# named-checkzone  100.16.172.in-addr.arpa 172.16.100.zone # named-checkconf 

(3) 让服务器重载配置文件和区域数据文件

# rndc  reload 或# systemctl  reload  named.service

三、主从服务器:

配置一个从区域:

在从服务器上配置:

(1) 定义区域

定义一个从区域;

zone "ZONE_NAME"  IN {    type  slave;    file  "slaves/ZONE_NAME.zone";    masters  { MASTER_IP; };};

配置文件语法检查:named-checkconf

(2) 重载配置

rndc  reloadsystemctl  reload  named.service

On Master在主服务器上配置:

(1) 确保区域数据文件中为每个从服务配置NS记录,并且在正向区域文件需要每个从服务器的NS记录和其主机名配置的一个A记录,且此A后面的地址为真正的从服务器的IP地址;

注意:时间要同步;

ntpdate命令;# 任何基于时间同步的主从服务器都需要时间同步。

手动区域传送:dig -t axfr magedu.com @主服务器 # 得到区域传送的所有内容。# 这样有风险啊? 别人只要懂这条命令就可以得到你的所有解析条目。

四、子域授权:

正向解析区域授权子域的方法:

ops.magedu.com. 		IN 	NS  	ns1.ops.magedu.com. (不是个A记录)ops.magedu.com. 		IN 	NS  	ns2.ops.magedu.com.ns1.ops.magedu.com. 	IN 	A 	IP.AD.DR.ESSns2.ops.magedu.com. 	IN 	A 	IP.AD.DR.ESS

子域找父域的解析条目,没有负责父域的条目,只能找根了,那么怎么定义转发到父域呢?定义区域转发。

六、bind中的安全控制的相关配置:

acl:访问控制列表;把一个或多个地址归并一个命名的集合,随后通过此名称即可对此集全内的所有主机实现统一调用;

先定义后使用;

acl  ACL_NAME  {

ip;               # ip 或者网段:net/prelen;

... ...;

};

示例:

acl  mynet {    172.16.0.0/16;    127.0.0.0/8;};

bind有四个内置的acl

none:没有一个主机;

any:任意主机;

local:本机;

localnet:本机所在的IP所属的网络;

访问控制指令:

allow-query  {};  允许查询的主机;白名单;

allow-transfer {};  允许向哪些主机做区域传送;默认为向所有主机;应该配置仅允许从服务器;

allow-recursion {}; 允许哪此主机向当前DNS服务器发起递归查询请求;

allow-update {}; DDNS,允许动态更新区域数据库文件中内容;一般定义为none,不允许动态更新。

vim /etc/named.conf

在zone或全局中设置传递并设置该acl

acl slaves{
172.16.100.68;
127.0.0.1;
 };

这样仅仅在这些地址才能够进行传送解析信息。

vim /etc/named.conf
acl mynet{
172.18.0.0/24;
127.0.0.1;
};
allow-recurse{ mynet; };

这样仅仅在这些地址服务器才给递归。

时间: 2024-10-11 11:43:38

DNS解析及简单安全控制的相关文章

简单理解DNS解析流程(一)

0x0 简单理解dns DNS服务器里存着一张表 表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址 如何知道? 向知道的人查询,也就是向dns服务器查询 0x1 dns解析流程 -> 以客户端浏览器访问 www.rootkit.org 域名为例,首先,它会去检查当前浏览器缓存是否有对应IP,如果有,就直接响应,如果没有,就继续往下找 -> 接着,操作系统会去检查自己的host文件,如果从中没找到对

简单介绍智能DNS解析+双线路接入

导读:在讨论这个问题,其中群友老孤同志也提供了不少非常有参考价值的资料,所以我们再把这些资料再整理一次,从比较底层的技术原理上重新进行一次分析.   我们知道,因为南电信北网通现象的存在,我们的服务器或网络内容.服务等提供商对网络的选择也至为重要.每位站长或网络内容.服务提供商都希望自己的网站在全国乃至全球都能快速被用户访问到,但现实国情中,单...正文: 其实双线技术的实现方式并不是什么新的技术问题了,说白了就是智能DNS解析+双线路接入,不过最近不少朋友都在讨论这个问题,其中群友老孤同志也提

DNS解析

大家好,今天51开源给大家介绍一个在配置文件,那就是/etc/resolv.conf.很多网友对此文件的用处不太了解.其实并不复杂,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序.该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件.它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数.resolv.conf的关键字主要有四个,分别是:nameserver    //定义DNS服务器的IP地址do

DNS解析服务器

Windows2008 DNS解析服务器建立 DNS解析服务器在我们日常生活中的使用非常广泛,相信也有不少人对此存在一些疑惑或者想要了解DNS解析服务器,这里,我简单向大家介绍windows2008中DNS服务器的建立. 第一步,打开服务器管理器,选择添加角色,选中DNS服务器,下一步,选择默认安装程序,进行安装,如图. 第二步,安装完成之后,在管理工具中打开DNS服务器,并在正向查找区域中新建域(新建过程中基本选择默认即可,其中需要注意的是动态更新上面选择不允许动态更新). 域建立好了之后,在

Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常被解析,莫名其妙地打不开,或者时好时坏. 如果碰上不稳定的本地DNS,还可能经常出现无法解析的情况.除了要避免"坏"的DNS的影响,我们还可以利用DNS做些"好"事,例如管理局域网的DNS.给手机App Store加速.纠正错误的DNS解析记录.保证上网更加安全.去掉网

被动信息收集1——DNS基础 + DNS解析工具 NSLOOKUP使用

被动信息收集 特点: 基于公开渠道 与目标不直接接触 避免留下一切痕迹 标准参考--OSINT: 美国军方 北大西洋公约组织 名词解释 DNS--Domain Name System 域名系统 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.在RFC文档中RFC 2181对DNS有规范说明,RF

外部网站DNS解析过程详解

对外部网站的DNS解析全过程图解(排除ISP缓存方面,只是原理) 如下图: 上图是自制,如有错误地方,还请评论指点,谢谢! 以下为DNS详解,转载自百度文库! 平时我们进行域名解析所用到的DNS服务器,是面对客户的一线服务器. DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址. 用户使用域名地址,该系统就会自动把域名地址转为IP地址.域名服务是运行域名系统的Interne

DNS服务器之简单配置(一)

名词解释: 域名: 域名是域名系统名字空间中,从当前节点到根节点的路径上所有节点标记的点分顺序连接. 域: 域是指域名系统名字空间中的一个子集,也就是树形结构名字空间中的一颗子树.这个子树根节点的域名就是该域的名字, 域的级别: 顶级域(TLD, Top Level Domain)是指域名系统名字空间中根节点下最顶层的域.顶级域也称一级域,顶级域的下级就是二级域,二级域的下级就是三级域,以此类推.每个域都是其上级域的子域.最早的顶级域名,也是现在说的国际域名,按照用途分为的7个大类: .com:

dns协议的简单配置

DNS(Domain Name System,域名系统),因特网上作为域名和ip相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机名和域名.DNS数据库中的名称形成一个分层树状结构称为域命名空间.完全限定的域名 (FQDN) 唯一地标识在 DNS 分层树