内生安全
服务器、交换机、防火墙
30-50年
存在的必然性:内生安全问题,是系统固有的,不可避免的
突发性和偶然性:漏洞存在随机性,不确定性,他的出现
威胁的不确定性
认知的时空性:安全性随着事件、空间环境变化而变化
狭义和广义分类:
狭义内生安全涉及非主观的副作用、脆弱性或自然失效等非期望功能;
广义内生安全还包括人为植入的隐匿功能(如后门、陷阱等未声明特性)
x86_64
基于不确定性增加系统攻击维度
信息收集:我要渗透一个win7 apache2
随机化配置:定期更换系统参数、通信端口、加密密钥
动态信任:根据用户行为和环境实时调整权限
移动目标防御:主动改变系统攻击面,使得漏洞利用路径难以持续生效
冗余和异构架构
微隔离技术:将系统拆分为功能独立的模块,单一模块受损时自动隔离,保障整体服务连续性。
异构冗余构造:部署不同架构的组件并行运行,通过“裁决机制”比对输出结果,屏蔽单点漏洞影响。
容灾设计:建立异地双活数据中心与多链路通信(如光纤+卫星),确保极端故障下核心功能降级运行。
内生安全能力融合
自我修复和自我学习:系统具备自动检测异常流量并且启动熔断的能力,通过红蓝对抗来进行持续学习
数据全周期防护
采集阶段最小化原则
存储阶段分布式加密
流转过程数字水印
软件管理
软件分类
源码包
包含原始代码(C/C++),需要自己手动安装。
常见格式:.tar.gz、.tar.bz2、.tar.xz
需要最新版本、定制功能或特定编译选项时使用
封装包
特点:已编译为二进制文件,直接安装。
常见格式
RPM包:.rpm后缀;由(Red Hat/CentOS/Fedora manager)红帽(Red Hat)公司写好软件并打包
DEB包:.deb(Debian/Ubuntu)发行
rpm命令
RPM(Red Hat Package Manager)是 Linux 下用于管理 .rpm 格式软件包的基础工具,主要功能包括:
- 安装/卸载软件包
- 查询包信息及文件
- 验证包完整性
- 升级与降级
- 构建 RPM 包
语法
rpm [选项] [子命令] [包名|文件|URL] |
命令
1. 安装与卸载
| 命令 | 说明 | 示例 |
|---|---|---|
-i, --install |
安装 RPM 包 | rpm -ivh package.rpm |
-U, --upgrade |
升级(若未安装则执行安装) | rpm -Uvh new-version.rpm |
-F, --freshen |
仅升级已安装的包 | rpm -Fvh *.rpm |
-e, --erase |
卸载软件包 | rpm -e package-name |
--nodeps |
忽略依赖强制操作 | rpm -ivh --nodeps broken.rpm ⚠️ |
--force |
强制覆盖文件/包 | rpm -Uvh --force package.rpm ⚠️ |
常用组合:
bash
rpm -ivh package.rpm # 安装并显示进度(v: 详细输出, h: 显示进度条) |
2. 查询操作
| 命令 | 说明 | 示例 |
|---|---|---|
-q, --query |
基础查询 | rpm -q package |
-qa |
列出所有已安装包 | `rpm -qa |
-qi |
显示包详细信息 | rpm -qi nginx |
-ql |
列出包安装的文件 | rpm -ql bash |
-qc |
列出配置文件 | rpm -qc postgresql |
-qd |
列出文档文件 | rpm -qd openssl |
-qf <文件路径> |
查询文件属于哪个包 | rpm -qf /bin/ls |
-q --scripts |
查看包安装/卸载脚本 | rpm -q --scripts httpd |
-q --changelog |
查看包更新日志 | rpm -q --changelog kernel |
-qp[ilc] |
查询未安装的 RPM 文件 | rpm -qpl package.rpm |
3. 验证与签名检查
| 命令 | 说明 | 示例 |
|---|---|---|
-V, --verify |
验证包文件是否被修改 | rpm -V httpd |
-K, --checksig |
检查 RPM 签名 | rpm -K package.rpm |
--import <key> |
导入 GPG 公钥 | rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release |
验证输出解读:
bash
S.5....T. c /etc/nginx/nginx.conf |
| 字符 | 含义 | 字符 | 含义 |
|---|---|---|---|
S |
文件大小改变 | M |
权限改变 |
5 |
MD5 校验和改变 | U |
属主改变 |
T |
修改时间改变 | G |
属组改变 |
D |
设备文件改变 | L |
路径变为符号链接 |
? |
不可读文件 |
4. 数据库维护
| 命令 | 说明 | 示例 |
|---|---|---|
--rebuilddb |
重建 RPM 数据库(损坏时修复) | sudo rpm --rebuilddb |
--initdb |
初始化新数据库(无数据库时) | sudo rpm --initdb |
-vv |
调试模式输出详细信息 | rpm -vv -q bash |
rpm -ivh packet.rpm # 安装 |
YUM
核心功能:
- 自动化依赖解决: 这是
yum最大的优势。当你安装一个软件包时,如果它需要其他包(依赖包)才能运行,yum会自动查找、下载并安装这些依赖包,无需用户手动处理。 - 软件仓库管理:
yum从一个或多个配置好的软件仓库中获取软件包及其元数据(信息)。仓库是包含大量 RPM 包和相关信息的服务器或目录。配置文件通常位于/etc/yum.repos.d/目录下,以.repo结尾。 - 查询: 搜索仓库中的软件包,查看软件包信息(描述、版本、大小、依赖等),列出已安装或可用的包。
- 安装: 从仓库下载并安装指定的软件包及其依赖。
- 更新: 将已安装的软件包更新到仓库中可用的最新版本。也可以更新整个系统。
- 卸载: 移除已安装的软件包(默认会尝试移除不再需要的依赖包)。
| 组件 | 路径 | 作用 |
|---|---|---|
| 主配置文件 | /etc/yum.conf |
全局配置(缓存目录、日志等) |
| 仓库配置文件 | /etc/yum.repos.d/*.repo |
定义软件仓库源(URL、GPG 校验等) |
| RPM 数据库 | /var/lib/rpm |
存储已安装软件包及依赖关系 |
| 缓存目录 | /var/cache/yum |
存储下载的元数据和 RPM 包 |
常用命令
1. 查询操作
| 命令 | 说明 | 示例 |
|---|---|---|
yum search <关键词> |
搜索软件包 | yum search nginx |
yum list [选项] |
列出包(installed/available/updates) |
`yum list installed |
yum info <包名> |
显示包详细信息(版本、依赖等) | yum info httpd |
yum provides <文件路径> |
查找哪个包提供指定文件 | yum provides /etc/nginx/nginx.conf |
yum deplist <包名> |
列出包的依赖树 | yum deplist nginx |
2. 安装与更新
| 命令 | 说明 | 示例 |
|---|---|---|
yum install <包名> |
安装包(自动处理依赖) | sudo yum install vim |
yum localinstall <rpm文件> |
安装本地 RPM 文件并解决依赖 | sudo yum localinstall ~/package.rpm |
yum update [包名] |
更新指定包(不指定则更新所有) | sudo yum update kernel |
yum check-update |
检查可更新包(不执行更新) | yum check-update |
3. 卸载与清理
| 命令 | 说明 | 示例 |
|---|---|---|
yum remove <包名> |
卸载包(尝试移除无用依赖) | sudo yum remove telnet |
yum autoremove |
移除未被依赖的孤立包 | sudo yum autoremove |
yum clean all |
清除所有缓存(元数据 + RPM 包) | sudo yum clean all |
4. 仓库与组管理
| 命令 | 说明 | 示例 |
|---|---|---|
yum repolist [all] |
列出启用/所有仓库 | yum repolist enabled |
yum group list |
查看软件包组列表 | yum group list |
yum group install "组名" |
安装整个软件组 | sudo yum groupinstall "Development Tools" |
yum group remove "组名" |
卸载软件组 | sudo yum groupremove "GNOME Desktop" |
5. 高级操作
| 命令 | 说明 | 示例 |
|---|---|---|
yum history |
查看操作历史 | yum history |
yum history undo <ID> |
撤销指定历史操作 | sudo yum history undo 11 |
yum downgrade <包名> |
降级到旧版本 | sudo yum downgrade openssl-1.0.2k |
yum --downloadonly install <包> |
仅下载不安装 | sudo yum install --downloadonly nginx |
yum provides [命令] # 搜索与相关的文件 |
实验:vim的删除与安装
删除
首先查看以安装的vim包
# -q 表示查询,-a 表示所有 |
删除vim
yum remove vim |

查看是否删除
[root@wickt 桌面]# vim |

安装
yum install vim |

