Что делать если под рукой нет tripwire или osec, а кривой aide вы пользоваться не хотите.
Часть функций , таких как проверка прав доступа и изменение файлов, можно реализовать штатными стедствами.Вот маленький скрипт который помещается в crontab и позволяет это реализовать.
При желании его функции можно легко расширить.
#!/bin/bashulimit -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
А можно подправленный вариант для FreeBSD еще представить?
#!/bin/shulimit -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