当前位置: 首页 > article >正文

Linux 安全与存储管理指南

1. SELinux 如何保护资源?

SELinux(安全增强型 Linux) 是系统的“超级保安”,通过以下方式保护资源:

  • 强制访问控制(MAC):为每个进程、文件、端口等分配唯一“标签”(上下文),即使黑客突破普通权限,SELinux 也会根据标签限制非法操作。

  • 最小权限原则:默认拒绝所有操作,只有明确允许的规则才能放行。

通俗比喻

  • 普通权限(DAC):你家的门锁,钥匙在你手里,但可能被偷。

  • SELinux(MAC):小区保安,即使小偷拿到钥匙,保安也会检查身份证,阻止陌生人进入。


2. SELinux 的工作模式
模式行为适用场景
Enforcing强制执行所有安全策略,拒绝非法操作。生产环境(安全第一)
Permissive仅记录违规行为,不阻止操作。调试阶段(观察问题)
Disabled完全关闭 SELinux。极端兼容性需求(不推荐)

查看当前模式

getenforce  # 输出:Enforcing、Permissive 或 Disabled  

临时切换模式

sudo setenforce 0  # 设为 Permissive  
sudo setenforce 1  # 设为 Enforcing  

3. DAC 与 MAC 的区别
  • DAC(自主访问控制)

    • 规则:用户自主管理文件权限(如 rwx)。

    • 示例chmod 755 file.sh 设置文件权限。

    • 风险:root 用户权限过大,易被滥用。

  • MAC(强制访问控制)

    • 规则:系统强制定义进程和资源的访问关系。

    • 示例:即使你是 root,SELinux 也可阻止 Apache 访问非授权目录。

核心区别:DAC 是“自愿锁门”,MAC 是“强制安检”。


4. SELinux 文件上下文

上下文(Context):SELinux 为每个文件、目录、进程分配的标签,格式为:

user:role:type:level  
  • 关键字段type(类型),决定访问权限(如 httpd_sys_content_t 表示 Web 内容文件)。

查看文件上下文

ls -Z /var/www/html  # 输出:system_u:object_r:httpd_sys_content_t index.html  

5. 设置默认 SELinux 模式
  1. 编辑配置文件 /etc/selinux/config

    SELINUX=enforcing  # 可选值:enforcing、permissive、disabled  
  2. 重启系统生效。


6. 文件复制/移动时的上下文变化
  • 复制(cp:新文件继承目标目录的默认上下文。

  • 移动(mv:保留原文件的上下文。

修复上下文不匹配

restorecon -Rv /path/to/file  # 恢复默认上下文  

7. 修改 SELinux 上下文
  • 临时修改

    chcon -t httpd_sys_content_t /path/to/file  # 修改类型  
  • 永久修改(需更新策略或使用 semanage):

    semanage fcontext -a -t httpd_sys_content_t "/custom/web(/.*)?"  
    restorecon -Rv /custom/web  

8. SELinux 故障排除服务
  • 日志工具

    • auditd:记录 SELinux 拒绝事件到 /var/log/audit/audit.log

    • sealert:分析日志并给出建议。

使用示例

sealert -a /var/log/audit/audit.log  # 生成可读的报告  

存储分区与挂载

9. 使用分区划分存储的好处
  • 数据隔离:系统崩溃时,避免所有数据丢失。

  • 性能优化:不同分区使用不同文件系统(如 SSD 用 ext4,机械硬盘用 xfs)。

  • 安全控制:为敏感数据单独挂载并设置权限。

  • 多系统支持:在同一磁盘安装多个操作系统。


10. MBR 与 GPT 分区
特性MBRGPT
最大磁盘容量2TB几乎无限制(支持 EB 级)
分区数量4 个主分区(或 3 主 + 1 扩展)128 个主分区(默认)
兼容性兼容旧系统(如 BIOS 启动)需 UEFI 支持
备份机制分区表头尾部备份,更安全

选择建议:新硬件选 GPT,旧硬件或兼容 BIOS 启动选 MBR。


11. parted 的作用与 mklabel 子命令
  • parted:强大的分区工具,支持 GPT/MBR,可调整分区大小。

  • mklabel:创建分区表(即选择 MBR 或 GPT)。

示例:将磁盘 /dev/sda 初始化为 GPT:

sudo parted /dev/sda  
(parted) mklabel gpt  

12. 开机自动挂载文件系统
  1. 编辑 /etc/fstab 文件,添加挂载条目:

    UUID=xxxx-xxxx  /mount/path  ext4  defaults  0 0  
    • 字段解释

      • UUID:磁盘分区的唯一标识(用 blkid 查看)。

      • 挂载点:如 /mnt/data

      • 文件系统类型:如 ext4xfs

      • 挂载选项defaults 包含读写、执行等权限。

      • 备份标记0 表示不备份。

      • 检查顺序0 表示不检查。

  2. 测试配置:

    sudo mount -a  # 挂载所有 fstab 中的条目  

注意:使用 UUID 而非设备名(如 /dev/sda1),避免磁盘顺序变化导致错误。


http://www.kler.cn/a/594841.html

相关文章:

  • 腾讯云大模型知识引擎×DeepSeek:股票分析低代码应用实践
  • let const var 底层区域别,es6还有AO 对象和GO对象吗
  • rust学习笔记17-异常处理
  • Redis 管道(Pipeline)深度解析:原理、场景与实战
  • 多包管理工具
  • 删除菜品接口
  • 软考高级信息系统管理工程师通关100题(21-40)附记忆口诀
  • 支持向量机SVM的MATLAB分类预测实现
  • 华为IPD研发管理体系的3大核心框架解析
  • HOW - 平时如何保持学习和成长?
  • vscode/windsurf/trae无法识别junit的@Test注解解决办法
  • 如何在 C++ 中运行 DeepSeek R1 LLM
  • AES 简介 以及 C# 和 js 实现【加密知多少系列_3】
  • 用PaddleNLP为GPT-2模型制作FineWeb二进制预训练数据集
  • 【总结】常用API架构类型
  • R语言绘图:小提琴图
  • redis的lua脚本
  • python+requests实现的接口自动化测试
  • 剖析塔能科技:能源精准节能进阶核心驱动力
  • HarmonyOS Next~HarmonyOS应用开发工具:DevEco Testing