Комментарии 10
Человеческое вам спасибо!
0
Большое спасибо за статьи по SELinux!
0
Прекрасно! Даешь настройку SELinux!
Сам недавно насладился об это для Django стека, получил огромное удовольствие.
Пользовался этим циклом мануалов, для получения начального понимания — самое то.
Небольшое дополнение:
после выполнения команд вида
можно не выполнять
а запустить
Тем самым восстановить контекст по умолчанию для директории и заодно проверить, что добавленное командой выше правило действительно работает.
Сам недавно насладился об это для Django стека, получил огромное удовольствие.
Пользовался этим циклом мануалов, для получения начального понимания — самое то.
Небольшое дополнение:
после выполнения команд вида
semanage fcontext -a/-d -t httpd_cache_t "/srv/http/cache(/.*)?"
можно не выполнять
chcon ...
а запустить
restorecon -R /srv/http/cache
Тем самым восстановить контекст по умолчанию для директории и заодно проверить, что добавленное командой выше правило действительно работает.
+2
Чуть более простой способ решения проблем, описанных в статье.
Зная, что в SELinux есть переменные модулей, при получении 'avc: denied' от SELinux, можно посмотреть, какие переменные есть у связанных модулей, и их краткое описание:
Переменные модулей помогают в стандартных ситуациях, но если нужно настроить что-то более экзотическое, и ошибка связана с файлами или сетевыми сокетами сервисов, то можно можно посмотреть стандартные типы портов и label'ы файлов:
Полное описание переменных некоторых модулей и связанных типов (label, type, domain), а так же примеры использования есть man страницах в пакете 'selinux-policy-doc', напр. см. 'man httpd_selinux'.
Таким образом, значительная часть «проблем» с SELinux снимается просмотром логов, запуском 'man -k selinux | grep httpd' и действиями, следующими за прочтением соответствующей man страницы.
Зная, что в SELinux есть переменные модулей, при получении 'avc: denied' от SELinux, можно посмотреть, какие переменные есть у связанных модулей, и их краткое описание:
# semanage boolean -l | grep -i http
httpd_can_network_relay (off , off) Allow httpd to act as a relay
httpd_can_connect_mythtv (off , off) Allow http daemon to connect to mythtv
httpd_can_network_connect_db (on , off) Allow HTTPD scripts and modules to connect to databases over the network.
httpd_use_gpg (on , off) Allow httpd to run gpg
httpd_dbus_sssd (off , off) Allow Apache to communicate with sssd service via dbus
httpd_enable_cgi (on , on) Allow httpd cgi support
...
Как видно из вывода команды, на этом сервере apache httpd специально разрешено запускать gpg (httpd_use_gpg) и подключаться к серверу баз данных по сети (httpd_can_network_connect_db). Все остальные значения переменных модулей SELinux оставлены по-умолчанию. Переменные модулей помогают в стандартных ситуациях, но если нужно настроить что-то более экзотическое, и ошибка связана с файлами или сетевыми сокетами сервисов, то можно можно посмотреть стандартные типы портов и label'ы файлов:
# semanage port -l | grep http
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
...
# semanage fcontext -l | grep http | head
/usr/.*\.cgi regular file system_u:object_r:httpd_sys_script_exec_t:s0
/opt/.*\.cgi regular file system_u:object_r:httpd_sys_script_exec_t:s0
/srv/([^/]*/)?www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
/srv/([^/]*/)?www/logs(/.*)? all files system_u:object_r:httpd_log_t:s0
/var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
...
Ну и смотря на стандартные настройки, исправить их уже большой проблемы не представляет.Полное описание переменных некоторых модулей и связанных типов (label, type, domain), а так же примеры использования есть man страницах в пакете 'selinux-policy-doc', напр. см. 'man httpd_selinux'.
Таким образом, значительная часть «проблем» с SELinux снимается просмотром логов, запуском 'man -k selinux | grep httpd' и действиями, следующими за прочтением соответствующей man страницы.
+1
Описания не всегда достаточно. Тот-же audit2allow показывает все варианты флагов, которые можно включить.
А sesearch -C позволяет их направить в нужную сторону.
А sesearch -C позволяет их направить в нужную сторону.
0
Кстати, вы тоже можете написать статью про SELinux, я думаю она 100% пройдет песочницу :)
0
По этой тематике написано уже достаточно много, в том числе и здесь.
По моему мнению, имеет смысл писать статьи, и тем более давать «зелёный свет» после «песочницы» только статьям, имеющим явные признаки новизны тематики и материала. Иначе получим игнор читателей и справедливый гнев в комментариях в духе
В настоящий момент я не занимаюсь чем-либо, достойным описания в статье.
По моему мнению, имеет смысл писать статьи, и тем более давать «зелёный свет» после «песочницы» только статьям, имеющим явные признаки новизны тематики и материала. Иначе получим игнор читателей и справедливый гнев в комментариях в духе
И что это за статья? Каждый теперь будет писать очередной условный "Как настроить сервер с LAMP" и получать инвайт? Хабр скатился в… .
В настоящий момент я не занимаюсь чем-либо, достойным описания в статье.
0
Прошёл песочницу вот с этой статьёй — https://habrahabr.ru/post/334954/. Общий рейтинг статьи за сутки — 38: +24 и -14, с результирующим +10. Шатаем устои, так сказать :)
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Настройка окружения SELinux на примере LAMP-сервера