广告
返回顶部
首页 > 资讯 > 服务器 >搭建DNS服务器
  • 535
分享到

搭建DNS服务器

服务器运维linux 2023-09-17 13:09:18 535人浏览 泡泡鱼
摘要

目录 搭建DNS缓存服务器 1.安装bind 2.修改配置文件 3.正向解析:  4.进行反向解析: 5.对文件的属主进行修改:  6.查看本机网卡: 7.查看本机DNS: 8.nslookup解析域名: 9. windows测试: 10.

目录

搭建DNS缓存服务器

1.安装bind

2.修改配置文件

3.正向解析: 

4.进行反向解析:

5.对文件的属主进行修改: 

6.查看本机网卡:

7.查看本机DNS:

8.nslookup解析域名:

9. windows测试:

10.测试缓存 :

主从复制: 

主服务器(master):

从服务器(slave):

部署小型DNS缓存服务

部署DNS加密同步

配置加密主DNS:

配置加密从DNS

部署DNS分离解析

部署DNS负载均衡

部署DNS安全扩展dnssec:


搭建DNS缓存服务器

IPnamed类型
172.25.250.103dns.vincefans.comdns服务器

172.25.250.101

www.vincefans.comWEB服务器

1.安装bind

bind #提供dns server程序,以及几个常用的测试工具

bind-libs #提供bind和bind-utils包中的程序共同用到的库文件。

bind-utils #bind客户端程序集,例如提供dig, nslookup, dig等工具。

bind-chroot #类似chroot,把dns服务限制在某个范围之类。

yum install -y bind bind-utils bind-chroot

2.修改配置文件

为了防止错误的配置引起的故障,我们可以先将要配置的文件进行利用cp语句备份,
-p        让复制出来的文件属性与源文件属性保持一致。

#备份配置文件cp -p /etc/named.conf /etc/named.conf.bakcp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak#修改主要配置文件sed -i 's/127.0.0.1/172.25.250.103/g' /etc/named.confsed -i 's/allow-query     { localhost; };/allow-query     { any; };/g' /etc/named.conf

3.正向解析: 

第一行的vincefans.com是域名。
第三行的vincefans.com.zone是要做映射的解析文件。

vi /etc/named.rfc1912.zoneszone "vincefans.com" IN {        type master;        file "vincefans.com.zone";        allow-update { none; };};

区域解析库

  • 资源记录:rr(resource record)用于此记录解析的属性
    • SOA:Start Of Authority, 起始授权记录,一个区域解析库仅能有一个SOA记录,而且必须为解析库的第一条
    • NS:Name Server,域名服务器,专用于标明当前区域的DNS服务器
    • MX:Mail eXchange, 邮件交换器,MX记录有优先级属性(0-99)
    • A:internet Address,FQDN --> IP,专用于正向解析,用于实现将FQDN解析为IP地址
    • PTR:PoinTeR,IP --> FQDN,专用于反向解析,将IP地址解析为FQDN
    • AAAA:FQDN --> IPv6,专用于正向解析,将FQDN解析为IPv6地址
    • CNAME:Canonical Name,别名记录

 依据SOA记录

serial:序列号,即数据库的版本号,主DNS服务器数据库内容发生变化时,其版本号要递增。

refresh:刷新时间间隔,从DNS服务器每隔多久到主DNS服务器检查序列号更新状况。

retry:重试时间间隔,从DNS服务器从主DNS服务器同步数据库失败时,定义多久之后再次发起尝试请求。

expire:过期时长,从DNS服务器始终联系不上主DNS服务器时,定义多久之后放弃从主DNS服务器同步数据库,并停止提供服务。

minimum:否定答案的缓存时长。  

4.进行反向解析:

第一行是的“250.25.172.in-addr.arpa”是所要解析IP的网段以及相应的数据文件名称。
第三行的vincefans.com.txt是要做映射的解析文件。

vi /etc/named.rfc1912.zoneszone "250.25.172.in-addr.arpa" IN {        type master;        file "vincefans.com.txt";        allow-update { none; };};
cp /var/named/named.empty /var/named/vincefans.com.txtsed -i 's/@ rname.invalid./vincefans.com rname.invalid./g' /var/named/vincefans.com.txtsed -i 's/@/dns.vincefans.com./g' /var/named/vincefans.com.txtecho  '103     PTR     dns.vincefans.com.' >> /var/named/vincefans.com.txtecho  '101     PTR     www.vincefans.com.' >> /var/named/vincefans.com.txt

  • rndc reload:在不重新启动DNS服务的情况下,重新加载配置文件及zone.
  • rndc reload zone:重新加载指定的zone。
  • rndc status:查看当前DNS服务器的状态。
  • rndc stats:将当前系统的DNS统计数据记录下来,默认会将数据存储为一个文件:/var/named/data/named_stats.txt。
  • rndc dumpdb:将当前DNS高速缓存中的数据记录下来,与stats类似,默认会将数据存储为一个文件:/var/named/data/cache_dump.db。
  • rndc flush:清空当前DNS服务器上的所有缓存。

5.对文件的属主进行修改: 

chown named /var/named/vincefans.com.*systemctl restart namedsystemctl enable named.servicefirewall-cmd --add-service=dnsfirewall-cmd --add-service=dns --permanent

6.查看本机网卡:

将服务器端的信息添加进去并将其设置为静态获取IP

7.查看本机DNS:

查看本机DNS一定要指向自己配置的IP

 

8.nslookup解析域名:

测试使用域名访问web服务器:

curl www.vincefans.com

9. windows测试:

域名解析:

 web访问:

 访问www.vincefans.com指向的172.25.250.101web服务器

10.测试缓存 :

 第二次解析用了0秒,证明有生成缓存:

主从复制: 

在DNS域名解析中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录,与负载均衡的作用,因此通过部署从服务器,可以减轻主服务器负载压力,还可以提升用户的查询效率。

IP类型主机名
172.25.250.103        masterweb03_service
172.25.250.102slaveweb02_service

主服务器(master):

#首先通过yum仓库,安装bind域名解析系统,和bind-chroot,和域名解析工具bind-utilsyum install -y bind bind-chroot bind-libs bind-utils

 编辑bind主配置文件,修改以下几行配置

#备份配置文件cp -p /etc/named.conf /etc/named.conf.bakcp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bakvim /etc/named.confoptions {        listen-on port 53 { any; };                         #侦听任何ipv4地址        listen-on-v6 port 53 { ::any; };                    #侦听任何ipv6地址        allow-query     { any; };                           #允许任何主机查询        .....}

 接着创建区域名称,配置允许解析的IP地址:

vim /etc/named.rfc1912.zoneszone "vincefans.com" IN {                      #正向区域名        type master;                           #区域类型(master/slave)        file "vincefans.com.zone";             #区域文件名(/usr/named/vincefans.com.zone)        allow-update { 172.25.250.102; };      #允许172.25.350.102过来缓存数据#        masterfile-fORMat text;               # 指定区域文件的格式为text,不指定有可能会为乱码#        allow-transfer { 172.25.250.102; };    # 允许同步DNS的辅助服务器IP#        also-notify { 172.25.250.102; };};zone "250.25.172.in-addr.arpa" IN {            #反向区域名(IP地址应反写)        type master;                           #区域类型(master/slave)        file "vincefans.com.arpa";             #区域文件名(/var/named/vincefans.com.arpa)        allow-update { 172.25.250.102; };      #允许172.25.250.102过来缓存数据#        masterfile-format text;               # 指定区域文件的格式为text,不指定有可能会为乱码#        allow-transfer { 172.25.250.102; };    # 允许同步DNS的辅助服务器IP#        also-notify { 172.25.250.102; };};

 编辑正向模板的zone记录,修改正向解析:

#拷贝默认区域配置模板,分别拷贝正向和反向模板cp -a /var/named/named.localhost /var/named/vincefans.com.zone    #复制正向模板cp -a /var/named/named.localhost /var/named/vincefans.com.arpa    #复制正向模板vim /var/named/vincefans.com.zone$TTL 3H@       IN SOA  ns1.vincefans.com.  rname.invalid. (#区域名  #SOA标识  #主域名服务器(FQDN)  #管理员邮件地址            0       ; serial     #序列号            1D      ; refresh    #刷新间隔            1H      ; retry      #重试间隔            1W      ; expire     #过期间隔            3H )    ; minimum    #TTL        NS      ns1.vincefans.com.                           #名称服务器        NS      ns2.vincefans.com.                           #名称服务器ns1     A       172.25.250.103   #A记录解析自身(必须存在)ns2     A       172.25.250.102   #A记录解析自身(必须存在)www     A       172.25.250.101   #解析记录

 编辑反向模板的zone记录,修改反向解析:

vim /var/named/vincefans.com.arpa$TTL 3H@       IN SOA  ns1.vincefans.com. rname.invalid. (            0       ; serial            1D      ; refresh            1H      ; retry            1W      ; expire            3H )    ; minimum        NS      ns1.vincefans.com.        NS      ns2.vincefans.com.103     PTR     ns1.vincefans.com.102     PTR     ns2.vincefans.com.101     PTR     www.vincefans.com.

重启bind服务,并设置成开机自启动

systemctl restart namedsystemctl enable named

 将服务器端的信息添加进去并将其设置为静态获取IP,查看本机dns:

vim /etc/resolv.conf# Generated by NetworkManagernameserver 172.25.250.103nameserver 172.25.250.102vim /etc/sysconfig/network-scripts/ifcfg-ens33

验证正反向域名解析: 

从服务器(slave):

#首先通过yum仓库,安装bind域名解析系统,bind-chroot,和域名解析工具bind-utilsyum install -y bind bind-chroot bind-utils

编辑bind主配置文件,修改以下几行配置 

#备份配置文件cp -p /etc/named.conf /etc/named.conf.bakcp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak#修改主要配置文件sed -i 's/127.0.0.1/any/g' /etc/named.confsed -i 's/allow-query     { localhost; };/allow-query     { any; };/g' /etc/named.conf

在从服务器中填写,需要同步的主服务器的IP地址,以及同步那个区域配置文件,其他无需修改,保存即可:

[root@localhost ~]# vim /etc/named.rfc1912.zoneszone "vincefans.com" IN {     #正向区域名        type slave;         #指定为从服务器        masters { 172.25.250.103; };                    #指定主服务器IP        file "slaves/vincefans.com.zone";               #指定同步后的文件#        allow-update {  none;  };                       #不允许动态更新#        masterfile-format text;               # 指定区域文件的格式为text,不指定有可能会为乱码};zone "250.25.172.in-addr.arpa" IN {                      #反向区域名        type slave;         #指定为从服务器        masters { 172.25.250.103; };                    #指定主服务器IP        file "slaves/vincefans.com.arpa";               #指定同步后的文件#        allow-update {  none;  };                       #不允许动态更新#        masterfile-format text;               # 指定区域文件的格式为text,不指定有可能会为乱码};

关闭防火墙或者放行53端口:

systemctl stop firewalld.service或者:firewall-cmd --add-port=53/tcpfirewall-cmd --add-port=53/tcp  --permanent

重启bind服务,并设置成开机自启动 :

systemctl restart namedsystemctl enable named

 查看同步过来的正反向记录:

 查看DNS,申请静态获取IP BOOTPROYO=static:

vim /etc/resolv.conf# Generated by NetworkManagernameserver 172.25.250.103nameserver 172.25.250.102vim /etc/sysconfig/network-scripts/ifcfg-ens33

验证正反向域名解析: 

 假如master意外关掉,那么dns服务器(slave)172.25.250.102就会顶替上来:

#master关闭dns服务[root@web03_server ~]# systemctl stop named.service 

域名解析的dns服务器是172.25.250.102

部署小型DNS缓存服务

DNS缓存服务器(Caching DNS Server),是一种不负责域名数据维护的DNS服务器,简单来说,缓存服务器就是把用户经常使用到的,域名与IP地址的解析记录保存在本机,从而提升下次解析请求的效率。以下实验,将配置一台主DNS服务,再配置一台缓存服务器,加快DNS的解析速度。

DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务.
它可以提供如下几个实用的功能:
1 、提供dns服务
2 、优先使用本地自定义dns
3 、提供dhcp服务
一般情况下,我们可以用bind解决dns的问题dhcpd解决dhcp的问题,另外,还可以用ypbind解决自定义hostname解析的ip(当然还有用户的功能)

主要用途:
1 局域网有很多机器希望使用一份一样的hosts定义一批名称对应的ip,你需要经常维护这份列表
2 你希望局域网的人访问某个域名时,拦截下来到指定的ip,做缓存节省带宽或者其它用途都可以
3 禁止某个域名的正常解析

dnsmasq是一个很不错的外部DNS中继,小巧且方便地用于配置DNS和DHCP的工具适用于小型网络,不适用于跨区域的网络。DNSmasq主用适用于NAT的家庭网络,用modem,cable modem,ADSL设备连接到因特网,对于那些需求低资源消耗且配置方便简单的小型网络(最多可支持1000台主机)是一个很好的选择。

IP类型主机名
172.25.250.101主dnsweb01_service
172.25.250.102客户机web02_service

缓存DNS服务器,安装dnsmasq缓存工具

yum install -y dnsmasq

打开dnsmasq的主配置文件,在配置文件底部写入要缓存的条目 

vim /etc/dnsmasq.conf #resolve-file指定dnsmasq从哪里获取上行DNS Server,默认是从/etc/resolv.conf获取resolv-file=/etc/resolv.dnsmasq.conf#表示严格安装 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止strict-order#默认是监控在所有网卡上的,现在改为监控局域网上的172.25.250.103,172.25.250.102listen-address=172.25.250.101,127.0.0.1#dnsmasq从哪个文件中读取“地址 域名”记录,默认是系统文件/etc/hosts;addn-hosts=/etc/dnsmasq.hosts#设置缓存大小#cache-size=1024#开启debug模式,记录客户端查询记录到/var/log/debug中 log-queries#配置DHCP功能expand-hosts#设置domain为“vincefans.com”domain=vincefans.com#地址范围续订期为12个小时dhcp-range=172.25.250.50,172.25.250.150,12h#指定了默认网关dhcp-option=3,172.25.250.2
#文件最后添加vim /etc/dnsmasq.conf#国内指定DNSserver=/cn/114.114.114.114server=/taobao.com/114.114.114.114server=/taobaocdn.com/114.114.114.114#国外指定DNSserver=/Google.com/223.5.5.5#屏蔽网页广告:将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了address=/ad.youku.com/127.0.0.1address=/ad.iqiyi.com/127.0.0.1#指定域名解析到特定的IP上address=/www.vincefans.com/172.25.250.103

修改本地上游DNS配置文件和本地hosts文件:

#复制本地上游DNS配置文件cp /etc/resolv.conf /etc/resolv.dnsmasq.conf#提示:resolv.dnsmasq.conf中设置的是真正的Nameserver,可以用电信、联通等公共的DNS。vim /etc/resolv.dnsmasq.conf # Generated by NetworkManagernameserver 114.114.114.114nameserver 114.114.115.115vim /etc/dnsmasq.hosts#本地域名 172.25.250.101  www.vincefans.com172.25.250.102  www.vincefans.com172.25.250.103  glpi.vincefans.com#公网域名10.4.29.106      www.taobao.com10.4.24.116      www.baidu.com

重启dnsmasq服务,并设置开机自启动

systemctl restart dnsmasq.service systemctl enable dnsmasq.service 

 5.验证:dig www.baidu.com,第一次是没有缓存,所以时间是31

第二次再次测试,因为已经有了缓存,所以查询时间已经变成了0. 

部署DNS加密同步

在如今的互联网中,绝大多数DNS服务器,都是靠Bind提供服务的,bind服务也为用户提供了一种加密措施,来保证数据在两台DNS服务器同步过程中的安全性,即TSIG加密机制,保证了DNS服务器之间区域数据传输的安全性

 配置加密主DNS:

首先通过yum仓库,安装bind域名解析系统,和bind-chroot禁锢模块

yum install -y bind bind-chroot bind-libs

在主服务器中通过以下命令生成一个名称为master-slave的128位HMac-MD5算法的名称为master-slave的密钥文件,并记住Kmaster-slave.+157+53234.private里面的key后期要用到这个钥匙同步数据

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave

记住这个Key:

在主服务器中创建密钥验证文件,并把刚刚创建的key写入到tansfer.key传输文件里面,并配置好相应的权限:

vim /var/named/chroot/etc/transfer.keykey "master-slave" {                           #写上刚刚的密钥名称        algorithm hmac-md5;                    #指定加密算法        secret "qlzb***************n3A==";     #写上上面的key};
chown root:named /var/named/chroot/etc/transfer.keychmod 640 /var/named/chroot/etc/transfer.keyln /var/named/chroot/etc/transfer.key /etc/transfer.key

include "/etc/transfer.key";      #添加本行,导入密钥allow-transfer { key master-slave; };                 #添加本行,允许加载key

 重启bind服务:

systemctl restart named

配置加密从DNS

安装bind域名解析系统,和bind-chroot禁锢模块:

yum install -y bind bind-chroot bind-libs

进入从DNS服务器,在相应目录下创建密钥文件,文件内容与主DNS服务器应相同,并赋予相应权限:

vim /var/named/chroot/etc/transfer.keykey "master-slave" {                           #内容必须和主DNS保持一致        algorithm hmac-md5;secret "********************==";     };
chown root:named /var/named/chroot/etc/transfer.keychmod 640 /var/named/chroot/etc/transfer.keyln /var/named/chroot/etc/transfer.key /etc/transfer.key

 3.修改从DNS服务器的/etc/named.conf主配置文件,开启加密验证,并指定服务器IP地址:

vim /etc/name.confinclude "/etc/transfer.key";           #导入密钥对......server 172.25.250.103 {                #指定主服务器IP        keys { master-slave; };        #指定密钥对};

重启 bind服务:

systemctl restart named.service 

部署DNS分离解析

通常利用DNS的分离解析来达到针对不同的客户端访问网站时,分别解析到不同的主机,以达到负载均衡的目的。举例来说明,深圳的访客和广州的访客,同时访问一个网站,如果是深圳的访客我们将其解析到深圳的机房,如果是广州的访客我们将其解析到广州的机房,从而实现了快速上网,快速访问资源的目的,这一点有点类似于CND内容分发网络。

以下实验,将配置一台主DNS服务,通过使用view视图实现分离解析,广州的用户自动访问到广州的主机,深圳的用户自动访问到深圳的主机,由于没有合适的资源这里只做演示
(注意:假设(IP=172.25.250.0/24是广州区域),(IP=172.25.240.0/24是深圳区域),(广州用户解析到IP=172.25.250.102),(深圳用户解析到IP=172.25.250.101))。

IP        网关IP网段解析到的webIP主机
172.25.250.103/16172.25.0.2172.25.250.0(广州)172.25.250.102主DNS
172.25.250.101/16172.25.0.2172.25.250.0(广州)172.25.250.102test
172.25.240.10/16172.25.0.2172.25.240.0(深圳)172.25.250.101test

修改虚拟机的虚拟网络,使172.25.240.0和172.25.250.0两个网段之间互通:

首先通过yum仓库,安装bind域名解析系统,和bind-chroot:

yum install -y bind bind-chroot bind-libs

 3.修改主配置文件,由于分离解析功能与DNS根域冲突,所以还要屏蔽zone根域区域:

vim /etc/named.conf #zone "." IN {#       type hint;#       file "named.ca";#};

 4.编辑正反向区域配置文件,把区域配置文件原有内容清空,然后根据以下格式写入内容:

vim /etc/named.rfc1912.zonesacl "shenzhen" { 172.25.240.0/24; };                  #假设,这个网段属于shenzhen区域acl "guangzhou" { 172.25.250.0/24; };                 #假设,这个网段属于ghuangzhou区域view "shenzhen" {        match-clients { "shenzhen"; };        zone "vincefans.com" {                type master;                file "vincefans.com.shenzhen.zone";        };        zone "250.25.172.in-addr.arpa" {                type master;                file "vincefans.com.shenzhen.arpa";        };};view "guangzhou" {        match-clients { "guangzhou"; };        zone "vincefans.com" {                type master;                file "vincefans.com.guangzhou.zone";        };        zone "250.25.172.in-addr.arpa" {                type master;                file "vincefans.com.guangzhou.arpa";        };};

建立对应的区域配置文件,分别拷贝两个模板:

深圳正反向zone记录:cp -a /var/named/named.localhost /var/named/vincefans.com.shenzhen.zonecp -a /var/named/named.localhost /var/named/vincefans.com.shenzhen.arpa广州正反向zone记录:cp -a /var/named/named.localhost /var/named/vincefans.com.guangzhou.zonecp -a /var/named/named.localhost /var/named/vincefans.com.guangzhou.arpa修改文件权限:chown named:named /var/named/vincefans*

分别修改两个配置模板,shenzhen(172.25.240.0)解析成=172.25.250.101,
guangzhou(172.25.250.0)解析成=172.25.250.102:

#深圳正反向解析配置文件:vim /var/named/vincefans.com.shenzhen.zone $TTL 1D@       IN SOA  dns.vincefans.com. rname.invalid. (            0       ; serial            1D      ; refresh            1H      ; retry            1W      ; expire            3H )    ; minimum        NS      dns.vincefans.com.dns     A       127.0.0.1www     A       172.25.250.101vim /var/named/vincefans.com.shenzhen.arpa $TTL 1D@       IN SOA  dns.vincefans.com. rname.invalid. (            0       ; serial            1D      ; refresh            1H      ; retry            1W      ; expire            3H )    ; minimum        NS      dns.vincefans.com.1       PTR     dns.vincefans.com.101     PTR     www.vincefans.com.#广州正反向解析配置文件:vim /var/named/vincefans.com.guangzhou.zone$TTL 1D@       IN SOA  dns.vincefans.com. rname.invalid. (            0       ; serial            1D      ; refresh            1H      ; retry            1W      ; expire            3H )    ; minimum        NS      dns.vincefans.com.dns     A       127.0.0.1www     A       172.25.250.102vim /var/named/vincefans.com.guangzhou.arpa $TTL 1D@       IN SOA  dns.vincefans.com rname.invalid. (            0       ; serial            1D      ; refresh            1H      ; retry            1W      ; expire            3H )    ; minimum        NS      dns.vincefans.com.1       PTR     dns.vincefans.com.102     PTR     www.vincefans.com.

重启bind服务:

systemctl restart named

172.25.240.0网段测试www.vincefans.com解析为=172.25.250.101:

172.25.250.0网段测试www.vincefans.com解析为=172.25.250.102:

部署DNS负载均衡

在日常的生产环境中,其实DNS也是可以作为一个负载均衡器使用的,下面我们将介绍通过配置DNS域名失效时间的方式,来实现一个负载调度器。

以下实验,将配置一台主DNS服务,并实现负载均衡。(注意:请自行搭建3个Http服务,之间相互通信,web01=172.25.250.101,web02=172.25.250.102,web03=172.25.250.103)

IP        类型服务
172.25.250.103/24:127.0.0.1/8主DNS搭建dns
172.25.250.101/24Web01搭建Wordpress
172.25.250.102/24Web02搭建wordpress
172.25.250.103/24Web03搭建glpi

首先通过yum仓库,安装bind域名解析系统,bind-chroot,域名解析工具bind-ulits

yum install -y bind bind-chroot bind-libs bind-ulits

编辑bind主配置文件,修改以下几行配置

vim /etc/named.confoptions {        listen-on port 53 { any; };        #侦听任何ipv4地址        listen-on-v6 port 53 { ::any; };   #侦听任何ipv6地址        allow-query     { any; };          #允许任何主机查询        .....}

接着创建区域名称,在配置文件底部

编辑正向模板的zone记录,修改正向解析,在正向解析记录的基础上简单修改即可实现:

vim /var/named/vincefans.com.guangzhou.zone $TTL 1D@       IN SOA  dns.vincefans.com. rname.invalid. (            0       ; serial            1D      ; refresh            1H      ; retry            1W      ; expire            3H )    ; minimum        NS      dns.vincefans.com.dns     A       127.0.0.1www.vincefans.com.      A       172.25.250.102www.vincefans.com.      A       172.25.250.101www.vincefans.com.      A       172.25.250.103

重启bind服务:

systemctl status named

验证 

部署DNS安全扩展dnssec:

DNS做为互联网早期产物,使用无连接的UDP协议虽然降低了开销也保证了高效的通信,但是没有考虑安全问题。由于DNS使用目的端口为53的UDP明文进行通信,DNS解析器识别是自己发出的数据包的唯一标准就是随机的源端口号,如果端口号匹配则认为是正确回复,而不会验证来源。所以也带来了许多DNS安全问题,如DNS欺骗,DNS Cache污染,DNS放大攻击等。

针对DNS安全问题,业界提出了DNSSec(Domain Name System Security Extensions,也叫"DNS安全扩展")机制,使用密码学方法解决DNS安全问题,让客户端对域名来源身份

尽管DNS的安全问题一直被互联网研究和工程领域广为关注,但是有一种普遍存在的攻击却始终没有解决,即DNS的欺骗和缓存污染问题。DNS安全扩展(DNS Security Extension, 即DNSSEC)主要是为了解决这一问题而提出的(尽管它还有其他用途)。因此,在介绍DNSSEC的原理之前有必要简单介绍DNS欺骗和缓存污染攻击的原理。

不过,目前配置了DNSSEC签名的域名非常少,据我所知一般有些国外政府域名有,当然paypal也有,而国内几乎没有(国内的支付宝并没有)。

1.激活DNSSEC

#首先,在BIND的配置文件(一般是/etc/named.conf)中打开DNSSEC选项,比如:vim /etc/named.comfoptions {        dnssec-enable yes;        dnssec-validation yes;        dnssec-lookaside auto;};

2.生成跟(.)的KSK和ZSK

cd /var/named/#区(zone)文件生成密钥签名密钥KSK:dnssec-keygen -a RSASHA1 -b 512 -n ZONE vincefans.com#生成区签名密钥ZSK:dnssec-keygen -a RSASHA1 -b 512 -f KSK -n ZONE vincefans.com

 DS记录来源于顶级域名(com.)的 KSK 每一个DS记录都来源于子域,而信任锚可以是DNSKEY或者DS记录,就是为了最后确认可以的保证。

dnssec-dsfromkey -2 Kvincefans.com.+005+29011.key

 3.签名

#签名之前,你需要把上面的两个DNSKEY写入到区文件中vim /var/named/vincefans.com.guangzhou.zone$INCLUDE "/var/named/Kvincefans.com.+005+16416.key"$INCLUDE "/var/named/Kvincefans.com.+005+29011.key"#然后执行签名操作:dnssec-signzone -o vincefans.com /var/named/vincefans.com.guangzhou.zone#检查配置文件和区域文件有没有错误#如果有报错,修改好重新执行签名操作named-checkconf /etc/named.conf named-checkzone vincefans.com  /var/named/vincefans.com.guangzhou.zonenamed-checkzone vincefans.com  /var/named/vincefans.com.guangzhou.zone.signed

 查看生成的两个文件:

 

创建“信任锚”文件

#其中的密钥部分是将权威服务器生成的K.+005+62317.key和K.+005+62541.key中密钥部分拷贝过来。vim /var/named/trust-anchors.conftrusted-keys {        "vincefans.com." 256 3 5 "AwEAAb63RM1Lwael1MZRSc8E3Wmxhhk8lwoXPmgf9EHy6q52sfj4Si/z 5KJ333r1ImBrYeF49/8rTUC60alwvZiomN8=";        "vincefans.com." 257 3 5 "AwEAAbv7HV3SEfZUQ+vD/Ff6iD/+MLYTWXkT2a/bTNJxiCJTXVl8Wh2b 8MEEjT62Mjm5zZDdjs5DtligREJkYHq3oTE=";};#在主配置文件最后面加入:vim /etc/named.comfinclude "/var/named/trust-anchors.conf";#重启服务:systemctl restart named.server

 验证,flags:出现ad表示搭建成功:

dig @172.25.250.103  +dnssec vincefans.com.  NS; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.10 <<>> @172.25.250.103 +dnssec vincefans.com. NS; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28779;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3

来源地址:https://blog.csdn.net/vincefans/article/details/128421356

--结束END--

本文标题: 搭建DNS服务器

本文链接: https://www.lsjlt.com/news/411089.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 搭建DNS服务器
    目录 搭建DNS缓存服务器 1.安装bind 2.修改配置文件 3.正向解析:  4.进行反向解析: 5.对文件的属主进行修改:  6.查看本机网卡: 7.查看本机DNS: 8.nslookup解析域名: 9. windows测试: 10....
    99+
    2023-09-17
    服务器 运维 linux
  • 云服务器搭建dns
    云服务器搭建dns,需要以下几个步骤: 确定您的服务器地址和服务提供者的名称: 您需要确认您的服务器地址,例如您可以选择在互联网服务提供商(ISP)的服务器上进行注册以获得一个独立的IP地址。服务提供者名称,例如Amazon、IBM、O...
    99+
    2023-10-26
    服务器 dns
  • Win2016服务器DNS服务搭建
    文章目录 前言一、什么是DNS?1.为什么需要DNS系统2.为DNS(Domain Name System,域名系统)的功能3.域名解决方案的演进 二、域名介绍1.域名空间结构2.常见的顶...
    99+
    2023-09-11
    服务器 运维
  • 云服务器搭建DNS服务器
    云服务器搭建DNS服务器的基本步骤如下: 确定目标主机:首先需要确定要运行DNS服务器的主机位置和名称。 创建主配置文件:在DNS服务器中创建一个名为“usen.domain.server”的配置文件,该文件可以在DNS服务器中显示所有...
    99+
    2023-10-26
    服务器 DNS
  • DNS服务搭建(3)
    ★配置DNS转发  我之前配置的DNS服务只能解析我定义过的zone,而没有定义的zone是不能解析的,因此存在着很大的弊端。但是配置了DNS转发之后,就可以顺利解析互联网上了其他域名了,当然,解析此域名的前提是这个域名在互联网中确实存在并...
    99+
    2023-01-31
    DNS
  • WinServer2012如何搭建DNS服务器
    本篇内容主要讲解“WinServer2012如何搭建DNS服务器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WinServer2012如何搭建DNS服务器”吧!DNS简介DNS,即Domain...
    99+
    2023-07-02
  • 详解Linux搭建DNS服务器
    1.DNS服务器概念 在互联网上通信需要借助于IP地址,但人类对于数字的记忆能力远不如文字,那么将IP地址转换成容易记忆的文字是个好办法,可是计算机只能识别0、1代码,这时就需要一种机制来解决IP地址与主机名的转换问题,...
    99+
    2022-06-04
    Linux搭建DNS服务器 Linux如何搭建DNS服务器 Linux下搭建DNS服务器 Linux - DNS服务器搭建
  • 云服务器搭建dns解析
    云服务器搭建dns解析通常会涉及到以下几个步骤: 安装云端dns服务器软件:首先需要准备一个云端dns服务器软件,通常需要根据实际情况确定需要选择哪种dns服务器软件,如Amazon Web DNS、Google DNS、Digital...
    99+
    2023-10-26
    服务器 dns
  • win10怎么搭建DNS服务器
    要在Windows 10上搭建DNS服务器,可以按照以下步骤进行操作:1. 打开控制面板,点击“程序”选项,然后选择“程序和功能”。...
    99+
    2023-08-11
    win10 DNS服务器 服务器
  • 主DNS服务器如何搭建
    搭建主DNS服务器需要以下步骤:1. 选择操作系统:选择一个适合用作DNS服务器的操作系统,如Linux(如Ubuntu、CentO...
    99+
    2023-08-25
    dns服务器 服务器
  • RHEL5下怎么搭建DNS服务器
    这篇文章主要介绍“RHEL5下怎么搭建DNS服务器”,在日常操作中,相信很多人在RHEL5下怎么搭建DNS服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RHEL5下怎么搭建DNS服务器”的疑惑有所帮助!...
    99+
    2023-06-17
  • centos7下如何搭建DNS服务器
    小编给大家分享一下centos7下如何搭建DNS服务器,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一:项目环境:主机角色IP地址功能dns.kevin.comDNS服务器192.168.100.10提供域名解析win.k...
    99+
    2023-06-22
  • centos7下搭建DNS服务器介绍
    目录一:项目环境:二:dns服务器配置i:配置正向解析:ii :配置反向解析三:配置主从服务器:一:项目环境: 主机 角色 ...
    99+
    2022-06-04
    centos7搭建DNS服务器 centos配置DNS服务器
  • 如何搭建简易DNS服务器
    如何搭建简易DNS服务器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。简易DNS服务器domain name server,dns协议,其实现软件主要是bind.bind软...
    99+
    2023-06-05
  • 首选dns服务器怎么搭建
    要搭建首选DNS服务器,您需要遵循以下步骤:1. 选择并安装DNS服务器软件,例如BIND、PowerDNS、dnsmasq等。2....
    99+
    2023-06-03
    首选dns服务器 dns服务器 服务器
  • 如何搭建dns转发服务器
    要搭建一个DNS转发服务器,你需要以下几个步骤:1. 选择操作系统:首先,选择一个适合你需求的操作系统。常用的选择有Linux(如U...
    99+
    2023-08-12
    dns服务器 服务器
  • dns加速服务器如何搭建
    要搭建一个DNS加速服务器,可以按照以下步骤进行操作:1. 选择合适的操作系统:可以使用Linux或者Windows操作系统来搭建D...
    99+
    2023-08-25
    dns服务器 服务器
  • 怎么搭建自己的dns服务器
    要搭建自己的DNS服务器,您可以按照以下步骤进行操作:1. 选择操作系统:首先,您需要选择一个适合您的操作系统来搭建DNS服务器。常...
    99+
    2023-08-25
    dns服务器 服务器
  • centos怎么搭建dns解析服务器
    要搭建DNS解析服务器,你可以按照以下步骤进行:1. 安装BIND软件包:在CentOS中,BIND是最流行的DNS服务器软件。你可...
    99+
    2023-08-25
    centos dns服务器 服务器
  • 教你使用Ubuntu搭建DNS服务器
    本例是在ubuntu18.04上进行的,其他版本的ubuntu同样类似! 一、重点说明/etc/bind/named.conf.options配置文件 在进行bind9服务器配置时,...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作