视窗苹果电脑软件设置安全生产力Linux安卓性能配置苹果自定义设备管理iPhone设置 全部

如何在Linux上配置SELinux

已编辑 6 几个月前 通过 ExtremeHow 编辑团队

安全SELinux配置策略命令行执行系统管理员监控最佳实践访问控制

如何在Linux上配置SELinux

翻译更新 6 几个月前

简介

SELinux,全称为Security-Enhanced Linux,是一个集成到内核中的安全架构,提供了一种机制来支持访问控制安全策略。其目标是强制执行操作系统政策,以限制程序能力并保护系统免受潜在漏洞的影响。在基于Linux的系统上配置SELinux可以帮助您实现更安全的环境。本综合指南逐步介绍如何在Linux机器上配置SELinux。

了解SELinux模式

在配置SELinux之前,了解SELinux可以运行的模式是很重要的。这些模式决定了SELinux如何管理操作系统中的访问控制。

检查当前SELinux状态

为了有效地配置SELinux,您需要检查其当前状态。这将帮助您了解SELinux是否处于活动状态以及当前使用的模式。

打开一个终端窗口并输入以下命令来检查状态:

getenforce

您还可以使用以下命令获取更详细的信息:

sestatus

此命令将显示您当前的状态为Enforcing , PermissiveDisabled

更改SELinux模式

您可以临时或永久更改SELinux模式。通常,临时更改模式对测试或故障排除很有用,但永久更改对于在重启后使配置永久化是必要的。

临时更改SELinux模式

要在不重启系统的情况下临时更改模式,可以使用setenforce命令。例如,要切换到强制模式,运行:

sudo setenforce 1

要切换到宽容模式,执行:

sudo setenforce 0

永久更改SELinux模式

要永久性地进行更改,请更新位于/etc/selinux/config的SELinux配置文件。使用文字编辑器打开此文件:

sudo nano /etc/selinux/config

查找以SELINUX=开头的行,并根据您的需要将其值更改为enforcing, permissivedisabled。例如:

SELINUX=enforcing

保存并关闭文件,然后重启系统以使更改生效。

了解SELinux策略类型

SELinux策略定义了SELinux强制执行的安全规则。这些策略控制系统上各种用户和服务的权限。最常用的策略是:

要了解当前使用的策略,请在终端中执行以下命令:

sestatus | grep "Loaded policy name"

安装和管理SELinux包

为了有效管理SELinux,您可能需要安装相关工具和包,它们因发行版而异。以下是一些可能有用的常用包。

对于Debian/Ubuntu-based发行版

使用apt包管理器安装SELinux工具:

sudo apt update sudo apt install policycoreutils selinux-utils setools

对于RHEL/CentOS-based发行版

使用yumdnf包管理器安装SELinux工具:

sudo yum install policycoreutils selinux-policy setools

管理SELinux策略

了解如何为特定服务启用或禁用SELinux策略对于实现所需的安全级别而不破坏服务的预期功能是很重要的。SELinux使用布尔值来为特定功能切换策略。

要列出可用的SELinux布尔值,请运行以下命令:

getsebool -a

配置SELinux布尔值

要临时更改布尔值(直到下次重启):

sudo setsebool httpd_enable_homedirs on

要永久更改布尔值,请使用-P选项,将更改写入磁盘:

sudo setsebool -P httpd_enable_homedirs on

标记带SELinux上下文的文件

SELinux使用上下文(也称为标签)来确定文件和进程的权限。有时,您需要手动设置或更改这些上下文。您可以使用ls -Z命令查看文件的上下文:

ls -Z /var/www/html

如果需要更改文件的上下文,请使用chcon命令。例如,将文件更改为适用于Web服务器的上下文:

sudo chcon -t httpd_sys_content_t /var/www/html/index.html

恢复SELinux上下文

如果文件具有错误的SELinux上下文,您可以使用restorecon命令将其恢复到默认上下文:

sudo restorecon -Rv /var/www/html

该命令将递归恢复指定目录的正确SELinux上下文。

SELinux故障排除

当SELinux处于强制模式时,它有时会阻止合法的操作,特别是在安装自定义应用程序时。故障排除SELinux需要分析日志并了解为何某些操作被拒绝。

检查SELinux日志

SELinux消息记录在/var/log/audit/audit.log或某些系统上的/var/log/messages中。要查看日志,请使用文本编辑器或tail命令:

sudo tail -n 50 /var/log/audit/audit.log

分析被阻止的操作

日志可能复杂且庞大,因此像audit2allow这样的专用工具可以帮助分析它们。此工具将日志条目转换为人类可读的格式,甚至建议允许未批准操作所需的策略。

grep AVC /var/log/audit/audit.log | audit2allow -m custompolicy

上面的命令可以帮助您创建一个允许特定操作的SELinux模块。在允许操作时要小心,因为这可能会降低系统的整体安全性。

总结

在Linux中配置SELinux涉及了解不同的模式、检查状态、改变模式、处理策略和布尔值、标记文件以及恢复上下文。SELinux是一个强大的系统,通过强制执行严格的访问控制显著增强了Linux环境的安全性。正确配置后,它可以防御寻找未经授权访问或破坏的威胁。

确保您不断监视日志并维护更新的策略,以适应新安装的软件和不断变化的系统需求。SELinux开始时可能显得复杂,但随着您对其功能的熟悉,它成为增强Linux安全性不可或缺的工具。

如果你发现文章内容有误, 您可以


评论