SELinux httpd записує доступ до каталогу


9

Я новачок у SELinux. походить від debian. Я хочу надати httpdдоступ до каталогу.

Веб-переглядач SELinux пропонує:

# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp 

Я не міг зрозуміти, як працює ця команда. Я ніде не вказую шлях до каталогу. як дізнатися, в якому каталозі дозволити httpd?

Раніше я використовував греп для вилучення тексту з виводу або файлу. Але тут grep використовується в процесі. Що я не отримав.

Також те, що є фактичним рішенням. Якщо я хочу надати httpd для запису доступ до каталогу?


4
І щоб відповісти на ваше інше питання, audit2allow читає файл журналу SELinux і записує політику, що дозволяє заблокувати все, що заблоковано; ім'я каталогу буде в повідомленні журналу. Захоплюючи httpd, ви його трохи обмежуєте, але метод все-таки ширший, ніж повинен бути.
miken32

Відповідна відповідь: unix.stackexchange.com/questions/511929/…
salah-1,

Відповіді:


17

Ось як назавжди змінити контекст каталогу:

# install semanage if you don't already have it:
yum install policycoreutils-python

# give the directory a new default context. The part at the end is a regex.
semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/directory(/.*)?"

# apply the default context to the directory
restorecon -R /path/to/directory

Ось ще додаткова документація про різні контексти для httpd:

RHEL 7: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html

RHEL 6: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/sect-Managing_Confined_Services-The_Apache_HTTP_Server-Types.html


Відмінно !! Працював для мене у Fedora 26, policycoreutils-python уже встановлений за замовчуванням.
Sir_Faenor

5

SELinux використовує розширені атрибути, які можуть додаватися до структур каталогів на диску. Подумайте, чи це як метадані. Списки контролю доступу (ACL) є ще одним.

Розширені атрибути, які потрібно додати до каталогу, називаються контекстами, а SELinux діє як коп трафіку, переконуючись, що виконуваному файлу, який має певні контексти, дозволяється отримати доступ до файлової системи на основі цих контекстів. Ви можете побачити, що доступно в каталозі, використовуючи -Zперемикач на ls.

$ sudo ls -Z /var/www
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html

Тут ви можете бачити, що ці каталоги мають контекст httpd_sys_script_exec_t:s0на cgi-bindir. і htmlреж. має httpd_sys_content_t:s0.

Ви можете додати їх за допомогою chconкоманди:

$ sudo chcon -t httpd_sys_content_t public_html

Команда, про яку ви запитуєте, просто завантажить модуль, mypoll.ppя не вірю, що він дасть будь-які дозволи на що-небудь, ймовірно, буде більше повідомлень у тому, audit.logщо вам не вистачає у вашій команді, що більш детально розкаже, що вам потрібно зробити, щоб дозволити доступ.

Я б радив вам взяти трохи часу та ознайомитись із SELinux. Спочатку це заплутано, але, як правило, просто, після того, як витратили на це трохи часу. Щоб розпочати роботу, перегляньте ресурси нижче.

Список літератури


Дякую. Я пройду їх. Але чи можете ви мені зараз сказати, що мені потрібно зробити, щоб надати запис для запису до цього каталогу?
Ніл Басу

Якщо це вміст, який ви хочете прочитати Apache, вам, ймовірно, потрібно додати цей контекст до dir:chcon -R -t httpd_sys_content_t <dir>
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.