• 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服务器,而维音的域名则通过条件转发器进行转发。

  • 相关阅读:
    EasyUI中页面必须刷新才显示tree组件最新数据的BUG解决方案
    tp2.2.2新特点
    easyui添加自定义验证规则
    TP第一天路由解析
    负载均衡和冗余技术
    smarty缓存控制
    smarty中section遍历数组
    鬼谷子绝学
    Python的Django框架中的URL配置与松耦合
    Python的Django框架中的URL配置与松耦合
  • 原文地址:https://www.cnblogs.com/lanqing/p/14721232.html
Copyright © 2020-2023  润新知