Tripwire или тотальная слежка за системой FreeBSD


Расскажу о замечательной утилите, которая поможет повысить безопасность вашей ОС. Суть её заключается в следующем: она сканнирует все файлы (или те, которые укажите в конфиге) и составляет базу, вычисляя контрольную сумму каждого файла. Потом можно будет периодически запускать программу и сравнивать контрольные суммы: если изменились – значит стоит задуматься о присутствии нежданного гостя. Сама программа состоит из трёх утилит: tripwire(собственно управление базой файлов: создание, апдейт, чек), twadmin (для управления конфигами программы), twprint (для создания plain-text отчётов, ибо отчёты она пишет в бинарном виде). Хочу так же добавить, что программа оснащена достаточной документацией, так что даже самому-самому чайнику можно будет разобраться.


И так, приступаем к установке. Обновляем порты и идём ставить:

#cd /usr/ports/security/tripwire && make install clean

В конце установки программа создаст site key и local key, собственно для дальнейшего изменения конфигов программы и создания заново базы.

После установки идём в каталог с настройками /usr/local/etc/tripwire. Здесь содержаться конфиги в бинарном и текстовом виде:

tw.cfg, tw.pol – бинарные

twcfg.txt, twpol.txt – текстовые

Редактировать будем текстовые, а потом с помощью утилиты twadmin будем клепать бинарники. Открываем twcfg.txt в любимом текстовом редакторе изменим некоторые системные переменные, такие как путь к программе, путь к конфигам, настройки для отправки на e-mail и прочее. Файл twpol.txt же предназначен для базы: в нём содержатся файлы и каталоги, которые следует проиндексировать и занести в базу, а так же степень важности изменения их.

Открываем файл twpol.txt и начинаем редактировать его под свои нужды. Скажу сразу, я где-то половину выбросил из него, точнее сказать закомментировал, ибо у меня не везде стоит kerberosи не всегда есть каталоги, которые описаны в конфиге.

В @@section GLOBAL описываются переменные, пути к бинарникам, пути к базе, отчётам. В@@section FS описываются степени важности в убывающем порядке: их потом можно использовать дальше в конфиге по своему усмотрению. Ну а дальше пошли блоки, которые описывают какие файлы искать и их степень важности. Например, для каталога /tmp вообще не ставим проверку, ибо он меняется почти всегда. Точно так же как и каталог с логами или почтовой очередью. Для файла с паролями я поставил самую важную метку.

После всегх изменений нужно будет создать бинарные конфиги, ибо программа работает именно с бинарниками. Делается это так:

#twadmin –create-cfgfile –site-keyfile site.key twcfg.txt

Please enter your site passphrase:

#twadmin –create-polfile –site-keyfile site.key twpol.txt

Please enter your site passphrase:

После запуска каждой из команд будет нужно ввести site pathfrase, ту, которую вводили при установке.

Теперь перейдём к инициализации базы (нужно будет ввести локальную фразу, тоже задавили при установке):

# tripwire –init
Please enter your local passphrase:

Parsing policy file: /usr/local/etc/tripwire/tw.pol
Generating the database…
*** Processing Unix File System ***

После этого начнётся продолжительный этап создания базы. Будет создан файл ИМЯ_МАШИНЫ.twd в каталоге /var/db/tripwire. Теперь можно будет генерировать отчёты, например, каждые сутки. что бы знать, какие файлы были изменены за этот период. Обязательным этапом будет «снятие флагов», то есть после каждой проверки нужно говорить программе, что эти файлы уже были изменены и теперь с этого момента они как бы не менялись. Если этого не сделать, то каждый раз программа будет сигнализировать вам, что у вас изменился файлы, хотя на самом деле последние изменения вы в нём проводили месяц назад.

Собственно сделаем check:

#tripwire –check

После этого на экран будет послепенно валится лог проверки и в конце будет создан бинарный отчёт в каталоге /var/db/tripwire/report/ИМЯ_МАШИНЫ-ДАТА-ВРЕМЯ.twr. Отчёты будут создаваться при каждом запуске проверки (check’a). Если нужно будет просмотреть какой-то отчёт, то для этого существут бинарник twprint

#twprint –print-report -r ИМЯ_МАШИНЫ-ДАТА-ВРЕМЯ.twr > plain.rep

Конечно же не забываем «снять флаги» с файлов:

#tripwire –update

После этого можно смело в крон запихивать такую строку для автоматизации:

tripwire –check > /dev/null 2>&1 && tripwire –update


http://skeletor.org.ua/?p=146

Обновлено: 12.03.2015