目录web
DNSshell
域传送漏洞数据库
域名空间结构windows
DNS解析过程 缓存
各类解析记录安全
DNS服务器的安装与部署服务器
DNS(Domain Name Service) 域名解析服务,就是将域名和ip之间作相应的转换,利用TCP和UDP的53号端口
DNS系统做用:测试
DNS服务器的分类:
域传送:是指后备服务器从主服务器拷贝数据,并用获得的数据更新自身数据库。 在主备服务器之间同步数据库,须要使用“DNS域传送”。
域传送漏洞:是因为DNS服务器配置不当,致使匿名用户利用DNS域传送协议获取某个域的全部DNS记录。
域传送漏洞的危害:网络拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器等。直接加快、滋长攻击者的入侵过程。
测试过程:
1) 输入nslookup命令进入交互式shell; 2) server 命令参数设定查询将要使用的DNS服务器; 3) ls命令列出某个域中的全部域名; 4) exit命令退出
根域(.)
顶级域(顶级域包括组织域和国家/地区顶级域 (net、edu、com、gov、mail、org、cn、uk.... )
--组织顶级域 (net、edu、com、gov、mail、org....)
--国家/地区顶级域(cn、uk...)
二级域名(baidu、taobao...)
三级域名(www、mail...)
组织顶级域名 |
说明 |
---|---|
gov |
政府部门 |
com |
商业部门 |
edu |
教育部门 |
org |
民间团体组织 |
net |
网络服务机构 |
mil |
军事部门 |
国家顶级域名 |
说明 |
---|---|
cn |
中国 |
hk |
中国香港 |
uk |
英国 |
… |
|
DNS域名解析过程:
因此,优先级: 本地DNS缓存 > hosts文件 > DNS服务器
windows中hosts文件存放路径: C:\Windows\System32\drivers\etc\hosts
Linux中hosts文件存放路径: /etc/hosts
类型 | 说明 |
---|---|
A | 主机记录,记录域名对应的ip |
PTR | 反向地址解析记录,记录ip对应的域名 |
CNAME | 别名记录 |
MX | 邮箱交换记录 |
NS | 服务器记录 |
SOA | 权威记录 |
TXT | 为记录说明 |
SRV | 列出了正在提供特定服务的服务器 |
AAAA | ipv6地址记录 |
A记录
A (Address) 记录也叫主机记录,是用来指定域名对应的IP地址记录。用户能够将该域名下的网站服务器指向到本身的网页服务器(web server)上。同时也能够设置域名的子域名。通俗来讲A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。在命令行下能够经过nslookup -qt=a www.baidu.com来查看A记录。
PTR记录
相对于A记录,PTR记录是把IP地址转换为域名
CNAME记录
CNAME记录也称别名记录,它容许你将多个记录映射到同一台计算机上。好比你建了以下几条记录:
咱们访问a1(a2,a3).baidu.com的时候,域名解析服务器会返回一个CNAME记录,而且指向a.baidu.com,而后咱们的本地电脑会再发送一个请求,请求a.baidu.com的解析,而后域名服务器会返回a.baidu.com的IP地址。
当咱们要指向不少的域名到一台电脑上的时候,用CNAME比较方便,就如上面的例子,咱们若是服务器更换IP了,咱们只要更换 a.baidu.com 的A记录便可。
在命令行下可使用 nslookup -qt=cname a1.baidu.com 来查看CNAME记录。
MX记录
MX记录的权重对 mail 服务是很重要的,当发送邮件时,Mail 服务器先对域名进行解析,查找 mx 记录。先找权重数最小的服务器(好比说是 10),若是能连通,那么就将发送过去;若是没法连通 mx 记录为 10 的服务器,那么才将邮件发送到权重为 20 的 mail 服务器上。
这里有一个重要的概念,权重 20 的服务器在配置上只是暂时缓存 mail ,当权重 20 的服务器能连通权重为 10 的服务器时,仍会将邮件发送的权重为 10 的 Mail 服务器上。固然,这个机制须要在 Mail 服务器上配置。
在命令行下能够经过 nslookup -qt=mx baidu.com 来查看MX记录。
TXT记录
TXT记录通常是为某条记录设置说明,好比你新建了一条 a.ezloo.com 的TXT记录,TXT记录内容"this is a test TXT record.",而后你用 nslookup -qt=txt a.ezloo.com ,你就能看到"this is a test TXT record"的字样。
除外,TXT还能够用来验证域名的全部,好比你的域名使用了Google的某项服务,Google会要求你建一个TXT记录,而后Google验证你对此域名是否具有管理权限。
在命令行下可使用 nslookup -qt=txt baidu.com 来查看TXT记录
这里讲到TXT记录,咱们就要谈谈TXT记录里面的 SPF 了。SPF是 Sender Policy Framework 的缩写,一种以IP地址认证电子邮件发件人身份的技术。 接收邮件方会首先检查域名的SPF记录,来肯定发件人的IP地址是否被包含在SPF记录里面,若是在,就认为是一封正确的邮件,不然会认为是一封伪造的邮件进行退回。
SPF能够防止别人伪造你来发邮件,是一个反伪造性邮件的解决方案。当你定义了你域名的SPF记录以后, 接收邮件方会根据你的SPF记录来肯定链接过来的IP地址是否被包含在SPF记录里面,若是在,则认为是一封正确的邮件,不然则认为是一封伪造的邮件。
设置正确的 SPF 记录能够提升邮件系统发送外域邮件的成功率,也能够必定程度上防止别人假冒你的域名发邮件。
MX记录的做用是给寄信者指明某个域名的邮件服务器有哪些。SPF的做用跟MX相反,它向收信者代表,哪些邮件服务器是通过某个域名认证的能够发送邮件的。
由定义能够看出,SPF的做用主要是反垃圾邮件,主要针对那些发信人伪造域名的垃圾邮件。
AAAA记录
AAAA记录是一个指向IPv6地址的记录。
可使用 nslookup -qt=aaaa a.ezloo.com 来查看AAAA记录。
NS记录
NS记录是域名服务器记录,用来指定域名由哪台服务器来进行解析。
可使用 nslookup -qt=ns baidu.com 来查看。
TTL值
TTL=time to live,表示解析记录在DNS服务器中的缓存时间。好比当咱们请求解析www.ezloo.com的时候,DNS服务器发现没有该记录,就会向下个NS服务器发出请求,得到记录以后,该记录在DNS服务器上保存TTL的时间长度。当咱们再次发出请求解析www.ezloo.com 的时候,DNS服务器直接返回刚才的记录,不去请求NS服务器。TTL的时间长度单位是秒,通常为3600秒
SOA记录
定义了该域中的权威名称服务器
SRV记录
列出了正在提供特定服务的服务器
程序所需的包: bind (DNS服务器软件包) 、bind-utils(DNS测试工具,包含dig、host、nslookup等)、bind-chroot(使BIND运行在指定的目录中的安全加强工具)、caching-nameserver(高速缓存DNS服务器的基本配置文件,建议必定安装)
可执行文件所在目录: /usr/sbin/named (Rhel7) /etc/init.d/named (Rhel6)
配置文件所在目录: /etc/named.conf
区域配置文件所在目录:/var/named/xxx.zone
修改主配置文件: /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; }; //修改行 } zone "." IN { //系统自定义的根域服务器,必需要有 type hint; file "named.ca"; }; zone "xie.com." IN{ //自定义的,添加正向解析 type master; //主从DNS file "xie.com.zone"; //指定区域配置文件名,在/var/named/ 目录下 }; zone "10.168.192.in-addr.arpa" IN{ //自定义的,添加反向解析 type master; file "xie.com.zone"; }; zone "mi.com." IN { //添加对另外一个域名的解析 type master; file "mi.com.zone" }
在 /var/named/ 目录下分别建立 xie.com.zone 和 mi.com.zone 文件 ,而且以下配置
// xie.com.zone 文件的配置 $TTL 1D @ IN SOA www.xie.com. root.xie.com. ( // @表明本机 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS www.xie.com. MX 10 root.xie.com. //邮箱 www IN A 192.168.10.100 //这个必须写在第一条!! web IN A 192.168.10.110 root IN A 192.168.10.120 * IN A 192.168.10.130 //添加一个默认匹配,当配置文件中的都没匹配,则匹配此条 ftp IN CNAME www //给www.xie.com添加一个别名 ftp.xie.com 1 IN PTR web1.xie.com. //添加反向解析记录 192.168.10.1 解析为 web1.xie.com 2 IN PTR web2.xie.com. // mi.com.zone 文件的配置 $TTL 1D @ IN SOA www.mi.com. root.mi.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS www.mi.com. MX 10 root.mi.com. www IN A 192.168.10.100 web IN A 192.168.10.200
主DNS服务器在上面配置的基础上,在主配置文件 /etc/named.conf 中加入下面一行,意思是容许转移
allow-transfer { 192.168.10.10; }; // 容许 从DNS服务器的ip地址
而后从DNS服务器要同步哪一个域名的就写哪一个zone,咱们这里只同步 xie.com 这个域名的 ,同步的文件路径默认是 /var/named/slaves 下
zone "xie.com." IN { type slave; file "slaves/xie.com.zone"; //指定配置文件目录 masters { 192.168.10.124; }; //指定主DNS IP }; zone "10.168.192.in-addr.arpa" IN{ type slave; file "slaves/xie.com.zone"; masters{ 192.168.10.128; }; };
配置完成之后重启 named 服务: systemctl restart named ,而后同步域配置文件: rndc reload
转发DNS服务器就是当你向一个DNS服务器请求DNS解析时,他把DNS请求转发到了另外一个DNS服务器上
转发DNS服务器也要求安装bind包: yum -y install bind*
而后修改主配置文件:/etc/named.conf
option{ listen-on port 53 { any; }; #修改 allow-query { any; }; #修改 forwarders { 192.168.10.10; }; # 指定你要把DNS请求转发给哪一个DNS服务器 }