21网络服务之DNS

BamB00 2019-12-20 00:00:00
Categories: Tags:

0x01 DNS介绍

0x011 什么是域名

域名(Domain Name)又称网域,是一串用点分隔的名字组成的Internet上某一台计算机计算机组的名称,用于在传输时标识计算机的电子方位。具有独一无二,不可复制的特性。

基于C/S模式的域名解析服务,应用层协议

监听在53/udp,53/tcp端口

0x012 什么时DNS

域名系统(Domain Name System,简写DNS) 是互联网的一项服务。域名解析是把域名指向网站空间IP,让人们通过注册域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址转换的过程:域名的解析在DNS服务器上完成。

0x013 域名的组成和分类

常见格式:www.baozouzhugan.com

完整格式www.baozouzhugan.com.

img

.为根域(可忽略不屑)

com: 顶级域,由ICANN组织指定和管理

​ 分类:

​ 国家级域名:CN,HK,SG等

​ 通用顶级域名: com(商业机构) org(非营利性组织) edu(教育机构)等

​ 新通用顶级域名: red,top

baozouzhugan: 二级域名(注册域),由个人或者组织申请

www: 三级域名

主机名: test.www.baozouzhugan.com. 中test就是主机名。一般用来表示具体某一台机子

扩展:com.cn属于”二级域名” 是cn的子域

0x02 DNS解析过程

0x021 DNS查询解析的简单过程

  1. 客户端访问www.baozouzhugan.com
  2. 客户端首先查询自己的host文件,查找是否有www.baozouzhugan.com的解析记录,如果有就直接返回给游览器
  3. 客户端继续在本机内查询DNS的解析缓存,如果有则直接返回给游览器
  4. 客户端查看网卡上的DNS服务器地址,访问DNS服务器,查询域名的解析(同23)结果,若DNS服务器有解析记录,则将IP地址返回给客户机

详细步骤4的下在下方

img

0x03 DNS搭建

0x031 软件准备

软件名: bind

服务器名称: named

端口:

​ UDP 53 数据通信(域名解析)

​ TCP 53 数据同步(主从同步)

配置文件:

​ 主配置文件: /etc/named.conf(主服务器运行参数)

options {
        listen-on port 53 { 127.0.0.1; };  //设置服务器监听网卡(可以写具体一个IP,也可以写成any,DNS服务器一般写any 测试只要本地就可以了)
        listen-on-v6 port 53 { ::1; };  //同上这个是IPV6
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        上面一大部分都是数据文件位置
        allow-query     { localhost; }; //设置可以访问这台服务器的IP(一般为any)

​ 区域配置文件: /etc/named.rfc1912.zone(服务器解析的区域配置,正反向域定义信息)

//正向配置文件
zone "localhost.localdomain" IN {  #正向区域配置文件标签,修改为要解析的域
        type master;    #DNS服务器类型(Master/Slave)
        file "named.localhost"; #正向数据配置文件名称(默认保存在/var/name/下)
        allow-update { none; }; #允许数据更新的列表(填写IP地址)
};
//反向配置文件
zone "59.168.192.in-addr.arpa" IN {  #反向区域配置文件标签,仅修改IP位置,并将IP反写
                            #如: 111.0.111.222...in-addr.arpa
        type master;
        file "named.loopback";  
        allow-update { none; };
};

数据解析配置文件: `/var/named/xxx(主机名和IP对应关系)

$/var/named/named.localhost #正向配置文件信息 反向类似
$TTL 1D #域名有效解析生存周期(一般指缓存时间)
@       IN SOA  @ rname.invalid. (   
@:代表域名本身                                 0      ; serial  配置文件修改版本(如:20191220)
SOA:SOA标记(起始授权机构的资源记录                1D      ; refresh 更新频率(主从查询周期)
描述了域名的管理员,电子邮箱地址,和一些时间参数)     1H      ; retry   更新失败的重试时间周期
                                             1W      ; expire  无法更新时的失效周期
                                              3H )    ; minimum  缓存服务器无法更新时的失效时间
        NS      @    #设置DNS服务器的域名
        A       127.0.0.1 #IPv4的域名IP解析记录
        AAAA    ::1 #IPv6的域名IP解析记录
记录类型 记录
A Address地址 IPv4
AAAA Address地址 IPv6
NS Name Server域名服务器 如果有下一级需要添加Name server
SOA Start of Authority起始授权机构
MX Mail Exchanger 邮件交换记录,如果需要设置邮箱,让邮箱能收到邮件,需要添加MX记录
CNAME Canonical Name 将域名指向下一个域名
PTR Pointer指针
TXT 可以填写任何东西,长度限制255,绝大多数TXT记录时用来做SPE(反垃圾邮件)
SRV Service