1、DNS目标v了解DNS的概念v掌握使用Linux/bind配置域名服务器的基本方法v了解不同类型域名服务器的配置方法v掌握域名服务调试原理及调试工具课程组成1、什么是DNS?2、DNS工作原理3、DNS系统组成4、BIND5、典型服务器配置6、DNS安全、日志分析入门8、DNS协议的简单分析1、什么是DNS什么是DNSDNS(英文单词的全称是:Domain Name System,域名系统),DNS是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串 C NcomD UDNS作用v树状分层结构组织管理
2、计算机v查找名字与地址之间的对应关系netbeccomINTERNET?DNS ServerDNS的设计目标v(一)、为访问网络资源提供一致的名字空间;v(二)、从数据库容量和更新频率方面考虑,必须实施分散的管理,通过使用本地缓存来提高性能;v(三)、在获取数据的代价、数据更新的速度和缓存的准确性等方面折衷;v(四)、名字空间适用于不同协议和管理办法,不依赖于通讯系统;v(五)、具有各种主机的适用性,从个人机到大型主机。DNS的特点vDNS的特点:树形结构:采用Client/Server工作方式;一个Domain一般是一个工作站群,可有一个主域名服务器及若干辅域名服务器;应用层协议是标准TCP
3、/IP协议的一个组成部分。DNS结构与作用机制.root第二级第二级第三级第三级第四级第四级nDNSDNS树状结构图树状结构图2、DNS系统组成DNS包含三个主要组成部分:v(1)、域名空间(Name Space)和资源记录(Resource Record)v(2)、域名服务器(Name Server)用以提供域名空间结构及信息的服务器程序。v(3)、解析器(Resolver)作用是应客户程序的要求从域名服务器抽取信息。(1)域名空间v域名空间被设计成树状层次结构,类似于UNIX的文件系统结构 域名空间vInternet的域名组成最上层设有九类组织:COM商业组织EDU教育机构GOV政府机构M
4、IL军事单位NET提供网络服务的单位ORG 非赢利性组织INT 国际组织ARPA 由ARPANET沿留的名称国家名称资源记录v资源记录是与名字相关联的数据,v域名空间的每一个节点包含一系列的资源信息。资源记录v一条资源记录共有5项,分别是 域名(Domain_name)、生存时间(Time_to_live)、类型(Type)、类别(Class)、值(Value)(2)域名服务器(Name Server)用以提供域名空间结构及信息的服务器程序 LINUX默认是BIND,提供域名解析服务域名服务器分类分类:分类:根(根(rootroot)服务器)服务器由由NICNIC来维护来维护主域名服务器(主域
5、名服务器(Primary ServersPrimary Servers)负责一个域的名称解析,通常为一个负责一个域的名称解析,通常为一个辅助域名服务器(辅助域名服务器(Secondary ServersSecondary Servers)域的冗余和备份域的冗余和备份专用缓存域名服务器(专用缓存域名服务器(Cache-only ServersCache-only Servers)缓存非授权的缓存非授权的DNSDNS信息信息转发域名服务器(转发域名服务器(Forwarding ServersForwarding Servers)(3)解析器(Resolver)v作用是应客户程序的要求从名字服务器抽
6、取信息 3、DNS如何工作DNS工作地址是什么?地址是什么?根服务器根服务器向向cn域查询域查询地址是什么地址是什么cn服务器服务器向向查找查找查询查询服务器服务器地址是地址是名服务器名服务器cncomsina263mailpopwwwcomnetDNSServerClientnDNSDNS作用机制作用机制查询方式-递归方式查询方式-循环(交互)方式4、BINDBIND简介vBIND(Berkeley Internet Name Domain)Berkeley UniversityISCv组成域名系统服务器(named)域名系统解析库域名系统服务器调试工具v版本BIND V4BIND V8BI
7、ND V94、BINDvBIND提供linux下的域名服务。简介:BIND是C/S系统 客户端是转换程序(resolver)服务器端是named守护进程配置实例通过例子学习DNS 解析域名: 服务器:192.168.1.120相关配置文件v1)客户端:(默认安装)/etc/host.conf 系统自带/etc/resolv.conf 系统自带 2)服务器端:v/etc/named.conf系统自带 v/var/named/named.local/var/named/named.ca v/var/named/localhost.zonev/var/named/name2ip.conf(正向解析,
8、自建,可由localhost.zone拷贝生成)v/var/named/ip2name.conf(反向解析,自建,可由named.local拷贝生成)v3)其他:v/etc/hosts 系统自带/etc/nsswitch.confNoImageTHANK YOUSUCCESS2022-12-5可编辑客户端配置文件详解/etc/host.confv文件/etc/host.conf 是用来控制本地转换程序设置的文件。该文件告诉转换程序使用哪些服务以及按照什么顺序进行查询。该文件的字段可以用空格或制表符来分隔/etc/host.conf1)Orderv指定按照哪种顺序来尝试不同的名字解析机制。按列出
9、的顺序进行指定的解析服务。支持v下面的名字解析机制:vhosts试图通过查找本地/etc/hosts文件来解析名字vbind 使用DNS服务器来解析名字vnis使用NIS服务来解析主机名字/etc/host.confv2)Multiv以off和on为参数。与host查询一起使用,用来确定一台主机是否在/etc/hosts文件中,v制订了多个IP地址(该项对于DNS和NIS无效)v3)Nospoofv若在反向解析找出与指定的地址匹配的主机名,则对返回的地址进行解析以确认它确实与v您的查询地址相匹配。为了防止“骗取”IP地址,通过指定nospoof on来允许此功能/etc/host.confv4
10、)Alertv以off和on为参数。若为on,则任何试图骗取IP地址的行为都通过syslog工具进行记录v5)Trimv以域名为参数。在查找名字前先删除此域名,再从文件/etc/hosts查找匹配的主机名/etc/resolv.conf v当配置转换程序使用BIND域名服务查询主机时,必须告诉转换程序使用哪一个域名服务器。用来完成这项任务的工具就是/etc/resolv.conf文件 选项说明domain定义默认的域名(主机的本地域名)search指定域名搜索表(最多六个域名参数)nameserver列出域名服务器的IP地址(最多可以出现三个nameserver指令)options为解析器定义
11、处理方式,常用的选项有:rotate打开客店端轮询查询选项。当nameserver中定义多个域名服务器时,进行轮询查询nochecknames禁止检测被查询的域名是否符合RFC952,当需要使用带有下划线“_”的域名时,需设置该项inet6可以使解析器查询ipv6地址服务器端文件配置详解服务器端配置文件详解v/etc/named.conf:主配置文件/var/named/named.ca:根域名服务器指向文件v/var/named/localhost.zonev/var/named/named.localv/var/named/name2ip.confv/var/named/ip2name.c
12、onf默认的localhost区文件用户配置的区文件更新named.cav1 1、ftp FTP.RS.INTERNIC.NET ftp FTP.RS.INTERNIC.NET 登陆名:登陆名:anonymous anonymous 密码:密码:your_accountyour.mail.server your_accountyour.mail.server cd domain cd domain get named.root get named.root 退出:退出:bye bye v2 2、cp cp/var/named/named.ca/var/named/named.ca /var/n
13、amed/named.ca.bak/var/named/named.ca.bak 3 3、cat named.root /var/named/named.cacat named.root /var/named/named.ca 1、主配置文件v/etc/named.conf 设置named的参数,指向该服务器使用的域数据库的信息源主配置文件主配置文件named.confnamed.conf的配置语句的配置语句 配置语句说明acl定义IP地址的访问控制清单controls定义rndc命令使用的控制通道include将其他文件包含到本配置文件当中key定义授权的安全密钥logging定义日志的记录
14、规范options定义全局配置选项server定义远程服务器的特征trusted-keys为服务器定义DNSSEC加密密钥zone定义一个区全局配置语句options v语法:voptions(配置子句;配置子句;v);全局配置语句options子句说明recursion yes|no是否使用递归式DNS服务器,默认为yestransfer-format one-answer|many-anser是否允许在一条消息中放入多条应答信息,默认值为one-answer。directory“path”定义服务器区配置文件的工作目录,Red Hat Linux 9 默认为/var/namedforwar
15、dersIPaddr定义转发器区(zone)声明 vzone“zone-name”IN(v type子句;vfile 子句;v其他子句;v);v一条区声明需要说明:()域名;()服务器的类型;()域信息源。常用的区声明子句常用的区声明子句 子句说明t y p e master|hint|slave说明一个区的类型:master:说明一个区为主域名服务器;hint:说明一个区为启动时初始化高速缓存的域名服务器;slave:说明一个区为辅助域名服务器file “filename”说明一个区的域信息源数据库信息文件名,即正向解析时的文件名2、区文件v定义一个区的域名信息,通常也称域名数据库文件。每个
16、区由若干资源记录和区文件指令构成。9.1 资源记录DomainDomain Time to LiveTime to Live ClassClass record typerecord type record record datadataDomain:要定义的资源记录的域名Time to Live:存活期class:类别,采用IN,代表INTERNETrecord data:记录数据record type:记录类型A主机CNAME别名MX邮件交换记录NS域名服务器PTR地址解析成主机SOA定义服务器资源信息启动DNS/etc/rc.d/init.d/named start/etc/rc.d/i
17、nit.d/named start、restartrestart、stopstop或者或者在在setupsetup中设置中设置 9.4 测试DNSvnslookupnslookup-dnsservernslookup hostnamenslookupvdigdig hostname query-typevhosthost-a|-t query-type hostname|domainnamev查看查看vi/var/log/messagesvi/var/log/messages:一般有 auth-nxdomain 和 IPV6 的提示是正常的9.5 DNS的安全管理查询请求限制查询请求限制:只允
18、许该范围的只允许该范围的IPIP查询本查询本DNSDNSoptions options allow-query166.22.33.0/24;allow-query166.22.33.0/24;对特殊的域进行限制:只允许该域的主机查询本对特殊的域进行限制:只允许该域的主机查询本DNSDNS allow-query“”;allow-query“”;防止非授权的数据库文件传送防止非授权的数据库文件传送:只允许指定辅助只允许指定辅助DNSDNS复制本复制本DNSDNS的数据。的数据。allow-transfer166.22.0.16;allow-transfer166.22.0.16;DNS的安全管理
19、voptions(v version“I am FBI”;v)v黑客探测dns版本,然后根据该版本的漏洞来攻击。配置了这条命令后,别人再探测的版本后就是“I am FBI”了 配置域名转发配置域名转发 v当DNS客户端向指定的DNS服务器要求进行域名解析时,若此域名服务器无法解析,它将用缓存中的信息帮助定位能解析的其他服务器 voptions vforwarders20 2.1 0 6.1 9 6.1 1 5;202.106.0.20;v;4、BINDv1、软件列表 BIND 9.3.2 ftp:/ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz 2、
20、安装BIND 9 安装BIND9:#tar zxvf bind-9.3.2.tar.gz#cd bind-9.3.2#./configure-prefix=/usr/local/named-disable-ipv6#make&make install 4、BINDv3、建立BIND用户:#groupadd bind#useradd-g bind-d/usr/local/named-s/sbin/nologin bind 4、创建配置文件目录:#mkdir p/usr/local/named/etc#chown bind:bind/usr/local/named/etc#chmod 700/us
21、r/local/named/etcv5、创建主配置文件、PID和日志文件:#touch /usr/local/named/etc/named.conf v#mkdir/var/run/named/#chmod 777/var/run/named/#chown bind:bind/var/run/named/#mkdir/var/log/named/#touch/var/log/named/dns_warnings#touch/var/log/named/dns_logs#chown bind:bind/var/log/named/*#mkdir master#touch master/cnc.def#touch master/telecom.def v6、生成rndc-key:#cd/usr/local/named/etc/#./sbin/rndc-confgen rndc.conf 把rndc.conf中:#Use with the following in named.conf,adjusting the allow list as needed:后面以的部分加到/usr/local/named/etc/named.conf中并去掉注释NoImageTHANK YOUSUCCESS2022-12-5可编辑