Будучи опытным пользователем Linux, мы встречали множество инструментов, которые помогают в различных аспектах системного администрирования и безопасности.
Один из таких инструментов, который мы считаем особенно полезным, — hashdeep. Это мощная утилита командной строки, которая в основном используется для проверки целостности файлов и подтверждения криптографических хэшей.
В этой статье мы подробно расскажем о том, что такое hashdeep, как он работает и как его можно эффективно использовать в среде Linux.
Что такое hashdeep?
hashdeep — это инструмент, используемый для вычисления, сравнения и проверки хэшей файлов, которые представляют собой уникальные идентификаторы, создаваемые путём применения хэш-функции (например, SHA-256 или MD5) к содержимому файла. Эти хэши служат «отпечатками пальцев» для файлов. Если два файла имеют одинаковый хэш, это означает, что их содержимое идентично.
hashdeep поддерживает несколько алгоритмов хеширования, таких как MD5, SHA-1 и SHA-256, что делает его универсальным для различных случаев использования.
- Проверка целостности файлов: проверка того, что файлы не были изменены или повреждены со временем.
- Цифровая криминалистика: проверка целостности файлов при проведении криминалистических расследований.
- Резервное копирование и восстановление: проверка целостности резервных файлов и обеспечение согласованности данных в процессе восстановления.
Установка hashdeep в Linux
Прежде чем мы перейдём к его использованию, давайте сначала установим hashdeep в вашей системе Linux. Он доступен в большинстве репозиториев дистрибутивов, поэтому установить его легко.
sudo apt install hashdeep [в Debian, Ubuntu и Mint] sudo yum install hashdeep [в RHEL/CentOS/Fedora и Rocky/AlmaLinux] sudo emerge -a sys-apps/hashdeep [в Gentoo Linux] sudo apk add hashdeep [в Alpine Linux] sudo pacman -S hashdeep [в Arch Linux] sudo zypper install hashdeep [в OpenSUSE] sudo pkg install hashdeep [в FreeBSD]
После установки вы можете начать использовать hashdeep для вычисления и проверки хэшей файлов.
Ниже приведены некоторые из наиболее распространенных вариантов использования.
1. Вычисление хэшей файлов
Самое простое использование hashdeep — это вычисление хэша одного или нескольких файлов.
hashdeep -c sha256 myqr.png
В этой команде:
-c sha256
определяет алгоритм хэширования (в данном случае SHA-256).myqr.png
это файл, который вы хотите хэшировать.
Вы можете заменить sha256
на md5
, sha1
или другие поддерживаемые алгоритмы в зависимости от ваших предпочтений.
2. Рекурсивное хэширование файлов в каталоге
Вы также можете хешировать все файлы в каталоге, включая подкаталоги, с помощью флага -r
(рекурсивный):
hashdeep -c sha256 -r /путь/к/вашей/директории
3. Сохранение хэшей в файл
Если вы хотите сохранить рассчитанные хэши в файл для последующего сравнения, вы можете использовать опцию -o
для указания выходного файла:
hashdeep -r andreyex > hashes.txt cat hashes.txt
4. Проверка целостности файлов
Одно из важнейших применений hashdeep — проверка целостности файлов. Если у вас уже есть список известных хэшей (например, из предыдущего сеанса), вы можете сравнить хэши текущих файлов с этими известными значениями, чтобы определить, были ли какие-либо файлы изменены.
Для этого используйте следующую команду для проверки файлов:
hashdeep -a -k hashes.txt -r /home/andreyex/andreyex
Эта команда рекурсивно проверит все файлы в каталоге «andreyex» на соответствие хэшам, перечисленным в hashes.txt
, что позволит вам убедиться в их целостности.
5. Одновременная генерация нескольких хэшей
Чтобы вычислить несколько типов хэшей (например, MD5, SHA-1 и SHA-256) одновременно, вы можете указать несколько алгоритмов с помощью флага -c
:
hashdeep -c md5,sha1,sha256 -r /путь/к/вашему/каталогу
Заключение
hashdeep — это универсальный и мощный инструмент для проверки целостности файлов и цифровой криминалистики. Поддержка нескольких алгоритмов хеширования, рекурсивное хеширование каталогов и сравнение файлов делают его незаменимым инструментом для всех, кто работает в сфере безопасности, криминалистики или системного администрирования.