Додаток Д. Збірка модуля ядра для SpIDer Guard

В цьому розділі:

Загальні відомості.

Інструкція зі збірки модуля ядра.

Можливі помилки збірки.

Загальні відомості

Якщо операційна система не надає механізм fanotify, що використовується SpIDer Guard для моніторингу дій з об'єктами файлової системи, він може використовувати спеціальний завантажуваний модуль, який працює в просторі ядра (LKM-модуль).

За замовчуванням у складі SpIDer Guardпостачається скомпільований модуль ядра для ОС, що не надають сервіс fanotify. Також сумісно з SpIDer Guard постачається архів у форматі tar.bz2, що містить вихідні файли завантажуваного модуля ядра, щоб його можна було зібрати вручну.

LKM-модуль, що використовується SpIDer Guard, призначений для роботи з ядрами GNU/Linux версій 2.6.* та вище.

Для архітектури ARM64 модуль ядра LKM не підтримується.

Архів з вихідними кодами завантажуваного модуля ядра розташовується в каталозі основних файлів Dr.Web для Linux (за замовчуванням — /opt/drweb.com) в підкаталозі share/drweb-spider-kmod/src та має ім'я виду drweb-spider-kmod-<версія>-<дата>.tar.bz2. Також в каталозі drweb-spider-kmod є сценарій перевірки check-kmod-install.sh, запустивши який, ви отримаєте інформацію, чи підтримує встановлена операційна система попередньо скомпільовані версії ядра, вже включені до складу Dr.Web для Linux. Якщо не підтримує, на екран буде виведена рекомендація виконати ручну збірку.

Якщо вказаний каталог drweb-spider-kmod відсутній, встановіть пакет drweb-spider-kmod.

Щоб виконанти ручну збірку завантажуваного модуля ядра з вихідних кодів, необхідні права суперкористувача. Щоб отримати права суперкористувача, при збірці скористайтеся командою змінення користувача su або командою виконання від імені іншого користувача sudo.

Інструкція зі збірки модуля ядра

1.Розпакуйте архів з вихідними кодами в будь-який каталог. Наприклад, команда

# tar -xf drweb-spider-kmod-<версія>-<дата>.tar.bz2

розпакує архів безпосередньо до каталогу, в якому міститься сам архів, створивши в ньому підкаталог з іменем файла архіву (зверніть увагу, що для запису в каталог, що містить архів, необхідні права суперкористувача).

2.Перейдіть у створений каталог з вихідними кодами та виконайте команду:

# make

При виникненні помилок на етапі make усуньте їх (див. нижче) та виконайте компіляцію повторно.

3.Після успішного завершення етапу make виконайте такі команди:

# make install
# depmod

4.Після успішної збірки модуля ядра та його реєстрації в системі додатково налаштуйте SpIDer Guard, вказавши йому режим роботи з модулем ядра, виконавши команду

# drweb-ctl cfset LinuxSpider.Mode LKM

Також допускається встановлення значення AUTO замість значення LKM. В цьому випадку SpIDer Guard пробуватиме використовувати не тільки модуль ядра, але й системний механізм fanotify. Щоб отримати додаткову інформацію, використовуйте документацію man: drweb-spider(1).

Можливі помилки збірки

На етапі виконання збірки make можуть виникати помилки. При виникненні помилок перевірте таке:

Для успішної збірки необхідна наявність Perl та компілятора GCC. Якщо вони відсутні, встановіть їх.

В деяких ОС може знадобитися попереднє встановлення пакета kernel-devel.

В деяких OC збірка може завершитися з помилкою через невірно визначений шлях до каталогу вихідних кодів ядра. В цьому випадку використовуйте команду make з параметром KDIR=<шлях до вихідних кодів ядра>. Зазвичай вони розміщуються в каталозі /usr/src/kernels/<версія ядра>.

Зверніть увагу, що версія ядра, яка видається командою uname -r, може не збігатися з іменем каталогу <версія ядра>.