Что делает этот модуль #
Руткит — это вредоносное ПО, созданное для того, чтобы проникнуть на ваш сервер и спрятаться: оно подменяет системные команды, открывает бэкдоры и стирает собственные следы, чтобы вы его не видели. В этом и заключается проблема — когда он работает хорошо, вы его не замечаете. Именно поэтому стоит регулярно проверять систему.
Модуль rkhunter опирается на rkhunter (Rootkit Hunter), чтобы делать эту работу за вас: он сканирует систему, сравнивая файлы и команды с известными сигнатурами руткитов, следит за подозрительными свойствами (странные права, скрытые порты, изменённые бинарники) и резюмирует предупреждения понятным языком, чтобы вы знали, на что смотреть. Он также поддерживает эталон — снимок того, как должны выглядеть ваши файлы — и сигнатуры в актуальном состоянии, две составляющие, от которых зависит надёжное обнаружение.
После установки модуля или обновления системных пакетов обновите эталон с помощью update-baseline. Если этого не сделать, легитимные изменения (например, apt upgrade) будут отображаться как предупреждения, и вам будет трудно отличить нормальное от подозрительного.
Типовые задачи #
Выберите, что вы хотите сделать. В каждом рецепте команда уже написана — скопируйте её, вставьте и нажмите Копировать.
1
Просканировать систему сейчас
Запускает полный анализ и выдаёт сводку предупреждений.
Подключитесь к серверу по SSH под пользователем ubuntu.
Запустите сканирование. Оно занимает некоторое время: rkhunter просматривает сотни файлов и команд.
$ sudo imaxe rkhunter checkВызываете из скрипта или хотите интегрировать с другим инструментом? Добавьте --json:
$ sudo imaxe rkhunter check --json2
Смотреть предупреждения последнего сканирования
Просмотрите, что отметил rkhunter, в удобочитаемом виде.
Показать предупреждения последнего check без повторного сканирования:
$ sudo imaxe rkhunter report3
Проверить состояние
С первого взгляда: установка, эталон, последнее сканирование и предупреждения.
Быстрая сводка того, готов ли rkhunter, есть ли эталон, когда было последнее сканирование, сколько предупреждений оно оставило и запланировано ли сканирование:
$ sudo imaxe rkhunter statusДля мониторинга или скриптов запросите вывод в JSON:
$ sudo imaxe rkhunter status --json4
Обновить эталон
Принимает текущее состояние файлов как надёжную отправную точку.
Сохраните текущие свойства файлов как эталон (эквивалент rkhunter --propupd). Делайте это только тогда, когда доверяете состоянию системы — например, сразу после установки или после обновления, которое вы узнаёте:
$ sudo imaxe rkhunter update-baselinecheck отталкивается от этого нового эталонного снимка.5
Обновить сигнатуры
Загрузите самые свежие файлы данных rkhunter.
Обновите файлы данных и сигнатуры rkhunter (эквивалент rkhunter --update), чтобы обнаружение знало о самых свежих руткитах:
$ sudo imaxe rkhunter update-datacheck обнаруживает более свежие угрозы. Стоит сделать это перед важным сканированием.Это нормально в первый раз или сразу после обновления пакетов: rkhunter видит изменения, которых ещё нет в эталоне. Просмотрите их через report, и если вы узнаёте их как легитимные, примите их через update-baseline. Никогда не обновляйте эталон, если подозреваете, что система уже скомпрометирована.
Синопсис #
imaxe rkhunter <subcomando> [--json]Все подкоманды требуют привилегий root (используйте sudo), потому что rkhunter должен читать системные файлы, сравнивать бинарники и писать свой эталон и свои данные. Добавьте --json к check или status, чтобы получить машиночитаемый вывод, пригодный для скриптинга и мониторинга.
Подкоманды #
| Подкоманда | Что делает | Значимые флаги |
|---|---|---|
| check | Запускает сканирование руткитов/вредоносного ПО и резюмирует предупреждения. | --json |
| report | Показывает предупреждения последнего сканирования в удобочитаемом виде. | — |
| status | Состояние: установлен, наличие эталона, последнее сканирование, предупреждения и запланированное сканирование. | --json |
| update-baseline | Принимает текущие свойства файлов как эталон (rkhunter --propupd). | — |
| update-data | Обновляет файлы данных/сигнатур rkhunter (rkhunter --update). | — |
Аргументы и флаги #
| Флаг | Тип | По умолчанию | Описание |
|---|---|---|---|
| --json | bool | false | В check/status выдаёт результат в виде структурированного JSON в stdout, пригодного для скриптинга и мониторинга. |
Подкоманды report, update-baseline и update-data не принимают флагов: они выполняются без аргументов.
Файлы и пути #
| Путь | Содержимое |
|---|---|
| /etc/imaxe/rkhunter.yml | Конфигурация модуля: по умолчанию check сообщает только предупреждения (report_warnings_only). |
| /var/lib/rkhunter/db/ | Эталон свойств файлов и файлы данных/сигнатур, которые обновляют update-baseline и update-data. |
| /var/log/rkhunter.log | Журнал последнего сканирования, из которого report извлекает предупреждения. |
Пример rkhunter.yml:
check:
report_warnings_only: trueКоды возврата и логи #
Каждый запуск возвращает код, который можно проверить командой echo $? — удобно для связок в скриптах или запуска оповещений из мониторинга:
Проверьте журнал последнего сканирования во время анализа:
$ sudo imaxe rkhunter report
$ sudo tail -f /var/log/rkhunter.logУстранение неполадок #
| Симптом | Вероятная причина | Решение |
|---|---|---|
| WARN появляется (код 1) после обновления пакетов | Легитимные изменения, которых ещё нет в эталоне. | Просмотрите через report; если вы их узнаёте, примите их через update-baseline. |
status говорит «baseline: not present» | Модуль только что установлен, и эталонного снимка ещё нет. | Выполните update-baseline один раз, когда система в доверенном состоянии. |
| Много предупреждений о старых файлах или версиях | Сигнатуры и данные rkhunter устарели. | Выполните update-data и повторите check. |
| ERR появляется (код 3) | rkhunter не установлен или бинарник не отвечает. | Проверьте установку модуля и обратитесь к /var/log/rkhunter.log. |
Застряли с модулем rkhunter?
Напишите нам, приложив вывод «imaxe <module> status --json», и мы быстро ответим.