如何用SE Linux保护Linux服务器

121 阅读4分钟

如今,安全是软件开发、服务器管理和应用开发的一个极其重要的方面。

如果你使用Linux,你很幸运--它有一个称为SE Linux的优秀功能,可以帮助你增加一个额外的安全层。

什么是SE Linux?

SE Linux是由NSA(国家安全局)开发的,为政府相关安全任务服务。

SE Linux是安全增强型Linux的缩写。它为系统管理员提供了更多的控制,以提供对文件和进程的访问。使用SE Linux,管理员可以定义一个上下文,对文件进行标记,并在该上下文中允许它们。

访问权和权限通常是由一个组中的用户继承的。但有一些来源(如网络服务器和进程)需要访问网络端口和内核进程。这些通常是由root或有特殊权限的用户生成的。SE Linux可以帮助你限制谁可以访问这些特殊进程。

如何使用SE Linux

SE Linux在大多数Linux发行版中都是默认的。在这篇文章中,我将在 Fedora 上工作。

请记住,使用SE Linux需要sudoroot 访问。

SE Linux的配置文件位于/etc/sysconfig/selinux 文件夹中。让我们来看看它的内容。

SE Linux模式

SE Linux的配置文件

在配置文件中,我们可以改变模式,并从以下内容中选择任何一种。

  1. 强制的 - 默认情况下启用,根据定义的策略进行过滤。
  2. Permissive - 不强制执行定义的策略,但在日志文件中记录所有的尝试。这种模式对排除故障很有用。
  3. 禁用 - SE Linux完全被禁用。不建议这样做,因为它可能使你的系统受到威胁。另外,恢复到执行状态可能会产生某些差异。

你可以用下面的命令检查你当前的SE Linux模式:

  1. getenforce
  2. sestatus

如果你只需要改变当前会话的模式,你可以使用下面的命令:

  1. sudo setenforce 0 - 设置当前会话的允许模式
  2. sudo setenforce 1 - 为当前会话设置强制模式

SE Linux策略

在SE Linux中,策略定义对用户的访问。用户定义对角色的访问,角色定义对域的访问。然后域提供对某些文件的访问:

SE Linux策略

为了改变和修改访问权,定义了 "布尔"。我们将在下一节中讨论布尔运算。

如何用布尔值管理SE Linux策略

正如你现在所知道的,SE Linux策略是由布尔值管理的。

让我们看一个如何查看和设置布尔值的工作例子。在这个例子中,我们将设置特定于httpd 的布尔值。

首先,列出所有针对http的模块 -getsebool -a | grep httpd

这里 -a列出所有的布尔运算:

布尔值的列表

接下来,让我们选择并改变上面代码中黄色突出显示的布尔值:

getsebool httpd_can_connect_ftp

现在,将该值设置为allow

setsebool -P httpd_can_connect_ftp 1

在上面的命令中:

  • 标志P被用来使改变在重启后也是永久的。
  • 1 是启用布尔值。

现在,当你再次列出这个进程时,它的值将被允许:

布尔值'on

SE Linux架构

下图解释了SE Linux如何从源头验证一个尝试:

故障排除和SE Linux日志

SE Linux为每次尝试产生非常详细的日志。你可以在这里找到并查看这些日志:/var/log/audit

在排除故障时,你应该进入 "允许 "模式,这样所有的事件都可以记录在日志中。虽然策略没有被执行,但尝试被记录在日志中。

如何禁用和启用 SE Linux

完全禁用SE Linux不是一个好的选择。但在某些情况下,可以绕过政策,例如在排除故障时。

如果你遇到一个小问题,与其禁用SE Linux,不如投入一些时间进行故障排除。

但如果你真的需要禁用SE Linux,请遵循以下步骤:

  1. 将模式从 "强制 "改为 "允许"。
  2. 将模式从 "允许 "改为 "禁用"。

总结

学习SE Linux是值得你花时间的,在使用它时,你可以探索无穷的可能性。

SE Linux为管理员提供了一个细粒度的控制水平。所以,为什么不学习它并利用它来提高你的安全性呢?