1. 总结openssh服务安全加固
建议使用非默认端口
禁止使用protocol version 1
限制可登录用户
设定空闲会话超时时长
利用防火墙设置ssh访问策略
仅监听特定的IP地址
基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12|
xargs
使用基于密钥的认证
禁止使用空密码
禁止root用户直接登录
限制ssh的访问频度和并发在线数
经常分析日志
2. 总结sudo配置文件格式,总结相关示例。
sudo特性:
sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系
管理员
sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服
务器
sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得
了一张存活期为5分钟的票
sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它
所存放的位置默认是在/etc/sudoers,属性必须为0440
sudo 组成:
包:sudo
配置文件:/etc/sudo.conf
授权规则配置文件:
/etc/sudoers
/etc/sudoers.d
安全编辑授权规则文件和语法检查工具:
/usr/sbin/visudo
范例:
#检查语法
visudo -c
#检查指定配置文件语法
visudo -f /etc/sudoers.d/test
注:/etc/sudoers.d/下面可以单独写配置。
sudo 命令:
ls -l /usr/bin/sudo
sudo -i -u wang 切换身份功能和 su 相似,但不一样,sudo必须提前授权,而且要输入自已的密码
sudo [-u user] COMMAND
-V 显示版本信息等配置信息
-u user 默认为root
-l,ll 列出用户在主机上可用的和被禁止的命令
-v 再延长密码有效期限5分钟,更新时间戳
-k 清除时间戳(1970-01-01),下次需要重新输密码
-K 与-k类似,还要删除时间戳文件
-b 在后台执行指令
-p 改变询问密码的提示符号
示例:-p "password on %h for user %p: "
sudo 授权规则配置:
配置文件格式说明:/etc/sudoers, /etc/sudoers.d/
配置文件中支持使用通配符 glob
? 任意单一字符
* 匹配任意长度字符
[wxc] 匹配其中一个字符
[!wxc] 除了这三个字符的其它字符
\x 转义
[[alpha]] 字母
配置文件规则有两类
1、别名定义:不是必须的
2、授权规则:必须的
sudoers 授权规则格式:
用户 登入主机=(代表用户) 命令
user host=(runas) command
范例:
Student ALL=(ALL) ALL
%wheel ALL=(ALL) ALL # 组
wang 192.168.1.6,192.168.1.8=(root) /usr/sbin/,!/usr/sbin/useradd
%wheel ALL=(ALL) NOPASSWD: ALL #wheel 组sudo不需要密码
重要范例:
给权限看多个文件,用了通配符*,但是后面跟 空格加别的命名会看到别的命令
wang ALL=(ALL) /bin/cat /var/log/messages*
[root@centos8 ~]#man sudoers
will allow command like:
$ sudo cat /var/log/messages.1
It will also allow:
$ sudo cat /var/log/messages /etc/shadow
解决方法:
wang ALL=(ALL) /bin/cat /var/log/messages* !/bin/cat /var/log/messages* *
不能打开空格后新加的文件,! 是排除的意思。
3. 总结PAM架构及工作原理
PAM 介绍
PAM:Pluggable Authentication Modules,插件式的验证模块,Sun公司于1995 年开发的一种与认证
相关的通用框架机制。PAM 只关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的
API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配
置不同的认证方式而无需更改服务程序一种认证框架,自身不做认证
PAM架构
PAM提供了对所有服务进行认证的中央机制,适用于本地登录,远程登录,如:telnet,rlogin,fsh,ftp,点
对点协议PPP,su等应用程序中,系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略;
应用程序开发者通过在服务程序中使用PAM API(pam_xxxx( ))来实现对认证方法的调用;而PAM服务模
块的开发者则利用PAM SPI来编写模块(主要调用函数pam_sm_xxxx( )供PAM接口库调用,将不同的认
证机制加入到系统中;PAM接口库(libpam)则读取配置文件,将应用程序和相应的PAM服务模块联系
起来
PAM工作原理
PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so
PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证
文件(位于/lib64/security下)进行安全认
PAM认证过程示例:
1.使用者执行/usr/bin/passwd 程序,并输入密码
2.passwd开始调用PAM模块,PAM模块会搜寻passwd程序的PAM相关设置文件,这个设置文件一般是
在/etc/pam.d/里边的与程序同名的文件,即PAM会搜寻/etc/pam.d/passwd此设置文件
3.经由/etc/pam.d/passwd设定文件的数据,取用PAM所提供的相关模块来进行验证
4.将验证结果回传给passwd这个程序,而passwd这个程序会根据PAM回传的结果决定下一个动作(重新输入
密码或者通过验证)
4. 总结PAM配置文件格式,总结相关示例, nologin.so, limits,等模块的使用。
PAM相关文件:
包名: pam
模块文件目录:/lib64/security/*.so
特定模块相关的设置文件:/etc/security/
应用程序调用PAM模块的配置文件
主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置
为每种应用模块提供一个专用的配置文件:/etc/pam.d/APP_NAME
注意:如/etc/pam.d存在,/etc/pam.conf将失效
查看程序是否支持PAM
[root@centos8 ~]#ldd `which sshd` |grep libpam
libpam.so.0 => /lib64/libpam.so.0 (0x00007fea8e70d000)
[root@centos8 ~]#ldd `which passwd` |grep pam
libpam.so.0 => /lib64/libpam.so.0 (0x00007f045b805000)
libpam_misc.so.0 => /lib64/libpam_misc.so.0 (0x00007f045b601000)
#不支持PAM
[root@centos6 ~]#ldd /usr/sbin/httpd |grep pam
[root@centos6 ~]#
PAM 配置文件格式说明:
通用配置文件/etc/pam.conf格式,此格式不使用
application type control module-path arguments
专用配置文件/etc/pam.d/ 格式
type control module-path arguments
application:指服务名,如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确
配置的其它服务
type:指模块类型,即功能
control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现
module-path: 用来指明本模块对应的程序文件的路径名
Arguments: 用来传递给该模块的参数
模块类型(module-type)
Auth 账号的认证和授权
Account 帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务
的访问时间,限制用户的位置(例如:root用户只能从控制台登录)
Password 用户修改密码时密码复杂度检查机制等功能
Session 用户会话期间的控制,如:最多打开的文件数,最多的进程数等
-type 表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有
用
Control:
required :一票否决,表示本模块必须返回成功才能通过认证,但是如果该模块返回失败,失败结
果也不会立即通知用户,而是要等到同一type中的所有模块全部执行完毕,再将失败结果返回给应
用程序,即为必要条件
requisite :一票否决,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执
行同一type内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件
sufficient :一票通过,表明本模块返回成功则通过身份认证的要求,不必再执行同一type内的其
它模块,但如果本模块返回失败可忽略,即为充分条件,优先于前面的required和requisite
optional :表明本模块是可选的,它的成功与否不会对身份认证起关键作用,其返回值一般被忽略
include: 调用其他的配置文件中定义的配置信息
module-path:
模块文件所在绝对路径:
模块文件所在相对路径:/lib64/security目录下的模块可使用相对路径,如:pam_shells.so、
pam_limits.so
有些模块有自已的专有配置文件,在/etc/security/*.conf目 录下
Arguments
debug :该模块应当用syslog( )将调试信息写入到系统日志文件中
no_warn :表明该模块不应把警告信息发送给应用程序
use_first_pass :该模块不能提示用户输入密码,只能从前一个模块得到输入密码
try_first_pass :该模块首先用前一个模块从用户得到密码,如果该密码验证不通过,再提示用户
输入新密码
use_mapped_pass 该模块不能提示用户输入密码,而是使用映射过的密码
expose_account 允许该模块显示用户的帐号名等信息,一般只能在安全的环境下使用,因为泄漏
用户名会对安全造成一定程度的威胁
注意:修改PAM配置文件将马上生效
建议:编辑pam规则时,保持至少打开一个root会话,以防止root身份验证错误
常用PAM模块
pam_nologin.so 模块
功能:如果/etc/nologin文件存在,将导致非root用户不能登陆,当该用户登陆时,会显示/etc/nologin文
件内容,并拒绝登陆
范例: 默认此模块可以对ssh等登录有效,但不影响su登录
[root@centos8 pam.d]#grep pam_nologin *
login:account required pam_nologin.so
remote:account required pam_nologin.so
sshd:account required pam_nologin.so
pam_limits.so 模块
功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用
内存空间
修改限制的实现方式:
(1) ulimit命令
ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。
ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。
使用ulimit进行修改,立即生效。
ulimit只影响shell进程及其子进程,用户登出后失效。
可以在profile中加入ulimit的设置,变相的做到永久生效。
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-u size:最大用户进程数
-v size:设置虚拟内存的最大值.单位:kbytes
unlimited 是一个特殊值,用于表示不限制
(2) 配置文件:
pam_limits的设定值是基于 per-process 的
/etc/security/limits.conf
/etc/security/limits.d/*.conf
配置文件格式:
#每行一个定义
<domain> <type> <item> <value>
应用于哪些对象
Username 单个用户
@group 组内所有用户
* 所有用户
% 仅用于限制 maxlogins limit , 可以使用 %group 语法. 只用 % 相当于 * 对所有用户
maxsyslogins limit限制. %group 表示限制此组中的所有用户总的最大登录数
限制的类型
Soft 软限制,普通用户自己可以修改
Hard 硬限制,由root用户设定,且通过kernel强制生效
- 二者同时限定
限制的资源
nofile 所能够同时打开的最大文件数量,默认为1024
nproc 所能够同时运行的进程的最大数量,默认为1024
指定具体值
注意:systemd 的service 资源设置需要单独配置
# /etc/security/limits.conf
#
#This file sets the resource limits for the users logged in via PAM.
#It does not affect resource limits of the system services.
在Centos7以上版本中,使用Systemd替代了之前的SysV。/etc/security/limits.conf文件的配置作
用域缩小了。/etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对
systemd的service的资源限制不生效。因此登录用户的限制,通过/etc/security/limits.conf
与/etc/security/limits.d下的文件设置即可。
对于systemd service的资源设置,则需修改全局配置,全局配置文件放在/etc/systemd/system.conf
和/etc/systemd/user.conf,同时也会加载两个对应目录中的所有.conf文
件/etc/systemd/system.conf.d/*.conf和/etc/systemd/user.conf.d/*.conf。system.conf
是系统实例使用的,user.conf是用户实例使用的。
vim /etc/systemd/system.conf
DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535
或者针对指定的service添加下面行
[Service]
LimitNOFILE=100000
LimitNPROC=65535
系统的各种资源的默认值:
ulimit -a
查看指定进程的资源限制
#cat /proc/PID/limits
[root@wang-liyun-pc ~]# cat /proc/`pidof nginx | xargs -n1 | sort -n|head
-1`/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
生产案例
vim /etc/security/limits.conf
* - core unlimited
* - nproc 1000000
* - nofile 1000000
* - memlock 32000
* - msgqueue 8192000
5. 实现私有时间服务器
时间同步服务
时间同步服务
多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协
议,日志,集群等, 利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步。
目前NTP协议属于运维基础架构中必备的基本服务之一
时间同步软件实现:
ntp
chrony
ntp:
将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以
达到1-50ms
项目官网:http://www.ntp.org
chrony:
实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表
和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机
提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算
机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。
通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬
件时间戳或硬件参考时钟,可实现亚微秒的精度
chrony 文件组成
包:chrony
两个主要程序:chronyd和chronyc
chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算
机增减时间的比率,并对此进行补偿
chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计
算机上工作,也可在一台不同的远程计算机上工作
服务unit 文件: /usr/lib/systemd/system/chronyd.service
监听端口: 服务端: 123/udp,客户端: 323/udp
配置文件: /etc/chrony.conf
NTP 客户端工具
chronyc 可以运行在交互式和非交互式两种方式,支持以下子命令
help 命令可以查看更多chronyc的交互命令
accheck 检查是否对特定主机可访问当前服务器
activity 显示有多少NTP源在线/离线
sources [-v] 显示当前时间源的同步信息
sourcestats [-v]显示当前时间源的同步统计信息
add server 手动添加一台新的NTP服务器
clients 报告已访问本服务器的客户端列表
delete 手动移除NTP服务器或对等服务器
settime 手动设置守护进程时间
tracking 显示系统时间信息
ntpdate 时间同步命令,CentOS8版本此命令已淘汰
system-config-date:图形化配置chrony服务的工具
实现私有时间服务器
服务器端配置
[root@centos8 ~]#hostname -I
10.0.0.8
[root@centos8 ~]#yum -y install chrony
[root@centos8 ~]#vim /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
#allow 192.168.0.0/16
allow 0.0.0.0/0 #加此行,指定允许同步的网段
# Serve time even if not synchronized to a time source.
local stratum 10 #删除此行注释,当互联网无法连接,仍然可以为客户端提供时间同步服务
[root@centos8 ~]#systemctl restart chronyd
#服务启动后会打开端口123/udp
[root@centos8 ~]#ss -ntlu
#客户端配置
[root@centos7 ~]#vim /etc/chrony.conf
server 10.0.0.8 iburst
server ntp.xxxx.com iburst 内网的域名。
[root@centos7 ~]#systemctl restart chronyd.service
#确认同步成功
[root@centos7 ~]#chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 10.0.0.8 3 6 77 29 -229us[-1154us] +/- 17ms
6. 总结DNS域名三级结构
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互
映射的一个分布式数据库,能够使人更方便地访问互联网,基于C/S架构,服务器端:53/udp, 53/tcp
根域: 全球根服务器节点只有13个,10个在美国,1个荷兰,1个瑞典,1个日本
一级域名:Top Level Domain: tld
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
com, edu, mil, gov, net, org, int,arpa
二级域名:magedu.com
三级域名:study.magedu.com
最多可达到127级域名
7. 总结DNS服务工作原理,涉及递归和迭代查询原理
递归查询:
是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器
本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用
户。
一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服
务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交
给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询
递归算法:客户端向LocalDNS发起域名查询-->localDNS不知道域名对应的IP-->但它知道谁知道->他
代为帮客户端去查找-->最后再返回最终结果
迭代查询:
是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的
地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回
权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,
直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次
查询
迭代算法︰客户端向LocalDNS发起域名查询-->localDNS不知道域名对应的IP-->但它知道谁知道并
推荐客户端应该找谁-->客户端自己去找它
DNS缓存:
DNS缓存是将解析数据存储在靠近发起请求的客户端的位置,也可以说DNS数据是可以缓存在任意
位置,最终目的是以此减少递归查询过程,可以更快的让用户获得请求结果。
8. 实现私有DNS, 供本地网络主机作DNS递归查询。
件
9. 总结DNS服务器类型,解析答案,正反解析域,资源记录定义。
10. 实现DNS主从同步
主节点:
安装dns软件 bind
步骤:
1,修改主配置文件:
vim /etc/named.conf
options {
## 注释掉开启所有网卡的53端口。
// listen-on port 53 { 127.0.0.1; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
## 注释掉允许所有请求 ,可以指定网段 { 192.168.10.0/24 ;};
// allow-query { any; };
## 安全加固只允许从节点获取域的数据。
allow-transfer { 192.168.44.18; };
/*
2,增加域的数据zone文件, 习惯域名为文件名称
[root@centos7 named]# pwd
/var/named
[root@centos7 named]# ll
total 20
drwxrwx--- 2 named named 23 Oct 29 22:07 data
drwxrwx--- 2 named named 60 Oct 30 23:37 dynamic
-rw-r----- 1 root named 587 Oct 30 23:20 magedu.org.zone
-rw-r----- 1 root named 2253 Apr 5 2018 named.ca
-rw-r----- 1 root named 152 Dec 15 2009 named.empty
-rw-r----- 1 root named 152 Jun 21 2007 named.localhost
-rw-r----- 1 root named 168 Dec 15 2009 named.loopback
drwxrwx--- 2 named named 6 Oct 16 21:26 slaves
[root@centos7 named]# cat magedu.org.zone
$TTL 1D
@ IN SOA master admin.magedeu.org #有空格(
0 ; serial #数据库序号 增加后立马推送给salve节点
1D ; refresh #salve 同步时间
1H ; retry #salve同步失败后重试时间
1W ; expire #不能和主同步salve节点多久就不能提供服务时间
3H ) ; minimum #解析失败后缓存时间。例如:wwwwwww.hhhxx.com 解析失败后3h之内直接返回解析失败,从而减小资源消耗。
NS master
NS salve
master A 192.168.44.8
salve A 192.168.44.18
www A 192.168.44.8
golang A 192.168.44.8
##需添加 主节点和主机名称的ip地址
3,修改zone文件/etc/named.rfc1912.zones
[root@centos7 named]# cat /etc/named.rfc1912.zones
。。。。。。。。。。。。。。。。。。省略,。。。。。。。。。。。。。。。
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "magedu.org" IN {
type master;
file "magedu.org.zone"; 默认zone文件:/var/named
};
4,检查配置和zone文件重新加载配置
named-checkconf
[root@centos7 named]# named-checkconf
[root@centos7 named]# named-checkzone magedu.org /var/named/magedu.org.zone
zone magedu.org/IN: loaded serial 10
OK
[root@centos7 named]# rndc reload
server reload successful
[root@centos7 named]#
从节点:
安装dns软件 bind
步骤:
1,修改主配置文件:
[root@rocky-8 named]# cat /etc/named.conf
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
options {
// listen-on port 53 { 127.0.0.1; };
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 { localhost; };
## 安全加固不允许获取域的数据。
allow-transfer { none ;};
/*
- 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.
2,修改zone文件/etc/named.rfc1912.zones
。。。。。。。。。。。。。。。。。
zone "magedu.org" IN {
type slave;
masters {192.168.44.8;};
file "slaves/magedu.org.zone.salve"; ##同步文件位置:
};
3,检查配置和zone文件重新加载配置
named-checkconf
[root@centos7 named]# named-checkconf
[root@centos7 named]# rndc reload
server reload successful
[root@centos7 named]#
同步文件位置:/var/named/slaves
[root@rocky-8 named]# cd slaves/
[root@rocky-8 slaves]#
[root@rocky-8 slaves]#
[root@rocky-8 slaves]# ll
总用量 4
-rw-r--r-- 1 named named 376 10月 30 23:52 magedu.org.zone.salve
[root@rocky-8 slaves]# pwd
/var/named/slaves
[root@rocky-8 slaves]#
测试:
root@ubuntu2004:~# dig www.magedu.org @192.168.44.18
; <<>> DiG 9.16.1-Ubuntu <<>> www.magedu.org @192.168.44.18
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11777
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: a416240a743b479c2827657d653fde8e5ee908c0d04db5ea (good)
;; QUESTION SECTION:
;www.magedu.org. IN A
;; ANSWER SECTION:
www.magedu.org. 86400 IN A 192.168.44.8
;; AUTHORITY SECTION:
magedu.org. 86400 IN NS salve.magedu.org.
magedu.org. 86400 IN NS master.magedu.org.
;; ADDITIONAL SECTION:
master.magedu.org. 86400 IN A 192.168.44.8
salve.magedu.org. 86400 IN A 192.168.44.18
;; Query time: 40 msec
;; SERVER: 192.168.44.18#53(192.168.44.18)
;; WHEN: Tue Oct 31 00:49:18 CST 2023
;; MSG SIZE rcvd: 160