SELINUX=enforcing时无法启动httpd服务的解决方案(semanage命令以及setroubleshoot-server插件的妙用)

一、问题描述:

当/etc/selinux/conf被要求必须是SELINUX=enforcing,不被允许使用setenforce 0宽松模式

我们启动httpd就会报错:

Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xeu httpd.service" for details.

vim /etc/httpd/conf/httpd.conf文件,发现端口是82

二、强制执行(Enforcing)机制

由图可知,SELinux的工作模式有三种,enforcing是最严格的,不匹配就推出。

Linux强制执行(Enforcing)机制是一个非常重要的安全特性,它可以帮助系统管理员强制执行访问控制规则,从而保护系统资源的安全性。

1、什么是Linux强制执行机制

(1)Linux的强制执行机制是安全增强型Linux的一个组成部分,它可以强制执行SELinux策略中定义的访问控制规则,从而保护系统资源的安全性。

(2)如果一个进程想要访问某个资源,例如文件、目录或者端口,这个请求就需要通过SELinux的访问控制规则来验证(只有满足规则的请求才被允许,否则将被拒绝)。

(3)Linux的强制执行机制可以在系统层面强制执行SELinux的访问控制规则,确保系统资源的安全性。

2、Linux强执行机制的应用场景

(1)Linux的强制执行机制通常用于高安全性的系统(例如金融、等敏感领域):

通过使用强制执行机制,系统管理员可以强制执行特定的访问控制规则,从而限制对系统资源的访问。

(2)强制执行机制还可用于强制执行特定的安全策略(例如权限管理、文件保护和日志位置等方面):

这意味着管理员可以通过强制执行机制来保护系统资源中的重要数据和文件,确保他们不被未经授权的人员访问和修改。强制执行机制还可以帮助管理员监视系统活动,例如登录、文件读取和修改等情况。

浏览器访问的网址无非就是看协议、ip/域名、端口,协议是http,ip也设置了,那就从最简单的端口入手,先查 SELinux 允许的端口:

使用semanage port  -l  |  grep http #查 SELinux 允许的端口

3、修改SELinux策略

为了解决这个问题,需要用到semanage命令:

semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具

3.1 安装semanage命令需要的软件包

1) yum  provides  semanage   #查询仓库中那个软件产生semanage   
2) yum  -y  install   policycoreutils-python-utils #由上一个命令可知有semanage命令的软件是policycoreutils-python-utils

3.2 安装setroubleshoot-server软件包

这样才能把SELinux消息发送至/var/log/messages文件中,甚至贴心地推荐适合的semanage语法来解决问题。

注:如果熟练掌握semanage命令的语法,就忽略这一步

1) yum -y install setroubleshoot-server
2) systemctl restart httpd
继续报错就可在/var/log/messages文件查看错误日志了
3)cat /var/log/messages | grep -i setrouble
从日志信息中推断,解决方法是在命令行输入“semanage port -a -t http_port_t -p tcp 82”这个命令
4)semanage port -a -t http_port_t -p tcp 82
5)systemctl restart httpd
systemctl enable httpd
此时应该是成功了


注意:这些方案是在防火墙firewalld被stop服务或者卸载的前提下,不想卸载就设置为可信任:firewall-cmd --set-default-zone=trusted

然后在浏览器输入http://172.25.0.25:82验证效果

没有浏览器就在linux命令行使用curl http://172.25.0.25:82验证效果

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值