濡備綍鍏抽棴SELinux

哎呀,你的问题让我有点困惑。
我当时就在做SELinux+iptables组合,但是到了你提到的具体场景,我就不得不思考一下了。

当时,我还在一家小型网络设备公司工作,为客户维护几台旧服务器。
有一天,一位客户的RHEL 6 服务器突然无法连接。
客户端无法通过 SSH 远程登录,也无法在本地发出命令。
客户急得像热锅上的蚂蚁。

我检查并发现 SELinux 状态是必需的,并且 /var/log/audit/audit.log 充满了有关被拒绝操作的条目。
启用S​​ELinux后,一些操作会被阻止,这很烦人。
我很快将其设置为0以将状态更改为允许,然后运行到客户端,断开连接并重新连接它,重新启动服务器,并且SELinux配置文件/etc/selinux/config中的SELINUX=enforcing保持不变。

然后查看日志,发现iptables规则有问题。
该服务器用于导出。
我为客户端添加了一些复杂的NAT规则,但忘记测试它们,导致一些必要的流量被阻止。
我立即停止iptables服务,然后我清理了不正确的规则,然后iptables服务启动,服务器立即变得正常。

所以你看,你需要知道如何与 SELinux 和 iptables 交互。
SELinux 是深度防御,而 iptables 是边缘防御。
有时 SELinux 会报告错误,这并不一定意味着您配置错误,但可能是 iptables 规则存在问题。
我当时遇到的问题是 iptables 规则太严格。

你现在说的这些命令,比如停止iptables服务、把vi /etc/selinux/config改为disabled、setenforce 0、setenforce 1 ,这些操作都没有问题。
主要是看哪个链接被卡住了。

你的问题有点令人困惑。
您必须一个接一个地尝试强制和宽容的 SELinux 模式切换以及 iptables 规则。
先尝试setenforce 0,查看日志中具体的错误信息,然后根据错误信息进行更改。
如果SELinux的问题根本无法解决,只需在/etc/selinux/config中更改SELINUX=disabled并重启即可。
有时这是一个快速解决办法,但你必须承担风险。

顺便说一句,还有 getenforce 和 setenforce 命令。
getenforce 查看当前状态,setenforce 0 或 1 更改状态。
这种打击组合必须准确执行。
试试吧,先输入getenforce,看看现在的状态是什么,然后再改。

我从来没有接触过这个领域...好吧不,我在 SELinux+iptables 中遇到了很多陷阱。
但当涉及到你的配置和错误报告时,我的经验可能没有帮助。
关键取决于日志中的具体信息。
慢慢来,尝试一下,如果有任何问题,请回复我。

用sed修改服务器的selinux为disabled状态

这是一个陷阱。
不要相信 setenforce:SELinuxisabled 是一个禁用 SELinux 的错误。
正确的方法是检查配置文件。

实用说明:正确检查并配置/etc/sysconfig/selinux文件中的SELINUX参数。