Linux:DNS

安装dns服务器

yum install -y bind

过程参考

[root@localhost ~]# yum install -y bind
正在更新 Subscription Management 软件仓库。
无法读取客户身份

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

CentOS Stream 9 - BaseOS                                                                                                                                                                                                     6.6 kB/s | 3.9 kB     00:00    
CentOS Stream 9 - AppStream                                                                                                                                                                                                  7.5 kB/s | 4.4 kB     00:00    
CentOS Stream 9 - Extras packages                                                                                                                                                                                            3.8 kB/s | 3.0 kB     00:00    
依赖关系解决。
=============================================================================================================================================================================================================================================================
 软件包                                                            架构                                                   版本                                                               仓库                                                       大小
=============================================================================================================================================================================================================================================================
安装:
 bind                                                              x86_64                                                 32:9.16.23-24.el9                                                  appstream                                                 505 k
安装依赖关系:
 bind-dnssec-doc                                                   noarch                                                 32:9.16.23-24.el9                                                  appstream                                                  46 k
 python3-bind                                                      noarch                                                 32:9.16.23-24.el9                                                  appstream                                                  68 k
 python3-ply                                                       noarch                                                 3.11-14.el9                                                        baseos                                                    106 k
安装弱的依赖:
 bind-dnssec-utils                                                 x86_64                                                 32:9.16.23-24.el9                                                  appstream                                                 118 k

事务概要
=============================================================================================================================================================================================================================================================
安装  5 软件包

总下载:842 k
安装大小:2.5 M
下载软件包:
(1/5): bind-dnssec-doc-9.16.23-24.el9.noarch.rpm                                                                                                                                                                              62 kB/s |  46 kB     00:00    
(2/5): python3-ply-3.11-14.el9.noarch.rpm                                                                                                                                                                                    116 kB/s | 106 kB     00:00    
(3/5): python3-bind-9.16.23-24.el9.noarch.rpm                                                                                                                                                                                221 kB/s |  68 kB     00:00    
(4/5): bind-9.16.23-24.el9.x86_64.rpm                                                                                                                                                                                        410 kB/s | 505 kB     00:01    
(5/5): bind-dnssec-utils-9.16.23-24.el9.x86_64.rpm                                                                                                                                                                           198 kB/s | 118 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                                                                                                         622 kB/s | 842 kB     00:01     
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                                                                                                                                                                              1/1 
  安装    : bind-dnssec-doc-32:9.16.23-24.el9.noarch                                                                                                                                                                                                     1/5 
  安装    : python3-ply-3.11-14.el9.noarch                                                                                                                                                                                                               2/5 
  安装    : python3-bind-32:9.16.23-24.el9.noarch                                                                                                                                                                                                        3/5 
  安装    : bind-dnssec-utils-32:9.16.23-24.el9.x86_64                                                                                                                                                                                                   4/5 
  运行脚本: bind-32:9.16.23-24.el9.x86_64                                                                                                                                                                                                                5/5 
  安装    : bind-32:9.16.23-24.el9.x86_64                                                                                                                                                                                                                5/5 
  运行脚本: bind-32:9.16.23-24.el9.x86_64                                                                                                                                                                                                                5/5 
  验证    : python3-ply-3.11-14.el9.noarch                                                                                                                                                                                                               1/5 
  验证    : bind-32:9.16.23-24.el9.x86_64                                                                                                                                                                                                                2/5 
  验证    : bind-dnssec-doc-32:9.16.23-24.el9.noarch                                                                                                                                                                                                     3/5 
  验证    : bind-dnssec-utils-32:9.16.23-24.el9.x86_64                                                                                                                                                                                                   4/5 
  验证    : python3-bind-32:9.16.23-24.el9.noarch                                                                                                                                                                                                        5/5 
已更新安装的产品。

已安装:
  bind-32:9.16.23-24.el9.x86_64              bind-dnssec-doc-32:9.16.23-24.el9.noarch              bind-dnssec-utils-32:9.16.23-24.el9.x86_64              python3-bind-32:9.16.23-24.el9.noarch              python3-ply-3.11-14.el9.noarch             

完毕!

如果提示无法安装可以尝试替换yum源

验证安装

rpm -qa | grep -i bind
图片[1]-Linux:DNS – 北梦の博客-北梦の博客

关闭防火墙/放行dns服务

关闭防火墙

# 关闭防火墙
[root@localhost ~]# systemctl stop firewalld

# 检查防火墙是否关闭,运行后显示 Active: #inactive (dead)
[root@localhost ~]# systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: inactive (dead) since Thu 2024-05-16 13:47:57 CST; 15s ago
   Duration: 22h 26min 19.564s
       Docs: man:firewalld(1)
    Process: 936 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
   Main PID: 936 (code=exited, status=0/SUCCESS)
        CPU: 793ms

5月 15 15:21:34 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
5月 15 15:21:34 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
5月 16 13:47:54 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
5月 16 13:47:57 localhost.localdomain systemd[1]: firewalld.service: Deactivated successfully.
5月 16 13:47:57 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.

或者放行dns服务

# 放行udp/53端口
[root@localhost ~]# firewall-cmd --permanent --add-port=53/udp  
success

# 放行tcp/53端口
[root@localhost ~]# firewall-cmd --permanent --add-port=53/tcp  
success

# 更新防火墙规则
[root@localhost ~]# firewall-cmd --reload
success

# 查看防火墙
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 53/udp 53/tcp
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

# 将当前防火墙的规则永久保存
[root@localhost ~]# firewall-cmd --runtime-to-permanent
success

关闭setenforce

# 关闭setenforce
[root@localhost ~]# setenforce 0

# 验证是否关闭-enforcing (执行中)、permissive (不执行但产生警告)、disabled(关闭)
[root@localhost ~]# getenforce
Permissive

配置DNS

DNS服务器的配置主要涉及到编辑几个关键文件,包括主配置文件如:/etc/named.conf和区域文件(如/etc/named.rfc1912.zones

主配置文件

vi /etc/named.conf

配置文件如下

options {		//DNS服务器全局环境
	listen-on port 53 { 127.0.0.1; };	//ipv4监听端口
	listen-on-v6 port 53 { ::1; };		//ipv6监听端口
	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";	//域名内存相关文件
	recursing-file  "/var/named/data/named.recursing";
	secroots-file   "/var/named/data/named.secroots";
	allow-query     { localhost; };		//允许解析范围
	recursion yes;		//是否允许递归查询
};
logging {		//DNS日志配置
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {	//定义区域
	type hint;	//服务器类型,type常用三种类型,master表示主域名服务器;slave表示辅助域名服务器;hint表示互联网中根域名服务器。
	file "named.ca";	//区域文件名称
};
include "/etc/named.rfc1912.zones";	//辅助区域配置文件
include "/etc/named.root.key";
  • options {}:全局配置,用于配置服务的各种功能,应用到所有客户机。
  • logging {}:日志文件配置,不需要做任何修改
  • zone “域名” IN {}:区域配置,域名数据文件相关配置

要修改的项

listen-on port 53 { any; };		//监听所有地址的53端口
allow-query     { any; };		//允许所有主机的解析

我修改的如下

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
	listen-on port 53 { any; };
	listen-on-v6 port 53 { ::1; };
	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";
	secroots-file	"/var/named/data/named.secroots";
	recursing-file	"/var/named/data/named.recursing";
	allow-query     { any; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	dnssec-validation yes;

	managed-keys-directory "/var/named/dynamic";
	geoip-directory "/usr/share/GeoIP";

	pid-file "/run/named/named.pid";
	session-keyfile "/run/named/session.key";

	/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
	include "/etc/crypto-policies/back-ends/bind.config";
};

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

图片[2]-Linux:DNS – 北梦の博客-北梦の博客

子配置文件

vi /etc/named.rfc1912.zones

在最底下添加解析数据,格式如下

zone "test.com" IN {		//定义一个test.com的正向区域解析
        type master;		//类型为主域名服务器,type常用三种类型,master表示主域名服务器;slave表示辅助域名服务器;hint表示互联网中根域名服务器。
        file "test.com.zone";	//区域配置文件名称
        allow-update { none; };	//不允许区域文件数据同步
};

zone "130.168.192.in-addr.arpa" IN {	//反向解析,格式为:反写IP.in-addr.arpa
        type master;		//类型为主域名服务器,type常用三种类型,master表示主域名服务器;slave表示辅助域名服务器;hint表示互联网中根域名服务器。
        file "192.168.130.zones";	//区域配置文件名称
        allow-update { none; };	//不允许区域文件数据同步
};      

正向解析是通过域名解析IP地址,反向解析是通过IP地址解析域名。反写的格式说明,例如:地址是192.168.130.0网段,则需写成130.168.192.in-addr.arpa

我修改的如下

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

zone "130.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.130.zones";
        allow-update { none; };
};    
图片[3]-Linux:DNS – 北梦の博客-北梦の博客

配置区域解析文件

正向解析配置

编辑/var/named/目录下的linux.com.zone文件(linux.com.zone和上面配置的file名称一样)

vi /var/named/linux.com.zone

添加内容格式如下

$TTL    86400                                           ;# 有效解析记录的生存周期,默认以秒为单位
@       IN SOA linux.com. admin.linux.com. (            ;# IN 因特网 soa 开始授权
                        233 ;serial                     ;# 配置文件修改版本(任意都可以)
                        3H  ;refresh                    ;# 更新频率(从向主查询周期)
                        15M ;retry                      ;# 更新失败的重试周期
                        1W  ;expire                     ;# 无法更新时的失效周期
                        1D  ;minimum                    ;# 缓存服务器无法更新时的失效时间
)

@       IN      NS      dns.linux.com.
dns     IN      A       192.168.130.140
kehu    IN      A       192.168.130.150
  • 分号“;”开始的部分表示注释信息
  • M 分 H 时 W 周 D 天
配置文件详解
第二行

[主机名或域名] [类型] [机构] [主机名] [邮箱]

  • 主机名或域名:使用@代表域名本身,这是一个占位符,表示当前区域的根(即顶级域名)。例如,如果您的域名为 linux.com,那么 @ 就代表 linux.com
  • 类型: IN代表类型属于internet类,DNS服务在TCP/IP中的位置是应用层,所以这里写的IN
  • 机构:SOA(起始授权机构)
  • 主机名:这是主名称服务器的主机名,它指定了负责该区域的主要DNS服务器
  • 邮箱地址:DNS服务器管理员邮箱,这是管理员的邮箱地址,但为了符合DNS规范,@ 符号被替换为一个点(.)。例如,admin.linux.com. 实际上表示 admin@linux.com
第十行

[记录的名称][有效时间][类][类型][数据]

  • 记录的名称:通常是主机名或子域名
  • 有效时间:可以省略,省略则为第一行设置的ttl值
  • 类:IN代表类型属于internet类
  • 类型
    • A记录: 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录
    • CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名
    • MX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录
    • NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
    • TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录
    • AAAA记录: 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
    • SRV记录: 添加服务记录服务器服务记录时会添加此项,SRV记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)。
    • SOA记录: SOA叫做起始授权机构记录,NS用于标识多台域名解析服务器,SOA记录用于在众多NS记录中那一台是主服务器
    • PTR记录: PTR记录是A记录的逆向记录,又称做IP反查记录或指针记录,负责将IP反向解析为域名
  • 数据
    • 不同的类型对应不同的数据,a记录数据则为ip地址,cname记录为域名

反向解析配置

编辑/var/named/目录下的192.168.130.zones文件(192.168.130.zones和上面配置的file名称一样)

vi /var/named/192.168.130.zones

添加内容格式如下

$TTL 86400
@       IN      SOA     linux.com. admin.linux.com. (
                        2024102601 ; serial
                        3H         ; refresh
                        15M        ; retry
                        1W         ; expire
                        1D         ; minimum
)

@       IN      NS      dns.linux.com.
140     IN      PTR     dns.linux.com.
150     IN      PTR     kehu.linux.com.

配置文件可以参考上面正向配置

检查配置文件

检查 named.conf 配置文件

named-checkconf /etc/named.conf

检查区域文件

named-checkzone linux.com /var/named/linux.com.zone 
named-checkzone 130.168.192.in-addr.arpa /var/named/192.168.130.zones
图片[4]-Linux:DNS – 北梦の博客-北梦の博客

显示ok即为没有问题

测试dns解析

开启dns服务

systemctl restart named && systemctl status named

linux需要安装工具包

yum -y install bind-utils

win

修改dns服务器

图片[5]-Linux:DNS – 北梦の博客-北梦の博客

正向解析测试

图片[6]-Linux:DNS – 北梦の博客-北梦の博客

反向解析测试

图片[7]-Linux:DNS – 北梦の博客-北梦の博客

linux

修改dns服务器

图片[8]-Linux:DNS – 北梦の博客-北梦の博客

正向解析配置

图片[9]-Linux:DNS – 北梦の博客-北梦の博客

反向解析配置

图片[10]-Linux:DNS – 北梦の博客-北梦の博客
温馨提示:本文最后更新于2024-10-27 14:01:51,某些文章具有时效性,若有错误或已失效,请在下方留言或联系站长
© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情

    暂无评论内容