395 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как создать резервную копию Кали Линукс

Как сделать резервную копию всей вашей системы Linux с помощью Rsync

Главное меню » Операционная система Linux » Как сделать резервную копию всей вашей системы Linux с помощью Rsync

В этом кратком руководстве мы объясним, как сделать резервную копию всей системы Linux с помощью утилиты Rsync.

Резервное копирование всей вашей системы Linux с помощью Rsync

Во- первых, вставьте резервный носитель (внешний жесткий диск или другой носитель). Затем найдите индентификатор диска с помощью команды «fdisk -l». В нашем случае, идентификатор диска /dev/sdb1. Смонтируйте диск в любое место по вашему выбору.

Для резервного копирования всей системы, все, что вам нужно открыть терминал и выполнить следующую команду в качестве пользователя root:

Эта команда создаст резервную копию всего каталога /, за исключением каталогов /dev, /proc, /sys, /tmp, /run, /mnt, /media, /lost+found.

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

  • rsync – Быстрая, универсальная, локальная и удаленная утилита копирования файлов
  • -aAXv – Файлы передаются в режиме «архив», который гарантирует, что символические ссылки, устройство, разрешение, владение, время изменения, списки контроля доступа, а также расширенные атрибуты сохраняются.
  • / – Исходный каталог
  • -exclude – Исключает данные каталоги из резервной копии.
  • /mnt – Это папка назначения резервной копии.

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

Чтобы восстановить резервную копию, просто поменяйте местами путь источника и назначения в команде выше.

Пожалуйста, помните, что это подходит только для локальных и автономных систем . Если ваша система активно имеет доступ к некоторым другим системам в сети, это не лучшее решение. Так, содержание этих систем может быть постоянно обновляется каждую минуту, и некоторые файлы могут изменяться в процессе Rsync. Скажем, например, когда Rsync достигнет файла 2, содержимое предыдущего файла (File 1) может быть изменено. Это оставит вас с ошибкой зависимостей, когда вам нужно будет использовать эту резервную копию. В таких случаях, резервное копирование на основе снимка является лучшим подходом. Поскольку система получит «заморозку» перед началом процесса резервного копирования и позволит его «разморозить», когда заканчивает процесс резервного копирования, так что все файлы будут совместимы.

И это все. Надеюсь это поможет. Если вы найдете нашу статью полезной, пожалуйста, поделитесь ими в социальных, профессиональных сетей, так что другие пользователи также могут извлечь из них выгоду.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как создать резервную копию Кали Линукс?

Как создать резервную копию Кали Линукс или подготовка к восстановлению.

Самый «потребляемый» тип операционных систем на территории бывшего СССР — это ОС семейства Windows. Как сохранить свои данные, в том числе и саму копию ОС, знают почти все пользователи. Более того, различные функции сохранения Windows (отдельных параметров или всей копии) имеется в самой операционной системе. А вот для Unix систем (учитывая их разнообразие) функций по резервному копированию почти не предусмотрено. И обычно это заканчивается тем, что в результате краха системы в небытие канут и все установленные данные, программы, скрипты: всё исчезает вместе в погибшей системой.

Я покажу вам один из возможных вариантов как создать резервную копию Кали Линукс. Эта программа создаёт образ всей операционной системы, из которого по необходимости можно восстановить все данные и настройки Кали. Кроме того, с её помощью можно переносить систему и на другой компьютер. Процесс создания резервной копии автоматический, во время процесса вас будет сопровождать меню и окна на русском.

Как создать резервную копию Кали Линукс: что нам понадобится?

  • Рабочая копия Кали Линукс
  • Интернет
  • скрипт Timeshift

Установка программы

Качаем Timeshift по адресу:

Выбираем подходящий под разрядность Кали тип файла и сохраняем.

Откроем папку с загруженным файлом в терминале:

Командой (проверьте командой ls свою версию скачанного файла)

Добираем к скачанному файлу права. А теперь ставим:

Терминал возвращает информацию о том, что установка завершилась успешно, запуск процесса осуществляется через меню программ или командой из терминала

Покидаем папку (у меня Загрузки) командой cd и сразу создаём резервную копию Кали Линукс:

Не примените воспользоваться справкой Help. Она также русифицирована. Предлагается выбор двух типов снимков копии: RSYNC и BTRFS. Первый (по умолчанию) подойдёт отлично (для второго не хватает целого пакета библиотек, да и не в том часто проблема, хотя там процессы создания образа и восстановления проходят в разы быстрее), им и воспользуемся. Главный же здесь принцип схож с тем, что в Windows: желаете полной безопасности — выбирайте отдельный (не системный) том, отформатированный под ext4. У меня такой возможности в примере, к сожалению, нет, и сохраняюсь на том же томе.

Настройки программы

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

“Достаток” свободного места на диске – критически важный момент. В противном случае (если вы собираетесь хранить образ на том же диске, как и я) система не просто сообщит о нехватке свободного места. Она просто не запустится после перезагрузки или выключения.

В процессе настройки программы жмём кнопку Далее, пока не останется одна лишь Готово. А теперь появляется окно создания первой «точки восстановления». Просто жмём создать. Идём пить кофе, ибо потребуется время.

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

Создать и восстановить Кали из терминала

Ладно, резервная копия имеется. Как восстановить Кали Линукс, имея возможность зайти в графический интерфейс понятно: запускаем знакомой командой, заходим в меню, нажимаем Восстановить. А если такой возможности нет? Вариантов несколько: флешка Кали, среда восстановления из загрузочного меню Кали или Кали-Live на установочном диске. Дело том, что все эти варианты подразумевают возможность соединиться с сетью, скачать программу вновь и восстановить Кали из образа прямо из-под Live-сборки. Восстановите загрузчик заново с помощью той же TIMESHIFT и перезагрузитесь.

Итак, если запуск Timeshift подразумевается из «ремонтного» терминала, лучшим подспорьем будет справка по утилите (немного помогу вам разобраться):

Статья Делаем бекап Kali Linux

Перейти к странице

Решил разбавить статьи про продвинутые сложные фреймворки основами) и написать небольшую памятку начнающим пользователям. Не секрет, что многие используют Kali Linux не только для пентеста, но и для повседневной работы (естественно не из под рута, для этих целей в новом инсталляторе добавили обязательное создание 2 аккаунта для выполнения непривелигированных действий).

Соответственно будет неприятно, когда после одного из обновлений система перестанет запускаться. Даже если дистрибутив используется только в целях пентеста, все равно придется устанавливать и конфигурировать заново.

Лично я люблю экспериментировать с разными версиями драйверов и систем для работы с гибридной графикой, и скажу Вам, что тот же Bumblebee без танцев с бубном удалить не всегда получится.
То же самое касается многочисленного нестабильного ПО типа “суперметасплоит” или новых фреймворков. Как Вы уже догадались речь в статье пойдет про бекапы.

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

В статье доступно напишу про бекап, а так же несколько советов начинающим пользователям Kali Linux.

Читать еще:  Grand Theft Auto 5 на PS4 будет "весить" 50ГБ

Пишу потому, что тема действительно важная – по опыту моего общения могу сказать, что 80% пользователей Kali Linux решают все проблемы переустановкой)). Однако это изначально неправильный
подход, через некотрое время Вам просто надоест это, и Вы уйдете на

. Правильный подход такой – по мере развития своих навыков в Debian Вы будете
делать ошибки и переустанавливать заскамившуюся систему, однако делать это надо редко. Выглядеть будет примерно так:

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

2. Поначалу Вы не будете до конца понимать что нельзя ставить, а что можно (например, что ставить nvidia с либами glvnd надо на чистую систему, в дальнейшем если захотите CUDA, то нужно ставить
драйвер, собранный без glvnd – так во всех мануалах на EN, надо на чистую систему ставить, причем вместе с CUDA, но я заинтересован в либе по понятным причинам, так что пока не лезу на
кактус с CUDA), попытка поменять все на настроеннной системе с большой вероятностью даст Вам кучу ошибок при установке нового драйвера, лично я после этого сносил систему.

Советую ставить synaptic и проверять всякие свистелки через него (заходим в св-ва пакета -> зависимости -> если видим, что пакет “нарушает”, “заменяет”, “повреждает”, “конфликтует”
с чем-либо, то оставляем все как есть, или вкуриваем wiki).

3. Заводим себе журнал2, куда пишем все сомнительные действия, чтобы понять, где произошел прокол.

4. Используем замечательные команды:

# journalctl -b -p err // все, что здесь есть, стоит внимания, это те строки, которые Вы видите перед загрузкой ОС, если на ноутбуке вывод содержит что-то еще кроме этого:

Запасливый пингвин. Программы для резервного копирования в Linux

Содержание статьи

Народные мудрости

На базе Linux любят разворачивать NAS- и FTP-серверы. Для таких систем неплохо бы иметь резервную копию как минимум конфигурации, а в идеале еще и данных. Не стану читать очередную лекцию, насколько важно озаботиться резервным копированием до того, как с основным носителем информации приключится беда. Но повторю одну притчу из айтишного фольклора: люди делятся на тех, кто делает бэкапы, и тех, кто их еще не делает. С основами создания резервных копий ты можешь ознакомиться, например, в упомянутой статье, а мы не будем тратить время на теорию и сразу перейдем к делу.

WARNING

В одной статье всех существующих решений для резервного копирования не обозреть, поэтому мы рассмотрели и сравнили наиболее известные из них. Если тут нет твоей любимой программы — не обессудь.

Самое что ни на есть хардкорное резервное копирование данных с носителей можно выполнить командой dd . И самое прикольное, что можно примонтировать получившийся образ и работать с ним как с обычным разделом в режиме чтения и записи. Никаких тебе DAEMON Tools или Alcohol для эмулирования дисковода.

Снимаем слепок устройства /dev/sdb1 и монтируем его

Подобные способы подкупают своей простотой и удобством создания резервной копии. К тому же не надо беспокоиться, что слетят права и прочие атрибуты файлов или испортятся символические ссылки. Еще можно примонтировать, например, Яндекс.Диск и сразу закидывать бэкапы на него. Но это кажется удобным лишь до поры до времени, пока не требуется ставить создание бэкапов на поток, а нужно лишь снять образ с флешки или диска. Для более серьезных задач в Linux уже существует достаточное количество утилит, делающих процесс резервного копирования с последующим восстановлением почти таким же простым (ну, после некоторой подготовки), как в винде или в macOS, поэтому вместо изобретения еще одного велосипеда давай-ка лучше изучим готовые.

Тем, кто любит помощнее

Ты гик или админишь что-то посложнее сети из двух с половиной хостов? Тогда специально для тебя мы рассмотрим сперва исконно линуксовые, сложные и не всегда понятные с первой попытки программы для создания бэкапов. Начнем, пожалуй, с классики.

rsync

Ходят легенды, что rsync, появившаяся в 1996-м и даже портированная в 1999-м на NT, была разработана для замены rcp (remote copy). А имя ее произошло от словосочетания remote synchronization, для чего она и была предназначена.

Утилита включена во все популярные дистрибутивы Linux; существуют версии для систем BSD, macOS и Windows. Эта свободная программа с интерфейсом командной строки предоставляет широкие возможности синхронизации локальных и удаленных файлов с использованием собственного алгоритма, уменьшающего объем пересылаемого трафика. Она применяется для создания зеркал и резервных копий — полных, инкрементных и при желании (вот один из гайдов) дифференциальных. Для автоматизации можно настроить расписание с помощью задач cron . При передаче на удаленные хосты rsync умеет использовать разный транспорт, в том числе rsh, SSH и сырые сокеты с собственным протоколом rsync. Можно указывать, какие файлы не следует синхронизировать, перечислив их имена, размер и не только; можно ограничивать скорость передачи данных и использовать множество других настроек.

Вот так один маленький слеш в конце пути-источника решает, будет ли создаваться папка в назначении

Rsync позволяет создать демон, своего рода удаленный сервер rsync, который также можно сконфигурировать совершенно по-разному в зависимости от поставленной задачи. Он может принимать удаленные соединения анонимно, по паролю и без, с шифрованием по SSH на заданном порте с использованием ключей, с разными конфигурациями для разных пользователей, создаваемых в рамках rsync. При всем этом для успешного общения двух узлов демон rsync необязателен: разница между использованием демона и работой без него разъясняется на сайте проекта.

Опции настройки демона описаны в man rsyncd.conf , а примеры использования программы также представлены на сайте.

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

luckyBackup

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

Для резервного копирования в luckyBackup создаются профили, внутри которых можно довольно тонко определить задачи:

  • тип (бэкап или синхронизация) и описание задачи;
  • правила копирования определенных директорий: настройка исключений по шаблонам, можно задать их самостоятельно или использовать имеющиеся; включений, которые должны быть обязательно скопированы;
  • настроить использование удаленного узла в качестве источника или места назначения, с SSH или без;
  • сохранение метаданных файлов, обработка ссылок и специальных файлов, в том числе по пользовательским шаблонам;
  • команды оболочки, которые необходимо выполнить до или после исполнения задачи;
  • можно просмотреть команду rsync , которая будет запущена для выполнения созданной задачи.

Задачи можно включать или отключать, тыкая курсором мыши в чекбокс рядом с ее названием. Профили можно экспортировать (почему бы не забэкапить профиль программы бэкапа?). Контекстная справка при наведении курсора помогает простому смертному не затеряться в расширенных опциях.

Читать еще:  10 Способов Как Узнать Свой Номер Билайна На Телефоне

Расширенная настройка задач в luckyBackup

Back In Time

Утилита с набором функций, очень похожим на luckyBackup. Тоже поддерживает профили, но экспортировать их нельзя, и внутри них нет задач — здесь профиль и есть задача.

Back In Time может использоваться в консольном или GUI-исполнении. Предлагает обычные или шифрованные EncFS копии, которые могут храниться локально или передаваться по SSH. Позволяет создавать бэкапы по дням и по часам, при включении компьютера и при подключении устройств, для чего использует cron или правила udev .

Можно настроить удаление старых бэкапов по их возрасту и количеству свободного места или инод (inodes). Да-да, иноды тоже могут закончиться, и тогда ты не сможешь создать файл, даже если есть место на диске. Вкладка Expert Options содержит набор расширенных опций для rsync . Бэкапы утилита сохраняет в виде архивов.

Настройки профиля в Back In Time

Bacula

Опенсорсный монстр для резервного копирования. Его можно собрать из исходников, однако готовые пакеты последних версий с сайта разработчиков просто так не получишь. Bacula обещает мощную функциональность — программа не в последнюю очередь ориентирована на работу в крупных компьютерных сетях и вообще на масштабирование; она умеет делать все три вида бэкапов. Имеются версии для Windows (есть даже клиент под Win98!), macOS и Open/NetBSD.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

4 удобных приложения для резервного копирования в Linux

Защитите файлы, документы и саму систему от сбоев и повреждений.

1. DejaDup

Простое и понятное приложение, которое предустановлено во многих популярных дистрибутивах. К примеру, оно присутствует в той же Ubuntu, только называется «Резервные копии». DejaDup не смутит даже самых неопытных пользователей. В главном окне программы всего две кнопки: «Восстановление» и «Создать резервную копию».

На боковой панели в разделе «Папки для сохранения» выберите, что именно хотите копировать. По умолчанию делается бэкап вашей пользовательской папки. В следующем разделе — «Исключённые папки» — отметьте те данные, которые сохранять не следует.

DejaDup умеет отправлять копии на локальные диски, ваши личные серверы в локальной сети, а также в облака Google и Nextcloud. Планировщик тут тоже в наличии, хотя настройки довольно скудные. Приложение может делать копии каждый день или неделю и — при необходимости — удалять старые данные (раз в полгода или год).

Чтобы установить DejaDup, просто введите в терминал команду, подходящую для вашего дистрибутива:

  • Ubuntu: sudo apt‑get install deja‑dup
  • Fedora: sudo dnf install deja‑dup
  • openSUSE: sudo zypper install deja‑dup
  • Arch: sudo pacman -S deja‑dup

2. Cronopete

Создатель Cronopete прямо заявляет на своём сайте, что при разработке своего приложения вдохновлялся Time Machine на Mac. А потому настроек тут минимум. При первом запуске Chronopete спросит вас, где хранить копии — в какой‑то папке или на внешнем жёстком диске, — и предложит выбрать файлы, которые следует копировать.

После этого приложение поселится в вашем трее и будет периодически делать бэкапы. А ещё Chronopete станет автоматически удалять старые файлы, когда ваш диск начнёт переполняться.

Установить Cronopete можно, загрузив пакет с сайта автора.

Сейчас читают 🔥

3. Back in Time

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

Поначалу может показаться, что настроек у Back in Time слишком много. Но, в принципе, разобраться в нём не так сложно.

Отдельная приятная особенность Back in Time в том, что оно умеет создавать резервные копии не только по расписанию, но и каждый раз, когда подключается подходящий внешний носитель. Вы подсоединяете жёсткий диск, и через несколько минут на нём появляется резервная копия.

Установить Back in Time можно так:

  • Ubuntu: sudo add‑apt‑repository ppa:bit‑team/stable; sudo apt update; sudo apt install backintime‑gnome
  • Fedora: sudo dnf install backintime‑qt4
  • openSUSE: sudo zypper install backintime‑qt4
  • Другие дистрибутивы:загрузить Back in Time →

4. Timeshift

Чрезвычайно мощное приложение для защиты всей вашей системы от нежелательных изменений. Помните точки восстановления в Windows? Timeshift делает то же самое, но в Linux.

При первом запуске программа спросит у вас, какой из двух типов резервного копирования следует использовать. Режим Rsync работает во всех системах Linux, но он довольно медленный. Btrfs быстрее, но его можно применить только для вариантов, установленных на разделы Btrfs (тип файловой системы указывается при инсталляции Linux).

Затем вам нужно будет выбрать, какие разделы копировать (по умолчанию включён только системный) и как часто это делать. Обычно Timeshift выполняет бэкапы ежедневно. После установки Timeshift вы можете вытворять со своей системой что хотите: если вы что‑то повредите, всегда можно будет откатиться на стабильный «снимок».

Даже если ваша ОС перестала запускаться совсем, ничего страшного. Возьмите флешку или диск с Linux, загрузитесь в live‑режиме. Затем введите команду на инсталляцию Timeshift (не переживайте, установка произойдёт только в оперативной памяти). Укажите, где вы храните резервные «снимки», и выберите нужный. Через пять минут система будет восстановлена.

Но учтите, что разработчик Timeshift не рекомендует программу для резервного копирования документов и личных файлов. Она заточена под сохранение настроек и состояния самой системы.

Установить Timeshift можно вот так:

  • Ubuntu: sudo sudo apt‑add‑repository -y ppa:teejee2008/ppa; apt update; apt install timeshift
  • Fedora: sudo dnf install timeshift
  • Arch: sudo yaourt timeshift
  • Другие дистрибутивы:загрузить Timeshift →

Устанавливаем Kali Linux на Raspberry Pi

Мы попытаемся создать автономное устройство «бэкдор», которое, когда его обнаруживают, не позволяет просто понять, что вы делали с его помощью. Поэтому мы используем полное шифрование диска LUKS вместе с функцией LUKS Nuke. Если у вас есть Raspberry Pi 3 Model B+, или любая другая модель, пробуйте смело использовать инструкции ниже, чтобы настроить свою собственную безопасную систему.

Обзор процесса установки

Прежде чем мы погрузимся в процесс, давайте быстро взглянем на наши цели по настройке нашей Raspberry Pi 3 B+ (далее » RPi”):

  • Создать обычную установочную копию Kali Linux RPi
  • Подготовить систему к зашифрованной загрузке с удаленной разблокировкой диска
  • Создать initramfs, настроенный с помощью ключей Dropbear и SSH, чтобы разрешить разблокировку
  • Резервное копирование существующих данных
  • Настройка зашифрованных разделов
  • Восстановление наших данных
  • Настройка LUKS Nuke
  • Удаленный хакинг! 🙂

Может показаться, что много всего, но на самом деле все довольно просто и после завершения у нас будет RPi, который будет загружаться, получит IP по DHCP, и Dropbear позволит нам подключиться через SSH, чтобы обеспечить ключ LUKS. Это позволяет нам запускать RPi и по-прежнему сохранять наши данные в безопасности. Затем, когда мы закончим с ним, мы можем подключиться к нему удаленно, войти и уничтожить наши данные с помощью LUKS NUKE.

Готовим базу

Для начала нам нужно записать образ RPi на SD-карту. Мы не будем вдаваться в это сейчас, вы можете найти информацию об этом свободно в Интернете.

Читать еще:  Все о самсунге j2. Смартфон со вспышкой на передней камере - Samsung Galaxy J2 Prime. Возможно вам также понравится

После этого мы вставляем SD-карту в RPi и позволяем ей загрузиться. При первой загрузке изменится размер SD-карты и произойдет перезагрузка, после чего он будет готов к использованию. Затем мы подключаемся по SSH, обновляем Kali и устанавливаем несколько пакетов, которые нам понадобятся.

# apt update
root@kali:

# apt dist-upgrade
root@kali:

# apt install cryptsetup lvm2 busybox dropbear

Делаем магию

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

Во-первых, нам нужно добавить строку к /boot/config.txt:

# echo initramfs initramfs.gz followkernel >> /boot/config.txt

Затем мы хотим узнать, где находится корневая файловая система:

# proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1

Мы узнали, что корень здесь /dev/mmcblk0p2. Используйте далее в примерах свой путь к разделу.

Отредактируем файл /boot/cmdline.txt . По-умолчанию его содержимое таково:

# cat /boot/cmdline.txt dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0

Нам необходимо после значения root=/dev/mmcblk0p2 добавить параметр cryptdevice:

После изменений файл должен выглядеть так:

dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mapper/crypt cryptdevice=/dev/mmcblk0p2:crypt rootfstype=ext4 rootwait rootflags=noload net.ifnames=0

Еще нам нужно отредактировать /etc/fstab и заменить устройство, которое монтируется в корень на /dev/mapper/crypt (старое закомменитровать):

# proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mapper/crypt / ext4 defaults,noatime 0 1
#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1

Дальше создадим файл /etc/crypttab и добавим следующую строку в него:

# crypt /dev/mmcblk0p2 none luks

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

# dd if=/dev/zero of=/tmp/fakeroot.img bs=1M count=20
root@kali:

# cryptsetup luksFormat /tmp/fakeroot.img
root@kali:

# cryptsetup luksOpen /tmp/fakeroot.img crypt
root@kali:

Не беспокойтесь слишком о настройке надежного пароля для этого лже-root, поскольку он используется только здесь.

Настройка SSH и Initramfs

Мы почти на финишной прямой. Эта часть действительно классная, так как обычно, когда запускается система под управлением LUKS, процесс загрузки приостанавливается, чтобы вы могли разблокировать жесткий диск с помощью ключа LUKS. Но если вы используете удаленную систему, это не особенно удобно.

Чтобы обойти это, мы собираемся настроить Dropbear для запуска, разрешить аутентификацию с помощью SSH, а затем подключить нас, чтобы предоставить свой пароль LUKS — и все это удаленно!

Мы начинаем с создания файла /etc/dropbear-initramfs/authorized_keys в котором будет это:

command=”export PATH=’/sbin:/bin/:/usr/sbin:/usr/bin’; /scripts/local-top/cryptroot && kill -9 `ps | grep -m 1 ‘cryptroot’ | cut -d ‘ ‘ -f 3` && exit”

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

command=”export PATH=’/sbin:/bin/:/usr/sbin:/usr/bin’; /scripts/local-top/cryptroot && kill -9 `ps | grep -m 1 ‘cryptroot’ | cut -d ‘ ‘ -f 3` && exit” ssh-rsa AAAAB3NzaC. user@system

Далее внесем небольшие изменения в файл /usr/share/initramfs-tools/scripts/init-premount/dropbear. Это изменение связано с тем, что нам нужно замедлить Dropbear, чтобы гарантировать, что сеть настроена до того, как Dropbear начнет работать. Вот как выглядит исходный файл:

# On NFS mounts, wait until the network is configured. On local mounts,
# configure the network in the background (in run_dropbear()) so someone
# with console access can enter the passphrase immediately. (With the
# default ip=dhcp, configure_networking hangs for 5mins or so when the
# network is unavailable, for instance.)
[ “$BOOT” != nfs ] || configure_networking
run_dropbear &
echo $! >/run/dropbear.pid

Мы заменим его на это:

[ “$BOOT” != nfs ] || configure_networking
sleep 5
run_dropbear &
echo $! >/run/dropbear.pid

После этих изменений мы готовы запустить initramfs!

# mkinitramfs -o /boot/initramfs.gz

Прежде, чем продожить, уведимся, что наши измемнения внесены в initramfs:

# lsinitramfs /boot/initramfs.gz | grep cryptsetup
root@kali:

# lsinitramfs /boot/initramfs.gz | grep authorized

После проверки мы убедились, что все изменения записаны и выключим RPi.

# sync && sync
root@kali:

Резервное копирование и восстановление

Извлеките SD-карту из вашего RPi и вернемся в систему, на которой мы изначально записывали образ на SD-карту. Давайте подготовим окружающую среду:

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

Теперь вставьте SD-карту и проверьте идентификатор устройства. В моем случае это устройство /dev/sdc2, но ваше может отличаться, поэтому учтите этот момент. Монтируем устройство и делаем резервную копию файлов:

# mount /dev/sdc2 /mnt/chroot/
root@kali:

# rsync -avh /mnt/chroot/* /mnt/backup/
root@kali:

Как только это сделано, мы удалим существующий 2-й раздел на SD-карте и создадим пустой, который мы настроили для шифрования LUKS.

# echo -e “dn2nw” | fdisk /dev/sdc
root@kali:

# echo -e “nnpn2nnnw” | fdisk /dev/sdc

With the partitions updated, we reload them by running partprobe and then configure LUKS on the new partition:

# cryptsetup -v -y –cipher aes-cbc-essiv:sha256 –key-size 256 luksFormat /dev/sdc2
root@kali:

# cryptsetup -v luksOpen /dev/sdc2 crypt
root@kali:

После этого мы восстанавливаем резервную копию корневой файловой системы на зашифрованный раздел.

# mount /dev/mapper/crypt /mnt/encrypted/
root@kali:

# rsync -avh /mnt/backup/* /mnt/encrypted/
root@kali:

# umount /mnt/encrypted/
root@kali:

# cryptsetup luksClose /dev/mapper/crypt

Тестирование

Теперь вставим SD-карту обратно в RPi и включим ее. Если вы смотрите на процесс загрузки, вы должны увидеть запуск Dropbear. В этот момент Вы можете подключиться по SSH и разблокировать диск.

# ssh -o “UserKnownHostsFile /dev/null” root@10.1.1.10
The authenticity of host ‘10.1.1.10 (10.1.1.10)’ can’t be established.
ECDSA key fingerprint is SHA256:L+QVP+OmncGDleuEoj77OlRGuCji2gp0c1gMYjUupU0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘10.1.1.10’ (ECDSA) to the list of known hosts.
Please unlock disk /dev/mmcblk0p2 (crypt):
cryptsetup (crypt): set up successfully
Connection to 10.1.1.10 closed.

Универсальность этих маленьких устройств в сочетании с мощью Kali никогда не перестает удивлять нас. Теперь у нас есть классный девайс с удаленным управлением, с которым мы можем работать с относительной уверенностью, потому что даже если его обнаружат, проникнуть в него будет не так-то просто.

Но мы еще не закончили! Давайте добавим в некоторые функции LUKS NUKE:

# cryptsetup luksDump /dev/mmcblk0p2
root@kali:

# cryptsetup luksAddNuke /dev/mmcblk0p2

Теперь, когда мы заходим по SSH, у нас есть один пароль, который мы вводим, чтобы разблокировать SD-карту и продолжить процесс загрузки, а другой уничтожает заголовок LUKS, делая данные недоступными. Если вы окажетесь в ситуации, когда не можете получить доступ к устройству, этот вариант может быть не очень полезным. Поэтому если хотите быть действительно предусмотрительным, вы можете превратить устройство в беспроводную точку доступа, что позволит вам удаленно входить и разблокировать/сбросить систему через беспроводное соединение. Это очень полезно, если у вас не будет постоянного прямого доступа к сети, к которой будет подключен RPi.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: