Rkhunter - програма для пошуку руткітів в debian - debian help

Home # 149; статті # 149; rkhunter - програма для пошуку руткітів в debian

Список розділів:

Коротко, rootkit - це набір програм покликаний заховати якусь негативну діяльність або присутність зломщика в системі.

установка rkhunter

Будемо встановлювати rkhunter 1.4.0 під Debian 7.

В общем-то, установка не повинна скласти труднощів, так як виявилося, що rkhunter версії 1.4.0-1 є в офіційних репозиторіях Debain 7. Встановлюємо:

Або можна встановити вручну скачавши архів з офіційного сайту:

Висновок останньої команди:

Checking system for:
Rootkit Hunter installer files: found
A web file download command: wget found
Starting installation:
Checking installation directory "/ usr / local": it exists and is writable.
Checking installation directories:
Directory /usr/local/share/doc/rkhunter-1.4.0: creating: OK
Directory / usr / local / share / man / man8: creating: OK
Directory / etc: exists and is writable.
Directory / usr / local / bin: exists and is writable.
Directory / usr / local / lib: exists and is writable.
Directory / var / lib: exists and is writable.
Directory / usr / local / lib / rkhunter / scripts: creating: OK
Directory / var / lib / rkhunter / db: creating: OK
Directory / var / lib / rkhunter / tmp: creating: OK
Directory / var / lib / rkhunter / db / i18n: creating: OK
Installing check_modules.pl: OK
Installing filehashsha.pl: OK
Installing stat.pl: OK
Installing readlink.sh: OK
Installing backdoorports.dat: OK
Installing mirrors.dat: OK
Installing programs_bad.dat: OK
Installing suspscan.dat: OK
Installing rkhunter.8: OK
Installing ACKNOWLEDGMENTS: OK
Installing CHANGELOG: OK
Installing FAQ: OK
Installing LICENSE: OK
Installing README: OK
Installing language support files: OK
Installing rkhunter: OK
Installing rkhunter.conf: OK
Installation complete

Інші параметри інсталятора rkhunter ви можете дізнатися скориставшись командою:

Яким способом установки користуватися - вирішувати вам. Перший спосіб простіше, другий потенційно дозволяє встановити більш свіжу версію.

Також варто встановити програму unhide. яка дозволяє шукати приховані процеси і порти:

Налаштування rkhunter

Будемо вважати, що використовували спосіб установки зі сховищ.

/ Etc / default / rkhunter - можна налаштувати періодичні завдання (оновлення, перевірка, звіти),
/etc/rkhunter.conf - основний конфігураційний файл

Довідкова інформація може бути знайдена в директорії / usr / share / doc / rkhunter і за допомогою команди man rkhunter. Деякі скрипти є в директорії / usr / share / rkhunter.

Параметри, які можна задати в / etc / default / rkhunter (параметри можуть набувати значень true або false):

У /etc/rkhunter.conf можна поправити наведене нижче

PKGMGR = DPKG - судячи з документації, в Debian даний параметр особливого ефекту не дає, так що можна залишити за замовчуванням.
DISABLE_TESTS = "apps" - відключає перевірку актуальності версій софта, з цим чудово справляються розробники Debian.
SUSPSCAN_DIRS = "/ tmp / var / tmp" - вказуємо в якій директорії шукати підозрілі файли.
OS_VERSION_FILE = "/ etc / debian_version" - де шукати файл з версією ОС.
USE_LOCKING = 1 - дозволяє спользовать блокування для захисту від помилок в разі якщо запущено кілька процесів rkhunter в Debian. Може стати в нагоді, якщо ви запускаєте rkhunter автоматично за допомогою cron.
DISABLE_UNHIDE = 2 - відключає використання утиліти unhide.rb написаної на ruby.

Підготовка rkhunter до першого пошуку руткітів

Перед виконанням перевірки потрібно виконати дві дії.

Перш за все, необхідно створити базу знань про поточні файлах, щоб потім було з чим порівнювати. Тобто необхідно бути впевненим, що система чиста. Кращим варіантом буде виконати цю дію відразу після завершення налаштування системи. База створюється командою:

Базу можна буде знайти за наступним шляхом: /var/lib/rkhunter/db/rkhunter.dat

Далі потрібно оновити базу знань, що містить, в тому числі, інформацію про нові руткітів. Слід виконати після попередньої операції і перед першою перевіркою. Варто періодично оновлювати базу знань, але це можна робити не надто часто. команда:

File properties checks.
Files checked: 135
Suspect files: 0

Rootkit checks.
Rootkits checked. 309
Possible rootkits: 0

Applications checks.
All checks skipped

The system checks took: 6 minutes and 21 seconds

All results have been written to the log file (/var/log/rkhunter.log)

One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)

Насправді висновок більш докладний, представлена ​​тільки фінальна частина. Як видно, лог можна знайти по шляху /var/log/rkhunter.log

можливі ключі

-c, --check - виконати пошук руткітів, результат буде виведений на стандартний висновок, а також в лог-файл.
--unlock - ця комманда просто видаляє lock-файл.
--update - буде проведена перевірка на наявність оновлення бази знань. Для роботи даної команди потрібно, щоб в системі був встановлений один з браузерів командного рядка, наприклад, wget або lynx. Бажано виконувати цю команду з якоїсь періодичністю. При використанні в cron варто використовувати також опцію --nocolors.
--propupd [. ] - команда дозволяє додати в базу даних про файлах системи інформацію про фото, всіх файлах в директорії або пакеті. Це необхідно для роботи одного з тестів, який порівнює файл у поточному стані з тим, яке було при створенні бази. Пам'ятайте, що додається в базу файл повинен бути свідомо не зараженим.
--versioncheck - ця команда змушує rkhunter перевірити наявність нової версії програми для пошуку руткітів. Браузер командного рядка повинен бути присутнім в системі. Якщо використовується в cron бажано використовувати опцію --nocolors.
--list [tests | | rootkits | perl | propfiles] - ця команда виводить деякі підтримувані можливості програми. Tests - виведе назви доступних тестів, languages ​​- покаже яку версію, rootkits - відобразить списки руткітів з бази rkhunter. Perl - виведе список модулів perl які можуть знадобитися в роботі rkhunter, список цей не обов'язковий, але бажаний. Встановити модулі perl можна за допомогою команди cpan або утиліти dh-make-perl, яку потрібно встановлювати окремо. propfiles - відобразить список імен файлів, які використовувалися для генерації бази файлів. Якщо ніяких опцій не задано, то будуть показані всі списки крім propfiles.
-C, --config-check - буде проведена перевірка конфігураційних файлів. Перевіряються лише включені опції (enabled). Щоб перевірити всі опції можна вказати --enable all --disable none в командному рядку.
-V, --version - буде виведена версія rkhunter.
-h, --help - ця команда відобразити екран з короткою довідкою.

--appendlog - в разі використання даного параметра лог /var/log/rkhunter.log буде доповнений, а не перезаписан. За замовчуванням, після того, як rkhunter відпрацює, основний лог перезаписується, а попереднє його вміст зберігається в файлі rkhunter.log.log, при чому, зберігається тільки один.
--cs2 - основна колірна схема розрахована на чорний фон. Якщо ж результат буде виведений на екран з білим фоном, то можна використовувати альтернативну колірну схему.
--cronjob - при вказівці даного параметра будуть використані наступні опції: --check, --nocolors і --skip-keypress, а також не буде виведення в стандартний вихід. Тому в поєднання з даними параметром можна використовувати --report-warnings-only.
--display-logfile - після того, як rkhunter закінчить свою роботу вивести вміст журналу. Взагалі кажучи, лог містить більш детальну інформацію про знайдені проблеми.
--lang - можна вказати на якій мові виводити інформацію в процесі перевірки. Список доступних мов можна отримати командою rkhunter --list lang. За замовчуванням використовується англійська.
--logfile [file] - дозволяє перевизначити файл в який буде писатися лог. При необхідності нічого не писати в лог, можна задати як шлях / dev / null.
--nocolors - цей параметр дозволяє включити чорно-білий режим виведення результатів роботи.
--nolog - пригнічує запис чого-небудь в лог.
--quiet - пригнічує будь-який висновок. Може бути корисно при перевірці тільки коду виходу. Тобто якщо rkhunter використовується з скрипта, наприклад.
--report-warnings-only - при цьому виводяться тільки попередження. Може бути корисно при запуску через cron. Таким чином, попередження буде видно при підключенні до сервера за допомогою KVM, наприклад.
--sk, --skip-keypress - за замовчуванням rkhunter після деяких наборів тестів просить натиснути клавішу "Введення". Щоб таких запитів не надходило можна використовувати цю опцію.
--syslog [facility.priority] - за замовчуванням в syslog нічого не пишеться. Якщо потрібно відзначати час початку і закінчення тестування, можна використовувати цю можливість.
--verbose-logging - цей параметр може використовуватися, щоб деякі тести писали в лог більш детальну інформацію. Це може стати в нагоді для повторного прогону, коли не зрозуміло через що виникло попередження. Вимагає додаткового часу.

Автоматичний пошук руткітів

Щоб rkhunter почав автоматично перевіряти систему щодоби (у мене перевірка починається о 6:25) досить в файлі / etc / default / rkhunter встановити значення параметра CRON_DAILY_RUN рівним true. В даному випадку буде використовуватися наступна команда:

Як ми пам'ятаємо, --cronjob має на увазі під собою параметри --check, --nocolors і --skip-keypress. Тобто в даному випадку rkhunter запускається для перевірки системи в чорно-білому режимі відображення, не запитує будь-яких натискань клавіш, при цьому в консоль виводяться тільки попередження і лог буде дописуватися, а не перезаписуватися. Тому що згодом файл логу буде збільшуватися в розмірі, то не забудьте налаштувати його ротацію.

Якщо ж ви хочете проводити пошук руткітів по іншому розкладом і з іншими параметрами, то команду запуску можна додати в cron вручну.