ronething's notes
  • 技术笔记集锦 | Technical Notes Collection
  • Flask 处理 JSON 请求数据指南
  • IntelliJ IDEA 安装和使用 Lombok 教程
  • Mac 解决 "Operation not permitted" 权限问题
  • RESTful API 设计指南与最佳实践 | RESTful API Design Guide and Best Practices
  • Resilio Sync 使用教程与配置指南
  • Ubuntu 系统安装和配置字体教程
  • Linux服务器安全:自动封禁SSH暴力破解攻击IP
  • CentOS 修复 GRUB 引导问题
  • Chrome 浏览器强制刷新不使用缓存的方法
  • Cordova iOS 开发环境搭建与应用构建
  • Linux系统安全配置:如何禁用或管理SELinux | Disable SELinux in Linux
  • Python文件操作指南:如何过滤文件名中的非法字符 | Filter Invalid Filename Characters with Python
  • Github Gist 测试与使用笔记
  • Git新手指南:如何初始化本地仓库并推送到远程服务器 | Git Init and Push to Remote
  • 今日快乐记录与心情分享
  • Linux 基础命令大全
  • Java 中的 List 和 Set 集合类型详解
  • macOS Spotlight完全指南 | Ultimate Guide to macOS Spotlight Search
  • Mac 上编译构建 FFmpeg 的详细步骤
  • 使用 Clang 编译链接 FFmpeg 库的方法
  • macOS VSCode终端字体完全指南:解决Powerline特殊字符显示问题 | VS Code Terminal Fonts on Mac
  • Mac 上图片格式转换工具与方法
  • MacPorts 包管理器安装与使用指南
  • MathJax 数学公式渲染测试与用法
  • Memcached 缓存服务器使用教程
  • MySQL 日期函数使用指南
  • Nginx 端口绑定错误解决方案:80端口被占用问题
  • Nginx上传文件大小限制完全指南 | Nginx Upload File Size Limit
  • Python Slice
  • RaiDrive 云存储映射工具使用教程
  • Rclone: A Comprehensive Guide to Cloud Storage Synchronization
  • reStructuredText 标记语言语法指南
  • Telegram Bot Proxy
  • Ubuntu Apache2 端口修改教程:从默认80端口切换至8888
  • Ubuntu 安装 Deepin 版微信客户端指南
  • Ubuntu 安装配置 Oh My Zsh 终端美化
  • YouTube 视频嵌入测试与教程
Powered by GitBook
On this page
  • SELinux是什么及其工作原理
  • SELinux的三种运行模式详解
  • 如何查看当前SELinux状态
  • 使用getenforce命令
  • 使用sestatus获取详细信息
  • 临时关闭SELinux(无需重启)
  • 永久禁用SELinux(需重启系统)
  • 1. 编辑SELinux主配置文件
  • 2. 修改SELINUX配置项
  • 3. 保存文件并重启系统
  • 4. 重启后验证SELinux状态
  • 安全建议与最佳实践
  • 常用SELinux管理命令
  • 故障排除
  • 总结

Was this helpful?

Linux系统安全配置:如何禁用或管理SELinux | Disable SELinux in Linux

全面指南:从理解SELinux到临时关闭与永久禁用的详细步骤,以及适用于CentOS、RHEL和Fedora的最佳实践

SELinux是什么及其工作原理

SELinux (Security-Enhanced Linux) 是一个由美国国家安全局(NSA)开发的Linux内核安全模块,提供了强大的访问控制安全策略机制。它通过在标准Linux自主访问控制(DAC)的基础上增加强制访问控制(MAC)来增强系统安全性。

尽管SELinux能有效提升系统安全防护能力,但在某些情况下可能会导致应用程序或服务无法正常运行,特别是在配置不当时。本指南将介绍如何根据需要管理或禁用SELinux。

SELinux的三种运行模式详解

SELinux可以在以下三种模式下运行:

  1. Enforcing模式 - 强制执行模式

    • SELinux完全激活并强制执行所有安全策略

    • 违反策略的操作将被阻止并记录到日志

    • 这是最安全的运行模式

  2. Permissive模式 - 宽容模式

    • SELinux仅记录违规行为但不阻止任何操作

    • 适用于测试和故障排除,可查看哪些操作会被SELinux阻止

    • 系统日志中会记录详细的AVC (Access Vector Cache) 拒绝信息

  3. Disabled模式 - 完全禁用

    • SELinux完全不工作,不记录也不阻止任何操作

    • 系统仅依靠标准Linux权限控制

    • 安全性显著降低,但兼容性问题最少

如何查看当前SELinux状态

使用getenforce命令

最简单的方法是使用getenforce命令查看当前SELinux状态:

getenforce

使用sestatus获取详细信息

要查看更详细的SELinux状态信息,可以使用:

sestatus

输出示例:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

临时关闭SELinux(无需重启)

如果只需要短时间关闭SELinux进行测试或故障排除,可以使用以下方法(系统重启后会恢复原状):

# 查看当前状态
[root@localhost ~]# getenforce
Enforcing

# 设置为宽容模式
[root@localhost ~]# setenforce 0

# 验证状态已更改
[root@localhost ~]# getenforce
Permissive

重要提示: setenforce 0 将SELinux设置为宽容模式,而非完全禁用。在此模式下,系统仍会记录所有可能的违规行为,但不会阻止它们。

永久禁用SELinux(需重启系统)

要在系统重启后保持SELinux关闭状态,需要修改其配置文件:

1. 编辑SELinux主配置文件

sudo vi /etc/selinux/config

或

sudo vi /etc/sysconfig/selinux

注意:在大多数系统中,/etc/sysconfig/selinux实际是指向/etc/selinux/config的符号链接。

2. 修改SELINUX配置项

找到配置文件中的 SELINUX=enforcing 行,根据需要修改为:

# 设置为宽容模式(记录但不阻止)
SELINUX=permissive

# 或完全禁用
SELINUX=disabled

3. 保存文件并重启系统

sudo reboot

4. 重启后验证SELinux状态

系统重启完成后,验证更改是否生效:

getenforce

应显示 Disabled 或 Permissive(取决于您的设置)。

安全建议与最佳实践

在决定禁用SELinux之前,请考虑以下建议:

  • 避免完全禁用 - 在生产环境中,尽量使用Permissive模式而非完全禁用

  • 学习SELinux规则 - 解决特定应用问题时,考虑创建自定义SELinux策略而非禁用整个系统

  • 使用audit2allow工具 - 可以基于审计日志自动生成SELinux规则

    grep httpd /var/log/audit/audit.log | audit2allow -M myhttpd
    semodule -i myhttpd.pp
  • 谨慎对待应用建议 - 某些应用文档可能建议禁用SELinux,但这往往是因为开发者未针对SELinux进行适配

常用SELinux管理命令

  • sestatus - 显示SELinux的详细状态

  • semanage - 管理SELinux策略和文件上下文

  • setsebool - 修改SELinux布尔值设置

  • restorecon - 恢复文件的SELinux安全上下文

  • chcon - 更改文件的SELinux安全上下文

故障排除

如果在启用SELinux时遇到应用程序问题,可按以下步骤排查:

  1. 设置为Permissive模式: setenforce 0

  2. 检查审计日志: grep denied /var/log/audit/audit.log

  3. 使用audit2allow创建自定义规则

  4. 或为特定服务调整SELinux布尔值: getsebool -a | grep http

总结

虽然禁用SELinux可以解决某些兼容性问题,但会显著降低系统安全性。在大多数情况下,正确配置SELinux策略比完全禁用它更为明智。在生产环境中,应当尽可能学习如何与SELinux共存,而非绕过它。

PreviousCordova iOS 开发环境搭建与应用构建NextPython文件操作指南:如何过滤文件名中的非法字符 | Filter Invalid Filename Characters with Python

Last updated 2 months ago

Was this helpful?