Убрать шифрование диска linux
В современном мире каждый аспект нашей личной жизни записывается на компьютеры. Один из способов защиты наиболее важной информации - шифрование файлов и каталогов. Во время шифрования содержимое файлов перемешивается с избыточными данными в соответствии с установленным алгоритмом, таким образом, что расшифровать его можно только имея специальный пароль или ключ.
В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов - GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.
Подготовка
Перед тем как начать шифровать домашнюю папку Ubuntu, сделайте резервную копию домашней папки и важных файлов. При шифровании резервная копия будет создан автоматически, но лучше иметь дополнительную копию на всякий случай. Сначала установите утилиты для шифрования:
sudo apt install ecryptfs-utils cryptsetup
Вы не сможете зашифровать домашний каталог пока вы в системе. А поэтому нужно будет создать еще одного пользователя с полномочиями администратора в утилите Параметры. Чтобы ее открыть кликните на своем имени в правом углу панели и выберите пункт Настройки затем Пользователи:
Создайте нового пользователя и сделайте его администратором и установите пароль для пользователя. Аккаунт будет отключен пока вы не укажите пароль:
После создания пользователя выйдите из системы. Надо выбрать именно Завершить сеанс, смена пользователя не подойдёт:
Шифрование с использованием ключей
Асимметричный шифр более надежный так как для шифрования используется два ключа - публичный, собственно для шифрования, которым может воспользоваться любой, и приватный - для расшифровки. Причем файл можно расшифровать только с помощью приватного ключа, даже если вы зашифровали файл, без приватного ключа вы его не расшифруете.
Сначала необходимо настроить gpg, создать пару ключей, для этого наберите:
Программа задаст ряд вопросов для настройки ключа:
Выберите требуемый тип ключа.
Выберите нужный размер для ключа, обычно 2048 будет достаточно.
Выберите строк действия для ключа.
Проверьте все ли правильно.
Введите имя нового ключа, фактически, это имя пользователя, но вы будете использовать его чтобы зашифровать файл linux, поэтому выбирайте обдумано.
Введите ваш email адрес.
Описание ключа, если нужно.
Финальная проверка, затем нажмите O для завершения.
Процесс генерации может занять некоторое время. Когда все будет готово в каталоге ~./gnupg появятся два файла. В файле pubring.gpg публичный ключ, а в secring.gpg приватный.
Также вы можете посмотреть список доступных ключей:
Если вы собираетесь шифровать файлы на другом компьютере необходимо экспортировать публичный ключ, для этого есть опция -а:
gpg -a -o gpgkey.asc --export имя_ключа
Затем передаем файл на целевое устройство и импортируем ключ:
gpg --import gpgkey.asc
После импорта ключа уровень доверия к нему по умолчанию будет неизвестным поэтому при каждом шифровании gpg будет спрашивать действительно ли вы доверяете этому ключу. Чтобы этого избежать нужно указать уровень доверия. Для этого воспользуйтесь редактором ключей:
gpg --edit-key Username
Для выбора уровня доверия введите команду trust:
Для своих ключей можно использовать пункт абсолютно доверяю с номером 5, вы же знаете что это именно ваш ключ.
Теперь можно переходить к шифрованию. Для того чтобы зашифровать файл linux используйте команду:
gpg -e -r ид_пользователя имя_файла
Ид пользователя нужно указывать тот что вы использовали при создании ключа. Для расшифровки используйте:
gpg -d имя_файла.gpg
Для каталогов действия аналогичны только сначала нужно создать архив с помощью tar:
tar -cf - каталог | gpg -e -r ид_пользователя
А для расшифровки:
gpg -d каталог.gpg | tar -xvf
Как работает LUKS?
LUKS (Linux Unified Key Setup - протокол шифрования блочного устройства. Но мы забежали далеко наперед, чтобы понять как это работает, нужно скачала разобраться с другими технологиями, используемыми в этом способе.
Чтобы выполнить шифрование диска linux используется модуль ядра dm-crypt. Этот модуль позволяет создавать в каталоге /dev/mapper виртуальное блочное устройство с прозрачным для файловой системы и пользователя шифрованием. Фактически все данные лежат на зашифрованном физическом разделе. Если пользователь пытается записать данные на виртуальное устройство, они на лету шифруются и записываются на диск, при чтении с виртуального устройства, выполняется обратная операция - данные расшифровываются с физического диска и передаются в открытом виде через виртуальный диск пользователю. Обычно для шифрования используется метод AES, потому что под него оптимизированы большинство современных процессоров. Важно заметить, что вы можете шифровать не только разделы и диски, но и обычные файлы, создав в них файловую систему и подключив как loop устройство.
Алгоритм LUKS определяют какие действия и в каком порядке будут выполняться во время работы с шифрованными носителями. Для работы с LUKS и модулем dm-crypt используется утилита Cryptsetup. Ее мы и рассмотрим далее.
1. Создание раздела
В этом примере мы будем шифровать раздел /dev/sda6, но вместо него вы можете использовать целый жесткий диск или просто один файл, заполненный нулями. Создаем шифрованный раздел:
sudo cryptsetup -y -v luksFormat /dev/sdb1
Эта команда выполнит инициализацию раздела, установит ключ инициализации и пароль. Сначала надо подтвердить создание виртуального шифрованного диска набрав YES, затем нужно указать пароль. Указывайте такой пароль, чтобы его потом не забыть.
Выполните такую команду чтобы открыть только что созданный раздел с помощью модуля dm-crypt в /dev/mapper, для этого понадобится ввести пароль, с которым выполнялось шифрование luks linux:
sudo cryptsetup luksOpen /dev/sdb1 backup2
Теперь вы можете увидеть новое виртуальное устройство /dev/mapper/backup2 созданное с помощью команды luksFormat:
ls -l /dev/mapper/backup2
Чтобы посмотреть состояние устройства выполните:
sudo cryptsetup -v status backup2
А с помощью следующей команды вы можете сделать резервную копию заголовков LUKS на всякий случай:
cryptsetup luksDump /dev/sdb1
Ну, можно сказать, раздел готов. И что самое интересное, теперь вы можете им пользоваться так же, как и любым другим обычным разделом в каталоге /dev. Его можно форматировать с помощью стандартных утилит, записывать на него данные, изменять или проверять файловую систему и т д. Нельзя только изменить размер. То есть все полностью прозрачно, как и сказано в начале статьи.
Шифрование swap раздела в Ubuntu
Если вы шифровали домашнюю папку во время установки Ubuntu, swap раздел будет зашифрован автоматически. Но в нашем случае если вы хотите зашифровать swap нужно выполнить команду:
Обратите внимание, что с зашифрованным swap разделом не будет нормально работать гибернация, но эта функция все равно по умолчанию отключена.
Утилита GPG
Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:
$ gpg опции файл параметры
Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:
А теперь рассмотрим по порядку, что нам нужно для того, чтобы выполнять шифрование файлов Linux.
4. Отключение раздела
Все работает, но как отключить устройство и защитить данные. Для этого выполните:
sudo umount /backup2
sudo cryptsetup luksClose backup2
Утилита Cryptsetup
Утилита Cryptsetup позволят облегчить шифрование раздела Linux с помощью модуля dm-crypt. Давайте сначала ее установим.
В Debian или Ubuntu, для этого используйте такую команду:
suduo apt install cryptsetup
В дистрибутивах, основанных на Red Hat это будет выглядеть так:
sudo yum install cryptsetup-luks
Синтаксис запуска команды такой:
$ cryptsetup опции операция параметры_операции
Рассмотрим основные операции, которые можно сделать с помощью этой утилиты:
- luksFormat - создать зашифрованный раздел luks linux;
- luksOpen - подключить виртуальное устройство (нужен ключ);
- luksClose - закрыть виртуальное устройство luks linux;
- luksAddKey - добавить ключ шифрования;
- luksRemoveKey - удалить ключ шифрования;
- luksUUID - показать UUID раздела;
- luksDump - создать резервную копию заголовков LUKS.
Параметры операции зависят от самой операции, обычно это либо физическое устройство, с которым нужно произвести действие, либо виртуальное или и то и другое. Еще не все понятно, но на практике, я думаю, вы со всем разберетесь.
Методы шифрования данных в Linux
Шифрование на уровне файловой системы:
- 1. eCryptfs - это криптографическая файловая система Linux. Она хранит криптографические метаданные для каждого файла в отдельном файле, таким образом, что файлы можно копировать между компьютерами. Файл будет успешно расшифрован, если у вас есть ключ. Это решение широко используется для реализации зашифрованной домашней директории, например, в Ubuntu. Также ChromeOS прозрачно встраивает эти алгоритмы при использовании сетевых устройств для хранения данных (NAS).
- 2. EncFS - обеспечивает шифрованную файловую систему в пространстве пользователя. Она работает без каких-либо дополнительных привилегий и использует библиотеку fuse и модуль ядра для обеспечения интерфейса файловой системы. EncFS - это свободное программное обеспечение и она распространяется под лицензией GPL. В наши дни эта файловая система уже устарела потому что в ней было найдено несколько уязвимостей. Вместо неё популярность набирают другие утилиты.
Блочное шифрование на уровне устройства:
- Loop-AES - быстрая и прозрачная файловая система, а также пакет для шифрования раздела подкачки в Linux. Исходный код программы давно не изменялся. Она работает с ядрами 4.x, 3.x, 2.2, 2.0.
- TrueCrypt - это бесплатное решение с открытым исходным кодом для шифрования диска в операционных системах Windows 7 / Vista /XP / Mac OS X, а также в Linux.
- dm-crypt+LUKS - dm-crypt - это прозрачная подсистема для шифрования диска в ядре 2.6 и более поздних версиях. Поддерживается шифрование целых дисков, съемных носителей, разделов, томов RAID, программного обеспечения, логических томов и файлов.
В этой инструкции мы рассмотрим шифрование жесткого диска на Linux с помощью алгоритма Linux Unified Key Setup-on-disk-format (LUKS).
Подписи и шифрование
Для проверки подлинности файлов может использоваться не шифрование, а подпись. Тогда на основе файла и ключа создается отпечаток, который записывается в файл. Если файл будет изменен, то отпечаток уже не совпадет.
Вы можете подписать файл с помощью опции --sign:
gpg --sign имя_файла
Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:
gpg -b имя_файла
Тогда в каталоге, рядом с файлом появиться файл .sig с подписью. Дальше, чтобы проверить достаточно использовать команду verify:
gpg --verify textfile.sig textfile
Если файл был изменен, то вы увидите, что подпись не сходиться.
2. Форматирование раздела
Давайте для начала отформатируем диск. Для надежности, чтобы стереть все данные, которые были в этом месте раньше, перезапишем наш шифрованный раздел linux нулями. Это уменьшит вероятность взлома шифрования, через увеличение количества случайной информации. Для этого выполните:
dd if=/dev/zero of=/dev/mapper/backup2
Работа утилиты может занять несколько часов, чтобы иметь возможность наблюдать за процессом, используйте pv:
pv -tpreb /dev/zero | dd of=/dev/mapper/backup2 bs=128M
Когда процесс завершится мы можем отформатировать устройство в любую файловую систему. Например, отформатируем в ext4:
sudo mkfs.ext4 /dev/mapper/backup2
Как видите, все команды cryptsetup применяются к физическому разделу, в то время как остальные команды для работы с дисками - к нашему виртуальному.
7. Изменить парольную фразу luks
Шифрование дисков Linux выполняется с определенной парольной фразой, но вы можете ее изменить. Даже больше, вы можете создать до восьми разных парольных фраз. Для изменения выполнив следующие команды. Сначала сделаем резервную копию заголовков LUKS:
sudo cryptsetup luksDump /dev/sdb1
Затем создадим новый ключ:
sudo cryptsetup luksAddKey /dev/sdb1
И удалим старый:
sudo cryptsetup luksRemoveKey /dev/sdb1
Сейчас вам придется ввести еще старый пароль.
Шифрование диска Linux
Теория пройдена, все инструменты готовы. Теперь рассмотрим шифрование раздела Linux. Перейдем к настройке жесткого диска. Обратите внимание, что это удалит все данные из диска или раздела, который вы собираетесь зашифровать. Так что если там есть важные данные, лучше скопируйте их в более надежное место.
Выводы
Вот и все, теперь вы знаете как зашифровать домашнюю папку ubuntu. Это совсем несложно. Если у вас остались вопросы, спрашивайте в комментариях!
Безопасность и конфиденциальность очень важны, для тех, кто хранит важные данные на компьютере. Ваш домашний компьютер находится в безопасности, но с ноутбуком или другими переносными устройствами ситуация очень сильно меняется. Если вы носите свой ноутбук с собой почти везде и к нему могут иметь доступ посторонние лица, возникает вопрос - как защитить свои данные от чужого вмешательства. Именно от физических атак, где каждый желающий может попытаться получить данные из USB накопителя или жесткого диска ноутбука просто забрав устройство или в случае ноутбука, вытянув жесткий диск и подключив его к другой операционной системе.
Многие предприятия и даже простые пользователи используют шифрование дисков в linux чтобы защитить конфиденциальную информацию, такую как: сведения о клиенте, файлы, контактную информацию и многое другое. В операционной системе Linux поддерживается несколько криптографических методов для защиты разделов, отдельных каталогов или полностью всего жесткого диска. Все данные, в любом из этих способов автоматически зашифровываются и расшифровываются на лету.
5. Повторное монтирование
Чтобы снова получить возможность работать с зашифрованным разделом с помощью LUKS linux необходимо опять его открыть:
sudo cryptsetup luksOpen /dev/sdb1 backup2
Теперь можем монтировать:
sudo mount /dev/mapper/backup2 /backup2
3. Монтирование раздела
Теперь можно примонтировать только, что созданную файловую систему:
sudo mount /dev/mapper/backup2 /backup2
Шифрование домашней папки
Теперь вы готовы зашифровать домашний каталог Ubuntu. Выберите только что созданного пользователя и войдите в систему:
Выполните следующую команду для шифрования своей домашней папки, заменив sergiy на имя своего основного пользователя:
sudo ecryptfs-migrate-home -u sergiy
Вам нужно будет ввести пароль пользователя, а затем домашний каталог будет зашифрован. Но есть несколько важных замечаний:
- Вы должны войти под основной учетной записью сейчас, не перезагружаясь;
- Перед шифрованием была создана резервная копия домашнего каталога, вы можете восстановить все данные если понадобится;
- Нужно создать и записать ключ восстановления;
- Лучше также зашифровать swap раздел.
Выйдите и войдите в систему под основной учетной записью, только не перезагружайтесь:
После входа, нажмите кнопку Выполнить это действие сейчас для создания ключа восстановления данных. Перед вами откроется окно с ключом. Например:
Сохраните этот ключ в безопасном месте, это нужно для того, чтобы вы смогли вручную восстановить ваши файлы в будущем. Посмотреть этот же ключ можно командой:
Выводы
Вот и все теперь вы знаете как зашифровать раздел в Linux, а также понимаете как все это работает. Кроме того, шифрование дисков в Linux по алгоритму LUKS открывает широкие возможности для полного шифрования устанавливаемой системы.
Я попытался удалить шифрование LUKS в моем домашнем каталоге с помощью следующей команды:
Но это дает мне ошибку, говоря:
Устройство / dev / mapper / luks-3fd5-235-26-2625-2456f-4353fgdgd не является допустимым устройством LUKS.
Озадаченный, я попробовал следующее:
Кажется, зашифрованное устройство активно, но недействительно. Что здесь может быть не так?
- Резервный
- Переформатировать
- Восстановить
cryptsetup luksRemoveKey удалит только ключ шифрования, если у вас их больше одного. Шифрование все еще будет там.
Раздел Fedora Installation_Guide C.5.3 объясняет, как luksRemoveKey работает.
То, что «невозможно» удалить шифрование при сохранении содержимого, является лишь обоснованным предположением. Я основываю это на двух вещах:
- Поскольку контейнер LUKS имеет файловую систему или LVM или что-то еще поверх него, простое удаление уровня шифрования потребует знания значения данных, хранящихся поверх него, которые просто недоступны. Кроме того, требовалось бы, чтобы перезапись части тома LUKS его расшифрованным аналогом не нарушала бы остальную часть контента LUKS, и я не уверен, что это можно сделать.
- Реализация этого позволит решить проблему, которая настолько далека от цели LUKS, насколько вы можете ее получить, и я считаю очень маловероятным, что кто-то потратит время, чтобы сделать это вместо чего-то более «значимого».
Добавлена ссылка на Руководство по установке Fedora и почему я считаю, что резервное копирование-восстановление - это единственный вариант перехода от полного шифрования диска к отсутствию шифрования.
Во-первых, при удалении ключевой фразы из раздела LUKS необходимо указать раздел диска, на котором он находится, например:
И когда вы хотите получить статус от устройства, зашифрованного LUKS, вам нужно обратиться к LUKS-имени, как вы это и сделали.
Но luksRemoveKey удаляет только одну из парольных фраз (и никогда не последнюю). Если вы хотите постоянно дешифровать, вы должны использовать cryptsetup-reencrypt:
Я недавно установил Ubuntu 12.10, и для загрузки требуется пароль (я установил его с зашифрованной файловой системой).
Нужно ли переустанавливать, чтобы перейти на стандартную незашифрованную файловую систему?
Я новый пользователь, поэтому я не уверен, как все работает в Linux (полностью сыт по горло Microsoft!)
@Rinzwind Наверное, нет. Этот метод (ecryptfs) шифрует домашний каталог и не требует дополнительного пароля; пароль для входа используется.
@ user163872: Новые версии Ubuntu (12 и 13) работают очень медленно на старых компьютерах, таких как нетбуки. Вам следует установить Lubuntu, который рассчитан на скорость и работает очень быстро на старых / медленных компьютерах, даже с небольшим объемом ОЗУ (т.е. 512 МБ). Lubuntu - это почти то же самое, что и обычная Ubuntu - только рабочий стол / меню немного отличаются. Но все, что работает на обычной Ubuntu, будет работать и в Lubuntu.
Если Ubuntu запрашивает парольную фразу шифрования во время загрузки (т. Е. В текстовой консоли перед отображением экрана входа в систему), это означает, что использовался метод полного шифрования диска. (Есть несколько способов сделать это, но я оставлю общий ответ.) Шифрование обрабатывается дополнительным программным уровнем между файловой системой и физическим жестким диском, а не самой файловой системой.
Нет простого метода или инструмента, чтобы отменить это. С некоторыми знаниями о том, как работают системы Linux, это можно сделать. Вам придется переместить всю файловую систему (или все файлы) в другой раздел (с достаточным количеством свободного места) или внешний жесткий диск. Затем удалите зашифрованный контейнер и заново создайте файловую систему без шифрования. Наконец, убедитесь, что новая файловая система правильно распознается загрузчиком и mount -a перед перезагрузкой.
Если возможно, лучше избегать этой трудоемкой и подверженной ошибкам процедуры. Просто сделайте новую установку. Для новых пользователей это самый быстрый и безопасный вариант.
PS: Скорее всего, вы можете изменить кодовую фразу шифрования, возможно, на пустую строку. Тогда для расшифровки требуется только нажать Enter. Может быть, вы можете пойти дальше и подавить (теперь бесполезно) приглашение пароля. Однако это не отключает шифрование. Данные все равно будут зашифрованы, хотя шифрование будет бесполезным, так как ключ может быть тривиально угадан.
6. Проверить файловую систему luks
Поскольку после открытия раздела с помощью luks linux, этот раздел воспринимается системой, как и все другие, вы можете просто использовать утилиту fsck:
sudo umount /backup2
sudo fsck -vy /dev/mapper/backup2
sudo mount /dev/mapper/backup2 /backu2
Очистка временных файлов
Если после нескольких перезагрузок все работает правильно, значит шифрование домашней папки в ubuntu и можно удалить резервные копии и учетную запись временного пользователя. Резервная копия находится в директории /home.
Для удаления выполните в терминале подобную команду:
sudo rm -rf /home/sergiy.random
Будьте осторожны, так как случайно можно удалить и основной домашний каталог, если имя будет введено неверно.
Выводы
В этой статье мы рассмотрели как выполняется шифрование файла linux, а также настройка утилиты gpg. Шифрование gpg linux используется людьми для хранения важных данных, а механизм подписей популярен среди разработчиков дистрибутивов. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение отличное видео о том, как работает асимметричный алгоритм шифрования:
Ubuntu предлагает зашифровать домашнюю папку во время установки. Но если вы решили сделать это позже, вам не нужно полностью переустанавливать Ubuntu. Настроить шифрование очень просто, понадобится всего лишь выполнить несколько консольных команд.
Ubuntu использует для шифрования eCryptfs. Когда вы входите в систему, ваша домашняя директория автоматически расшифровывается с помощью пароля пользователя. Хотя и шифрование занимает некоторые вычислительные ресурсы, зато это сохранит ваши данные конфиденциальными. Особенно это актуально для ноутбуков, которые могут быть украдены. Как вы уже поняли в этой инструкции мы рассмотрим как настроить шифрование домашней папки в Ubuntu после установки системы.
Шифрование файлов с помощью пароля
Симметричный шифр - самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:
gpg -c имя файла
Утилита создаст файл с расширением gpg. Для расшифровки используйте:
Читайте также: