В случае взлома сервера, хакер может модифицировать файлы с целью оставить какой-нибудь бэкдор, шелл и т.п. Изменённые файлы можно было бы отследить по дате модификации, но эту дату легко подделать посредством утилиты touch.
Вместо этого можно сравнивать контрольные суммы файлов. Если контрольная сумма файла будет отличаться от имеющейся, то файл был модифицирован. Этот метод можно применять для любых файлов: конфигурационных, файлов сайта, исполняемых файлов и т.д.
Чтобы подсчитать контрольные суммы файлов, например, в папке /etc, воспользуемся комбинацией команд find и sha256sum:
# find /etc -type f | xargs sha256sum > file.txt
Флаг -type f указывает программе find искать только файлы (для папок вычислить контрольную сумму нельзя), а file.txt — это имя файла, куда будут записаны хэш-суммы всех найденных файлов.
Если необходимо подсчитать контрольную сумму только для определённых файлов, php, например, то следует указать флаг -name *.php (маска файлов * обязательно экранируется обратным слэшем):
# find www -type f -name *.php | xargs sha256sum > file.txt
Также можно вычислить контрольную сумму для конкретного файла:
# sha256sum backup.tar.gz > file.txt
А теперь сравним полученные хэш-суммы с хэш-суммами файлов:
# sha256sum -c file.txt
И если контрольная сумма конкретного файла совпадает с имеющейся в file.txt, то этот файл не был изменён с момента последней проверки. О целостности говорит метка ЦЕЛ напротив файла.
Конечно, это не поможет вам защитить сервер, но окажет дополнительную помощь в поиске следов присутствия хакеров.
А помимо sha256 можно использовать любой другой алгоритм: md5, sha512, sha1, sha384.