第五周作业
1、sudo
sudo即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,不仅减少root用户的登录,同样也提高了安全性。
配置文件格式说明:/etc/sudoers, /etc/sudoers.d/ 配置文件中支持使用通配符 glob
sudoers文件
? 任意单一字符
* 匹配任意长度字符
[wxc] 匹配其中一个字符
[!wxc] 除了这三个字符的其它字符
\x 转义
[[alpha]] 字母
sudoers授权规则格式:
用户 登入主机=(代表用户)命令
user host=(runas) command
如:root ALL=(ALL) ALL
user: 运行命令者的身份 host: 通过哪些主机 (runas):以哪个用户的身份 command: 运行哪些命令
sudoers别名
User和runas: username #uid %group_name %#gid user_alias|runas_alias host: ip或hostname network(/netmask) host_alias command: command name directory sudoedit Cmnd_Alias
sudo四种别名类型:
User_Alias
Runas_Alias
Host_Alias
Cmnd_Alias
别名定义:
Alias_Type NAME1 = item1,item2,item3 : NAME2 = item4, item5
2、PAM
PAM:Pluggable Authentication Modules,插件式的验证模块,PAM 只关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序一种认证框架,自身不做认证 官网: http://www.linux-pam.org/
PAM相关文件
包名: pam 模块文件目录:/lib64/security/*.so 特定模块相关的设置文件:/etc/security/ 应用程序调用PAM模块的配置文件 主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置 为每种应用模块提供一个专用的配置文件:/etc/pam.d/APP_NAME 注意:如/etc/pam.d存在,/etc/pam.conf将失效
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回传的结果决定下一个动作(重新输入
2.1、常用PAM模块
pam_nologin.so 模块
功能:如果/etc/nologin文件存在,将导致非root用户不能登陆,当该用户登陆时,会显示/etc/nologin文 件内容,并拒绝登陆
pam_limits.so 模块
功能:在用户级别实现对其可使用的资源的限制,如:可打开的文件数量、可运行的进程数量、可用内存空空间
修改限制的实现方式:
(1) ulimit命令 ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。 ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。 使用ulimit进行修改,立即生效。 ulimit只影响shell进程及其子进程,用户登出后失效。 可以在profile中加入ulimit的设置,变相的做到永久生效
(2) 配置文件: pam_limits的设定值是基于 per-process 的
/etc/security/limits.conf
/etc/security/limits.d/*.conf
pam_google_authenticator 模块
什么是 MFA ? Multi-Factor Authentication (MFA) 是一种简单有效的最佳安全实践方法,它能够在用户名和密码之 外再额外增加一层安全保护
功能:实现SSH登录的两次身份验证,先验证APP的数字码,再验证root用户的密码,都通过才可以登录
二、chrony搭建私有ntp服务
服务器配置
yum安装
yum -y install chrony
启动服务
systemctl start chronyd
vim编辑im chrony.conf
重启systemctl restart chronyd
chronyc sources -v查看同步情况
客户端
vim编辑im chrony.conf 加入服务器的地址
重启systemctl restart chronyd
关闭防火墙、关闭selinux,selinux关闭后要重启
systemctl stop firewalld
systemctl stop firewalld
chronyc sources -v确认同步是否成功
三、说明CDN原理
1、用户向浏览器输入www.a.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服 务器请求 2、网站的DNS域名解析器设置了CNAME,指向了www.a.tbcdn.com,请求指向了CDN网络中的智能 DNS负载均衡系统 3、智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户; 4、用户向该IP节点(CDN服务器)发出请求 5、由于是第一次访问,CDN服务器会通过Cache内部专用DNS解析得到此域名的原web站点IP,向原 6、站点服务器发起请求,并在CDN服务器上缓存内容 请求结果发给用户
四、搭建智能DNS,实现不同地域客户端解析到不同主机
设置两张网卡
yum install bind bind-utils -y 安装DNS (此处已安装)
复制DNS配置文件并修改名字为magedu.org.zone
cp -p /var/named/named.localhost /var/named/magedu.org.zone
建立两个DNS数据库配置文件模拟北京和上海两个地区
cp -p magedu.org.zone magedu.org.zone.bj
cp -p magedu.org.zone magedu.org.zone.sh
北京配置
上海配置
编辑vim /etc/named.conf文件配置acl规则
view建立,将之前地区网段和数据库连接在一起
关联北京文件cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bj访问北京数据库
关联上海文件cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.sh访问上海数据库
named-checkconf 配置解析检查是否有问题
rndc reload 重启DNS
systemctl stop firewalld 关闭防火墙
使用北京访问,1.1.1.1是之前北京配置地址
使用上海访问,2.2.2.2是之前上海配置地址
五、解释DNS解析流程
-
客户端请求:用户在浏览器或其他网络应用中输入一个域名,例如"zz.com"。
-
本地DNS解析器:操作系统上运行的本地DNS解析器(一般是由本地域名解析缓存或DNS客户端库实现)首先检查本地域名解析缓存中是否已经缓存了该域名的IP地址。如果存在,则直接返回结果给客户端。
-
本地DNS解析器的递归查询:如果本地域名解析缓存中没有记录,本地DNS解析器会发送一个递归查询请求给本地网络环境配置的首选DNS服务器(通常是由ISP提供的),也称为递归解析器。
-
递归解析器的迭代查询:递归解析器接收到请求后,会首先查询根域名服务器,询问它们有关顶级域名服务器(TLD)的地址,例如.com域名的TLD服务器。递归解析器选择一个合适的TLD服务器并进行查询。
-
TLD服务器查询:TLD服务器收到查询请求后,会返回下一级域名服务器的地址,例如example.com域名的权威域名服务器的地址(也称为权威服务器)。
-
权威服务器查询:递归解析器接收到权威域名服务器的地址后,会向该服务器发送查询请求,询问它关于该域名的IP地址记录。
-
权威服务器返回IP地址:权威服务器收到查询请求后,会返回该域名的IP地址记录作为响应。
-
递归解析器返回结果:递归解析器收到权威服务器的响应后,将IP地址记录返回给本地解析器。
-
本地解析器返回结果:本地解析器将获取到的IP地址记录返回给客户端应用程序。
-
客户端应用程序发起连接:客户端应用程序使用获取到的IP地址与服务器建立连接,进行后续的网络通信。
六、iptables 5表5链解释
iptables主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者经该设备转发、路由时,都可以使用iptables进行控制。iptables由五个表table和五个链chain以及一些规则组成
五链:
INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
INPUT, 进内核(包含:filter,mangle) OUTPUT, 出内核(包含:filter,nat,mangle,raw) FORWARD, 转发(包含:filter,mangle) PREROUTING,前置路由检查(包含:nat,mangle,raw) POSTROUTING 后置路由检查(包含:nat,mangle,raw)
五表:
security -->raw-->mangle-->nat-->filter
filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表 nat:network address translation 地址转换规则表 mangle:修改数据标记位规则表 raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度 security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现
优先级由高到低的顺序为:
security -->raw-->mangle-->nat-->filter
三种报文流向:
流入本机:PREROUTING --> INPUT–>用户空间进程 流出本机:用户空间进程 -->OUTPUT–> POSTROUTING 转发:PREROUTING --> FORWARD --> POSTROUTING
七、iptables/firewalld/nftable 实现主机防火墙。5000-6000端口仅192.168.0.0/24网段内的主机访问
使用iptables: iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 5000:6000 -j ACCEPT iptables -A INPUT -p tcp --dport 5000:6000 -j REJECT
使用firewalld: firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port port="5000-6000" protocol="tcp" accept' firewall-cmd --add-rich-rule='rule family="ipv4" port port="5000-6000" protocol="tcp" reject'
使用nftables: nft add rule ip filter input ip saddr 192.168.0.0/24 tcp dport 5000-6000 accept nft add rule ip filter input tcp dport 5000-6000 reject
八、mysql的各发行版有哪些 ?
MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 -->8.0
九、mysql索引的作用
索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键key,索引通过存储引 擎实现
-
优点: 索引可以降低服务需要扫描的数据量,减少了IO次数 索引可以帮助服务器避免排序和使用临时表 索引可以帮助将随机I/O转为顺序 I/O
-
缺点: 占用额外空间,影响插入速度
十、mysql btree索引的原理
B-tree(查询效率时快时慢) 都要从树根去找,树叶中间没有关联,查的数据理论上有次序,但是中间没有任何关系,不知道下一个临近数据位子,记录根只能存16k数据,存放数据记录越少树越高,高IO次数多,效率越低
btree+索引(适用于范围性查找,左前缀逻辑搜索:以什么开头,包含或者以什么结尾不支持,因为排序安装第一个字母来排) 聚簇(集)索引、非聚簇索引:数据和索引是否存储在一起 查询的效率相对稳定的,因为无论查什么数据最终都要到叶子节点,树的高度不会很高、I/O次数少,根节点在内存中
十一、mysql安全加固?
-
更新和升级 MySQL:始终使用最新版本的 MySQL,以确保获得最新的安全修补程序和功能改进。
-
授权管理:严格控制数据库访问权限,使用最小权限原则,仅为用户提供其所需的最低权限,限制对敏感数据和操作的访问。
-
强密码策略:要求用户使用强密码,并定期更换密码。密码应包含大小写字母、数字和特殊字符,并且长度足够长。
-
检查默认账户和密码:删除或禁用默认的 MySQL 系统账户,如 root,以及空密码账户。
-
定期备份和恢复:执行定期的数据库备份,并验证可恢复性。在发生数据丢失或安全事件时,可以快速将数据库恢复到正常状态。
-
审计和日志记录:启用 MySQL 的审计和日志记录功能,包括访问日志、错误日志和查询日志等,以用于监控并追踪潜在的安全问题。
-
防火墙和网络安全:使用防火墙限制对 MySQL 服务器的访问,并确保仅允许来自信任的 IP 地址或子网的连接。
-
加密传输:通过使用 SSL/TLS 加密协议来保护数据库的传输数据,防止数据在传输过程中被窃取或篡改。
-
定期安全审查:进行定期的安全审查和漏洞扫描,及时修复发现的安全漏洞和问题。
-
监控和警报:设置监控系统来实时监视数据库的性能和安全状态,并配置警报以便在异常情况下及时采取行动。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异