Разделение привилегий Apache vhost с помощью mod_selinux

Разделение привилегий Apache vhost с помощью mod_selinux

у меня есть 2сайты/приложенияна сервере; собственное приложение и Nextcloud. Nextcloud будет использовать files_externalплагин для хранения, который позволяетместныймонтирует, но я делаюНЕТхотим, чтобы он мог просматривать исходный код фирменного приложения... mod_selinuxи, таким образом, дочерние элементы sedomain.

Я использую его mod_selinuxдля создания дочерних доменов и назначаю дочерний идентификатор каждому сайту, а также соответствующим образом маркирую их каталоги приложений и данных в определениях виртуальных хостов...

httpd.conf

selinuxServerDomain *:s0-s0:c0.c100

проприетарный.vhost.conf

selinuxDomainVal *:s0:c10

nextcloud.vhost.conf

selinuxDomainVal *:s0:c20

К каталогу приложения, где расположен код, применены следующие разрешения и контексты...

drwxr-x---.  4 apache apache unconfined_u:object_r:httpd_sys_content_t:s0:c10 4096 Jan 17 17:02 proprietary_app_dir
drwxr-x---. 15 apache apache unconfined_u:object_r:httpd_sys_content_t:s0:c20 4096 Jan 20 08:09 nextcloud

Проблема... Все работает, но проблема в том, что я все еще могу просматривать папку фирменного приложения с помощью nextcloud, даже несмотря на то, что каталог фирменного приложения имеет ограниченный контекст домена s0:c10, и поскольку vhost определен, Nextcloudдолженработать как s0:c20.

Я знаю, что SELinux выполняет свою работу, потому что я не могу просматривать папки, такие как /etc, хотядругойу пользователей есть права на чтение, я могу только просматривать папки с контекстами, httpd_sys_(rw_)content_tкак и должно быть.

Я бы ожидал, что дочерний процесс c20не должен иметь возможности читать папку, запрашивающую c10. Поэтому единственное, что я могу придумать, это то, что порожденные дочерние процессы httpd_t(через mod_selinux) не используют selinuxDomainValконтексты, которые я определил в файлах vhost.

Я не уверен, что я сделал не так, я неправильно настроил это как-то или я забыл какой-то шаг? Буду признателен за любую помощь, которую вы можете предложить.

Дополнительная информация...

  • CentOS8
  • Апач 2.4.37
  • PHP 7.3 (через remi)
  • PHP-FPM
  • mod_selinux (перепакованный RPM из fedora 31)

решение1

Nextcloud — это программное обеспечение на основе PHP, не уверен, как работает ваше фирменное (может быть, также PHP?). Фактический просмотр каталогов в Nextcloud происходит с помощью PHP, в вашем случае с помощью PHP-FPM, насколько я понимаю. Я бы предположил, что вы либо используете один и тот же пул PHP-FPM для обоих VHosts, либо контекст PHP-FPM SELinux одинаков для обоих пулов. Даже мое предположение может быть неверным, вам следует также предоставить здесь подробности относительно вашей конфигурации PHP и того, что вы сделали (или не сделали) относительно SELinux.

Связанный контент