CentOS 7 DNS服务器架设

news2024/9/28 11:20:00

CentOS 7 DNS服务器部署

项目背景和要求

要保证即能够解析内网域名linuxidc.local的解析,又能解析互联网的域名。

主DNS服务器:ZZYH1.LINUXIDC.LOCAL

辅助DNS服务器:ZZYH2.LINUXIDC.LOCAL

包含以下域的信息:

1、linuxidc.local域的信息:

2、192.168.188.0/24、192.168.189.0/24反向解析域

要求实现chroot功能,以提高安全性

实现到202.102.224.68、202.102.227.68的DNS转发。

防止非授权用户的DNS记录的枚举(防止出现类似上海烟草公司的安全隐患)。仅允许管理员在192.168.188.10上进行操作。

DNS网络配置

除了传统的修改/etc/resolv.conf之外,还有通过在ifcfg文件中添加配置的方式。

Tip: 与Windows在某个网卡中设置DNS服务器的IP地址类似

# vi/etc/sysconfig/network-scripts/ifcfg-eno16777728

# Generated by parse-kickstart IPV6INIT=no

BOOTPROTO=static

DEVICE=eno16777728

ONBOOT=yes

TYPE=Ethernet

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

NAME="System eno16777728"

IPADDR=192.168.188.15

NETMASK=255.255.255.0

GATEWAY=192.168.188.2

DNS1=192.168.188.15 DNS2=192.168.188.16

这样,当重新启动network服务时,会生成/etc/resolv.conf中的配置

# servicenetwork restart

Restarting network (via systemctl):                        [  OK  ]

# cat/etc/resolv.conf

# Generated by NetworkManager

search linuxidc.local

nameserver 192.168.188.15 nameserver192.168.188.16

配置Yum库

[root@zzyh2 ~]# cd /etc/yum.repos.d/

[root@zzyh2 yum.repos.d]# ls

CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-Vault.repo

[root@zzyh2 yum.repos.d]#

[root@zzyh1 yum.repos.d]# cpCentOS-Base.repo CentOS-Base.repo.origin

[root@zzyh1 yum.repos.d]# viCentOS-Base.repo

配置内容

[base]

name=CentOS-$releasever - Base

baseurl=file:///media

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

安装DNS支持包

#yum -y installbind bind-util bind-chroot    //

[root@zzyh1 ~]# cd /media/Packages/

[root@zzyh1 Packages]# yum -y install bindbind-util bind-chroot

Warning: RPMDB altered outside of yum.

 Installing : 32:bind-libs-9.9.4-14.el7.x86_64                            1/3

 Installing : 32:bind-9.9.4-14.el7.x86_64                                  2/3

 Installing : 32:bind-chroot-9.9.4-14.el7.x86_64                          3/3

 Verifying  :32:bind-9.9.4-14.el7.x86_64                                  1/3

 Verifying  : 32:bind-libs-9.9.4-14.el7.x86_64                            2/3

 Verifying  :32:bind-chroot-9.9.4-14.el7.x86_64                          3/3

Installed:

 bind.x86_64 32:9.9.4-14.el7        bind-chroot.x86_64 32:9.9.4-14.el7

Dependency Installed:

  bind-libs.x86_6432:9.9.4-14.el7

 Complete!

查看bind的生成包

[root@zzyh2 ~]# rpm -qc bind

/etc/logrotate.d/named

/etc/named.conf

/etc/named.iscdlv.key

/etc/named.rfc1912.zones

/etc/named.root.key

/etc/rndc.conf

/etc/rndc.key

/etc/sysconfig/named

/var/named/named.ca

/var/named/named.empty

/var/named/named.localhost

/var/named/named.loopback

配置文件

[root@zzyh1 ~]# cd /etc

[root@zzyh1 etc]# cp named.confnamed.conf.origin

[root@zzyh1 etc]# vi /etc/named.conf

[root@zzyh1 etc]# cat /etc/named.conf、

 //listen-on port 53 { 127.0.0.1; };

      listen-on port 53 { any; };

 //dnssec-enable yes;

      //dnssec-validation yes;

      dnssec-enable no;

      dnssec-validation no;

配置转发地址:

 forwarders {202.102.224.68; 202.102.227.68;};

      allow-transfer {192.168.188.15; 192.168.188.12;};

查看状态

[root@zzyh1 etc]# rndc status

version: 9.9.4-RedHat-9.9.4-14.el7<id:8f9657aa>

CPUs found: 1

worker threads: 1

UDP listeners per interface: 1

number of zones: 101

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

测试一下解析

补充一下

#find / -name nslookup

/usr/bin/nslookup

#rpm -qf/usr/bin/nslookup  //查询这个命令依附于那个包 bind-utils-9.9.4-14.el7.x86_64.rpm

执行

#nslookup              //如果找不到nslookup那是因为没有安装bind-utils-9.9.4-14.el7.x86_64.rpm

> server 192.168.188.15

Default server: 192.168.188.15

Address: 192.168.188.15#53

> g.cn                                //尝试解析g.cn

Server:        192.168.188.15

Address:        192.168.188.15#53

Non-authoritative answer:

Name:  g.cn

Address: 203.208.36.17

Name:  g.cn

Address: 203.208.36.18

Name:  g.cn

Address: 203.208.36.16

Name:  g.cn

Address: 203.208.36.20

Name:  g.cn

Address: 203.208.36.19

//解析成功

添加自定义zone

自定义,修改配置文件

[root@zzyh1~]# vi /etc/named.conf

在最后添加

zone "linuxidc.local" IN {

    type mester;

    file "linuxidc.local.zone";

}

zone "188.168.192.in-addr.arpa"IN {

    type master;

    file "192.168.188.zone";

}

zone "189.168.192.in-addr.arpa"IN {

    type master;

    file "192.168.189.zone";

}

include"/etc/named.rfc1912.zones";

include "/etc/named.root.key";

[root@zzyh1named]# cp named.empty linuxidc.local.zone  //修改前备份一下

[root@zzyh1 named]# ls

linuxidc.local.zone  data    named.ca    named.localhost  slaves

chroot              dynamic  named.empty named.loopback

配置文件

[root@zzyh1named]# vi  linuxidc.local.zone

$TTL 3H

@      IN SOA  zzyh1.linuxidc.local.  chenzhou312.blog.51cto.com (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

                      IN      NS          zzyh1.linuxidc.local.

                      IN      NS          zzyh2.linuxidc.local.

zzyh1                IN      A            192.168.188.15

zzyh2                IN      A            192.168.188.16

ftp                  IN      A            192.168.188.15

mailyh1              IN      A            192.168.188.22

smtp                  IN      CNAME        mailyh1.linuxidc.local.

pop3                  IN      CNAME        mailyh1.linuxidc.local.

www                  IN      A            192.168.188.15

crm                  IN      A            192.168.188.15

#vi192.168.188.zone

$TTL 3H

@      IN SOA  zzyh1.linuxidc.local.  chenzhou312.blog.51cto.com (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expiredgG

                                        3H)    ; minimum

        IN        NS          zzyh1.linuxidc.local.

        IN        NS          zzyh2.linuxidc.local.

15      IN        PTR          zzyh1.linuxidc.local.

15      IN        PTR          ftp.linuxidc.local.

16      IN        PTR          zzyh2.linuxidc.local.

16      IN        PTR          mailyh1.linuxidc.local.

#vi192.168.189.zone

$TTL 3H

@      IN SOA zzyh1.linuxidc.local. chenzhou312.blog.51cto.com (

                                        0      ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H)    ; minimum

        IN    NS                  zzyh1.linuxidc.local.

        IN    NS                  zzyh2.linuxidc.local.

www    IN    NS                  192.168.188.15

重启服务

[root@zzyh1 named]# systemctl restartnamed.service

[root@zzyh1 named]# service named restart

Redirecting to /bin/systemctl restart  named.service

[root@zzyh1 named]# rndc status

version: 9.9.4-RedHat-9.9.4-14.el7<id:8f9657aa>

CPUs found: 1

worker threads: 1

UDP listeners per interface: 1

number of zones: 104

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

设置为自动启动

# systemctl enable named

[root@zzyh1 named]# systemctl status named

named.service - Berkeley Internet NameDomain (DNS)

  Loaded: loaded (/usr/lib/systemd/system/named.service; enabled)

  Active: active (running) since Mon 2014-08-25 00:36:59 CST; 3min 47s ago

 MainPID: 2807 (named)

  CGroup: /system.slice/named.service

          a””a”2807 /usr/sbin/named -u named

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 189.168.192.in-addr.ar...

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 189.168.192.in-addr.ar...

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 1.0.0.127.in-addr.arpa...

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 1.0.0.0.0.0.0.0.0.0.0....

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: all zones loaded

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: running

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 188.168.192.in-addr.ar...

Aug 25 00:36:59 zzyh1.linuxidc.localnamed[2807]: zone 189.168.192.in-addr.ar...

Aug 25 00:36:59 zzyh1.linuxidc.localsystemd[1]: Started Berkeley Internet N....

Aug 25 00:37:00 zzyh1.linuxidc.localnamed[2807]: managed-keys-zone: No DNSKE...

Hint: Some lines were ellipsized, use -l toshow in full.

测试

# nslookup

> server192.168.188.15

Default server: 192.168.188.15

Address: 192.168.188.15#53

>www.linuxidc.local.

Server:        192.168.188.15

Address:      192.168.188.15#53

Name:  www.linuxidc.local

Address: 192.168.188.15

>smtp.linuxidc.local.

Server:        192.168.188.15

Address:      192.168.188.15#53

smtp.linuxidc.local    canonical name = mailyh1.linuxidc.local.

Name:  mailyh1.linuxidc.local

Address: 192.168.188.22

>192.168.188.15

Server:        192.168.188.15

Address:      192.168.188.15#53

15.188.168.192.in-addr.arpa    name = ftp.linuxidc.local.

15.188.168.192.in-addr.arpa    name = zzsrv1.linuxidc.local.

> exit

zzyh2上的DNS配置

      安装BIND

与zzyh1上的主DNS配安装一样。

操作略。       

      配置

Cache Only Server

与zzyh1上的主DNS配安装一样。

操作略。

添加辅助Zone

# vi /etc/named.conf

添加如下zone信息

zone "linuxidc.local" IN {

      type slave;

      masters {192.168.188.15; };

      file "linuxidc.local.zone";

};

zone "188.168.192.in-addr.arpa"IN {

      type slave;

      masters {192.168.188.15; };

      file "192.168.188.zone";

};

zone "189.168.192.in-addr.arpa"IN {

      type slave;

      masters {192.168.188.15; };

      file "192.168.189.zone";

};

修改目录权限

[root@zzyh2 named]# ll /var/named/ -d

drwxr-x--- 6 root named 133 Aug 15 14:06/var/named/

[root@zzyh2 named]# chmod g+w /var/named/

[root@zzyh2 named]# ll /var/named/ -d

drwxrwx--- 6 root named 133 Aug 15 14:06/var/named/

启动服务

[root@zzyh2 ~]# systemctl startnamed.service

Redirecting to /bin/systemctl restart  named.service

设置为自动启动

[root@zzyh2 ~]# systemctl enable named

ln -s'/usr/lib/systemd/system/named.service''/etc/systemd/system/multi-user.target.wants/named.service'

查看日志,检查是否有报错信息。(建议在启动时,就在另外一个会话时就打开)

# tail -f /var/log/messages

测试BIND

在zzyh1上生成了相应的zone文件

[root@zzyh2 ~]# ll /var/named/

total 28

-rw-r--r-- 1 named named  451 Aug 15 14:58 192.168.188.zone

-rw-r--r-- 1 named named  254 Aug 15 15:05 192.168.189.zone

-rw-r--r-- 1 named named  647 Aug 15 15:16 linuxidc.local.zone

drwxr-x--- 7 root  named  56 Aug 15 14:06 chroot

drwxrwx--- 2 named named  22 Aug 15 14:19 data

drwxrwx--- 2 named named  58 Aug 15 16:20 dynamic

-rw-r----- 1 root  named 2076 Jan 28  2013 named.ca

-rw-r----- 1 root  named 152 Dec 15  2009 named.empty

-rw-r----- 1 root  named 152 Jun 21  2007 named.localhost

-rw-r----- 1 root  named 168 Dec 15  2009 named.loopback

drwxrwx--- 2 named named    6 Jun 10 16:13 slaves

[root@zzyh1 ~]# vi /var/named/linuxidc.local.zone

添加一个A记录

test    IN A 10.0.0.1

并且将,zone的序列号增大

[root@zzyh1 ~]# rndc reload

server reload successful

在zzyh1的日志中会看到

zone linuxidc.local/IN: sending notifiesrial 15)

client 192.168.188.16#41658 (linuxidc.loc:transfer of 'linuxidc.local/IN': AXFR-style IXFR started

client 192.168.188.16#41658 (linuxidc.loc:transfer of 'linuxidc.local/IN': AXFR-style IXFR ended

在zzyh2的日志中会看到

client 192.168.188.15#33856: received notifyfor zone 'linuxidc.local'

zone linuxidc.local/IN: Transfer started.

transfer of 'linuxidc.local/IN' from192.168.188.15#53: connected using 192.168.188.16#41658

zone linuxidc.local/IN: transferred serial15

transfer of 'linuxidc.local/IN' from192.168.188.15#53: Transfer completed: 1 messages, 13 records, 339 bytes, 0.005secs (67800 bytes/sec)

zone linuxidc.local/IN: sending notifies(serial 15)

测试

# nslookup

> server 192.168.188.16

Default server: 192.168.188.16

Address: 192.168.188.16#53

> test.linuxidc.local.

Server:        192.168.188.16

Address:        192.168.188.16#53

Name:  test.linuxidc.local

Address: 10.0.0.1

> exit

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mybatis多表联查(一对一、一对多/多对一、多对多)

mybatis多表联查(一对一、一对多/多对一、多对多) 在开发过程中单表查询往往不能满足需求分析的很多功能&#xff0c;对于比较复杂业务来说&#xff0c;关联的表有几个&#xff0c;甚至是几十个并且表与表之间的关联相当复杂。为了能够实现复杂的功能业务&#xff0c;就必须进…

Java 并发工具合集 JUC 大爆发!!!

并发工具类 通常我们所说的并发包也就是 java.util.concurrent (JUC)&#xff0c;集中了 Java 并发的各种工具类&#xff0c; 合理地使用它们能帮忙我们快速地完成功能 。 1. CountDownLatch CountDownLatch 是一个同步计数器&#xff0c;初始化的时候 传入需要计数的线程等待数…

Monaco Editor编辑器教程(二七):集成多个GitLab编辑器颜色样式主题

前言 在开发编辑器时,未来满足开发者的审美需求,有时需要设计多套颜色主题,最基础的是黑色主题和白色主题。如果用户愿意出钱的话,可以加上一些其他花里胡哨的颜色主题,在vscode中是可以搜到。今天就来教大家一些,如何借助现成的资源来为自己的monaco编辑器增加丰富的颜…

JavaScript控制语句及搭建前端服务器

目录 一、for in 二、for of 三、try catch 四、搭建前端服务器 &#xff08;1&#xff09;安装nvm &#xff08;2&#xff09;检查npm &#xff08;3&#xff09;搭建前端服务器 一、for in 主要用来遍历对象 let father {name:张三, age:18, study:function(){}};f…

Linux常用的网络命令有哪些?快速入门!

在Linux系统中&#xff0c;有许多常用的网络命令可以用来进行网络配置和故障排除。这些命令可以帮助我们了解网络的状态和性能&#xff0c;并且可以快速诊断和解决网络问题。在本文中&#xff0c;我们将介绍一些常用的Linux网络命令&#xff0c;并提供一些案例来帮助您更好地理…

高数基础2

目录 函数的极限&#xff1a; 自变量趋向于有限值时函数的极限 左右极限 需要分左右极限的三种问题&#xff1a; 例题&#xff1a; 极限性质&#xff1a; 函数的保号性&#xff1a; 函数的保号性&#xff1a; 例题&#xff1a; 极限值与无穷小的关系 极限存在准则&#…

FRRoute 路由信息采集 + MPLS VPN隧道信息采集与识别

FRRoute 路由信息采集 MPLS VPN隧道信息采集与识别FRRoute数据库-表路由信息采集命令输出字段 -> 映射到 -> 数据库字段数据结构 算法show int brroute -nshow interfaces loMPLS VPN隧道信息采集与识别step 1 : 采集mpls邻居表step 2 : MPLS 隧道识别FRRoute 数据库-…

RK3568平台开发系列讲解(Linux系统篇)线程 pthread 详解

🚀返回专栏总目录 文章目录 一、POSIX 线程模型二、pthread_create()创建线程三、线程属性3.1、初始化线程对象属性3.2、销毁一个线程属性对象3.3、线程的分离状态3.4、线程的调度策略3.5、线程的优先级3.6、线程栈四、线程退出五、回收已终止线程的资源沉淀、分享、成长,让…

Word处理控件Aspose.Words功能演示:使用C#创建MS Word文档

Aspose.Words是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。 Aspose API支持流行文件格式处理&#xff0c;并…

苹果6信号不好的快速解决方法

许多朋友反馈&#xff0c;苹果6的信号不佳&#xff0c;建议从以下方面查找&#xff1a; 方法一&#xff1a;开启飞行模式后再关闭 有时候手机由于周围环境网络比较差&#xff0c;会导致信号处于无服务状态&#xff0c;这时后我们开启飞行模式后再关闭飞行模式&#xff0c;系统就…

反序列化漏洞及PHP魔法函数

目录 1、漏洞原理 2、序列化&#xff08;以PHP语言为例&#xff09; 3、反序列化 4、PHP魔法函数 &#xff08;1&#xff09;__wakeup() &#xff08;2&#xff09;__destruct() &#xff08;3&#xff09;__construct() &#xff08;4&#xff09;__toString() &…

Arduino UNO驱动micro SD卡读写模块

目录一、简介二、使用前准备三、测试方法四、实验现象一、简介 Micro SD卡模块TF卡读写卡器板载电平转换电路&#xff0c;即接口电平可为5V或3.3V&#xff0c;支持支持Micro SD卡(≤2G)、Micro SDHC高速卡(≤32G)。供电电源为4.5V~5.5V&#xff0c;板载3.3V稳压电路&#xff0…

甘特图控件DHTMLX Gantt入门使用教程【引入】:dhtmlxGantt与ASP.NET Core(上)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求&#xff0c;具备完善的甘特图图表库&#xff0c;功能强大&#xff0c;价格便宜&#xff0c;提供丰富而灵活的JavaScript API接口&#xff0c;与各种服务器端技术&am…

minio 部署、迁移、使用

一、minio 部署 1、单节点部署 部署IP&#xff1a;192.168.206.10 1.1、下载minio的二进制文件 wget https://dl.min.io/server/minio/release/linux-amd64/minio 1.2、规划磁盘 minio 数据目录一定不能和 跟/ 在一个磁盘上&#xff0c;要单独挂载&#xff0c;比如规划将m…

一文看懂SpringBoot操纵数据库

1.前言 很多同学进入公司就开始参与项目开发&#xff0c;大多数情况是对某个项目进行维护或者需求迭代&#xff0c;能够从0到1参与到项目中的机会很少&#xff0c;因此并没有多少机会了解某些技术的运行机制。换句话说&#xff0c;有的面试官在面试的时候就会探讨深层的技术问题…

【产品设计】那些被迫妥协的产品设计背后的技术原因

刚入门的产品经理经常会听到前辈们说应该懂点技术&#xff0c;却不明白为什么。本文作者分享了几个被迫妥协的产品设计的例子&#xff0c;希望能让不是技术出身的产品经理了解到“产品经理应该懂点技术”在产品设计中有什么指导意义&#xff0c;一起来看一下吧。 刚入门的产品经…

学习C++:C++进阶(六)如何在C++代码中调用python类,实例化python中类的对象,如何将conda中的深度学习环境导入C++项目中

目录 1.应用场景 2.场景&#xff1a;利用maskrcnn深度学习网络实现语义分割 3.CMake配置python解释器 4.C中实现实例化python中的类的对象并调用类内方法 4.1 初始化python环境 4.2 实例化python类的对象 1.应用场景 我们在视觉SLAM以及目标检测和识别中&#xff0c;经常…

AMD GPU安装运行stable diffusion

本文操作环境为Windows10/11AMD AI绘画是一种利用人工智能技术进行绘画的方法。它可以通过机器学习算法来学习艺术家的风格&#xff0c;并生成类似于艺术家的作品。最近&#xff0c;AI绘画技术得到了很大的发展&#xff0c;许多公司和研究机构都在进行相关的研究和开发。例如&…

华为电脑录屏功能在哪?这样做,您可以快速找到

案例&#xff1a;如何在华为电脑上找到电脑录屏功能&#xff1f; “听说电脑有录屏功能&#xff0c;但我在我的华为电脑上找了很久&#xff0c;都没有找到。难道华为电脑没有录屏功能吗&#xff1f;有没有小伙伴可以告诉我华为电脑录屏功能在哪&#xff1f;孩子已经快绝望了&a…

第六章 法律体系

目录 第一节 法律体系与法律部门的概念 一、法律体系的概念 &#xff08;一&#xff09;法律体系的含义和特征 &#xff08;二&#xff09;法律体系与相关概念的区别&#xff08;法律体系与国家&#xff0c;现行有关&#xff09; &#xff08;三&#xff09;法律体系的形成和…