Quantcast
Channel: ОМСКАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ LINUX »Разработки
Viewing all articles
Browse latest Browse all 7

LUKS Header Backup Helper

$
0
0
Связка ключей

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

Потеря — это всегда боль…

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

Особенно это касается систем хранения данных с шифрованием разделов. Просто потому, что зашифрованные данные особенно уязвимы к ошибкам. Да, безусловно, некоторые алгоритмы позволяют восстановить поток после сбойного блока. Но этот блок в любом случае будет безвозвратно потерян. И особенно это страшно, если речь идёт об ошибках в области заголовков LUKS. Ведь если ошибка появилась в том месте, где размещены слоты для ключей, это в контексте восстановленя данных практически равносильно низкоуровневому форматированию. Да, это очень удобно, когда срочно необходимо избавиться от информации. А когда эта самая информация, зашифрованная криптостойким алгоритмом с 256-битным ключом, позарез нужна для работы крупного предприятия? Что же делать в таких случаях?

Выход есть!

Во-первых, без паники! Если вы используете любое ПО для резервного копирования данных, в худшем случае вы потеряете время на развёртывании копии системы. Не имеет значения, bacula ли это будет, backuppc или голый rsync. Главное, что важные данные, которые требуются ежедневно, будут сохранены в надёжном месте. Безусловно, на другой машине. Желательно в другом здании. Ещё лучше — в другой стране в надёжном дата-центре.

«Но как же,» — спросите вы, — «это связано с LUKS?» Собственно, напрямую. Поскольку cryptsetup умеет делать бэкапы LUKS-заголовков и, соответственно, восстанавливать их. И что самое важное, восстановление заголовка из бэкапа может спасти диск даже в том случае, когда заголовок был просто полностью забит мусором из /dev/random. Да-да! Я лично проверял. Всё работает. Кстати, в связи с этим возникает некая идея «уничтожения» данных с последующим их «волшебным восстановлением»… Ну там если «маски-шоу»… Или если подзаработать захотелось… Гм… Впрочем, ближе к делу. Итак, вот они — две волшебные команды, которые спасут ваши данные/время/деньги/задницупрочие причиндалы.

Сделать бэкап LUKS-заголовка:

cryptsetup luksHeaderBackup <LUKS_DEVICE> --header-backup-file <header_file_name>

Восстановить LUKS-заголовок из бэкапа:

cryptsetup luksHeaderRestore <LUKS_DEVICE> --header-backup-file <header_file_name>

Да, есть ещё одна дополнительная возможность, которая считается весьма опасной. И правильно, в сущности, считается. Потому что это не что иное, как создание мастер-ключа. Удобно, на самом деле: можно на одном мастер-ключе наклепать шифрованных разделов и не бояться забыть пароли. Да вообще пароли можно не знать: нагенерить их автоматически из /dev/random и поскидывать на флэшки, которые вставлять по мере надобности при загрузке. В случае чего мастер-ключ позволит расшифровать раздел, даже без знания обычных ключей. Однако, очевидно, что это палка о двух концах: посеял файлик с мастер-ключом, и все соответствующие разделы можно считать скомпрометированными. Ну либо мёртвыми. И неизвестно ещё, что хуже. Кстати, вот команда для сдампливания мастер-ключа:

cryptsetup luksDump --dump-master-key <LUKS_DEVICE>

Да, вот так просто можно подарить кому-то все свои заботливо зашифрованные данные.

Ну так, собственно, к чему это я всё? К тому, что следующим логичным шагом в деле защиты данных будет

Автоматизация

Собственно, отсюда и начинается та самая реклама, про которую был соответствующий тэг.

Итак… [барабанная дробь] Встречайте! Скрипты для автоматического создания бэкапа заголовков LUKS и мастер-ключа! А на…зачем, собственно, нужны какие-то там непонятные скрипты, если всё делается буквально в полторы-две команды? Отличный вопрос!

  • Во-первых, теперь даже не нужно набирать эти полторы команды, достаточно одной.
  • Во-вторых, для файлов заголовка и мастер-ключа подсчитываются контрольные суммы по нескольким алгоритмам.
  • В-третьих, всё это добро архивируется и шифруется.
  • В-четвёртых, к шифрованному архиву по мере возможностей добавляются тома для восстановления. Чтобы в случае, если флэшку с бэкапом пробьёт шальной протон с высокой энергией, и банк в 128 кБ окажется мёртвым, то была бы возможность откачать этот архиив. А то кому нужен супер-пупер защищённый, вусмерть зашифрованный, но при этом битый бэкап, который невозможно восстановить?

Подробно работу со скриптами описывать не буду, поскольку всё есть в Readme. Однако, на всякий случай отмечу, что кроме coreutils и cryptsetup, скриптам для работы понадобится ещё и xxd. А если хочется ещё и создать тома для восстановления архива, то нужно будет поставить par2. Больше никаких сложностей возникнуть не должно.

Так что, если кто хочет дополнительно обезопасить свои данные и себя, заходите в репу на гитхабе (по ссылке выше).


P.S.: Этот пост посвящается памяти всех данных, безвозвратно утерянных вследствие обстоятельств непреодолимой силы или просто пользовательского/админского раздолбайства (что по сути одно и то же).


Viewing all articles
Browse latest Browse all 7

Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Trending Articles


Ang Nobela sa “From Darna to ZsaZsa Zaturnnah: Desire and Fantasy, Essays on...


Lola Bunny para colorear


Dino Rey para colorear


Girasoles para colorear


Dibujos de animales para imprimir


Renos para colorear


Dromedario para colorear


Long Distance Relationship Tagalog Love Quotes


Love Quotes Tagalog


RE: Mutton Pies (mely)





Latest Images

Pangarap Quotes

Pangarap Quotes

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC