selinux 控制

╰+攻爆jí腚メ 2023-09-30 18:39 106阅读 0赞

在某些Linux发行版上,默认情况下启用SELinux,如果不了解SELinux的工作原理以及如何配置它的基本详细信息,则可能会导致一些不必要的问题。一般强烈建议了解了SELinux 之后再去实现它。但是,在了解 SELinux 的实现细节之前,可能希望禁用它以避免一些不必要的问题。正常情况下安装 RHEL/CentOS 或多个衍生产品时,SELinux 功能或服务默认处于启用状态,因此,系统上的某些应用程序实际上可能不支持此安全机制。但是,要使此类应用程序正常运行,则必须禁用或关闭 SELinux。SELinux 是内置于 Linux 内核中的强制访问控制(MAC)执行器。它限制了其漏洞可能对系统构成威胁的单个服务的权限。没有 SELinux 的CentOS系统依赖于其所有特权软件应用程序的配置。单个错误配置可能会危及整个系统。下面就来看一下Linux如何关闭selinux。

dff06de75406ec90d27f404a3d74306f.jpeg

SELinux将强制执行安全策略,包括美国国防部使用Linux内核中定义的Linux安全模块(LSM)定义的强制性访问控制。系统中的每个文件和进程都将使用 SELinux 将使用的特定标签进行标记。您可以使用 ls -Z 并查看这些标签,如下所示。

e1dd364c4891636898f6b5240e5e1799.jpeg

1,检查selinux是否开启


在关闭selinux之前,可以通过以下命令来查看seLinux是否开启。

[root@sharplee ~]# sestatus

12785748703ae78f216d00be2b347062.jpeg

通过上面命令可以看出selinux是开启的,那么如何进行关闭呢?

SELinux 可能会阻止应用程序的正常运行。在以下情况下,该服务将拒绝访问:

文件被错误标记。
不兼容的应用程序尝试访问禁止的文件。
服务在不正确的安全策略下运行。
检测到入侵。

如果发现服务未正常运行,请检查SELinux 日志文件。日志位于 /var/log/audit/audit.log。最常见的日志消息都标有“AVC”。如果找不到任何日志,请尝试在 /var/log/messages 中查找。如果已审核的守护程序未运行,系统将在该文件中写入日志。

2,临时关闭selinux


要暂时禁用 SELinux,您必须修改 /selinux/enforce 文件,如下所示。请注意,重新启动系统后,此设置将消失。

[root@localhost ~]# echo 0 > /selinux/enforce

or

[root@localhost ~]# setenforce 0

9417d827ff2513275f9685ac218fa064.jpeg

3,永久关闭selinux


要永久禁用 SELinux,请修改 /etc/selinux/config 并将 SELINUX=disabled,如下所示。对 /etc/selinux/config 进行任何更改后,重新启动服务器以考虑进行更改。

[root@localhost ~]# cat /etc/selinux/config

1987af72138c179b950b0fdaf8fa1b72.jpeg

接下来修改配置文件中的selinux选项,修改为disabled。

228a732a87ef77f779cd3c7316496382.jpeg

接着,保存并重启,之后看到的selinux就被关闭了。

e1cf5a01f9895b43d89ba5249bf7ab45.jpeg

以下是/etc/selinux/config文件中 SELINUX变量的可能值:

enforcing – 安全策略始终是强制的
permissive – 这仅通过仅打印警告消息而不是真正执行SELinux来模拟强制执行策略。这很好,首先看看SELinux是如何工作的,然后弄清楚应该执行哪些策略。
disabled – 完全禁用 SELinux

以下是 /etc/selinux/config 文件中 SELINUXTYPE 变量的可能值。这表示可用于 SELinux 的策略类型。

targeted – 此策略将仅保护特定的目标网络守护程序。
strict – 这是为了最大程度的 SELinux 保护。

4,从Grub Boot Loader禁用 SELinux


如果无法在系统上找到 /etc/selinux/config 文件,则可以通过将禁用 SELinux 作为参数传递给 Grub Boot Loader 来传递禁用 SELinux,如下所示。

[root@localhost ~]# cat /boot/grub/grub.conf

default=0

timeout=5

kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet selinux=0

initrd /boot/initrd-2.6.18-92.el5.img

5,关闭特定的服务在SELinux比如HTTP/Apache


如果有时候不需要对整个SELinux进行禁用,也可以仅针对特定服务禁用SELinux。例如,禁用SELinux for HTTP/Apache服务,修改/etc/selinux/targeted/booleans文件中的httpd_disable_trans变量。将httpd_disable_trans变量设置为1,如下所示。

[root@localhost ~]# grep httpd /etc/selinux/targeted/booleans

httpd_builtin_scripting=1

httpd_disable_trans=1

httpd_enable_cgi=1

httpd_enable_homedirs=1

httpd_ssi_exec=1

httpd_tty_comm=0

httpd_unified=1

使用 setsebool 命令设置 SELinux 布尔值,如下所示。请确保在此更改后重新启动 HTTP 服务。

[root@localhost ~]# setsebool httpd_disable_trans 1

[root@localhost ~]# service httpd restart

总结:要关闭selinux可以使用setenforce 0 来临时关闭selinux,也可以通过修改配置文件来永久关闭selinux。也可以通过关闭具体的服务,而不是完全关闭selinux。

发表评论

表情:
评论列表 (有 0 条评论,106人围观)

还没有评论,来说两句吧...

相关阅读

    相关 selinux 控制

    在某些Linux发行版上,默认情况下启用SELinux,如果不了解SELinux的工作原理以及如何配置它的基本详细信息,则可能会导致一些不必要的问题。一般强烈建议了解了SELi

    相关 关闭SELinux

    SELinux是Linux下一个安全的体系结构,但是就是因为它提供了安全的机制,有些时候在我们测试的过程中会给我们带来一些困扰。那么如何来关闭SELinux呢?下面介绍两种关闭

    相关 关闭SELinux

    SELinux是Linux系统特有的安全机制。因为这种机制的限制太多,配置也特别烦琐,所以几乎没有人真正使用它。安装完系统,我们一般都要把SELinux关闭,以免引起不必要的麻

    相关 SELinux

    存取文件系统的传统方式成为【自主式访问控制(DAC)】,基本上就是根据进程的拥有者与文件资源的rwx权限来决定有无存储的能力。 有以下缺点: ![2019031111234

    相关 SELinux功能

    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在L