SELinux добавляет к традиционным владельцам и правам Linux средства контроля на основе политик. На этом практическом курсе вы научитесь проверять состояние политики, распознавать распространённые несоответствия и расследовать отказ службы, не объявляя сам SELinux проблемой.
Вы сравните режимы enforcing и permissive, проследите метки файлов, исправите неверные контексты, включите предусмотренное политикой логическое значение и изучите данные аудита AVC. В итоговой задаче вы выясните, почему Nginx не может привязаться к порту 8088, создадите и установите целевой модуль из записи об отказе и проверите ответ службы.
Чему вы научитесь
- Проверять состояние SELinux и отличать текущий режим от конфигурации при загрузке
- Читать контексты безопасности файлов и находить поле типа, используемое политикой
- Объяснять, почему перемещённый файл может сохранить неподходящую для нового места метку
- Сравнивать текущий и ожидаемый контексты и исправлять отдельные или рекурсивные несоответствия с
restorecon - Находить, постоянно включать и проверять логическое значение SELinux для конкретной службы
- Находить AVC-отказы Nginx и интерпретировать заблокированную операцию
name_bind - Использовать
audit2allowдля объяснения отказа и создания пользовательского модуля политики - Устанавливать созданный модуль и проверять Nginx на нестандартном порту
Для кого этот курс
Этот курс среднего уровня предназначен для администраторов Linux, DevOps-специалистов и изучающих безопасность, которые понимают обычные права Unix и хотят практически познакомиться с эксплуатацией и диагностикой SELinux.
Предварительные требования: Уверенная работа в оболочке Linux, понимание файлов и прав, sudo, systemctl, редактирования текста, портов и основ веб-служб. Опыт написания политик не требуется.
Учебная среда: Терминал Linux с командами SELinux, данными политики, записями аудита, Nginx и административными привилегиями. Ограничения ядра или контейнера могут не позволить реально сменить режим, поэтому некоторые отказы могут имитироваться при использовании тех же команд анализа и исправления.
Часто задаваемые вопросы
Учит ли курс отключать SELinux при сбое приложения?
Нет. Режим permissive используется лишь как временный диагностический приём. Курс учит сначала проверять метки, поддерживаемые логические параметры и журналы аудита, а затем вносить точечное изменение.
Какие исправления SELinux я выполню?
Вы восстановите определённые политикой контексты файлов, постоянно включите httpd_can_network_connect, а также создадите и установите небольшой модуль из отказа Nginx при привязке порта. Полный язык политик SELinux не рассматривается.
Представлен ли audit2allow как решение каждого отказа?
Нет. Вы проверяете его предложение и решаете, не лучше ли исправить метку, логический параметр или стандартную политику. Итоговая задача требует созданный модуль; альтернативы вроде управления типами портов через semanage port выходят за практические рамки курса.





