Создаем собственное правило SELinux на базе аудит сообщения: различия между версиями
OlegA (обсуждение | вклад) (Новая: {{Суперпользователь}} Многие часто выключают SEL``inux, полагая что от него только проблемы. На самом деле ...) |
VasileVsx (обсуждение | вклад) (add reference to Dan Walsh blog) |
||
Строка 1: | Строка 1: | ||
{{Суперпользователь}} | {{Суперпользователь}} | ||
− | Многие часто выключают | + | Многие часто выключают SELinux, полагая что от него только проблемы. На самом деле это очень полезный инструмент аудита и защиты системы. Просто надо его правльно "готовить". :) |
Рассмотрим простой пример - некий скрипт тянется на, скажем, 8000 порт. По умолчанию такой доступ запрещен. Но мы то знаем что это допустимо. Лечится просто: | Рассмотрим простой пример - некий скрипт тянется на, скажем, 8000 порт. По умолчанию такой доступ запрещен. Но мы то знаем что это допустимо. Лечится просто: | ||
* глядим в '''/var/log/messages''', видим там что-то вроде | * глядим в '''/var/log/messages''', видим там что-то вроде | ||
Строка 31: | Строка 31: | ||
* Вот и всё. | * Вот и всё. | ||
+ | |||
+ | Больше информации о укрощении SELinux в Fedora вы найдете в [http://danwalsh.livejournal.com/22347.html блоге Dan Walsh'a] - одного из основных разработчиков этой системы. | ||
[[Category:Установка и настройка]] | [[Category:Установка и настройка]] | ||
[[Category:Администрирование]] | [[Category:Администрирование]] |
Версия 11:00, 3 сентября 2008
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su -
для повышения уровня привелегий. Символы '$
' и '#
' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.
Многие часто выключают SELinux, полагая что от него только проблемы. На самом деле это очень полезный инструмент аудита и защиты системы. Просто надо его правльно "готовить". :)
Рассмотрим простой пример - некий скрипт тянется на, скажем, 8000 порт. По умолчанию такой доступ запрещен. Но мы то знаем что это допустимо. Лечится просто:
- глядим в /var/log/messages, видим там что-то вроде
# grep audit /var/log/messages|tail -n 1
Oct 11 11:03:11 hostname kernel: audit(1192089791.364:4563): avc: denied { name_connect } for pid=9956 comm="python" dest=8000 \
scontext=user_u:system_r:httpd_fastcgi_script_t:s0 tcontext=system_u:object_r:soundd_port_t:s0 tclass=tcp_socket
- эту строку "скармливаем" audit2why:
# grep audit /var/log/messages|tail -n 1|audit2why
Oct 11 11:03:11 hostname kernel: audit(1192089791.364:4563): avc: denied { name_connect } for pid=9956 comm="python" dest=8000 \
scontext=user_u:system_r:httpd_fastcgi_script_t:s0 tcontext=system_u:object_r:soundd_port_t:s0 tclass=tcp_socket
Was caused by:
Missing or disabled TE allow rule.
Allow rules may exist but be disabled by boolean settings; check boolean settings.
You can see the necessary allow rules by running audit2allow with this audit message as input.
- нам советуется создать разрешающие правила. Как? Просто:
# grep audit /var/log/messages|tail -n 1||audit2allow -ve -M pythonTcp8000Moin
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i pythonTcp8000Moin.pp
# semodule -i pythonTcp8000Moin.pp
- Вот и всё.
Больше информации о укрощении SELinux в Fedora вы найдете в блоге Dan Walsh'a - одного из основных разработчиков этой системы.