Skip to content

ilyshnikova/file-integrity

Repository files navigation

Илюшникова Анастасия, БПМИ146.

File Integrity.

В данном проекте реализована утилита нотификации изменений, производимых над фиксированным набором файлов. Система состоит из демона, который следит за изменениями контрольных сумм файлов, и клиента, с помощью которого можно задать конкретные файлы в системе, за которыми требуется следить. При любом изменении файла посылается письмо на электронную почту. 


Основные особенности утилиты(выполненные в соответствии с требованиями к проекту):

  • исходный код утилиты находится в репозитории на github  
  • реализована функция подсчета контрольной суммы файла (функция  WorkSpace::Evaluation в файле file-integrity.cpp)  
  • реализован функционал сохранения контрольной суммы в базе Berkley (класс Table с множеством методов в файле BerkeleyDB.cpp)  
  • реализован функционал проверки контрольной суммы при изменении файла (функция WorkSpace::CheckFile в файле file-integrity.cpp)  
  • имеется файл CMakeLists.txt, с помощью которого происходит сборка проекта через cmake  
  • при передаче утилиты имени файла она проверяет, существует ли файл (с помощью вызова функции access)  
  • есть запрос check file..., который проверяет, изменилась ли чек-сумма файла 


Технические особенности:

  • добавление в базу нового файла реализована с помощью команды add file... в клиенте  
  • обновление контрольных сумм старых файлов реализовано с помощью команды update file... в клиенте  
  • проверка всех файлов в базе реализована в отдельном треде в демоне  
  • программа реализована в виде демона, лог работы которого пишется на диск  
  • происходит уведомление о изменениях файла по сети через адрес электронной почты  
  • имеется поддержка регулярного выражения в путях через команду add files...  
  • манипуляции с файлами перехватываются с помощью inotify_add_watch  
  • манипуляции с изменениями атрибутов файлов также перехватываются через inotify_add_watch  
  • демон является многопоточным, прием запросов и обработка файлов разделена по тредам

Зависимости можно найти в файле file-integrity/debian/control

Установка.

  1. Скачать репозиторий и зайти в папку file-integrity.

  2. С установкой пакета: debuild

  3. dpkg -i ../file-integrity_99999.9_i386.deb && apt-get install && dpkg -i ../file-integrity_99999.9_i386.deb (запустится демон, который будет следить за файлами в базе данных, еcли таковые имеются)

  4. Настроить Exim:

    1. dpkg-reconfigure exim4-config

    2. Выбрать "интернет-сайт; прием и отправка почты напрямую, используя SMTP"(internet site; mail is sent and received directly using SMTP), на остальные вопросы ответить по дефолту.

  5. fi-client (запустится клиент, через который можно добавлять файлы для контроля над ними, удалять, обновлять и т.д., команды, делающие это, можно узнать, набрав help)

Без установки пакета:

  1. Скачать репозиторий и зайти в папку file-integrity.

  2. cmake CMakeLists.txt && make (если программа уже была запущена ранее выполнить pgrep fi-server && kill -9 $(pgrep fi-server) && pgrep fi-client && kill -9 $(pgrep fi-client) )

  3. ./fi-server > /file-integrity.log &

  4. ./fi-client

integrity> help
Queries:
	add file <filename>
	delete file <filename>
	check file <filname>
	update file <filename>
	add files <regexp>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published