DNS
目录
- rocky和grub的发动和作业流程
- 总结内核规划门户及特色
- systemd服务装备文件
- openssh服务
- 对称加密和非对称加密
- 域名体系DNS
- 完成主从DNS服务器
rocky和grub的发动和作业流程
rocky发动流程
1. BIOS/UEFI 发动:履行BIOS或UEFI程序,进行硬件自检和初始化,检测体系内存和外设
2. 加载引导加载程序(GRUB):担任加载操作体系内核和初始 RAM 磁盘
3.加载 GRUB 阶段:从 /boot 分区加载,读取装备文件并显现引导菜单
4. 用户挑选引导项:用户能够挑选要发动的操作体系或内核版别,假如没有用户干涉,GRUB 将运用默许设置主动发动
5. 内核初始化:内核开端初始化硬件设备和体系资源,加载必要的模块和驱动程序
6. 发动systemd体系:担任办理体系服务和进程
7. 发动体系服务:Systemd 读取 /etc/systemd/system 和 /usr/lib/systemd/system 目录中的单元文件,发动必要的服务和进程
8. 登录提示:体系进入多用户方法,显现登录提示,用户能够登录体系
grub作业流程
1. MBR 或 EFI 体系分区加载
2. 加载 GRUB 阶段:担任读取装备文件(/boot/grub2/grub.cfg) 并显现引导菜单
3. 读取装备文件:GRUB 装备文件(/boot/grub2/grub.cfg) 包括了一切引导项的界说和装备,每个引导项界说了一个操作体系或内核版别的发动选项
4. 显现引导菜单
5. 加载内核和 initramfs:根据用户挑选的引导项,GRUB 加载相应的内核和 initramfs
6. 传递操控给内核:GRUB 将操控传递给加载的内核,内核开端初始化体系
总结内核规划门户及特色
单内核
特色:
* 集成度高:一切的操作体系服务和驱动程序都运转在同一个地址空间内,与内核紧密结合。
* 功用优越:因为一切服务都在同一个地址空间内运转,削减了上下文切换和通讯开支,因而功用一般优于微内核。
* 简略直接:规划和完成相对简略,开发和调试也较为简略。
* 扩展性差:增加新功用或驱动程序需求从头编译整个内核,增加了保护难度。
* 安稳性问题:一个服务或驱动程序的过错可能会影响整个体系的安稳性。
微内核
特色:
* 模块化规划:内核只供给最基本的服务,如进程办理、内存办理和中止处理。其他服务(如文件体系、网络协议栈等)运转在用户空间中。
* 高可靠性:因为大部分服务运转在用户空间,一个服务的毛病不会影响整个体系的安稳性。
* 灵敏性高:新增或修正服务和驱动程序不需求从头编译内核,只需从头发动相应的用户空间服务。
* 功用较低:因为服务之间需求经过音讯传递进行通讯,增加了上下文切换和通讯开支,功用一般低于单内核。
* 杂乱性高:规划和完成较为杂乱,开发和调试也更为困难。
混合内核
* 结合优势:结合了单内核和微内核的长处,既坚持了高功用,又进步了模块化和可靠性。
* 灵敏规划:能够根据需求将某些服务放在内核空间,而将其他服务放在用户空间。
* 杂乱性适中:规划和完成比微内核简略,但比单内核杂乱。
* 功用较好:经过优化服务的方位和通讯机制,能够在功用和可靠性之间取得平衡。
systemd服务装备文件
systemd 运用 .service 文件来装备和办理服务
* /etc/systemd/system/:用户自界说的服务装备文件。
* /lib/systemd/system/:体系装置的服务装备文件。
* /usr/lib/systemd/system/:体系装置的服务装备文件
常用指令
发动服务:systemctl start xxx
中止服务:systemctl stop xxx
重启服务:systemctl restart xxx
从头加载装备:systemctl reload xxx
查看服务状况:systemctl status xxx
启用服务(开机自发动):systemctl enable xxx
禁用服务(撤销开机自发动):systemctl disable xxx
openssh服务
openssh服务安全加固
[root@localhost ~]# vi /etc/ssh/sshd_config
#制止 root 登录
PermitRootLogin no
#禁用暗码认证
PasswordAuthentication no
#运用公钥认证
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#约束登录用户
AllowUsers user1 user2
#禁用空暗码登录
PermitEmptyPasswords no
#约束最大衔接数
MaxAuthTries 3
MaxSessions 10
#更改 SSH 端口
Port 2222
#启用日志记载
SyslogFacility AUTH
LogLevel INFO
#禁用主机名解析
UseDNS no
#禁用 TCP Wrappers
UsePAM yes
UsePrivilegeSeparation sandbox
OpenSSH 免密认证原理
OpenSSH 的免密认证根据公钥加密技能。客户端生成一对公私钥,将公钥发送到服务器,服务器将公钥存储在用户的 ~/.ssh/authorized_keys 文件中。当客户端测验衔接时,服务器会运用存储的公钥验证客户端的身份,而无需输入暗码。
完成进程
1.生成密钥对 在客户端生成密钥对
ssh-keygen -t rsa -b 4096
会生成两个文件:
~/.ssh/id_rsa:私钥文件
~/.ssh/id_rsa.pub:公钥文件
2.将公钥复制到服务器 运用 ssh-copy-id 指令将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
3.装备服务器 保证服务器的 /etc/ssh/sshd_config 文件中启用了公钥认证
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
4.重启 SSH 服务 重启 SSH 服务以运用装备更改
systemctl restart sshd
5.测验免密登录 从客户端测验衔接服务器
ssh user@server
对称加密和非对称加密
对称加密的概念:
对称加密运用相同的密钥进行加密和解密。这意味着发送方和接收方有必要同享同一个密钥。对称加密算法一般具有较高的功率和速度,适用于很多数据的加密。
特色
- 速度快:对称加密算法一般比非对称加密算法更快。
- 密钥办理:需求安全地同享密钥,密钥办理较为杂乱。
- 合适很多数据:适用于需求高效加密很多数据的场景。
常见算法
AES:
密钥长度:128位、192位、256位
块巨细:128位
特色:广泛用于数据保护和传输,是现在最常用的对称加密算法。
DES:
密钥长度:56位
块巨细:64位
特色:已不再被认为是安全的,但仍然在一些旧体系中运用。
3DES:
密钥长度:112位或168位
块巨细:64位
特色:经过三次 DES 运算进步安全性,但速度较慢。
RC4:
密钥长度:可变(40位到2048位)
特色:流加密算法,从前广泛用于 SSL/TLS,但已不再被认为是安全的。
Blowfish:
密钥长度:可变(32位到448位)
块巨细:64位
特色:速度快,适用于多种运用场景。
非对称加密的概念:
非对称加密运用一对密钥:公钥和私钥。公钥用于加密,私钥用于解密。公钥能够揭露,而私钥有必要保密。非对称加密算法一般用于密钥交流、数字签名和身份验证。
特色
- 安全性高:密钥办理相对简略,因为公钥能够揭露。
- 速度较慢:非对称加密算法一般比对称加密算法慢。
- 合适少数数据:适用于需求高度安全性的场景,如密钥交流和数字签名。
常见算法
RSA:
密钥长度:一般为1024位、2048位、4096位
特色:广泛用于密钥交流和数字签名,是最常用的非对称加密算法之一。
DSA:
密钥长度:一般为1024位、2048位
特色:专门用于数字签名,不用于加密数据。
ECDSA:
密钥长度:一般为256位、384位、521位
特色:根据椭圆曲线暗码学,供给相同安全性的密钥长度较短,核算功率更高。
ECC:
密钥长度:一般为256位、384位、521位
特色:供给更高的安全性和核算功率,适用于资源受限的设备。
ElGamal:
密钥长度:可变
特色:用于加密和数字签名,但不如 RSA 和 ECC 遍及。
运用场景
对称加密:
文件加密:很多数据的加密和解密。
网络通讯:如 SSL/TLS 协议中的数据传输。
数据库加密:保护敏感数据。
非对称加密:
密钥交流:如 Diffie-Hellman 密钥交流。
数字签名:验证数据的完好性和来历。
身份验证:如 PKI中的证书办理。
域名体系DNS
首要简略介绍一下什么是DNS
因为当时TCP/IP网络中的设备之间进行通讯,是运用和依靠于IP地址完成的,而数字方法的IP地址是很难回忆的想要记住每个设备的IP地址基本是不行能的。所以能够运用域名来作为网络设备的称号。例如:www.baidu.com。可是核算机无法解析这个称号,因而咱们需求运用DNS即称号解析服务,把称号解析为IP地址,当然也能够反向操作,把IP地址转换为域名。除此之外还有一个重要功用,运用称号解析服务能够完成主机和IP的解耦,即:当主机IP变化时,只需求修正称号服务即可,用户仍能够经过原有的称号进行拜访而不受影响。
DNS作业流程图
DNS作业原理
- 用户恳求:用户在浏览器中输入 www.magedu.com。
- 递归解析器:用户的设备联络递归解析器。
- 根域名服务器(根域名):递归解析器查询根域名服务器,获取 .com 域名服务器的信息。
- 尖端域名服务器(尖端域名):递归解析器查询 .com 域名服务器,获取 magedu.com 的威望域名服务器的信息。
- 威望域名服务器(二级域名):递归解析器查询 magedu.com 的威望域名服务器,获取 www.magedu.com 的 IP 地址(如 6.6.6.6)。
- 回来成果:递归解析器将解析成果回来给用户的设备,浏览器运用该 IP 地址树立衔接并加载网页。
DNS 的架构
根域名服务器:
全球共有 13 组根域名服务器,担任办理尖端域名服务器的信息。
尖端域名服务器(尖端域名):
担任办理特定尖端域名(如 .com、.org、.cn)的信息。
威望域名服务器(二级域名):
担任办理特定域名(如 example.com)的信息,供给终究的 IP 地址解析。
递归解析器:
一般由 ISP 或企业网络供给,担任递归查询并回来终究的解析成果给用户设备。
DNS域名区分
举例:www.baidu.com
- com: 一级域名. 表明这是一个企业域名。同级的还有 “net”(网络供给商), “org”(⾮非盈利安排) 等。
- baidu: 二级域名,指公司名。
- www: 三级域名是在二级域名之下的部分,一般用于进一步细分网站的结构或功用。
- www.example.com 中的 www 是三级域名。
- mail.google.com 中的 mail 是三级域名。
DNS查询类型
递归查询:
界说:
递归查询是由递归解析器(一般称为 DNS 递归解析器或 DNS 缓存服务器)履行的一种查询方法。
DNS服务器在收到用户建议的恳求时,有必要向用户回来一个精确的查询成果。假如DNS服务器本地没
有存储与之对应的信息,则该服务器需求问询其他服务器,并将回来的查询结构提交给用户。
客户端恳求:用户在浏览器中输入 www.example.com,浏览器向递归解析器发送递归查询恳求
递归解析器处理:
查询根域名服务器,获取 .com 域名服务器的信息。
查询 .com 域名服务器,获取 example.com 域名服务器的信息。
查询 example.com 域名服务器,获取 www.example.com 的 IP 地址。
回来成果:递归解析器将终究的 IP 地址回来给客户端。
迭代查询:
界说:
DNS服务器在收到用户建议的恳求时,并不直接回复查询成果,而是告知另一台DNS服务器的
地址,用户再向这台DNS服务器提交恳求,这样顺次重复,直到回来查询成果。
初始恳求:递归解析器向根域名服务器发送迭代查询恳求。
根域名服务器呼应:根域名服务器回来 .com 域名服务器的地址。
查询尖端域名服务器:递归解析器向 .com 域名服务器发送迭代查询恳求。
尖端域名服务器呼应:.com 域名服务器回来 example.com 域名服务器的地址。
查询威望域名服务器:递归解析器向 example.com 域名服务器发送迭代查询恳求。
威望域名服务器呼应:example.com 域名服务器回来 www.example.com 的 IP 地址。
回来成果:递归解析器将终究的 IP 地址回来给客户端。
NDS缓存
DNS缓存是将解析数据存储在接近建议恳求的客户端的方位,也能够说DNS数据是能够缓存在恣意
方位,终究意图是以此削减递归查询进程,能够更快的让用户取得恳求成果。
DNS主从服务器
主服务器:
主服务器是威望 DNS 服务器,担任保护域名的原始记载。
- 存储和办理域名的威望记载。
- 承受来自办理员的更改恳求。
- 将记载同步到从服务器。
从服务器:
从服务器是从主服务器同步记载的辅佐 DNS 服务器。
- 定时从主服务器获取最新的 DNS 记载。
- 在主服务器不行用时,持续供给 DNS 解析服务。
- 减轻主服务器的担负,进步全体体系的功用和可靠性。
解析答案
DNS 解析答案是 DNS 服务器回来给客户端的呼应,包括恳求的域名解析成果。解析答案能够是以下几种方法:
-
A 记载:将域名映射到 IPv4 地址。
示例:www.example.com. 3600 IN A 93.184.216.34 -
AAAA 记载:将域名映射到 IPv6 地址。
示例:www.example.com. 3600 IN AAAA 2606:2800:220:1:248:1893:25c8:1946 -
CNAME 记载:将一个域名映射到另一个域名。
示例:www.example.com. 3600 IN CNAME example.com. -
MX 记载:指定邮件服务器。
示例:example.com. 3600 IN MX 10 mail.example.com. -
NS 记载:指定域名的威望域名服务器。
示例:example.com. 3600 IN NS ns1.example.com. -
PTR 记载:用于反向解析,将 IP 地址映射到域名。
示例:93.184.216.34.in-addr.arpa. 3600 IN PTR www.example.com. -
SRV 记载:用于服务发现,指定服务的方位。
示例:_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sipserver.example.com. -
TXT 记载:用于存储恣意文本信息,常用于验证域名一切权或装备 SPF 记载。
示例:example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
完成主从DNS服务器
DNS软件bind
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
bind相关程序包:
yum list all bind*
bind:服务器
bind-utils: 客户端
bind-libs:相关库,依靠联系主动装置
bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
装备主服务器
[root@localhost ~]# yum install -y bind
[root@localhost ~]# systemctl enable --now named
#修正网卡装备里的dns(测验)
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
#文件收效
[root@localhost ~]# nmcli connection reload
[root@localhost ~]# nmcli connection up ens33
衔接已成功激活(D-Bus 活动途径:/org/freedesktop/NetworkManager/ActiveConnection/3)
#装备已收效
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 127.0.0.1
#成功解析百度
[root@localhost ~]# ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
[root@localhost ~]# vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
[root@localhost named]# named-checkconf #语法查看
[root@localhost named]# rndc reload #文件收效
server reload successful
[root@localhost ~]# vi /etc/named.rfc1912.zones
#完成域名(mqh.org)和数据文件(mqh.org.zone)的相相联系,约好其装备类型(master)
zone "mqh.org" {
type master; #(master代表主服务器)
file "mqh.org.zone";
};
[root@localhost named]# cd /etc/named/
#创立mqh.org.zone文件并增加以下装备信息
[root@localhost named]# cat mqh.org.zone
$TTL 86400
@ IN SOA dns.mqh.org. admin.mqh.com. ( 20241126 3H 10M 1D 1W )
NS dns1
dns1 A 192.168.93.200
www IN A 192.168.93.201
db IN A 192.168.93.100
#因为.zone文件是经过named组来读取的,所以该文件要修正为named组
[root@localhost named]# chgrp named mqh.org.zone
#为了安全,要修正权限
[root@localhost named]# chmod 640 mqh.org.zone
#语法查看
[root@localhost named]# named-checkzone mqh.org /var/named/mqh.org.zone
#文件收效
[root@localhost named]# rndc reload
#验证
#在201主机(客户端)上下载nginx并发动
#在200主机(dns服务器)上curl一下
[root@localhost ~]# curl www.mqh.org
<h1>hello<h1/>
bind的named.conf装备文件详解
options {
// listen-on port 53 { 127.0.0.1; }; #指定dns服务器的地址和端口
listen-on-v6 port 53 { ::1; };
directory "/var/named"; #指定寄存区域文件和其他相关文件的目录(mqh.org.zone就放在这个目录底下)。
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; }; #指定答应查询的客户端(注释掉就代表答应一切主机查询)
.zone装备文件详解
1.有必要包括SOA记载且有必要是榜首行(SOA表明开始授权记载)
2.NS记载(表明谁来作为www.mqh.org的dns服务器)
3.A记载
格局:name [TTL] IN rr_type value
name:域名
TTL:默许的生计时刻(86400单位是秒。即一天)(大局界说后能够省掉)
IN:表明 Internet 类型
rr_type:记载的类型(参阅前面的解析答案)
value:记载的详细值
[root@localhost named]# cat mqh.org.zone
$TTL 86400
#SOA记载
@ IN SOA dns.mqh.org. admin.mqh.com. ( 20241126 3H 10M 1D 1W )
# @表明本机域名,也能够写完好域名(www.mqh.org.)
# dns.mqh.org. 主域名服务器的称号(相当于注释)
# admin.mqh.com. 办理者的邮箱地址
# 20241126 版别号(能够用日期,例:dns服务器IP改变,版别号也有必要更新,效果:数据同步判别根据)
# 3H 从服务器查看主服务器的更新时刻距离
# 10M 从服务器在改写失利后从头测验的时刻距离(10分钟)
# 1W 缓存服务器在没有收到呼应时保存数据的时刻(1周)
@ IN NS dns1
@ IN NS dns2
dns1 A 192.168.93.200
dns2 A 192.168.93.199
#完好域名写法应该是www.mqh.org.(因为现已创立了一个mqh.org.zone,所以mqh.org能够省掉)
#A记载
www IN A 192.168.93.201
db IN A 192.168.93.100
装备从服务器
[root@localhost named]# yum install -y bind
[root@localhost named]# yum install -y bind-utils
[root@localhost named]# systemctl enable --now named
[root@localhost ~]# vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
[root@localhost named]# named-checkconf #语法查看
[root@localhost named]# rndc reload #文件收效
server reload successful
[root@localhost ~]# vi /etc/named.rfc1912.zones
#完成域名(mqh.org)和数据文件(mqh.org.zone)的相相联系,约好其装备类型(slave)
zone "mqh.org" {
type slave; #从服务
masters { 192.168.93.200; }; #声明主服务器地址
file "slaves/mqh.org.slaves.zone";
};
#装备完成后能够看到一下文件,没有就重启服务
[root@localhost named]# ll slaves/
总用量 4
-rw-r--r-- 1 named named 321 11月 27 09:26 mqh.org.slaves.zone
#在主服务器上增加dns2
[root@localhost named]# vi mqh.org.zone
$TTL 86400
@ IN SOA dns.mqh.org. admin.mqh.com. ( 2024112611 3H 10M 1D 1W )
NS dns1
NS dns2
dns1 A 192.168.93.200
dns2 A 192.168.93.201
www IN A 192.168.93.202
db IN A 192.168.93.100
[root@localhost named]# rndc reload
server reload successful