URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 11831
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Контроль целостности системы штатными средствами"

Отправлено auto_tips , 16-Июл-05 17:19 
Что делать если под рукой нет tripwire или osec, а кривой aide вы пользоваться не хотите.
Часть функций , таких как проверка прав доступа и изменение файлов, можно реализовать штатными стедствами.

Вот маленький скрипт который помещается в crontab и позволяет это реализовать.
При желании его функции можно легко расширить.


#!/bin/bash

ulimit -t 20
checkdir="/bin /sbin"
filedb="/var/tmp/permsecdb"
email="test@test.ru"

out=$(
exec 2>&1
umask 266
find $checkdir -type f -printf "%m\t" -exec md5sum {} \; >$filedb.tmp
diff $filedb $filedb.tmp
mv -f $filedb.tmp $filedb
)
if [ "$out" ];then
    (date; echo; echo "$out") |mail -s "Change permsec `hostname`" $email
fi

- ulimit лучше выставить не случай не предвиденных ситуаций.
- checkdir соответственно проверяемые директории
- filedb текстовой файл базы
- email куда посылать мыло

Если изменений в системе не было, то сообщения посылаться не будут.
Сообщение бывает 4 видов

1 - ошибки
2 - добавлен файл "> 644    d41d8cd98f00b204e9800998ecf8427e  /bin/12"
3 - удален файл "< 755    c1a0ff878c603dd91f603059e9c1a0a1  /bin/12"
4 - изменен файл "
< 755    ce367ef1e2cca19e6216874cb8c09d96  /bin/12
---
> 755    c1a0ff878c603dd91f603059e9c1a0a1  /bin/12"

Успешного контроля.

URL:
Обсуждается: http://www.opennet.me/tips/info/871.shtml


Содержание

Сообщения в этом обсуждении
"Контроль целостности системы штатными средствами"
Отправлено новичек , 16-Июл-05 17:19 
А можно подправленный вариант для FreeBSD еще представить?

"Контроль целостности системы штатными средствами"
Отправлено DrewMaks , 28-Июл-05 17:40 
#!/bin/sh

ulimit -t 20
checkdir="/bin /sbin /etc /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /usr/home "
filedb="/var/tmp/permsecdb"
email="user@mailhost"

out=$(
exec 2>&1
umask 266
/usr/bin/find $checkdir -type f  -exec /sbin/md5 {} \; >$filedb.tmp
/usr/bin/diff $filedb $filedb.tmp
mv -f $filedb.tmp $filedb
)
if [ "$out" ];then
    (date; echo; echo "$out") |mail -s "Change permsec `hostname`" $email
fi