暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于CentOS操作系统部署BIND9

IT那活儿 2025-04-18
570

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


  
BIND(Berkeley Internet Name Domain)是最广泛使用的DNS服务器软件,它提供了域名解析服务,能够将域名转换为IP地址,反之亦然。

本文将详细介绍如何在CentOS操作系统上安装、配置和管理BIND 9测试环境。



测试环境准备

1.1 系统要求

  • 操作系统:CentOS 8
  • 内存: 2GB
  • 磁盘空间:50GB
  • 网络:配置静态IP地址(192.168.1.100)

1.2 网络配置

确保服务器已配置静态IP地址,编辑网络配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

保存并重启网络服务:

systemctl restart network

安装BIND 9

2.1 安装BIND 9软件包

使用以下命令安装BIND 9及其相关工具:

yum install bind bind-utils -y

2.2 验证安装

安装完成后,验证BIND 9版本:

named -v

配置BIND 9

3.1 主配置文件(named.conf)

BIND 9的主配置文件位于/etc/named.conf。编辑该文件:

vi etc/named.conf
options {
    listen-on port 53 { 127.0.0.1192.168.1.100; };
    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; 192.168.1.0/24; };
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;

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

zone "." IN {
    type hint;
    file "named.ca";
};

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

3.2 区域文件配置

在/etc/named.rfc1912.zones中添加自定义区域:

vi /etc/named.rfc1912.zones

配置示例:

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.rev";
    allow-update { none; };
};

3.3 配置正向解析

创建正向解析区域文件:

vi /var/named/example.com.zone

配置示例:

$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
                        2023101001 ; Serial
                        3600       ; Refresh
                        1800       ; Retry
                        1209600    ; Expire
                        86400 ) ; Minimum TTL

@ IN NS ns1.example.com.
@ IN A 192.168.1.100
ns1 IN A 192.168.1.100
www IN A 192.168.1.101
mail IN A 192.168.1.102

3.4 配置反向解析

创建反向解析区域文件:

vi /var/named/192.168.1.rev

配置示例:

$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
                        2023101001 ; Serial
                        3600 ; Refresh
                        1800 ; Retry
                        1209600 ; Expire
                        86400 ) ; Minimum TTL

@ IN NS ns1.example.com.
100 IN PTR ns1.example.com.
101 IN PTR www.example.com.
102 IN PTR mail.example.com.


启动与测试

4.1 启动BIND 9服务

启动BIND 9服务并检查状态:

systemctl start named
systemctl status named

4.2 设置开机自启动

设置BIND 9开机自启动:

systemctl enable named

4.3 测试DNS解析

使用nslookup工具测试DNS解析:

nslookup www.example.com 192.168.1.100

安全配置

5.1 限制访问权限

通过防火墙限制DNS服务的访问:

firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

5.2 配置TSIG密钥

生成TSIG密钥并配置区域传输:

dnssec-keygen -a HMAC-MD5 -b 128 -n HOST example.com
在/etc/named.conf中添加密钥配置:
key "example.com" {
    algorithm hmac-md5;
    secret "生成的密钥";
};

5.3 配置DNSSEC

启用DNSSEC签名并生成密钥:

dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com
dnssec-signzone -o example.com example.com.zone


日志与监控

6.1 配置日志记录

在/etc/named.conf中配置日志记录:

logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};

6.2 监控DNS服务

使用rndc工具监控DNS服务状态:

rndc status

常见问题与解决方案

7.1 DNS解析失败

  • 检查防火墙配置,确保DNS端口(53)已开放。
  • 检查区域文件语法是否正确。

7.2 服务无法启动

  • 检查/var/log/messages中的错误日志。
  • 使用named-checkconf和named-checkzone检查配置文件。

END


本文作者:张 红(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论