Skip to content


Отслеживание изменений в файлах с помощью tripwire


Tripwire – это весьма полезная софтина для тех, кто хочет знать что у него делается на файловой системе. Особенно ценным это знание может быть на серверах хостинга, которые постоянно пробуют на прочность всякие кулхацкеры в надежде найти старое непатченное программное обеспечение и залить туда какой-нибудь шелл. Tripwire создает у себя списочек всех файлов, рассчитывает их контрольные суммы, а затем докладывает если произошли какие-то изменения (появились новые, удалены старые, изменены существующие и т.п.).

Запустить всё это хозяйство можно с помощью следующих простых шагов.

  1. Создаём ключи. Каждый из них будет защищен своим паролем:

    1. twadmin --generate-keys --local-keyfile /etc/tripwire/$(hostname)-local.key
    2. twadmin --generate-keys --site-keyfile /etc/tripwire/site.key
  2. Создаем зашифрованный конфигурационный файл /etc/tripwire/tw.cfg на основе plaintext файла /etc/tripwire/twcfg.txt, для этого потребуется ввести пароль от site-ключа.

    1. twadmin --create-cfgfile --cfgfile /etc/tripwire/tw.cfg --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txt
  3. Правим под свои потребности файл /etc/tripwire/twpol.txt, в котором указано какие файлы и как мониторить, и конвертируем его в зашифрованный файл /etc/tripwire/tw.pol:

    1. twadmin --create-polfile --polfile /etc/tripwire/tw.pol --site-keyfile /etc/tripwire/site.key /etc/tripwire/twpol.txt

    Здесь опять потребуется ввести пароль от site-ключа.

  4. Инициализируем базу данных, чтобы tripwire просканировал файловую систему и сохранил исходную информацию об упомянутых в policy-файле объектах:
    1. tripwire --init
    2.  
    3. Please enter your local passphrase:
    4. Parsing policy file: /etc/tripwire/tw.pol
    5. Generating the database...
    6. *** Processing Unix File System ***
    7. Wrote database file: /var/lib/tripwire/srv.host.name.twd
    8. The database was successfully generated.

    Потребуется ввести пароль от local-ключа.

Затем через cron будет вызываться проверялка (по умолчанию раз в сутки) и присылать на email список изменений. Отчеты об изменениях записываются в директорию /var/lib/tripwire/report (для CentOS, в других дистрибутивах может быть иначе). Если после просмотра отчета мы не обнаружили ничего подозрительного и хотим "согласиться" с изменениями, то запускаем такой скриптик:

  1. #!/bin/bash
  2.  
  3. WD=/var/lib/tripwire/report
  4. tripwire --update --accept-all -r `echo $WD/$(ls -tr $WD | tail -n 1)` -P xxxXXXxxx

где xxxXXXxxx – пароль от local-ключа.

Если потребовалось внести изменения в policy-файл, то после этого нужно сделать

  1. tripwire --update-policy /etc/tripwire/twpol.txt

и далее ввести пароли от site и local ключей.

Если после этого ругается вот так:

  1. ### Error: Policy Update Changed Object.
  2. ### An object has been changed since the database was last updated.

то последнюю команду можно заменить на

  1. tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt

Размещено в категории *nix, Howto. Теги: , .

Комментариев: 0

Чтобы быть всегда в курсе здесь происходящего, Вы можете подписаться на RSS feed для комментариев на эту заметку.

Вы должны войти в аккаунт чтобы иметь возможность оставлять комментарии.