RHEL6: Tomcat работает как неограниченный пользователь Java

Я предлагаю, чтобы Вы попытались локально на сервере с помощью FTP Windows или другого установленного клиента. Таким образом, Вы будете видеть, является ли это проблема сети/брандмауэра или проблема с конфигурацией FTP-сервера. Также проверьте файлы журнала сервера Filezilla если команды.

Если это зависит от брандмауэра, вот статья TechNet, которая могла бы помочь: Как Настроить Windows Firewall для Пассивного FTP-сервера Режима. Но Вы записали, что брандмауэр Windows выключен, таким образом, я предполагаю, что это - проблема с внешним брандмауэром/маршрутизатором (также проверяют сторону клиента).

4
задан 31 August 2013 в 01:09
1 ответ

Начиная с RHEL6, сопоставления пользователей SELinux по умолчанию следующие

# semanage user -l

                Labeling   MLS/       MLS/
SELinux User    Prefix     MCS Level  MCS Range                      SELinux Roles

git_shell_u     user       s0         s0                             git_shell_r
guest_u         user       s0         s0                             guest_r
root            user       s0         s0-s0:c0.c1023                 staff_r sysadm_r system_r unconfined_r
staff_u         user       s0         s0-s0:c0.c1023                 staff_r sysadm_r system_r unconfined_r
sysadm_u        user       s0         s0-s0:c0.c1023                 sysadm_r
system_u        user       s0         s0-s0:c0.c1023                 system_r unconfined_r
unconfined_u    user       s0         s0-s0:c0.c1023                 system_r unconfined_r
user_u          user       s0         s0                             user_r
xguest_u        user       s0         s0                             xguest_r

Если вы используете стандартную целевую политику (проверьте / etc / selinux / config или запустите sestatus , чтобы узнать)), шансы составляют root использует пользовательское отображение unlimited_u SELinux. id -Z как root сообщит вам.

Если вы проверите /etc/init.d/tomcat {6,7} , вы найдете переключатель if , который указывает, что runuser должен использоваться вместо обычного su в системах с поддержкой SELinux. Эта команда, однако, не предотвращает наследование отображения пользователя SELinux java-процессом tomcat .

Это актуально, и я попытаюсь показать:

Возьмите SRPM selinux-policy , найдите исходный код модуля java (контексты файлов, интерфейс и тип принуждение):

selinux-policy-3.7.19-195.el6_4.6.src/serefpolicy-3.7.19/policy/modules/apps/java.fc
selinux-policy-3.7.19-195.el6_4.6.src/serefpolicy-3.7.19/policy/modules/apps/java.if
selinux-policy-3.7.19-195.el6_4.6.src/serefpolicy-3.7.19/policy/modules/apps/java.te

Первый не требует пояснений. Он содержит пути, которые в этом случае будут обозначены java_exec_t : двоичные файлы и библиотеки как из стандартных, так и из дополнительных мест.

Второй путь, возможно, наиболее труден для понимания. Он определяет разрешенные переходы между доменами в этом модуле политики. Один фрагмент имеет отношение к вашему вопросу:

 template(`java_role_template',`
   gen_require(`
     type java_exec_t;
   ')

   type $1_java_t;
   domain_type($1_java_t)
   domain_entry_file($1_java_t, java_exec_t)
   role $2 types $1_java_t;

   domain_interactive_fd($1_java_t)
   userdom_manage_tmpfs_role($2, $1_java_t)
   allow $1_java_t self:process { ptrace signal getsched execmem execstack };
   dontaudit $1_java_t $3:tcp_socket { read write };
   allow $3 $1_java_t:process { getattr ptrace noatsecure signal_perms };
   domtrans_pattern($3, java_exec_t, $1_java_t)
   corecmd_bin_domtrans($1_java_t, $3)
   dev_dontaudit_append_rand($1_java_t)
   files_execmod_all_files($1_java_t)
   fs_dontaudit_rw_tmpfs_files($1_java_t)

   optional_policy(`
     xserver_role($2, $1_java_t)
   ')
 ')

Как указано в документации к этому шаблону, «этот шаблон создает производные домены , которые используются для приложений Java », где «префикс домена пользователя (например, user - это префикс для user_t) "," если вы намерены запускать Java-приложения с использованием ограниченного пользователя SELinux, вам необходимо написать собственную политику, поскольку в текущей справочной политике такого нет (я думаю, ни в RHEL6, ни в восходящем направлении). Вы можете начать с копирования файлов и экспериментировать с ними.

Конечно, это непростая задача.

если вы намерены запускать Java-приложения с использованием ограниченного пользователя SELinux, вам необходимо написать собственную политику, поскольку в текущей справочной политике такого нет (я думаю, ни в RHEL6, ни в восходящем направлении). Вы можете начать с копирования файлов и экспериментировать с ними.

Конечно, это непростая задача.

3
ответ дан 3 December 2019 в 03:44

Теги

Похожие вопросы