Контроль целостности серверов. Tripwire.

mi2Есть у меня в управлении несколько серверов. Системы для разработки, хостинга и поддержки. Каждая из них доступна из интернета, соответственно может бытъ взломана. Неуязвимых систем, к сожалению, не существует. За последние пару недель видел 2 покореженные системы (Linux). Одна, Slackware 10 (?), очень давно не патчилась. Была взомана, сохранились логи, последняя введенная команда была “rm -rf /”. Специалист, который ее потом восстанавливал, был страшно рад.
С другой (Slackware 10) пришлось разбираться самому. Как выяснилось, кто-то поменял в /etc/inittab значение defaultrunlevel с 3 на 6. После скачка питания, пробоя ИБП и перезагрузки сервера, система ушла в бесконечный цикл перезагрузок. Пришлось ехать к хостеру и вдумчиво ковыряться в системе. Виновных так и не нашли.

Пришлось кое-где оставить сюрпризы особо активным пользователям, которым по работе нужен полный доступ к системе, и тем, кто потенциально может вломиться снаружи, – tripwire. Название говорит само за себя. Рассмотрю начальную настройку на Debian Lenny.

$ sudo apt-get update
$ sudo apt-get install tripwire

scr1

После установки и генерации парольных фраз нужно отредактировать файлы конфигурации и политик, и инициализировать систему. Описание политик в открытом виде хранится в файле /etc/tripwire/twpol.txt. Конфигурация tripwire находится там же, /etc/tripwire/twcfg.txt. Файл политик только шаблон, его надо подогнать под свою систему, иначе будет поток ложных срабатываний.  Файл конфигурации у меня выглядел так:

$ sudo nano /etc/tripwire/twcfg.txt
ROOT          =/usr/sbin
POLFILE       =/etc/tripwire/tw.pol
DBFILE        =/var/lib/tripwire/$(HOSTNAME).twd
REPORTFILE    =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE   =/etc/tripwire/site.key
LOCALKEYFILE  =/etc/tripwire/$(HOSTNAME)-local.key
EDITOR        =/usr/bin/nano
LATEPROMPTING =false
LOOSEDIRECTORYCHECKING =false
MAILNOVIOLATIONS =false
EMAILREPORTLEVEL =3
GLOBALEMAIL =my@email.com
REPORTLEVEL   =3
SYSLOGREPORTING =true
MAILMETHOD    =SMTP
SMTPHOST      =my.smtp.server
SMTPPORT      =25

Далее следует перекомпилировать конфигурацию и политики для tripwire:

$ sudo twadmin -m P -S site.key twpol.txt
$ sudo twadmin -m F -S site.key twcfg.txt

Инициализировать создание базы:

$ sudo tripwire -m i

По окончании процедуры необходимо проверить что все работает как надо ( по-умолчанию стоит ежедневная проверка):

$  sudo /etc/cron.daily/tripwire

Если все работает, файлы twpol.txt и twcfg.txt ДОЛЖНЫ БЫТЬ УДАЛЕНЫ!

При необходимости внести измененния они восстанавливаются из криптованных:

$ sudo sh -c "twadmin --print-polfile > /etc/tripwire/twpol.txt"
$ sudo sh -c "twadmin --print-cfgfile > /etc/tripwire/twcfg.txt"

Вносятся изменения, регенерируется база и текстовые файлы удаляются.

За более подробной информацией можно обратиться к статье “Tripwire: принципы работы, установка и настройка”.

В принципе, опытный взломщик может обойти ловушку, так что расслабляться не стоит. Но сомневаюсь, что специалист такого уровня будет пакостить в вашей системе. Удачи!

Leave a comment

Your comment