HCRM博客

如何有效管理和配置CentOS 7中的SELinux?

CentOS 7中的SELinux(SecurityEnhanced Linux)是一个重要的安全模块,它通过强制访问控制(Mandatory Access Control, MAC)来增强系统的安全性,以下是对SELinux的详细介绍、配置方法及常见问题解答:

SELinux简介

SELinux是一种集成在Linux内核中的安全模块,提供了更细粒度的安全策略,与传统的自主访问控制(Discretionary Access Control, DAC)不同,SELinux通过策略文件定义了每个进程和文件的安全上下文(Context),从而限制了进程对资源的访问权限,SELinux有三种主要的工作模式:

如何有效管理和配置CentOS 7中的SELinux?-图1
(图片来源网络,侵权删除)

1、Enforcing:强制执行模式,所有违反策略的操作都会被阻止并记录日志。

2、Permissive:宽容模式,违规操作会被记录但不会阻止。

3、Disabled:禁用模式,不加载任何SELinux策略。

SELinux配置文件

CentOS 7系统中的SELinux全局配置文件为/etc/sysconfig/selinux如下:

This file controls the state of SELinux on the system.
SELINUX= can take one of these three values:
enforcing SELinux security policy is enforced.
permissive SELinux prints warnings instead of enforcing.
disabled No SELinux policy is loaded.
SELINUX=enforcing
SELINUXTYPE= can take one of these two values:
targeted Targeted processes are protected,
mls Multi Level Security protection.
SELINUXTYPE=targeted

SELINUX:设置SELinux的总开关,有效值可以是enforcingpermissivedisabled

SELINUXTYPE:设置SELinux的型,有效值可以是targetedmls

如何有效管理和配置CentOS 7中的SELinux?-图2
(图片来源网络,侵权删除)

SELinux排错

不管SELinux策略是允许还是拒绝资源的访问请求行为,都会记录日志,即AVC(Access Vector Cache),所有SELinux拒绝的消息都会被记录进日志,根据系统中安装运行的服务进程不同,拒绝日志消息会被记录到不同的文件中,常见的日志文件包括:

/var/log/audit/audit.log:当auditd服务开启时。

/var/log/messages:当auditd服务关闭且rsyslogd服务开启时。

/var/log/audit/audit.log/var/log/messages:当auditd与rsyslogd同时开启时。

对于大多数生产环境中的服务器,建议安装setroubleshoot相关的软件包,这样可以将原本生涩的AVC拒绝日志转换为可读性比较高的setroubleshoot日志,查看日志可以使用以下命令:

grep setroubleshoot /var/log/messages
grep denied /var/log/audit/audit.log

修改安全上下文

有多种方式可以修改与管理SELinux安全上下文,如chconsemanagefcontext以及restorecon命令。

1、chcon命令:用于修改文件或目录的SELinux安全上下文。

   chcon [选项] [u SELinux用户] [r 角色] [l 范围] [t 类型] 文件

示例:

   cp preserve=all /etc/passwd /root/
   ls Z /root/passwd
   chcon t admin_home_t /root/passwd
   ls Z /root/passwd

2、semanage命令:用于管理SELinux的策略规则。

   semanage fcontext a t httpd_sys_content_t '/var/www/html(/.*)?'

3、fcontext命令:用于生成SELinux策略文件。

   fcontext a t my_custom_type '/my/custom/path(/.*)?'

4、restorecon命令:用于恢复文件或目录的默认安全上下文。

   restorecon Rv /path/to/directory

常见问题解答(FAQs)

1、如何临时关闭SELinux?

使用setenforce命令可以临时改变SELinux的模式,要设置为宽容模式,可以使用以下命令:

   sudo setenforce 0

要设置为强制模式,可以使用:

   sudo setenforce 1

2、如何永久关闭SELinux?

编辑/etc/sysconfig/selinux文件,将SELINUX=enforcing改为SELINUX=disabled,然后重启系统。

   sudo vi /etc/sysconfig/selinux

修改后保存并退出编辑器,然后重启系统:

   sudo reboot

SELinux是一个强大的安全工具,能够显著提高系统的安全性,它也可能导致一些兼容性问题,特别是在安装某些软件或服务时,了解如何正确配置和管理SELinux是非常重要的。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/21571.html

分享:
扫描分享到社交APP
上一篇
下一篇