Налаштування політик безпеки для SELinux |
Якщо використовуваний вами дистрибутив Linux оснащений підсистемою безпеки SELinux (Security-Enhanced Linux — Linux з поліпшеною безпекою), то для того, щоб службові компоненти Dr.Web для Linux (такі, як скануюче ядро) працювали коректно після встановлення компонентів програми, вам, можливо, буде необхідно внести змінення в політики безпеки, що використовуються SELinux. 1. Проблеми при встановленні універсального пакета При включеному SELinux встановлення Dr.Web для Linux в виді універсального пакета з інсталяційного файла (.run) може завершитися невдало, оскільки буде заблокована спроба створення в системі спеціального користувача drweb, з повноваженнями якого працюють копоненти Dr.Web для Linux. Якщо спроба встановлення Dr.Web для Linux з інсталяційного файла (.run) була перервана через неможливість створення користувача drweb, перевірте режим роботи SELinux, для чого виконайте команду getenforce. Ця команда виводить на екран поточний режим захисту: •Permissive — захист активний, але використовується дозвільна стратегія: дії, що порушують політики безпеки, не забороняються, а тільки фіксуються в журналі аудиту. •Enforced — захист активний, використовується стратегія заборони: дії, що порушують політики безпеки, реєструються в журналі аудиту та блокуються. •Disabled — SELinux встановлений, але неактивний. Якщо SELinux працює в режимі Enforced, тимчасово (на період встановлення) переведіть її в режим Permissive. Для цього виконайте команду
яка тимчасово (до першого перезавантаження системи) переведе SELinux в режим Permissive.
Після успішного встановлення Dr.Web для Linux з інсталяційного файла, але до його запуску та активації поверніть режим Enforced, для чого виконайте команду:
2. Проблеми функціонування Dr.Web для Linux В деяких випадках при працюючому SELinux окремі допоміжні компоненти Dr.Web для Linux (такі, як drweb-se та drweb-filecheck, що використовуються Сканером і SpIDer Guard) не зможуть запуститися, внаслідок чого сканування об'єктів та моніторинг файлової системи унеможливляться. Ознакою того, що ці допоміжні модулі не можуть бути запущені, є поява повідомлень про помилки 119 та 120 в головному вікні Dr.Web для Linux та в системному журналі syslog (зазвичай розташований в каталозі /var/log/). При спрацюванні системи безпеки SELinux інформація про відмови фіксується також в системному журналі аудиту. Загалом, при використанні в системі демона audit, журнал аудиту розташовується в файлі /var/log/audit/audit.log. В іншому випадку повідомлення про заборону операції записуються в загальний файл журналу /var/log/messages або /var/log/syslog. Якщо встановлено, що допоміжні модулі не функціонують через те, що вони блокуються SELinux, скомпілюйте для них спеціальні політики безпеки.
Створення політик безпеки SELinux: 1.Створіть новий файл з вихідним кодом політики SELinux (файл з розширенням .te). Даний файл визначає обмеження, що відносяться до описуваного модуля. Вихідний файл політики може бути створений в два способи: 1)За допомогою утиліти audit2allow. Це найпростіший спосіб, оскільки дана утиліта генерує дозвільні правила на основі повідомлень по відмову в доступі в файлах системних журналів. Можна задати автоматичний пошук повідомлень в файлах журналів або вказати шлях до файла журналу вручну. Зверніть увагу, що цей спосіб можна використовувати, тільки коли в системному журналі аудиту вже зареєстровані інциденти порушення політик безпеки SELinux компонентами Dr.Web для Linux. Якщо це не так, або дочекайтеся таких інцидентів у процесі роботи продукту Dr.Web для Linux, або створіть дозвільні політики примусово, скориставшись утилітою policygentool (див. нижче).
Приклад використання audit2allow:
В цьому прикладі утиліта audit2allow проводить пошук в файлі audit.log повідомлень про відмову в доступі для модуля drweb-se. В результаті роботи утиліти створюються два файла: вихідний файл політики drweb-se.te та готовий до встановлення модуль політики drweb-se.pp. Якщо потрібні інциденти в системному журналі не виявлені, утиліта поверне повідомлення про помилку. В більшості випадків вам не потрібно вносити змінення в файл політики, створений утилітою audit2allow. Тому рекомендується одразу переходити до пункту 4 для встановлення отриманого модуля політики drweb-se.pp. Зверніть увагу, що за замовчуванням утиліта audit2allow як результат своєї роботи виводить на екран готовий виклик команди semodule. Скопіювавши його в командний рядок та виконавши, ви виконайте пункт 4. Перейдіть до пункту 2, тільки якщо ви хочете внести змінення в політики, автоматично сформовані для компонентів Dr.Web для Linux. 2)За допомогою утиліти policygentool. Для цього вкажіть в якості параметрів ім'я модуля, роботу з яким ви хочете налаштувати, та повний шлях до його виконуваного файла.
Приклад створення політик за допомогою policygentool: •Для drweb-se:
•Для drweb-filecheck:
Вам буде запропоновано вказати декілька загальних характеристик домену, після чого для кожного модуля будуть створені три файла, що визначають політику: <module_name>.te, <module_name>.fc та <module_name>.if. 2.За необхідності відредагуйте згенерований вихідний файл політики <module_name>.te, а потім, використовуючи утиліту checkmodule, створіть бінарне представлення (файл з розширенням .mod) вихідного файла локальної політики.
Приклад використання:
3.Створіть встановлюваний модуль політики (файл з розширенням .pp) за допомогою утиліти semodule_package. Приклад:
4.Для встановлення створеного модуля політики скористайтеся утилітою semodule. Приклад:
Щоб отримати додаткову інформацію про принципи роботи та налаштування SELinux, зверніться до документації з використовуваного вами дистрибутиву Linux. |