Гид по технологиям

Как зашифровать файлы в Linux с помощью Tomb

5 min read Шифрование Обновлено 02 Dec 2025
Шифрование файлов в Linux с Tomb
Шифрование файлов в Linux с Tomb

Главное изображение: интерфейс и логотип Tomb

TL;DR

Tomb — лёгкий shell‑скрипт для шифрования файлов и папок в Linux без необходимости шифровать весь диск. Установите зависимости, распакуйте архив Tomb, создайте контейнер командой dig, сгенерируйте ключ forge, привяжите его lock и откройте open. Используйте slam для экстренного закрытия, resize для увеличения размера, index/search для поиска внутри открытых томбов.

Это руководство объясняет, как установить и использовать Tomb в Ubuntu и сходных дистрибутивах. Оно подходит для пользователей, которым нужно зашифровать отдельные файлы и папки, а не весь диск. Включены практические советы, шпаргалки по командам, сценарии при сбоях и рекомендации по безопасности.

О чём статья (intent и варианты)

  • Основной запрос: Как зашифровать файлы в Linux с помощью Tomb
  • Варианты: установка Tomb в Ubuntu, создание и открытие tomb, ключи‑изображения, расширение tomb, индексирование и поиск

Почему использовать Tomb для шифрования файлов в Linux

Tomb — это набор утилит (запускаемых как shell‑скрипты), который опирается на стандартные инструменты Linux: GnuPG для обработки криптографии, cryptsetup для создания зашифрованных контейнеров, dd для работы с образами и т. п. Благодаря этому Tomb не создаёт собственной закрытой среды: он интегрируется с системой и использует надёжные, поддерживаемые инструменты.

Ключевые преимущества:

  • Локальная работа без необходимости устанавливать тяжёлые зависимости или иметь доступ в интернет.
  • Можно шифровать только нужные файлы и папки, не затрагивая разделы операционной системы.
  • Поддержка ключей‑файлов и ключей‑изображений для гибкой передачи доступа.
  • Совместимость с пользовательскими shell‑скриптами и резервными решениями.

Иллюстрация: логотип GnuPG и значки инструментов шифрования

Важно: Tomb сам по себе — оболочка; безопасность зависит от настроек cryptsetup/GnuPG и от надёжности используемых ключей и паролей.

Что нужно знать в двух словах

  • Tomb создаёт зашифрованный файл‑контейнер (например, first.tomb).
  • Ключ (файл или изображение) привязывается к контейнеру: lock/forge/ bury.
  • Open монтирует контейнер как файловую систему; close/slam отмонтируют и шифруют содержимое.

Установка Tomb в Ubuntu

Предварительные требования: убедитесь, что у вас установлены зависимые пакеты. В исходном материале приведена команда установки; обратите внимание на возможные опечатки и проверьте названия пакетов в репозитории вашего дистрибутива.

Оригинальная команда из источника (сохранена как есть):

sudo apt installzshfile gnupg cryptsetup pinentry-curses wgetmake steghide mlocate

Примечание: в большинстве случаев команда должна выглядеть примерно так (исправленный пример):

sudo apt install zsh gnupg cryptsetup pinentry-curses wget make steghide mlocate

Дальше скачиваем архив Tomb (пример с сайта разработчика):

wget https://files.dyne.org/tomb/releases/Tomb-2.9.tar.gz

Распаковываем и устанавливаем:

tar xvzf ./Tomb-2.9.tar.gz
cd Tomb-2.9
sudomakeinstall

Команда make install по умолчанию скопирует исполняемые скрипты в /usr/local/bin и установит права. Проверьте установку командой:

man tomb

Скриншот процесса установки зависимостей

Важно: при установке из исходников проверяйте контрольные суммы и источник архива. Если вы работаете в среде с повышенными требованиями безопасности, соберите пакет в изолированной среде.

Создание первого tomb: базовый рабочий цикл

  1. Создаём контейнер фиксированного размера с помощью dig. Пример создания 100МБ контейнера:
tomb dig-s100 first.tomb

Этот контейнер представляет собой файл‑образ, в котором будет создана зашифрованная файловая система.

  1. Генерируем ключ‑файл с помощью forge. Пример:
tomb forge -k first.tomb.key

Forge потребляет энтропию системы. На виртуальных машинах или при недостатке энтропии генерация может быть медленной. Чтобы ускорить процесс, используйте локальную активность: движение мышью, ввод с клавиатуры, создание сетевого трафика и т. п.

  1. Привязываем ключ к контейнеру:
tomb lock -k first.tomb.key first.tomb
  1. Открываем (монтируем) контейнер:
tomb open -k first.tomb.key first.tomb

После открытия Tomb попросит пароль (если ключ защищён паролем) и затем смонтирует контейнер как обычный раздел в системе. Вы сможете копировать туда файлы, изменять и удалять их как обычно.

Скриншот открытия первого tomb

Практическая заметка по ключам

  • Ключ‑файл (first.tomb.key) — это бинарный файл. Храните его отдельно от контейнера.
  • Можно использовать GnuPG для дополнительного шифрования ключа и для подписи обменных ключей.

Создание ключа‑изображения (bury)

Tomb поддерживает «прятание» ключа внутри изображения — это удобно для передачи доступа без явной пересылки пароля.

Создание ключа‑изображения (привязывает ключ к файлу‑изображению):

tomb bury -k first.tomb.key image.jpg

После выполнения image.jpg будет содержать встроенные данные, которые Tomb способен использовать как ключ. Открыть контейнер с помощью изображения можно так:

tomb open -k image.jpg first.tomb

Замечание по безопасности: изображение с встроенным ключом следует считать секретным — его утечка даст доступ к контейнеру. Используйте стеганографию и дополнительные меры защиты (шифрование файла‑изображения при передаче).

Иллюстрация: создание ключа‑изображения для открытия tomb

Закрытие и экстренное закрытие tomb

Обычное корректное закрытие выполняется командой:

tomb close

Эта команда пере‑шифрует данные, выполняет аккуратный отмонт и освобождает ресурсы.

Если приложение зависло или отмонт не проходит корректно, доступен принудительный режим:

tomb slam

Slam немедленно закрывает все открытые tomb’ы. Используйте эту команду только в экстренных случаях: принудительное закрытие может привести к потере данных или повреждению файловой системы внутри контейнера.

Скриншот: закрытие и принудительное закрытие tomb

Совет: перед slam попытайтесь завершить проблемные процессы через lsof/fuser и корректно отмонтировать точку монтирования.

Расширение и индексирование tomb

Если контейнер заканчивает место, его можно увеличить без создания нового тома.

Пример увеличения first.tomb с 100МБ до 1ГБ (в исходном материале размер указывается в мегабайтах — в команде используется -s1000):

tomb resize -k first.tomb.key -s1000 first.tomb

После изменения образа обычно требуется расширить файловую систему внутри контейнера (resize2fs для ext4 и т. п.). Tomb совместно с cryptsetup/resize2fs обеспечивает механизм увеличения размера, но обратное уменьшение (shrink) не поддерживается — единственный способ «уменьшить» размер — создать новый контейнер меньшего размера и перенести данные.

Индексирование и поиск по открытым tomb’ам

Чтобы ускорить поиск внутри всех открытых tomb’ов, создайте индекс:

tomb index

Поиск по индексированным объектам:

tomb search test
Этот вызов найдёт файлы, содержащие слово «test».

![Скриншот: индексирование и поиск по tomb](/files/0a0e6458-e172-4986-be17-6ca2bec9ebca.png)

## Шпаргалка: самые важные команды Tomb

| Действие | Команда |
|---|---|
| Создать файл‑контейнер 100МБ | tomb dig -s100 first.tomb (dig-s100 в исходном примере) |
| Сгенерировать ключ | tomb forge -k first.tomb.key |
| Привязать ключ к контейнеру | tomb lock -k first.tomb.key first.tomb |
| Открыть контейнер | tomb open -k first.tomb.key first.tomb |
| Закрыть корректно | tomb close |
| Принудительно закрыть | tomb slam |
| Увеличить размер | tomb resize -k first.tomb.key -s1000 first.tomb |
| Индексировать | tomb index |
| Поиск | tomb search <термин> |

Примечание: некоторые примеры в исходной статье используют сокращённую форму опций (dig-s100). Всегда проверяйте справку man tomb на вашем дистрибутиве.

## Критерии приёмки

Чтобы считать, что вы правильно настроили и используете Tomb, выполните следующие проверки:
- Контейнер создаётся и имеет ожидаемый размер: ls -lh first.tomb
- Ключ успешно сгенерирован и хранится в безопасном месте: file first.tomb.key
- Tomb открывается и монтирует файловую систему: tomb open …; mount | grep tomb
- После close точка монтирования отсутствует и файл‑контейнер остаётся доступен: mount не показывает монтирования, файл присутствует
- Индексирование и поиск работают корректно: tomb index; tomb search <существующая строка>

## Контрольный список для администратора (роль‑ориентированный)

Для системного администратора:
- [ ] Убедиться, что установлены cryptsetup и gnupg
- [ ] Проверить права доступа к ключам: chmod 600 first.tomb.key
- [ ] Настроить мониторинг состояния /var/log/syslog на ошибки cryptsetup
- [ ] Создать резервную копию ключей (без хранения рядом с контейнером)
- [ ] Тестировать процедуру восстановления на стенде

Для рядового пользователя:
- [ ] Понимать, где хранится ключ и как его резервировать
- [ ] Уметь корректно закрывать tomb перед выключением
- [ ] Не загружать контейнеры с подозрительных источников

## Отладка и распространённые проблемы

Проблема: "Не открывается, ошибка при проверке подписи/ключа" — проверьте, что вы используете именно тот файл‑ключ, который был сгенерирован для данного контейнера. Проверьте целостность файла: sha256sum.

Проблема: "Мало энтропии при forge" — сгенерируйте дополнительную активность, установите rng-tools или haveged для подкачки энтропии.

Проблема: "Принудительное закрытие повредило данные" — восстановление возможно через fsck на распакованном контейнере после его временного монтирования в безопасном режиме. Плановый бэкап важен.

## Когда Tomb не подходит (контрпример)

- Если вам нужно шифровать весь диск (например, LUKS для системных разделов), то Tomb не заменит full‑disk encryption.
- Если требуются аппаратные модули HSM/TPM для хранения ключей: Tomb хранит ключи как файлы и не предоставляет встроенную поддержку HSM (хотя можно интегрировать через скрипты).
- Если вы ожидаете динамического уменьшения файла‑контейнера — Tomb не умеет «сжимать» образ обратно.

## Альтернативные подходы

- LUKS/cryptsetup — шифрование раздела/диска; лучше для систем, которые требуют защиты всего диска.
- eCryptfs — шифрование на уровне файловой системы (user space) с другой моделью управления ключами.
- VeraCrypt — кроссплатформенный инструмент с GUI, подходит для переносимых контейнеров.

## Безопасность и жёсткая практика

Рекомендации:
- Храните ключи отдельно от контейнеров и используйте файловую систему с ограниченным доступом (chmod 600).
- Рассмотрите использование GnuPG для дополнительной защиты ключей.
- Регулярно делайте резервные копии зашифрованных контейнеров и ключей. Без ключа данные восстановить невозможно.
- Включайте журналирование операций и проверяйте логи на предмет неподтверждённого доступа.

## Конфиденциальность и соответствие (коротко)

Tomb оперирует локальными файлами и ключами; если вы используете Tomb в организациях, обговорите с отделом безопасности требования к хранению криптографических материалов и срокам хранения. Для персональных данных применяйте стандартные практики GDPR: минимизация хранения, ограничение доступа, документирование процессов удаления.

## Мини‑методология: быстрый план внедрения Tomb в рабочую среду

1. Создать тестовую виртуальную машину.
2. Установить Tomb и зависимости, проверить команды man.
3. Выполнить цикл: dig → forge → lock → open → close → slam на тестовых данных.
4. Разработать процедуру резервного копирования ключей (ключи хранятся отдельно, доступ через ACL).
5. Провести тест аварийного восстановления и документировать шаги.
6. Внедрить мониторинг и уведомления об ошибках.

## Decision flow: когда использовать Tomb

flowchart TD A[Нужно шифровать файлы?] –> B{Требуется шифровать весь диск?} B – Да –> C[LUKS / full‑disk encryption] B – Нет –> D{Нужно переносимое контейнерное хранилище?} D – Да –> E[Tomb или VeraCrypt] D – Нет –> F[eCryptfs или отдельные инструменты] E –> G[Выбрать Tomb, если важна интеграция с GNU/Linux и shell]


## Тестовые сценарии и критерии приёмки

Критерии приёмки:
- Установка проходит без ошибок и команды tomb доступны.
- Операции dig/forge/lock/open/close выполняются без потери данных при стандартных сценариях.
- Resize увеличивает доступный объём файловой системы внутри контейнера.
- Index/search возвращают ожидаемые результаты по тестовым файлам.

Тестовые сценарии:
- Создать контейнер 100МБ, смонтировать, записать файлы, закрыть, открыть — сравнить контрольные суммы.
- Сгенерировать ключ‑изображение, открыть контейнер с помощью изображения на другом хосте.
- Смоделировать нехватку места и выполнить resize.
- Смоделировать сбой приложения при открытом контейнере и протестировать slam и восстановление.

## Краткое резюме
Tomb — удобный инструмент для зашифрования отдельных файлов и папок в Linux. Он лёгкий, опирается на проверенные системные утилиты и удобен для случаев, когда полное шифрование диска не требуется. Соблюдайте простые правила безопасности: храните ключи отдельно, делайте бэкапы и тестируйте процедуры восстановления.

![Скриншот: демонстрация смонтированного tomb‑раздела в файловом менеджере](/files/c73b40ed-c4af-4cf1-b100-31db005825eb.png)

Изображения и примеры команд из оригинального материала. Все скриншоты служат иллюстрациями процесса установки и использования Tomb. Изображение обложки и скриншоты сохранены в качестве иллюстраций.

Image credit: Unsplash. All screenshots and alterations by Ramces Red.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Удаление игр с PS5 M.2 SSD через приложение
Гайды

Удаление игр с PS5 M.2 SSD через приложение

Трансляция YouTube с телефона на ПК
Технологии

Трансляция YouTube с телефона на ПК

Как использовать ADB и Fastboot на Linux
Инструменты Android

Как использовать ADB и Fastboot на Linux

Как узнать, заблокировали ли вас на Android
Android.

Как узнать, заблокировали ли вас на Android

Очистка кэша Dropbox на Android и iPhone
Мобильные устройства

Очистка кэша Dropbox на Android и iPhone

Как разблокировать адрес в Gmail — пошагово
Gmail

Как разблокировать адрес в Gmail — пошагово