Просматривать, сравнивать и копировать конфигурации SELinux между машинами?

У меня две машины с одинаковыми настройками JBoss и HTTPD. Они начали с одной и той же установки RedHat 7, и последовал один и тот же процесс, чтобы установить все на обеих машинах.

На одной машине все прекрасно работает с SELinux, работающим с настройками по умолчанию. Я никогда не касался SELinux на нем.

На другом компьютере, когда я пытаюсь получить к нему доступ в веб-браузере, Я получаю 403 запрещенных сообщения об ошибке. Когда я поискал в Интернете почему, я нашел предложение отключить на нем SELinux и посмотреть, сработает ли он тогда. Итак, я запустил setenforce 0 , перезапустил jboss и httpd, обновил мой браузер, и запретное сообщение исчезло, все снова заработало. Я снова включаю SELinux с помощью setenforce 1 , перезапускаю приложения, обновляю браузер, и запрещенное сообщение возвращается.

Итак, на моей второй машине определенно что-то не так с SELinux. Это странно, потому что я не трогал SELinux ни на одной из машин, пока не попытался выключить его на второй. Я проверил, что на первой машине, когда я запускаю getenforce , он возвращает Enforcing .

У меня вопрос - как мне просмотреть конфигурации SELinux на каждой машине? Как я могу сравнить их, чтобы узнать, в чем разница между ними, и отредактировать или скопировать их, чтобы я мог запускать SELinux на втором компьютере, не мешая моим приложениям, как на моем первом компьютере?

Изменить - Я выполнил эту команду для поиска в журналах аудита:

cat /var/log/audit/audit.log | grep httpd | grep denied

Первая строка повторяется несколько раз. Последние две строки появлялись только один раз в самом конце.

type=AVC msg=audit(1468877854.297:22110): avc:  denied  { getattr } for  pid=5193 comm="httpd" path="/var/www/html/sfo/index.htm" dev="dm-0" ino=70334613 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1468877854.297:22111): avc:  denied  { read } for  pid=5193 comm="httpd" name="index.htm" dev="dm-0" ino=70334613 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1468877854.297:22111): avc:  denied  { open } for  pid=5193 comm="httpd" path="/var/www/html/sfo/index.htm" dev="dm-0" ino=70334613 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file

Я не вижу подобных сообщений на машине, на которой работает SELinux без неправильной блокировки страницы. Обе машины имеют одинаковые флаги разрешений, установленные для / var, / var / www, / var / www / html, / var / www / html / sfo и /var/www/html/sfo/index.htm[1299ptingAll в каталогах указано drwxr-xr-x , в файле index.htm указано -rw-r - r - . Все они принадлежат пользователю root и группе root. md5sum говорит, что / etc / sudoers идентичны. В /etc/sudoers.d на обеих машинах ничего нет.

Обе машины имеют одинаковый вывод для getsebool -a | grep httpd :

httpd_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_connect_ftp --> off
httpd_can_connect_ldap --> off
httpd_can_connect_mythtv --> off
httpd_can_connect_zabbix --> off
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> off
httpd_can_network_relay --> off
httpd_can_sendmail --> off
httpd_dbus_avahi --> off
httpd_dbus_sssd --> off
httpd_dontaudit_search_dirs --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> off
httpd_execmem --> off
httpd_graceful_shutdown --> on
httpd_manage_ipa --> off
httpd_mod_auth_ntlm_winbind --> off
httpd_mod_auth_pam --> off
httpd_read_user_content --> off
httpd_run_stickshift --> off
httpd_serve_cobbler_files --> off
httpd_setrlimit --> off
httpd_ssi_exec --> off
httpd_sys_script_anon_write --> off
httpd_tmp_exec --> off
httpd_tty_comm --> off
httpd_unified --> off
httpd_use_cifs --> off
httpd_use_fusefs --> off
httpd_use_gpg --> off
httpd_use_nfs --> off
httpd_use_openstack --> off
httpd_use_sasl --> off
httpd_verify_dns --> off
0
задан 19 July 2016 в 17:12
1 ответ

С SELinux файловая система имеет дополнительные "разрешения" сверх обычных UNIX. Если вы запустите ls -Z ... ( -Z - это расширение SELinux для ls (1) ) в файлах под / var / www / html на обеих машинах, я подозреваю, вы увидите следующее :

На сервере A:

drwxr-xr-x корневая корневая system_u: object_r: httpd_sys_content_t / var / www / html /

На сервере B:

drwxr-xr-x корневая корневая system_u: object_r : var_t /var/www/html/[1236 sizesetc.[1237 impression На сервере A этот правильно помечен, чтобы Apache мог читать этот каталог с активным SELinux. На сервере B каталог не помечен правильно, чтобы Apache мог его читать, пока активен SELinux.

Чтобы исправить это, попробуйте сначала запустить restorecon -Rvn / var / www / , который покажет вам, как файловая система будет изменена в соответствии с текущей политикой SELinux. Если это кажется разумным, удалите флаг -n и перезапустите.

Также есть полезная справочная страница httpd_selinux (8) , которая документирует SELinux в отношении Apache.

1
ответ дан 4 December 2019 в 16:33

Теги

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