CentOS 7配置DNS缓存服务器

1、安装CentOS 7,网上指导文档很多,不再另行说明,如果镜像是从http://mirrors.aliyun.com/下载的CentOS镜像,yum源已经默认修改为aliyun,但是也需要执行3.1-3.4的步骤,因为镜像中有部分yum没有更新,建议使用minimal版的镜像,这样可以省去多余的组件。

 

 

2、CentOS默认没有wget,需要自行下载wget(重要!)

  yum -y install wget

 

 

3、安装Xymon需要安装多种工具,而安装工具需要先配置yum,由于过去通用的yum源目前因为种种原因无法再使用,首先需要将yum源更改为国内用户较多的aliyun的源

 

  3.1 首先备份系统自带base repo文件

  进入repo保存目录

    cd /etc/yum.repos.d

 

  将现有repo重命名  

    sudo mv CentOS-Base.repo CentOS-Base.repo.bak

 

下载阿里源的repo文件(注意!必须先通过系统自带的yum下载wget工具再执行下面这个命令,否则会进入因为找不到wget工具因此无法下载yum,又因为没有yum而无法下载wget工具的死循环)

    sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

 

  3.2 安装epel repo源

    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

 

  3.3 清理缓存

    yum clean all

 

  3.4 重新生成缓存

    yum makecache

 

  3.5 进行系统更新

    yum upgrade -y

 

建议在此处将服务器关机进行备份或克隆为虚拟机模版,以防后续操作中出现问题导致无法回滚

 

 

4、系统设置

 

4.1安装工具

安装C、vim、net-tools、iptables

yum install gcc gcc-c++ vim net-tools iptables-services -y

 

安装Bind

yum install bind bind-utils -y

 

4.2修改CentOS安全等级

    vim /etc/selinux/config

在现有的配置前加上#注释掉

#SELINUX=enforcing

 

添加一条新命令

    SELINUX=disabled

 

  保存并退出

    :wq

 

4.4配置iptables防火墙

  注意!CentOS7使用firewall作为系统默认防火墙,建议禁用firewall,启用iptables

 

  停用firewall服务

    systemctl stop firewalld.service

 

  禁止firewall服务开机启动

systemctl disable firewalld.service

 

将iptables服务设置为开机自启动

    systemctl enable iptables.service

 

修改iptables规则

    vim /etc/sysconfig/iptables

 

修改iptables规则开放指定IP段的TCP 22远程管理端口访问

-A INPUT -s 172.28.18.0/27 -p tcp -m tcp --dport 22 -j ACCEPT

 

修改iptables规则开放指定IP段的客户端TCP和UDP 53端口访问

    -A INPUT -s 172.28.18.0/27 -p tcp -m tcp --dport 53 -j ACCEPT

    -A INPUT -s 172.28.18.0/27 -p udp -m udp --dport 53 -j ACCEPT

 

修改iptables规则开放指定IP段的客户端TCP 953端口访问

    -A INPUT -s 172.28.18.0/27 -p tcp -m tcp --dport 953 -j ACCEPT

 

修改iptables规则取消对所有IP开放TCP 22远程管理端口访问

    #-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

 

保存并退出

:wq!

 

重启服务器

    reboot now

 

配置完这一步以后,服务器就可以通过SecureCRT或Putty等ssh客户端登录进行配置了,比使用HyperV或VMWARE的管理界面进行操作方便多了,但一定要严格控制防火墙ACL

 

4.5添加新的服务器管理员用户admin并设置密码

useradd admin

         passwd admin

 

将admin用户添加到root组

         usermod -G root admin

编辑sodo配置文件

         vim /etc/sudoers

 

找到root     ALL=(ALL)          ALL并在下面规则允许admin用户使用sudo功能

         admin       ALL=(ALL)          ALL

 

保存并退出

    :wq!

 

至此,服务器就可以使用admin账户通过ssh和console进行登录和维护了,之后除特殊情况外,尽量避免使用root账户

 

 

5、DNS服务器配置

 

  5.1配置基本DNS功能

 

  启动DNS服务

    systemctl start named.service

 

  将DNS服务设置为开机自启动

    systemctl enable named.service

 

  查看DNS服务端口监听是否正常(正常情况下应监听TCP 953, TCP和UDP 53端口)

netstat -anlp | grep named

 

5.2 DNS服务具体配置(注意!”//”起的内容为注释语句,配置时不要复制

打开主配置文件/etc/named.conf

  vim /etc/named.conf

 

修改服务器IPv4监听端口及IP地址,默认情况下是第13行

listen-on port 53 { 127.0.0.1; };                                    //服务器IPv4监听端口及IP,默认只有环回地址,需添加本机IP,如该服务器有多个IP且均提供DNS服务,可以添加any,代表所有IP,任何地址包括any必须以“;”结尾,范例如下

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

 

修改DNS客户端白名单地址

allow-query     { localhost; };                                    //允许向这台服务器发起DNS请求的IP地址,因为我们已经使用iptables进行了访问控制,这里可以修改为any,范例如下

  allow-query     { any; };

 

在递归查询选项后添加转发器地址,默认情况下是第31行

recursion yes;                                                                   //递归查询功能,yes为启用,no为禁用,一般默认使用yes,转发器添加在此行以后,范例如下

 

forward first;                                                                    //转发器选项,可以设置为first或only,当客户端发起DNS解析请求时,如果参数为first,而当前服务器缓存中无对应缓存时,会向转发器请求DNS解析记录,如果参数为only,则无论服务器是否有对应的缓存,均向转发器请求DNS解析记录。设置为only可以避免出现服务器缓存造成的DNS解析错误,但是会大大降低DNS解析效率并增加服务器压力,根据目前的运营需求,我们使用first即可

         forwarders {                                                             //定义转发器地址,注意”{ }”必须形成闭合并以”;”结尾,每个转发器IP也必须以”;”结尾,默认情况下所有域名均向这几个转发器请求解析记录(公网DNS)

                   17.82.200.200;

17.82.200.201;

         };

 

dnssec-enable yes;                                                          //DNS安全功能选项,默认为yes,不需要修改

dnssec-validation yes;                                                    //DNS安全验证功能,默认为yes,不需要修改

 

  确认子配置文件是否关联,默认情况下是第57行,在添加转发器以后会对应添加行数进行下移

include "/etc/named.rfc1912.zones";                       //子配置文件,可自定义条件转发器

 

  保存并退出

    :wq!

 

  打开条件转发器配置文件

vim /etc/named.rfc1912.zones

 

  在文件尾添加条件转发器

    zone “XXXX.com” IN {                                               //定义DNS条件转发域名

type forward;                                                          //定义转发类型,forward为转发

         forward first;                                                           //转发器选项,参数同上,不再复述

         forwarders {                                                             //定义转发器地址(172.28.194.101)

172.28.2.101;

         172.28.2.102;

};

};

 

  保存并退出

    :wq!

 

  验证DNS配置文件语法

    named-checkconf /etc/named.conf

如果没有语法错误,DNS转发服务器的配置就算完成了,可以重启一下服务器,然后找一台电脑,将DNS设置为这台服务器的IP地址进行测试,新的域名在第一次解析的时候会比较慢,因为服务器会向上游转发服务器发送递归查询请求并将DNS记录缓存在本地,之后的解析速度就会大大加快。

 

 

setenforce 0

iptables -F

 

 

以下是可能需要留意的问题:

 

1、  服务器本身的网卡DNS地址,在完成DNS服务器配置以后,建议修改为127.0.0.1,使用其他DNS地址可能导致本地缓存解析记录与上游转发器之间的记录存在冲突,具体方法如下

 

2、  条件转发器可以设置多个,优先级高于主配置中的转发器设置,部分客户方(如苹果)可能会要求所有DNS解析必须使用客户方的服务器地址,因此需要将主配置的转发器设置为客户方的DNS服务器,而维音的域名则通过条件转发器进行转发。

posted @ 2021-04-30 10:58  兰卿  阅读(676)  评论(0编辑  收藏  举报