The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Контроль целостности системы штатными средствами
Что делать если под рукой нет tripwire или osec, а кривой aide вы пользоваться не хотите. 
Часть функций , таких как проверка прав доступа и изменение файлов, можно
реализовать штатными стедствами.

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


#!/bin/bash

ulimit -t 20
checkdir="/bin /sbin"
filedb="/var/tmp/permsecdb"
email="[email protected]"

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"

Успешного контроля.
 
13.07.2005 , Автор: Avatar
Ключи: file, md5, fs, security / Лицензия: CC-BY
Раздел:    Корень / Программисту и web-разработчику / Shell / Готовые скрипты

Обсуждение [ RSS ]
  • 1, новичек (??), 17:19, 16/07/2005 [ответить]  
  • +/
    А можно подправленный вариант для FreeBSD еще представить?
     
  • 2, DrewMaks (?), 17:40, 28/07/2005 [ответить]  
  • +/
    #!/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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру