如何为Glassfish服务器构buildSELinux规则

我在CentOS 6解决scheme上运行Glassfish 3.1,默认启用SELinux。 我已经在服务器上安装了Sun的JDK 1.6.0_29版本,并将Glassfish 3.1.1 /opt/glassfish-3.1.1压缩到/opt/glassfish-3.1.1 ,同时指向最新的Glassfish版本的/opt/glassfish链接。 我还创build了一个名为glassfish的系统用户,其主目录为/home/glassfish

当启用SELinux运行时,我得到各种错误。 例如,我无法创build域。 我有点像SELinux的概念,并希望能够启用SELinux。 我对Glassfish服务器有以下要求:

  • 聆听端口8080和8081
  • 其他端口7676:JMS 8686:JMX监视,4848:pipe理控制台
  • 通过mod_jk和端口8009从apache转发到Glassfish
  • 启动OpenMQ作为一个单独的进程,它监听7676,它是JMX监控端口7776
  • 能够读写指定区域的文件(与主目录不同)
  • 能够使用/ tmp /临时文件

我知道在允许模式下运行audit2allow工具,但是我很难理解这个工具生成的规则,并且认为第一次手动设置这些规则会比单纯的例子更好地理解SELinux规则到目前为止我已经看到了。

具有SELinux经验的人能否帮助我形成这些SELinux规则,并说明规则的每个部分?

正如Mlfe所说,java是用户安装的,并且运行不受限制,因为策略不知道它们。

build立规则是一个过程,我build议你阅读RHEL指南http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/index.html了解一般信息。

有一个“selinux-polgengui”命令(policycoreutils-gui包中的fedora / rhel / centos),可以为你的应用程序创build额外的策略。 它一步一步的工作,可以覆盖你的要求,但我想这对java和glassfish来说并不容易,因为涉及到所有的文件。

为您的应用程序的另一道防线可能是一个java策略,由java vm的安全pipe理器pipe理。 请参阅http://blogs.oracle.com/monzillo/entry/policy_files_the_securitymanager_and作为起点。