RedHat/CentOS8【SELinux】引起的安全策略问题解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedHat/CentOS8【SELinux】引起的安全策略问题解决方案相关的知识,希望对你有一定的参考价值。

参考技术A

SELinux 全称【安全增强型 Linux(Security-Enhanced Linux)】,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

以 MongoDB 引发的 SELinux 异常为例:

当使用 systemctl 启动应用程序时,如果提示类似下图错误,则可能是由 SELinux 引起的安全策略问题。

解决方案一(最安全,首选方案):

在运行程序(无论成功或者失败)后,SELinux 会生成 audit 日志,可以从日志中导出所有不符合策略,生成策略源文件和对应的编译文件,直接安装。操作如下:

使用文本编辑器在创建 "my-mongod.te" 策略源文件,例如:

编写以下内容并保存:

编译并安装策略文件:

解决方案二(最有效,兜底方案):

第一步,临时关闭 SELinux。

第二步,修改 SELinux 配置文件,永久关闭 SELinux。

使用文本编辑器打开"/etc/selinux/config"文件:

将 "SELINUX" 参数设置为:"permissive" 或者 "disabled",并保存:

重启服务器:

CentOS开端口问题

关闭SELINUX

##查看SELINUX状态
/usr/sbin/sestatus -v      
getenforce             

#修改config配置文件,重启后即可
vi /etc/selinux/config    #SELINUX=enforcing改为SELINUX=disabled

#临时关闭(不用重启机器):
setenforce 0      ##设置SELinux 成为permissive模式,
##setenforce 1 设置SELinux 即可成为enforcing模式

CentOS7防火墙

firewall-cmd --state    #显示状态
firewall-cmd --zone=public --list-ports    #查看所有打开的端口
firewall-cmd --reload    #更新防火墙规则
firewall-cmd --get-active-zones    #查看区域信息
firewall-cmd --get-zone-of-interface=eth0    #查看指定接口所属区域
firewall-cmd --panic-on    #拒绝所有包
firewall-cmd --panic-off    #取消拒绝状 态
firewall-cmd --query-panic    #查看是否拒绝
 
#添加
firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
#重新载入
firewall-cmd --reload
#查看
firewall-cmd --zone= public --query-port=80/tcp
#删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
systemctl start firewalld    #启动
systemctl status firewalld     #查看状态
systemctl disable firewalld    #停止
systemctl stop firewalld    #禁用
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
systemctl start firewalld.service    #启动一个服务
systemctl stop firewalld.service    #关闭一个服务
systemctl restart firewalld.service    #重启一个服务
systemctl status firewalld.service    #显示一个服务的状态

systemctl enable firewalld.service    #在开机时启用一个服务
systemctl disable firewalld.service    #在开机时禁用一个服务
systemctl is-enabled firewalld.service    #查看服务是否开机启动

systemctl list-unit-files|grep enabled    #查看已启动的服务列表
systemctl --failed    #查看启动失败的服务列表

 

以上是关于RedHat/CentOS8【SELinux】引起的安全策略问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

centos 7/rhel7: 如何重启/停止/启动网络服务

Parallels 无法安装增强工具到CentOS8(Redhat8)

Parallels 无法安装增强工具到CentOS8(Redhat8)

Centos8和7的区别(参照redhat)

centos8安装图解

CentOS8 安装与设置