我在 Amazon EC2 上有一个 Fedora 14 实例,我想从该实例向同一 amazon 安全组中的另一个实例发出 http 请求。当我使用 wget 发出请求时,它工作正常。但是,当我使用通过 JBoss 6 运行的 Apache HTTP 客户端时,我得到了
HttpClient ConnectException: Connection refused
JBoss 不是以 root 身份运行,而是以用户“jboss”身份运行。我怀疑这是 SELinux 问题。我以 root 身份登录,然后调用
setsebool -P httpd_can_network_connect 1
和
setsebool -P httpd_can_network_relay 1
但还是没运气。任何建议都将不胜感激。
问候
答案1
首先,通过检查审计日志,再次确认 SELinux 确实是罪魁祸首/var/log/audit/audit.log
。应该有与type=AVC
JBoss 相关的消息。
然后,您可以将该消息与工具结合使用来授权阻止的访问。要授权迄今为止audit2allow
包含该名称的任何二进制文件的所有内容被阻止,请运行以下命令:jboss
root
grep jboss /var/log/audit/audit.log | audit2allow -M jboss
semodule -i jboss.pp
但是,最好只允许所需的特定权限。为此,请将审计日志中的相关行复制并粘贴到新文件中,然后cat
将其复制到audit2allow
。