Skip to content


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


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

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

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

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

    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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted in *nix, Howto.

Tagged with , .


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

You must be logged in to post a comment.