温馨提示×

SELinux与防火墙的关系

小樊
38
2025-11-29 16:42:56
栏目: 智能运维

总体关系

  • SELinux防火墙 分别位于系统安全的不同层级,彼此互补、共同构成纵深防御。
    • 防火墙工作在主机或网络边界,基于规则对网络流量进行允许/拒绝,典型关注 L3–L4(源/目的 IP、端口、协议、连接状态),属于“能不能进来/出去”的第一道防线。
    • SELinux 是内核的 强制访问控制(MAC) 子系统,给进程、文件、端口等资源打上安全上下文,以策略限制“进来后能做什么”,即使进程以 root 运行也受约束,属于“进来后能用哪些资源”的第二道防线。
    • 二者不替代,建议同时启用:防火墙减少攻击面,SELinux 降低被攻陷后的影响范围。

维度对比

维度 SELinux 防火墙
工作层级 内核 LSM 框架,系统调用/资源访问层 主机/网络边界,网络 L3–L4(包过滤、状态检测)
控制对象 进程、文件、套接字、端口等的安全上下文与策略 数据包的源/目的 IP、端口、协议、状态
决策依据 安全上下文 + 策略(如 type enforcement 规则表(如 Netfilter 钩子/规则链)
典型能力 限制进程越权访问、进程间隔离、最小权限 限制端口/协议/来源访问、NAT/端口转发、状态会话管理
是否可相互替代 否(控制面不同) 否(控制面不同)
常用管理 getenforce/setenforce/etc/selinux/configsemanage/restoreconaudit2allow firewalld/iptables、规则持久化与服务管理
日志与排错 /var/log/audit/audit.log(AVC 拒绝) 规则命中日志、连接跟踪状态

协同工作场景

  • 对外服务最小化暴露:防火墙仅放行 80/443(HTTP/HTTPS),其余端口默认关闭;SELinux 再限制 httpd_t 仅能访问 httpd_sys_content_t 等 Web 相关目录与资源,防止被攻破后横向移动。
  • 非默认目录/端口:将网站根目录改为 /home/web 或改用 8080 端口时,需同时完成:
    • 防火墙放行新端口(如 firewall-cmd --add-port=8080/tcp);
    • SELinux 修正目录上下文(如 semanage fcontext -a -t httpd_sys_content_t “/home/web(/.*)?”restorecon -Rv /home/web),或按需开启布尔值(如允许网络访问)。
  • 被攻陷后的“降损”:即便防火墙被绕过或服务被入侵,SELinux 仍可通过 type enforcement 限制进程对敏感文件与系统资源的访问,显著降低破坏范围。

常见误区与建议

  • 只开防火墙、关闭 SELinux:失去进程级最小权限约束,被攻破后风险更大。
  • 只开 SELinux、关闭防火墙:暴露面扩大,攻击更容易触达服务。
  • 以“能跑起来”为目标随意禁用 SELinux:生产环境应保持 Enforcing;遇到拒绝先切 Permissive/var/log/audit/audit.log,用 audit2allow 生成策略模块,再回到 Enforcing
  • 管理工具混用:如 firewalldiptables 不要并行写入规则,避免冲突与规则覆盖。
  • 忽视出站控制:防火墙应同时审视出站规则,防止被控主机外联泄露数据或沦为跳板。

0