Я использую Glassfish 3.1 в решении CentOS 6, и по умолчанию SELinux включен. Я установил Sun JDK версии 1.6.0_29 на сервер и извлек Glassfish 3.1.1 в /opt/glassfish-3.1.1
со ссылкой /opt/glassfish
указывая на последнюю версию Glassfish. Я также создал системного пользователя с именем glassfish
с домашним каталогом /home/glassfish
.
При работе с включенным SELinux я получаю всевозможные ошибки. Например, я не могу создать домен. Мне нравится концепция SELinux, и я хотел бы иметь возможность включить SELinux. У меня есть следующие требования к серверу Glassfish:
mod_jk
и порт 8009Мне известно об инструменте audit2allow при работе в разрешающем режиме, но мне трудно понять правила, которые создаются с помощью этого инструмента, и я подумал, что настройка этого правила вручную в первый раз поможет мне понять правила SELinux лучше, чем упрощенные примеры. что я видел до сих пор.
Может ли кто-нибудь с опытом SELinux помочь мне сформировать эти правила SELinux с комментариями, описывающими каждую часть правил?
Как сказал Mlfe, java устанавливается пользователем и работает без ограничений, поскольку политики не знают о них.
Построение правил - довольно сложный процесс, я предлагаю вам прочитать руководство по RHEL на http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/index.html для общей информации.
Существует команда "selinux-polgengui" (fedora / rhel / centos в пакете policycoreutils-gui), которая может создавать дополнительные политики для вашего приложения. Он работает шаг за шагом, что может удовлетворить ваши требования, но я думаю, это будет нелегко для java и Glassfish из-за всех задействованных файлов.
Другой линией защиты вашего приложения может быть политика java, которой управляет менеджер безопасности java vm. Видеть http://blogs.oracle.com/monzillo/entry/policy_files_the_securitymanager_and в качестве отправной точки.