50% off 所有套餐限时优惠,起价 $2.48/mo
6 min left
Security & Networking

如何在 CentOS 7 上启用 SELinux | 保护您的 CentOS 服务器

Alex Robbins By Alex Robbins 6 min read Updated May 30, 2023
在 CentOS 上启用 SELinux

   每天都有新的漏洞被曝光,网络犯罪报告也在增加,安全问题已成为重点。提升系统安全有多种方式。如果你使用(或计划使用)CentOS 或 Fedora 服务器,SELinux 是一个理想的起点。SELinux 是一个快速高效的安全协议和应用,帮助你检查和控制用户及其对系统文件和应用的访问权限。在这篇文章中,我会先简介 SELinux,然后展示如何在 CentOS 7 上启用 SELinux。

What is SELinux?

Security-Enhanced Linux(SELinux)是一个安全框架,为 Linux 系统管理员提供对用户系统访问权限的精细控制。它最初由美国国家安全局(NSA)开发,作为对 Linux 内核的一系列补丁和升级,使用 Linux Security Modules(LSM)实现。SELinux 在 2000 年作为开源工具发布,随后在 2003 年并入 Linux 内核主线。

SELinux 如何工作?

SELinux 控制系统中所有文件、进程和应用程序的访问权限。通过一套预定义的规则作为安全策略,SELinux 可以定义安全且有效的访问策略。SELinux 将保护系统并防止未经授权的资源访问尝试。这种方法遵循最小权限原则,即程序用户只被授予访问文件、目录、套接字和其他服务所必需的权限。

When an application or process (called a “subject”) requests to access a file as an object, SELinux uses the Access Vector Cache (AVC) to evaluate the access. This cache stores all the permission caches for subjects and objects, which means the processes and what they’re trying to access. Without any permission caches stored, SELinux wouldn’t be able to make any decisions. In such cases, SELinux simply contacts the security server and asks for information to evaluate the access request. The security server applies the SELinux policy for evaluating the access, then grants or denies the request based on that. You can always check out the message logs (at “/var/log.messages”) to see which requests have been accepted or denied.

SELinux 有哪些模式?

SELinux 允许管理员将其功能设置为以下三种模式之一。每种模式都有不同的安全限制和用途:

Enforcing mode: 这是默认模式,会阻止并记录不符合策略标准的操作。

Permissive mode: 此模式让你能够详细查看和处理日志及事件。它特别有助于测试 SELinux 功能。在此模式下,在强制和宽松操作模式之间切换无需重启系统。 

Disabled mode: 启用此模式后,你可以执行所有操作而不记录日志。切换到此模式需要重启系统。

 

如何在 CentOS 7 中启用 SELinux 

  • 检查 SELinux 状态:

第一步:检查您的 SELinux 开关状态

在尝试启用 SELinux 之前,您应该先检查它是否已被禁用。 

在终端运行以下命令检查设置:

sestatus

输出显示 SELinux 已在您的系统上被禁用。

Disable SELinux

第二步:检查启用 SELinux 的要求

  • 拥有 sudo 权限的用户账户
  • 终端/控制台访问权限
  • 基于 RHEL 的系统,如 CentOS 7
  • 文本编辑器工具 nano

linux-vps Linux 主机服务简化版

想要更好的方式来托管网站和网络应用?正在开发新项目?或者只是不喜欢 Windows?这就是我们提供 Linux VPS 的原因。

获取你的 Linux VPS

  • Starting SELinux :

第 3 步:使用 nano 编辑器打开配置文件

设置 SELinux 服务的状态。然后转到  /etc/selinux/config 文件,然后用 Nano 这样的文本编辑器打开。

sudo nano /etc/selinux/config

 

步骤 4:更改 SELinux 模式

现在,您可以将 SELinux 模式更改为 permissive or enforcing.

你可以在这里将标记的行改为需要的模式。

SELinux Status

 

第5步:保存更改

Then press CTRL + X 点击应用并保存。之后,按 ‘y’, then Enter 确认整个流程

 

第 6 步:重启服务器

现在需要重启系统。请输入下面的命令,然后按 <Enter>:

sudo reboot

步骤 7:重新检查 SELinux 状态

如果您想查看 SELinux 的状态,请输入 ""sestatus”  在命令行中再次运行。

现在,结果确认了你已经在系统中启用了强制模式。

Enable SELinux

如何在 CentOS 7 上禁用 SELinux 

执行以下命令将 SELinux 模式从目标模式临时切换到许可模式:

sudo setenforce 

但要注意,这个改动仅对当前的运行会话有效。

要在 CentOS 7 系统上永久禁用 SELinux,请按照以下步骤操作:

 

Step 1: Set SELinux mode to “disabled”

Open the /etc/selinux/config file, then you should set the SELINUX mode to “disabled”

第 2 步:保存更改并重启

现在保存文件,然后用以下命令重启你的 CentOS 系统:

 sudo shutdown -r now

步骤 3:重新检查 SELinux 状态

系统启动时,通过提供以下内容来确认更改 sestatus command:

 sestatus

如何更改 SELinux 模式 

 

与其完全禁用 SELinux,不如将其改为宽松模式。执行的操作会在日志文件中留下记录。 

现在按照以下步骤将 SELinux 模式从 enforcing to permissive type:

sudo setenforce 0

现在你应该打开 enforcing 模式已启用,请运行下面的命令:

sudo setenforce 1

这些更改仅对当前会话有效。系统重启后会恢复为默认值。要使更改永久生效,你需要用文本编辑器(例如 nano, for example). 

linux-vps Linux 主机服务简化版

想要更好的方式来托管网站和网络应用?正在开发新项目?或者只是不喜欢 Windows?这就是我们提供 Linux VPS 的原因。

获取你的 Linux VPS

保护您的 CentOS 7 服务器,超越 SELinux

现在您已在 CentOS 7 上安装了 SELinux,可以放心您的系统比之前更安全了。当然,没有任何办法能保证系统完全安全。总有更多的工作要做,比如看看这里的项目 Linux VPS 安全防护指南。实际上,即使使用 SELinux,我们也只采用了它最基础的安全功能。除此之外,如果服务器托管商本身不够安全,你设置的任何防护措施都形同虚设。这正是为什么在 Cloudzy,我们维持最高级别的安全防护——包括硬件防火墙、AI 防火墙、DDoS 防护和其他专有技术。享受我们的 CentOS VPS 解决方案 并运行一个真正安全的服务器。

 

Share

博客更新

Keep reading.

MikroTik L2TP VPN 指南的 Cloudzy 标题图像,展示笔记本电脑通过发光的蓝色和金色数字隧道连接到服务器机架,并配有盾牌图标。
Security & Networking

MikroTik L2TP VPN 设置(含 IPsec):RouterOS 指南(2026)

在这个 MikroTik L2TP VPN 设置中,L2TP 处理隧道,IPsec 处理加密和完整性验证。将两者结合使用可以获得原生客户端兼容性,无需第三方工具。

Rexa CyrusRexa Cyrus 9 min read
终端窗口显示 SSH 警告信息,提示远程主机标识已更改。深蓝绿色背景上显示修复指南标题和 Cloudzy 品牌标识。
Security & Networking

警告:远程主机标识已更改及修复方法

SSH 是一种安全网络协议,可在系统之间创建加密隧道。在需要远程访问计算机但无需图形界面的开发者中仍然广泛使用。

Rexa CyrusRexa Cyrus 10 min read
DNS 服务器故障排查指南插图,深色背景上显示警告符号和蓝色服务器,用于 Linux 名称解析错误。
Security & Networking

名称解析临时失败:含义和修复方法?

使用 Linux 时,在尝试访问网站、更新软件包或执行需要网络连接的任务时,可能会遇到名称解析临时失败错误。

Rexa CyrusRexa Cyrus 12 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。