加密技术应用以及DNS应用

一.简述常见加密算法及常见加密算法原理

  1.基本概念

       加密:将数据转换成不能直接读取的形式(即密文)的过程叫加密。数据加密的基本过程就是对原来为明文的文件或数据按某种加密算法配合密钥进行处理,使其成为不可读的一段代码,通常称为"密文",使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。

       解密:加密的逆过程,使用密钥配合加密算法,转换成明文内容。

  2.加密算法的核心       

   保密性: Confidentiality:即隐私性;

   完整性 :Integrity:指数据在传输过程中要保证能够完整,还能保证传输后能够还原回原来的数据;

   可用性 :Availability:指还原后的数据还能够使用

3.常见的加密算法

    3.1对称加密:加密和解密使用同一个密钥

            对称加密算法有

                DES:Data Encryption Standard; 
                3DES:Triple DES;
                AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
                Blowfish
                Twofish
                DEA
                RC6
                CAST5

            特性:
                1、加密、解密使用同一个密钥;
                2、将原始数据分割成为固定大小的块,逐个进行加密;

           缺陷:
                1、密钥过多;
                2、密钥分发困难;

         DES加密: 

             DES应用了二进制数据,所以无论是文章还是数字,都需要将明文变换为二进制数据,如图表所示,这里仅将使用的16字符(其中含有1个没有意义的空字符),将每个字符都对应不同的4bit的二进制编码进行变换,将明文表示成"0"和"1"的系列  。        

key:8个字节共64位的工作密钥

data:8个字节共64位的需要被加密或被解密的数据

mode:DES工作方式,加密或者解密

            参考简易版DES加密和解密详解   DES算法原理完整版

3.2非对称加密

     非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
      公钥和私钥的关系是:
公钥和私钥一般成对出现,
如果你的消息使用公钥加密,那么需要该公钥对应的私钥才能解密;
如果你的消息使用私钥加密,那么需要该私钥对应的公钥才能解密.

非对称加密的作用是:保护消息内容, 并且让消息接收方确定发送方的身份.

      

Bob和Alice互发邮件,并且邮件内容需要保密.

如果是对称加密,Bob需要把唯一的密钥告知Alice,Alice使用该密钥进行解密即可查看邮件内容.但这样做, 一旦在传输密钥的过程中消息泄露, 保密性也就荡然无存.

很显然对称加密的安全性会低一些, 于是他们采用决定非对称加密的方式, 这样, Bob和Alice就需要各自持有一对属于自己的公钥和私钥.

Bob写的邮件只想让Alice看, 那么小红有什么和别人不一样的特质呢? 没错, 她拥有一个只有她自己知道的密钥! 如果Bob使用Alice的公钥加密(公钥是公开给别人的), 那么就只有小红的私钥才能解密,这就达到了只让小红看的目的.(保护消息内容)

但是还有一个问题.既然Alice的公钥是公开的,那么就可能产生有不明身份的人冒充Bob, 使用小红的公钥加密然后给小红发邮件.

Bob为了避免这种情况的发生,把邮件内容用自己的密钥进行加密,小红接收到邮件后,使用Bob的公钥解密(只有Bob公钥才能解开使用Bob私钥加密的消息),如果可以解开,那么她就知道这个邮件的的确确是Bob发的.(确定消息发送方的身份)。

    常见的非对称加密算法有:      

    RSA:RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。
    DSA:数字签名算法,仅能用于签名,不能用于加解密。
    DSS:数字签名标准,技能用于签名,也可以用于加解密。
    ELGamal:利用离散对数的原理对数据进行加解密或数据签名,其速度是最慢的。

     参考非对称加密概述  轻松理解非对称加密 用实例给新手讲解RSA加密算法 非对称加密算法原理详细分析

3.3 单向加密

     即提出数据指纹;只能加密,不能解密;     

  • 特性:定长输出、雪崩效应;
    功能:完整性;
    算法:
    md5:Message Digest 5, 128bits
    sha1:Secure Hash Algorithm 1, 160bits
    sha224, sha256, sha384, sha512

  • 密钥交换: IKE(Internet Key Exchange)
    公钥加密
    DH(Deffie-Hellman)

这种加密严格意思上算不上加密,也常被称为散列运算,用于对数据生成独一无二的校验码,对于校验码叫法很多(如特征码,指纹信息)这类加密有个特点,就是具有雪崩效应,对任何数据,就算你改动一个标点符号,改动前和改动后使用算法计算出来的结果是翻天覆地的变化。但只要数据没发生改动,使用单向加密算法计算出来的值是不会发生改变的,所以使用单向加密能很好的解决数据完整性的问题。
    

 

二.搭建apache或者nginx并使用自签证书实现https访问,自签名证书的域名自拟  

认证PKI:Public Key Infrastructure

  • 公钥基础设施:包括四部分
    签证机构:CA
    注册机构:RA
    证书吊销列表:CRL
    证书存取库
  • X.509v3:国际标准化组织定义了证书的结构以及认证协议标准,x.509有三版本;
    版本号:x.509的版本号;
    序列号
    签名算法ID:签名的使用算法;
    发行者名称:CA的名称
    有效期限:两个日期,起始日期和终止日期
    主体名称:证书拥有者名称;
    主体公钥:证书拥有者自己的公钥
    发行者的惟一标识
    主体的惟一标识:证书拥有者

ssl协议

  • SSL:Secure sockets Layer
    Netscape网警公司: 1994发布,有3个版本;
    V1.0, V2.0, V3.0(有漏洞)
    TLS: Transport Layer Security
    IETF: 1999发布,有4个版本;
    V1.0(从来没公开,漏洞多), V1.1, V1.2(主流), V1.3(2014年,没到成熟期)

  • TLS协议采用分层设计:
    1、最底层:基础算法原语的实现,aes, rsa, md5
    2、第2层:各种算法的实现;
    3、第3层:组合算法实现的半成品;
    4、最高层:用各种组件拼装而成的各种成品密码学协议软件;

#首先自建一个私有CA
[root@wujunjie ~]# cd /etc/pki/CA/
[root@wujunjie CA]# ls
certs  crl  newcerts  private
[root@wujunjie CA]# (umask 077;openssl genrsa -out private/cakey.pem 4096) #生成CA本身私钥
Generating RSA private key, 4096 bit long modulus
.......................++
...........................................................................++
e is 65537 (0x10001)
[root@wujunjie CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655#生成自签证书
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:ZHEJIANG
Locality Name (eg, city) [Default City]:NINGBO
Organization Name (eg, company) [Default Company Ltd]:ZD
Organizational Unit Name (eg, section) []:opt
Common Name (eg, your name or your server's hostname) []:ns1.magedu.com         
Email Address []:aaa@magedu.com
注意:mkdir -pv {certs,crl,newcerts}没有需创建
[root@wujunjie CA]# touch {serial,index.txt}
[root@wujunjie CA]# echo 01 >serial 
[root@wujunjie CA]# ls
cacert.pem  certs  crl  index.txt  newcerts  private  serial
[root@wujunjie CA]# cat serial 
01
到此私有CA就创建完成,下面到需要用到证书安全通信的服务器上向CA请求签署证书,我们以apache为例
[root@wujunjie6 ~]#mkdir /etc/httpd/ssl
[root@wujunjie6 ~]#cd /etc/httpd/ssl
[root@wujunjie6 ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) #生成私钥
[root@wujunjie6 ssl]# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365#生成证书签署请求
注意:这里的证书服务器的公司名要与证书的颁发者单位要一致,同一个地域,否则通过不了认证;根据提示输入相关信息,完成即可;
[root@wujunjie6 ssl]# scp httpd.csr root@192.168.32.129:/tmp#将请求通过可靠方式发送给CA 主机
在CA主机上签署证书:
[root@wujunjie CA]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
在CA主机上查看证书, 到此apache自签证书完成
[root@wujunjie CA]# openssl x509 -in /etc/pki/CA/certs/httpd.crt -noout -serial -subject
serial=01
subject= /C=CN/ST=ZHEJIANG/O=ZD/OU=opt/CN=www.magedu.com/emailAddress=admin@magedu.com
。



三、简述DNS服务器原理,并搭建主-辅服务器

     DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。

 DNS名称解析方式:

名称—->IP:正向解析
IP—->名称:反向解析
注意:二者的名称空间,非为同一空间,即非为同一棵树;因此,也不是同一个解析库。

DNS 查询的过程:

在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。

6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

主-辅DNS服务器及搭建

  1. 主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;
  2. 从DNS服务器:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但只能进行读操作;
  • “复制”操作的实施方式:
    序列号:serial, 也即是数据库的版本号;主服务器数据库内容发生变化时,其版本号递增;
    刷新时间间隔:refresh, 从服务器每多久到主服务器检查序列号更新状况;
    重试时间间隔:retry, 从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;
    过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务;
    否定答案的缓存时长:
  • 主服务器”通知“从服务器随时更新数据;
    区域传送:
    全量传送:axfr, 传送整个数据库;
    增量传送:ixfr, 仅传送变量的数据;
  • 区域(zone)和域(domain): magedu.com域
    FQDN –> IP
    正向解析库;区域
    IP –> FQDN
    反向解析库;区域
  • 区域数据库文件:
    资源记录:Resource Record, 简称rr;
    记录有类型:A, AAAA, PTR, SOA, NS, CNAME, MX

SOA:Start Of Authority,起始授权记录; 一个区域解析库有且只能有一个SOA记录,而且必须放在第一条;
NS:Name Service,域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的
A: Address, 地址记录,FQDN –> IPv4;
AAAA:地址记录, FQDN –> IPv6;
CNAME:Canonical Name,别名记录;
PTR:Pointer,IP –> FQDN
MX:Mail eXchanger,邮件交换器;
优先级:0-99,数字越小优先级越高;
资源记录的定义格式:
语法: name [TTL] IN RR_TYPE value

SOA:

name: 当前区域的名字;例如”mageud.com.”,或者“2.3.4.in-addr.arpa.”;
1.value:有多部分组成
(1) 当前区域的区域名称(也可以使用主DNS服务器名称);
(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代;
(3) (主从服务协调属性的定义以及否定答案的TTL)

例如:


magedu.com.     86400   IN      SOA     magedu.com.     admin.magedu.com.  (
                              2017010801  ; serial
                              2H          ; refresh
                              10M         ; retry
                              1W          ; expire
                              1D          ; negative answer ttl 
                  )


NS:域名服务记录


name: 当前区域的区域名称
value:当前区域的某DNS服务器的名字,例如ns.magedu.com.;
注意:一个区域可以有多个ns记录;

例如

magedu.com.     86400   IN  NS      ns1.magedu.com.
magedu.com.     86400   IN  NS      ns2.magedu.com. 

MX:邮件交换器
name: 当前区域的区域名称
value:当前区域某邮件交换器(即smtp服务器)的主机名;
注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级;数字越小优先级越高;

例如

 magedu.com.         IN  MX  10      mx1.magedu.com.
 magedu.com.         IN  MX  20      mx2.magedu.com.
  • A:IPv4地址记录
    name:某FQDN,例如www.magedu.com.
    一个主机可有多个IP地址;
    value:某IPv4地址;
    一个地址可有多个主机名;

    例如:
     www.magedu.com.     IN  A   1.1.1.1
     www.magedu.com.     IN  A   1.1.1.2
     bbs.magedu.com.     IN  A   1.1.1.1
    
  • AAAA:
    name:FQDN
    value: IPv6

  • PTR:指针
    name:IP地址,有特定格式,IP要反过来写,而且加特定后缀;例如1.2.3.4的记录应该写为4.3.2.1.in-addr.arpa.;
    value:FQND

    例如:
     4.3.2.1.in-addr.arpa.   IN  PTR www.magedu.com.
    
  • CNAME:别名记录
    name:FQDN格式的别名;
    value:FQDN格式的正式名字;

    例如:
    web.magedu.com.     IN      CNAME  www.magedu.com.          
    

注意:资源记录一些法则

(1) TTL可以从全局继承;在每个类型记录里可省略;
(2) @表示当前区域的名称;任何记录里都可用@代替;
(3) 相邻的两条记录其name相同时,后面的可省略;

例如:
www.magedu.com.     IN  A   1.1.1.1
                    IN  A   1.1.1.2

(4) 对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有一个A记录;

搭建DNS主服务器

1. 安装bind服务程序
[root@wujunjie ~]# yum install bind -y
[root@wujunjie ~]# rpm -ql bind
/etc/logrotate.d/named
/etc/named
/etc/named.conf    #主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones   #区域配置文件
/etc/named.root.key
/etc/rndc.conf
2. 编辑主配置文件
 [root@wujunjie ~]# vim /etc/named.conf
options {
        listen-on port 53 { any; };    #监听在能与外部主机通信的地址
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
………………………………….
#       allow-query     { localhost; };   #关闭仅允许本地查询即加#注释
…………………………………
recursion yes;
        dnssec-enable no;    #学习时建议关闭
        dnssec-validation no;   #学习时建议关闭
3.检查主配置文件语法并启动bind服务程序
[root@wujunjie ~]# named-checkconf 
[root@wujunjie ~]# systemctl start named
[root@wujunjie ~]# systemctl status named.service 
?.named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2018-10-13 13:45:14 CST; 7s ago
4.配置域文件
[root@wujunjie ~]# vim /etc/named.rfc1912.zones
######在底部添加以下区域配置
zone "magedu.com" IN {           #正向解析
        type master;
        file "magedu.com.zone"
        allow-update { none; };
};
zone "32.168.192.in-addr.arpa" IN {         #反向解析
        type master;
        file "192.168.32.in-addr.zone";
};
5.创建对应区域解析文件
[root@wujunjie named]# vim magedu.com.zone
$TTL 3600
$ORIGIN magedu.com.
      @   IN    SOA   ns1.magedu.com.   dnsadmin.magedu.com. (
              01
              1H
              10M
              3D
              1D )
          IN        NS      ns1
          IN        MX    10 mx1
ns1       IN  A   192.168.32.128
mx1       IN  A   192.168.32.128
www       IN  A   192.168.32.128
bbs       IN  A   192.168.32.130
web       IN  CNAME   www
[root@wujunjie named]# vim 192.168.32.in-addr.zone
$TTL 3600
$ORIGIN 32.168.192.in-addr.arpa.
@   IN  SOA ns1.magedu.com. dnsadmin.magedu.com. (
        01
        1H
        10M
        3D
        1D )
    IN  NS  ns1.magedu.com.
128 IN  PTR ns1.magedu.com.
128 IN  PTR www.magedu.com.
130 IN  PTR bbs.magedu.com.
6.修改权限及属组
[root@wujunjie named]# chgrp named 192.168.32.in-addr.zone 
[root@wujunjie named]# chgrp named magedu.com.zone
[root@wujunjie named]# chmod o= 192.168.32.in-addr.zone 
[root@wujunjie named]# chmod o= magedu.com.zone
7.再次检查语法错误并重载服务
[root@wujunjie named]# rndc reload
server reload successful
[root@wujunjie named]# systemctl status named.service 
?.named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled;   vendor preset: disabled)
   Active: active (running) since Sat 2018-10-13 13:45:14 CST; 58min ago
……………………………………
8.更改本地DNS服务器并测试正向和反向解析
[root@wujunjie named]# vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.32.128
[root@wujunjie named]# dig -t A www.magedu.com 

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5360
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1,   ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.            IN  A

;; ANSWER SECTION:
www.magedu.com.     3600    IN  A   192.168.32.128

;; AUTHORITY SECTION:
magedu.com.     3600    IN  NS  ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.     3600    IN  A   192.168.32.128

;; Query time: 0 msec
;; SERVER: 192.168.32.128#53(192.168.32.128)
;; WHEN: Sat Oct 13 15:03:28 CST 2018
;; MSG SIZE  rcvd: 93
[root@wujunjie named]# dig -x 192.168.32.130

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 192.168.32.130
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29439
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;130.32.168.192.in-addr.arpa.   IN  PTR

;; ANSWER SECTION:
130.32.168.192.in-addr.arpa. 3600 IN    PTR bbs.magedu.com.

;; AUTHORITY SECTION:
32.168.192.in-addr.arpa. 3600   IN  NS  ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.     3600    IN  A   192.168.32.128

;; Query time: 0 msec
;; SERVER: 192.168.32.128#53(192.168.32.128)
;; WHEN: Sat Oct 13 15:06:34 CST 2018
;; MSG SIZE  rcvd: 118```

搭建DNS从服务器

1.安装bind服务程序并配置相关的设置,参考上述主服务器搭建
[root@wujunjie6 ~]# yum install bind -y
[root@wujunjie6 ~]# 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     { localhost; };
        recursion yes;

        dnssec-enable no;
        dnssec-validation no;

2.启动bind程序并且配置从服务器上对应的域配置文件
[root@wujunjie6 ~]# service named start
Generating /etc/rndc.key:                                  [  OK  ]
Starting named:                                            [  OK  ]
[root@wujunjie6 ~]# vim /etc/named.rfc1912.zones
######在底部添加以下区域配置
zone "magedu.com" IN {
        type slave;
        file "slaves/magedu.com.zone";
        masters { 192.168.32.128; };
};
zone "32.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/192.168.32.in-addr.zone";
        masters { 192.168.32.128; };
};
[root@wujunjie6 ~]# named-checkconf
3.切回到主DNS服务器,在主服务器域配置文件中添加从服务器的IP信息
[root@wujunjie named]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
        type master;
        file "magedu.com.zone";
        allow-update { 192.168.32.129; };
};
zone "32.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.32.in-addr.zone";
        allow-update { 192.168.32.129; };
};
4.切回到主DNS服务器,在主服务器数据配置文件中添加从服务器IP与域的一一对应关系
[root@wujunjie named]# cat magedu.com.zone 
$TTL 3600
$ORIGIN magedu.com.

@         IN    SOA   ns1.magedu.com.   dnsadmin.magedu.com. (
              03
              1H
              10M
              3D
              1D )
          IN        NS      ns1
          IN        NS      ns2
          IN        MX    10 mx1
ns1       IN  A   192.168.32.128
ns2       IN  A   192.168.32.129
mx1       IN  A   192.168.32.128
www       IN  A   192.168.32.128
bbs       IN  A   192.168.32.130
web       IN  CNAME   www
[root@wujunjie named]# cat 192.168.32.in-addr.zone 
$TTL 3600
$ORIGIN 32.168.192.in-addr.arpa.
@   IN  SOA ns1.magedu.com. dnsadmin.magedu.com. (
        04
        1H
        10M
        3D
        1D )
    IN  NS  ns1.magedu.com.
128 IN  PTR ns1.magedu.com.
129 IN  PTR ns2.magedu.com.
128 IN  PTR www.magedu.com.
130 IN  PTR bbs.magedu.com.
5.先重载主服务器端bind程序,然后切回从服务器重载等待更新同步完成
[root@wujunjie named]# rndc reload
server reload successful
[root@wujunjie6 ~]# rndc reload
server reload successful
#主服务器优先重载,然后才是从服务器
6.测试从服务器正向反向解析
[root@wujunjie6 ~]# dig -t A www.magedu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> -t A www.magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49006
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.magedu.com.            IN  A

;; ANSWER SECTION:
www.magedu.com.     3600    IN  A   192.168.32.128

;; AUTHORITY SECTION:
magedu.com.     3600    IN  NS  ns2.magedu.com.
magedu.com.     3600    IN  NS  ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.     3600    IN  A   192.168.32.128
ns2.magedu.com.     3600    IN  A   192.168.32.129

;; Query time: 0 msec
;; SERVER: 192.168.32.129#53(192.168.32.129)
;; WHEN: Mon Oct 15 12:23:22 2018
;; MSG SIZE  rcvd: 116
[root@wujunjie6 ~]# dig -x 192.168.32.128

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> -x 192.168.32.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64094
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;128.32.168.192.in-addr.arpa.   IN  PTR

;; ANSWER SECTION:
128.32.168.192.in-addr.arpa. 3600 IN    PTR ns1.magedu.com.
128.32.168.192.in-addr.arpa. 3600 IN    PTR www.magedu.com.

;; AUTHORITY SECTION:
32.168.192.in-addr.arpa. 3600   IN  NS  ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.     3600    IN  A   192.168.32.128

;; Query time: 0 msec
;; SERVER: 192.168.32.129#53(192.168.32.129)
;; WHEN: Mon Oct 15 12:24:25 2018
;; MSG SIZE  rcvd: 121

四、搭建并实现智能DNS

1.安装bind服务

[root@localhost ~]# yum install bind -y

2.配置修改主文件

[root@localhost named]# cat /etc/named.conf 
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
acl "ningbo" { 192.168.32.128; };      #添加访问控制
acl "shanghai" { 192.168.32.129; };     #添加访问控制

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 no;       #需修改
    dnssec-validation no;      #需修改

    /* 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;
        };
};

view ningbo {                         #添加以下view
    match-clients { ningbo; };
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "magedu.com" IN {
        type master;
        file "magedu.com.ningbo";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
view shanghai {
    match-clients { shanghai; };
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "magedu.com" IN {
        type master;
        file "magedu.com.shanghai";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};

view default {
    match-clients { any; };
    zone "." IN {
        type hint;
        file "named.ca";
    };
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
[root@localhost ~]# systemctl start named

3.对数据文件做配置

[root@localhost named]# cat magedu.com.ningbo 
$TTL 1D
@   IN SOA  magedu.com. admin.magedu.com. (
                    1   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  ns
ns  A   192.168.32.132
www A   192.168.32.32
[root@localhost named]# cat magedu.com.shanghai 
$TTL 1D
@   IN SOA  magedu.com. admin.magedu.com. (
                    0   ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  ns
ns  A   192.168.32.132
www A   192.168.3.32

4.对配置文件做语法检查并重载操作

[root@localhost named]# named-checkconf 
[root@localhost named]# named-checkzone magedu.com /var/named/magedu.com.ningbo zone magedu.com/IN: loaded serial 1
OK
[root@localhost named]# named-checkzone magedu.com /var/named/magedu.com.shanghai 
zone magedu.com/IN: loaded serial 0
OK [root@localhost named]# rndc reload
server reload successful

5.测试不同区域的解析

###在192.168.32.128测试解析结果
[root@wujunjie ~]# nslookup 
> server 192.168.32.132
Default server: 192.168.32.132
Address: 192.168.32.132#53
> set q=A
> www.magedu.com
Server:     192.168.32.132
Address:    192.168.32.132#53

Name:   www.magedu.com
Address: 192.168.32.32
###在192.168.32.129测试解析结果
[root@wujunjie6 ~]# nslookup 
> server 192.168.32.132
Default server: 192.168.32.132
Address: 192.168.32.132#53
> set q=A
> www.magedu.com
Server:     192.168.32.132
Address:    192.168.32.132#53

Name:   www.magedu.com
Address: 192.168.3.32

到此一个智能DNS解析便搭建完成了,如果能将公网上的电信和联通IP分别写入ACL列表中,并且将此服务器接入了多个运营商线路,使得其能够在公网上提供DNS解析,那么此服务器就能为来自不同运行商的客户端IP提供智能DNS解析了。

 

 

       

 

 

 

    

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值