Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在SELinux中管理自定义端口的最佳方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在RHel 6.2上,我们在主机上使用httpd作为另一台主机上tomcat的前端代理,我们还将mod_status配置为侦听非标准端口以向监视工具提供状态信息.因此,我们需要httpd来1)建立网络连接,2)监听非标准端口. 默认目标策略(当前处于许可模式)仅允许httpd侦听已定义的端口列表(semanage port -l | grep http_port_t),并且不允许httpd进行出站
在RHel 6.2上,我们在主机上使用httpd作为另一台主机上tomcat的前端代理,我们还将mod_status配置为侦听非标准端口以向监视工具提供状态信息.因此,我们需要httpd来1)建立网络连接,2)监听非标准端口.

认目标策略(当前处于许可模式)仅允许httpd侦听已定义的端口列表(semanage port -l | grep http_port_t),并且不允许httpd进行出站网络连接. aureport -a显示httpd尝试绑定到自定义状态端口时以及当它尝试连接到其他主机上的AJP端口时AVC拒绝.

发现了两种解决方案,但其中一种似乎过于宽松,而另一种解决方案太脆弱(即可能在政策升级时破坏).

“广泛”的解决方

我使用audit2allow生成本地策略源,然后使用checkmodule编译它,semodule_package生成策略包,并使用semanage开始强制执行它.然后我重新启动了httpd,并确认没有生成AVC拒绝. audit2allow生成的本地策略使用以下授权:

它允许httpd绑定到任何端口(不仅仅是http_port_t中列出的端口),并连接到任何端口.这种方法的专业是它包含在本地策略中,并且不会在下一次yum更新时被覆盖.可以肯定的是,它授予了比必要更广泛的许可; httpd可以绑定并连接到任何端口.

“狭隘”的解决方

绑定的替代方法是使用以下命令将我们的自定义端口添加http_port_t列表:

我知道我可以使用semanage port -l |查看http_port_t下的端口列表grep http_port_t,但我不知道这个列表的存储位置,也不知道下一个使用新策略的yum更新是否会覆盖该列表.

连接的替代方法是使用以下命令创建新的端口列表:

然后使用以下内容创建本地策略:

就像增强的http_port_t列表一样,我不知道我的新ajp_port_t列表是否能够在安装新的目标策略版本后继续存在.

解决方法

semanage创建了不受策略包控制的新模块.升级策略包后,这些模块将保留,并在加载时应用于新策略.

大佬总结

以上是大佬教程为你收集整理的在SELinux中管理自定义端口的最佳方法全部内容,希望文章能够帮你解决在SELinux中管理自定义端口的最佳方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。