После того, как была создана база данных, Tripwire готов к употреблению. Если он был установлен с RPM, то будет параллельно добавлена задача cron: Tripwire будет запускаться ежедневно. Если же он был установлен вручную, для автоматической ежедневной проверки нужно создать файл twcheck в /etc/cron.daily:
#!/bin/shHOST_NAME= 'uname -n'
if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ]; then echo "*** Error: Tripwire database for ${HOST_NAME} not fountd"
echo "*** Run "/etc/tripwire/twinstall.sh" and/or "tripwire —init." else
test -f /etc/tripwire/tw.cfg && /usr/sbin/tripwire --check fi
Ручная проверка.
Для ручной проверки выполните команду:
Parsing policy file: /etc/tripwire/tw.pol
*** Processing Unix File System ***
### Warning: File system error.
### Filename: /usr/sbin/fixrmtab
### No such file or directory
### Continuing...
Опять видно сообщения о несуществующих файлах/каталогах. По окончании сканирования в каталог /var/lib/tripwire/report будет записан ответ, и отчет будет выведен на STDOUT:
Tripwire(R) 2.3.0 Integrity Check Report
Report generated by: root
Report created on: Sun 05 Sep 2010 04:26:11 1ST
Database last updated on: Never
Report Summary:
Host name: polo
Host IP address: 127.0.0.1
Host ID: None
Policy file used: /etc/tripwire/tw.pol
Configuration file used: /etc/tripwire/tw.cfg
Database file used: /var/lib/tripwire/polo.twd
Command line used: /usr/sbin/tripwire --check
Rule Summary:
Section: Unix File System
Rule name Security Level Added Removed
Modified
Invariant Directories 66 0 0 0
Critical devices 100 0 0 0
Temporary directories 33 0 0 0
*Tripwire Data files 100 10 0
*Root config files 100 0 0 2
User binaries 66 0 0 0
Tripwire binaries 100 0.0 0
Critical configuration files 100 0 0 0
Libraries 66 0 0 0
Operating System Utilities 100 0 0 0
Critical system boot files 100 0 0 0
File System and Disk Administration Programs 100 0 0 0
Kernel Administration Programs 100 0 0 0
Network Programs 100 0 0 0
System Administration Programs 100 0 0 0
Hardware and Device Control Programs 100 0 0 0
System Information Programs 100 0 0 0
Application Information Programs 100 0 0 0
Shell Related Programs 100 0 0 0
Critical Utility Sym-Links 100 0 0 0
Shell binaries 100 0 0 0
System boot changes 100 0 0 0
OS executables and libraries 100 0 0 0
Security control 100 0 0 0
Login Scripts: 100 0 0 0
Total objects scanned: 36816 Total violations found: 3
Object Summary:
Section: Unix File System
Rule name: Root config files (/root) Security Level: 100
Modified:
"/root"
"/root/.viminfo"
Rule name: Tripwire Data Files (/var/lib/tripwire) Security Level: 100
Added: "/var/lib/tripwire/polo.twd"
Error Report:
Section: Unix File System
1. File system error.
Filename: /usr/sbin/fixrmmtab No such file or directory
*** End of report ***
Tripwire 2.3 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered trademark of Tripwire, Inc.
This software comes with ABSOLUTELY NO WARRANTY; for details use --version. This is free software which may be redistributed or modified only under certain conditions; see COPYING for details.
All rights reserved.
Integrity check complete.
Как видно, было обнаружено нарушение правил: файл /var/lib/tripwire/polo.twd (база данных Tripwire) был добавлен, а файл /root/.vminfo (применяется текстовым редактором vim) изменен, в результате чего модифицированным считается каталог /root, о чем и сообщил Tripwire.
Обновление базы данных
Чтобы Tripwire не выводил предупреждения на изменение файла .vminfo, нужно определить этот файл как Dynamic или просто добавить следующее правило в файл правил (чтобы Tripwire игнорировал этот файл):
Если же изменен важный файл, к примеру, отредактирован какой-то конфигурационный файл в каталоге /etc, то нужно сообщить об данном Tripwire. Для этого Tripwire запускается с опцией -update и опцией -twrfile, после которой показывается файл отчета:
Tripwire запустит текстовый редактор (vi по умолчанию), в котором откроет ответ для проверки и изменения. Как показано в следующем листинге, нужно выделить X все объекты, которые можно обновить.
Remove the "X" from the adjacent box to prevent updating the database with the new values for this object
Modified:
[X] "/root"
[X] "/root/.vminfo"
Информация обо всех объектах, отмеченных X, будет обновлена в базе данных. После того, как проверка отчета закончена, нужно ввести «:q» для выхода из vi (сохранять изменения с помощью «:w» не надо). Как только vi будет закрыт, база данных обновится.
Обновление файла правил
Если надо обновить файл правил, необязательно производить всю процедуру со сценарием twinstall.sh заново. Довольно просто ввести команду:
Где policy.txt — новый файл правил.
Наверное, было заметно, что у Tripwire и у ACL, много общего: оба используют базу данных с описанием объектов системы и режимы, связанные с ними, но еще между ними есть и одно фундаментальное отличие.
ACL не позволяет пользователю выполнить с описанными в базе объектами определенные действия, a Tripwire только информирует администратора, если такие изменения произошли. Администратор и не узнает о произошедших изменениях, пока не запустит проверку целостности.
Даже если администратор и заметит нарушение целостности, у него может не оказаться времени этим заниматься — кто его знает, по какой причине изменился тот или иной файл, чтобы это выяснить, надо время, которого может и не быть. Чтобы это нарушение его не беспокоило, он может просто добавить в файл правило игнорирования того или иного объекта, а потом вообще о нем забыть.
Чтобы решить первую проблему, надо каждый раз запускать Tripwire с помощью cron — просто добавить Tripwire расписание cron и каждый день получать отчеты. А вот для решения второй проблемы помогут уровни безопасности — чем выше уровень, тем важнее объект.
Если уровень высокий, обязательно надо разобраться, почему объект был изменен. А если уровень низкий, надо отложить это на некоторое время.