安装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
关闭防火墙/放行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";
子配置文件
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; };
};
配置区域解析文件
正向解析配置
编辑/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
显示ok即为没有问题
测试dns解析
开启dns服务
systemctl restart named && systemctl status named
linux需要安装工具包
yum -y install bind-utils
win
修改dns服务器
正向解析测试
反向解析测试
linux
修改dns服务器
正向解析配置
反向解析配置
© 版权声明
THE END
暂无评论内容