Программы шифрования для linux
В современном мире каждый аспект нашей личной жизни записывается на компьютеры. Один из способов защиты наиболее важной информации - шифрование файлов и каталогов. Во время шифрования содержимое файлов перемешивается с избыточными данными в соответствии с установленным алгоритмом, таким образом, что расшифровать его можно только имея специальный пароль или ключ.
В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов - GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.
Утилита GPG
Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:
$ gpg опции файл параметры
Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:
А теперь рассмотрим по порядку, что нам нужно для того, чтобы выполнять шифрование файлов Linux.
Шифрование файлов с помощью пароля
Симметричный шифр - самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:
gpg -c имя файла
Утилита создаст файл с расширением gpg. Для расшифровки используйте:
Шифрование с использованием ключей
Асимметричный шифр более надежный так как для шифрования используется два ключа - публичный, собственно для шифрования, которым может воспользоваться любой, и приватный - для расшифровки. Причем файл можно расшифровать только с помощью приватного ключа, даже если вы зашифровали файл, без приватного ключа вы его не расшифруете.
Сначала необходимо настроить 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
Подписи и шифрование
Для проверки подлинности файлов может использоваться не шифрование, а подпись. Тогда на основе файла и ключа создается отпечаток, который записывается в файл. Если файл будет изменен, то отпечаток уже не совпадет.
Вы можете подписать файл с помощью опции --sign:
gpg --sign имя_файла
Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:
gpg -b имя_файла
Тогда в каталоге, рядом с файлом появиться файл .sig с подписью. Дальше, чтобы проверить достаточно использовать команду verify:
gpg --verify textfile.sig textfile
Если файл был изменен, то вы увидите, что подпись не сходиться.
Выводы
В этой статье мы рассмотрели как выполняется шифрование файла linux, а также настройка утилиты gpg. Шифрование gpg linux используется людьми для хранения важных данных, а механизм подписей популярен среди разработчиков дистрибутивов. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение отличное видео о том, как работает асимметричный алгоритм шифрования:
Сегодня мы познакомим вас с методами шифрования и предлагаем вашему вниманию список лучших программ для шифрования файлов и дисков для вашей Linux-машины.
1. Tomb
Tomb – это бесплатный инструмент с открытым исходным кодом для простого шифрования и резервного копирования файлов в системах GNU/Linux. Он состоит из простого сценария оболочки, который реализует стандартные инструменты GNU наряду с cryptsetup и LUKS (криптографический API ядра Linux).
Целью Tomb является повышение безопасности за счёт принятия нескольких проверенных стандартов и реализаций, применения передовых методов хранения ключей и минималистического дизайна, состоящего из краткого читаемого кода.
2. Cryptmount
Cryptmount – это утилита с открытым исходным кодом, созданная для операционных систем GNU/Linux и позволяющая пользователям монтировать зашифрованные файлы без прав root.
Она работает с использованием более нового механизма devmapper, который предлагает несколько преимуществ, включая улучшенную функциональность ядра, поддержку зашифрованных разделов подкачки для пользователей root, поддержку крипто-свопинга при загрузке системы, хранение нескольких зашифрованных файловых систем на одном диске и т.д.
Узнайте больше о Cryptmount здесь.
3. CryFS
CryFS – это бесплатный облачный инструмент шифрования с открытым исходным кодом для безопасного хранения файлов в любом месте. Его легко настроить, он работает в фоновом режиме и прекрасно интегрируется с любым популярным облачным сервисами, за исключением Dropbox, OneDrive и iCloud.
CryFS гарантирует, что никакие данные, включая структуру каталогов, метаданные и содержимое файлов, не оставят ваш компьютер в незашифрованном формате.
4. GnuPG
GnuPG, часто называемый GPG, означает GNU Privacy Guard и представляет собой бесплатную коллекцию криптографических инструментов с открытым исходным кодом, созданную в качестве замены пакета криптографического программного обеспечения Symantec PGP.
Он соответствует требованиям стандартов IETF OpenPGP и RFC 4889.
5. VeraCrypt
VeraCrypt – это многоплатформенный бесплатный инструмент с открытым исходным кодом, созданный для предоставления пользователям возможности оперативного шифрования. Вы можете использовать его для шифрования целых устройств хранения или только выбранных разделов с использованием предварительной загрузки.
Функции VeraCrypt включают возможность создавать виртуальные зашифрованные диски и монтировать их так, как если бы они были реальными, обеспечивать конвейерную обработку, распараллеливание и т.д.
6. EncFS
EncFS – это бесплатный инструмент с открытым исходным кодом для монтирования папок EncFS на Mac и Windows. Вы можете использовать его для создания, редактирования, изменения и экспорта пароля папок EncFS, и он на 100% совместим с EncFS 1.7.4 на платформах GNU/Linux.
7. 7-zip
7-zip – это популярная, бесплатная и открытая многоплатформенная утилита для сжатия файлов (или групп файлов) в контейнеры, называемые архивами.
7-zip является одной из самых популярных утилит архивирования благодаря высокой степени сжатия в формате 7z, среди которых есть компрессия сжатия LZMA и LZMA2, плагин для менеджера FAR, интеграция с Windows Shell, шифрование AES-256 в форматах 7z и ZIP, а также и множество других функций.
8. dm-crypt
dm-crypt – это подсистема для шифрования дисков, разделов и переносимых контейнеров. Она была создана для решения определенных проблем надежности в cryptoloop и может использоваться для резервного копирования нескольких типов томов.
9. ecryptfs
eCryptfs – это бесплатная коллекция программного обеспечения для шифрования дисков в Linux с открытым исходным кодом. Она призвана отразить функциональность GnuPG за счёт реализации POSIX-совместимого уровня шифрования на уровне файловой системы и является частью ядра Linux с момента выпуска версии 2.6.19.
ecryptfs хорош, потому что вы можете использовать его для шифрования каталогов и разделов, независимо от их базовой файловой системы.
10. cryptsetup
cryptsetup – это утилита с открытым исходным кодом, созданная для того, чтобы пользователи могли легко шифровать файлы на основе модуля ядра DMCrypt с акцентом на дизайн LUKS.
LUKS расшифровывается как Linux Unified Key Setup и является стандартом для шифрования жесткого диска Linux благодаря своей способности облегчать дистрибутивную совместимость, беспрепятственную передачу, миграцию данных и безопасное управление паролями нескольких пользователей.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.
С зарождением цивилизации появилась необходимость передачи информации между людьми. При чём таким способом, чтобы эта информация не стала доступной третьим лицам.
С течением времени технологии развивались, количество информации увеличивалось, а методы её перехвата усложнялись.
В настоящее время происходит активное внедрение цифровых технологий в различные сферы человеческой жизни, поэтому вопрос защиты информации при её хранении и передаче является особенно актуальным.
Я расскажу о том, как сохранить конфиденциальность своей информации с помощью инструмента GPG.
GnuPG (Gnu Privacy Guard) — свободная программа для шифрования информации и создания электронных цифровых подписей. Разработана как альтернатива коммерческой программе PGP. GnuPG полностью совместима со стандартом IETF OpenPGP.
Инструмент командной строки для GnuPG называется GPG. Им я и буду пользоваться. В данной публикации все манипуляции будут выполняться в операционной системе Linux. В ней уже установлено программное обеспечение GnuPG.
Если вы используете macOS, то вам нужно установить GPG-Suite, или воспользоваться командой brew install gnupg2. Если вы пользователь Windows, то советую вам установить GPG4Win.
Шифрование файла с помощью пароля
Далее речь пойдёт о симметричном шифровании. Методе шифрования, при котором для шифрования и дешифрования применяется один и тот криптографический ключ.
1. Создание текстового файла для шифрования
Создать пустой файл через терминал можно с помощью команды: cat > имя_файла .
Файл будет создан в вашей домашней папке.
В данном случае:
Запишем в файл стихотворение Евгения Евтушенко.
2. Шифрование файла
Вводим следующую команду: gpg -c message.txt .
Опция -с (или --symmetric ) означает шифрование только симметричным шифром. Далее нужно будет ввести фразу-пароль, которая станет ключом.
В итоге в директории с исходным файлом появится файл с расширением gpg. Это зашифрованный файл.
Если попытаетесь его открыть как обычный файл, то увидите примерно следующее:
3. Дешифрование
Для расшифровки этого файла следует ввести в терминале следующую команду: gpg --decrypt message.txt.gpg . Утилита запросит фразу-пароль. Если был введён верный пароль, то на экране отобразится исходный текст.
Для записи дешифрованной информации в отдельный файл добавьте опцию --output и после укажите название файла.
Шифрование файла с помощью ключей
Шифрование с помощью пары ключей – это уже ассиметричное шифрование. Данный метод является более надёжным. Шифрование осуществляется с помощью публичного ключа, а дешифровка - с использованием приватного ключа. Без приватного ключа вы не сможете выяснить что содержалось в исходном файле.
1. Создание ключей
Для создания пары ключей наберите следующую команду в терминале: gpg --full-generate-key .
Необходимо будет ввести тип ключа, размер ключа (по умолчанию 3072 бит), срок действия ключа, идентификатор пользователя (полное имя, адрес электронной почты) и примечание ключа (если нужно).
Идентификатор пользователя будет использован в качестве идентификатора ключа.
В конце нужно будет подтвердить корректность введённой информации и придумать фразу-пароль для защиты нового ключа.
В документации также указана команда gpg –gen-key , но при её использовании ряд параметров такие, как тип, размер ключа будут взяты по умолчанию. Срок действия ключа будет 2 года.
В скрытой директории ~./gnupg появятся файлы с ключами. В файле pubring.gpg публичный ключ, а в secring.gpg - приватный.
Также все свои доступные ключи можно увидеть с помощью команды: gpg –list-keys .
На скриншоте два ключа: первый был создан с помощью команды gpg –gen-key , второй – с помощью gpg –full-generate-key с параметрами, указанными ранее.
3. Шифрование
Для шифрования введите следующую команду: gpg -e -r идентификатор_пользователя имя_файла .
В качестве идентификатора пользователя я указал просто Dmitry, поэтому утилита выбрала первый по порядку ключ. Чтобы зашифровать информацию с помощью второго ключа, нужно было ввести идентификатор однозначно определяющий второй ключ. Например, ‘Dmitry Alekseev (best key)’.
Опять же в директории с исходным файлом будет создан файл с расширением gpg.
3. Дешифрование
Команда для дешифровки: gpg -d имя_файла.gpg .
Необходимо ввести фразу-пароль.
После в терминале отобразится дешифрованная информация.
Использование цифровой подписи для файла
Цифровая подпись позволяет подтвердить авторство электронного документа. На основе файла и ключа создаётся отпечаток, который записывается в файл. Если файл будет изменён, то отпечаток уже не совпадёт.
1. Создание цифровой подписи
Вы можете подписать файл с помощью команды: gpg -sign имя_файла .
Для создания подписи будет использован ранее созданный секретный ключ, поэтому нужно будет снова ввести фразу-пароль.
Опять же в директории с исходным файлом появится файл с расширением gpg.
Также вы можете создать подпись в отдельном файле: gpg -b имя_файла .
В директории появится файл с расширением sig.
2. Проверка подлинности файла
Введите следующую команду: gpg --verify имя_файла.sig имя_файла .
Если файл не был изменён, то вы увидите следующее.
Вывод:
Мы с вами познакомились с таким популярным инструментом шифрования как GPG. Эта утилита обладает большими возможностями по защите информации, мы с вами рассмотрели только часть. Посмотреть документацию по ней можно с помощью команды gpg - h .
Посмотрим, как с помощью системы на базе спецификации Linux Unified Key Setup (LUKS) и утилиты Cryptsetup можно зашифровать флэш-накопители, внешние жёсткие диски и прочие переносные устройства, хранящие дорогую вашему сердцу информацию.
Чаще всего, пользователи рассуждают достаточно просто: накопители в безопасности, пока их никто не украл. Некоторые идут в размышлениях дальше: если для входа в систему нужно знать пароль — злоумышленнику будет сложно получить доступ к данным на украденном диске. Успокаиваясь на этой мысли, они забывают задать себе важный вопрос: к чему именно мешает получить доступ их пароль на самом деле?
Во многих случаях они всего лишь служат для разблокировки пользовательского сеанса. И тогда злоумышленник может забрать данные с диска, не зная пользовательский пароль: он просто обойдётся без разглядывания заставки на вашем рабочем столе.
Особенно хорошо это понимают специалисты, которые сталкивались с последствиями такой недальновидности и сделали соответствующие выводы. Доступ к необходимой информации можно получить, подключив к машине свой внешний загрузочный диск, и после некоторых успешных манипуляций читать диск пользователя, как открытую книгу.
Если время сильно ограничено, злодеи действительно могут украсть накопитель и взять работу на дом. Особенно легко это им удаётся, если он внешний и подключён через USB. В этой статье речь пойдёт о простом инструменте, позволяющем защитить от несанкционированного доступа данные на внешних накопителях. Даже если они уже попали в руки к злоумышленникам. Речь пойдёт о шифровании дисков в операционных системах семейства Linux.
Linux Unified Key Setup (LUKS) — это система шифрования дисков, которая хранит данные в зашифрованном физическом разделе. Зашифровать их помогает модуль ядра dm-crypt, позволяющий создавать виртуальное блочное устройство, с которым взаимодействует пользователь.
Если пользователь хочет записать данные на виртуальное устройство, они на лету шифруются и записываются на диск. Если же он хочет читать с виртуального устройства, данные, хранящиеся на физическом диске, дешифруются и передаются в открытом виде через виртуальный диск пользователю. Данные остаются под защитой и в том случае, когда диск подключают к другому компьютеру.
Шифрование на этапе инсталляции
Проще всего выполнить полное шифрование диска, выбрав соответствующую опцию в процессе установки операционной системы. Большинство современных Linux-дистрибутивов позволяют это сделать. Здесь не буду расписывать в деталях, так как статья посвящена шифрованию внешних накопителей (далее я подробно буду рассматривать именно его).
Изображение: Seth Kenlon, CC BY-SA 4.0
После установки у вас будет зашифрованный диск. Перед загрузкой системы потребуется ввести парольную фразу. Если захотите извлечь диск или получить к нему доступ из другой операционной системы, нужно выполнить дешифрацию с помощью той же системы LUKS.
Шифрование внешних накопителей
Внешние накопители созданы для того, чтобы их подключали к разным устройствам, быстро обмениваясь информацией, таскали с собой по работе и иногда… теряли. Я находил случайно оставленные диски в USB-портах компьютеров в вестибюле отелей, в принтерах бизнес-центров, диски, потерянные в учебных аудиториях и даже в прачечной. Вряд ли их владельцы хотели бы, чтобы кто-то нашёл эти накопители и добрался до рабочих документов или личных архивов.
LUKS вместе с утилитой Cryptsetup позволяет шифровать внешние накопители почти так же просто, как и при инсталляции ОС.
Как это сделать с помощью LUKS
ВАЖНО: внешний накопитель должен быть либо пустым, либо содержать ненужные вам данные. Так что, если оба этих условия не выполнены, нулевым шагом должен стать бэкап.
1. Подключите и найдите свой внешний диск
Я для примера взял небольшую флэшку. Представим, что путь к ней выглядит как /dev/sdX. Утилита lsblk покажет мне вот такую информацию о блочных устройствах:
Всё правильно, моя флэшка обнаружена. Да, это именно она. Я точно знаю, что её размер 1.8Gb. В списке всего один диск (disk) с таким размером (ему соответствует один раздел part).
Я уделяю такое внимание этой, казалось бы, мелочи, так как дисков может быть много. И в случае ошибки на следующем шаге вы сотрёте с другого диска данные, которые вам всё ещё нужны.
2. Очистите диск
На этом шаге я обнуляю таблицу разделов диска:
Это, конечно, необязательно, но я люблю это состояние чистого листа.
3. Отформатируйте диск под LUKS
Используем для этого утилиту Cryptsetup. Её подкоманда luksFormat запускает первый этап создания зашифрованного раздела LUKS (позже мы создадим там файловую систему).
После этого появится предупреждение об удалении всех данных (которые могли всё ещё оставаться на диске). Кроме того, вас попросят придумать и ввести парольную фразу для диска.
4. Откройте LUKS-том
Процесс создания зашифрованного раздела завершён. Теперь для продолжения работы с диском нужно вводить парольную фразу. Открыть произвольный LUKS-том (то есть, подключить виртуальное блочное устройство) можно с помощью подкоманды open.
Я придумал фразу (а точнее, просто пароль в одно слово) «vaultdrive». У вас будет какой-то свой вариант. Чтобы посмотреть список открытых томов, нужно вывести содержимое каталога /dev/mapper:
Чтобы закрыть LUKS-том vaultdrive нужно написать:
После этого он исчезнет из каталога /dev/mapper.
5. Создайте файловую систему
Создайте файловую систему, чтобы иметь возможность хранить свои данные на диске. Я выбрал XFS, но это далеко не единственный вариант: можно использовать, например, ext4 или JFS. И многие другие.
Финал: монтирование LUKS-тома
Можно делать это через терминал. Например, мы хотим использовать для нашей цели директорию /mnt/hd
А рабочий стол KDE, например, позволяет указать диск для монтирования в специальном разделе с настройками. Но и там я тоже должен вводить пароль или парольную фразу, прежде чем произойдёт монтирование.
Изображение: Seth Kenlon, CC BY-SA 4.0
А какие инструменты для шифрования внешних дисков на Linux используете вы? Какие инструменты используете для аналогичных задач на macOS и Windows?
Недорогие VDS для любых задач. Используем новейшее железо, лучший дата-центр в Москве уровня надёжности TIER IV, бесплатно предоставляем защиту от DDoS-атак на любом тарифном плане, который можно создать самостоятельно в течение минуты.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
Немного здоровой паранойи еще никому не вредило. Помимо мессенджеров с оконечным шифрованием, шифрованием файлов на смартфонах «из коробки» и обязательным использованием SSL на сайтах, не лишним будет защитить данные на виртуальных серверах. Тем более, современные технологии сделали это простым и доступным любому пользователю. Крупные провайдеры, предоставляющие услуги хостинга VPS, предлагают шифровать данные пользователей используя стандартные средства операционных систем. Например, Microsoft, в своем облаке Azure, использует для серверов на Windows — BitLocker, а для виртуальных машин на Linux — DM-Crypt. Эти средства позволяют сохранить приватность ваших данных, даже если злоумышленник получит доступ к ЦОДу, где находятся сервер или вашему локальному компьютеру.
Можно доверять свои данные хостерам предоставляющим VPS, можно не доверять, но никто не запретит вам использовать те же самые способы у любого VPS-провайдера, настроенные самостоятельно. В этой статье я расскажу вам как это сделать.
Шифрование данных в системе Windows с помощью BitLocker
Наиболее простой, но весьма надежный способ шифрования для Windows — встроенный в систему сервис BitLocker. Его настройка простая и быстрая, потому проще всего воспользоваться графическим интерфейсом. Разберем этот процесс на примере Windows Server 2016, расположенном у провайдера RuVDS. Я выберу расположение сервера в Москве, для уменьшения пинга:
А для большей скорости работы BitLocker — диск SSD минимального размера.
Подключаться будем через стандартный RDP, который следует немного настроить перед использованием. Для этого надо нажать внизу окна переключатель «Показать параметры», во вкладке «Локальные ресурсы» отметить галочкой «Буфер обмена» и в диалоге вызываемом кнопкой «Подробнее», выделить «Диски».
Это позволит копировать файлы на ваш компьютер или вставлять их через обычный буфер обмена. RDP честно предупредит, что: «Это удаленное подключение может нанести вред…», по причине расшаривания локальных ресурсов. Примем к сведению и подключимся к серверу.
После логина мы увидим привычный рабочий стол и панель администрирования. Подключим сервис BitLocker прямо из нее, выбрав опцию «Add roles and features». На первом экране ставим галочку «Skip…», чтобы не читать предупреждение каждый раз при изменении конфигурации, затем нажимаем «Next» и выбираем «Role-based or feature-based installation», потом выбираем наш локальный сервер и в разделе «Features», отмечаем «BitLocker Drive Encryption».
Подтверждаем «Add Features», нажимаем «Next», отмечаем опцию «Restart the destination server automatically if required» и Нажимаем «Install».
После установки сервиса система автоматически перезагрузится, а при следующем подключении выведется окно, что инсталляция прошла успешно.
Заходим в поиск, вставляем туда имя программы: «gpedit.msc» и запускаем ее. Нам потребуется найти опцию по следующему пути: Local Computer Policy → Computer Configuration → Administrative Templates → Windows Components → BitLocker Drive Encryption → Operating System Drives
Надо активировать политику выбрав «Enabled», отметить в опциях чекбокс «Allow BitLocker without a compatible TPM (requires a password or a startup key on a USB flash drive)» и нажать «OK».
Осталось выбрать в Explorer диски, которые требуется зашифровать.
Мастер настройки проанализирует систему и попросит продолжить («Next»). В следующем диалоговом окне он предупредит, что диск будет использоваться BitLocker и порекомендует сначала забекапить критичные данные. Хорошая идея, но предположим, что вы это уже сделали, нажимаем «Next». Система подготовит диск для шифрования, но в процессе выдаст предупреждение, что некуда перенести данные Windows Recovery и предложит включить и настроить эту систему после шифрования. Установка почти закончена и мастер потребует перезагрузить систему.
После перезагрузки сервис будет установлен и система предложит зашифровать диск
На следующем диалоговом окне мастер попросит вставить флешку в USB или ввести пароль. Поскольку сервер у нас виртуальный — выбираем второе. В следующем окне придумываем, вводим и подтверждаем пароль, система будет ругаться, если он будет слишком простым или коротким, придется проявить фантазию.
Дальше нам предложат выбрать способ, которым будет сохранен ключ восстановления доступа для того случая, если мы забудем пароль для BitLocker.
USB нам вставлять некуда, можно выбрать локальный диск вашего компьютера, доступ к которому был открыт в опциях RDP. Файл будет называться примерно так: «BitLocker Recovery Key BE32F397-9C84-4765-9840-50BF3893CAB6.TXT». А внутри будет короткая инструкция и ключ восстановления:
Сохранив файл, переходим к выбору типа шифрования. Поскольку у нас защищается локальный жесткий диск, то выбираем первую опцию: «New encryption mode».
Все — системный диск нашего сервера зашифрован.
Пробуем к нему подключиться и… Ничего не получается!
Все логично. BitLocker будет требовать ввести пароль при загрузке, а происходит это еще до того, как система будет готова к удаленной работе. Через RDP это сделать невозможно.
Заходим на страницу RuVDS, где содержится информация о запущенных серверах и видим интересную картину:
На скриншоте с виртуального монитора что-то очень похожее на приглашение системы. Так и есть, нам придется воспользоваться консолью доступа аварийного режима, для того, чтобы ввести пароль перед загрузкой системы:
Вводим пароль и видим продолжение загрузки. Аварийную консоль можно закрывать и подключаться через RDP. К слову, такая операция нам потребуется при каждой перезагрузке виртуального сервера. Не очень удобно, но такова цена безопасности.
Теперь, когда мы открываем меню диска, то видим в нем новые пункты: «Change BitLocker password» и «Manage BitLocker». Открыв второй пункт мы может посмотреть статус диска и управление его шифрованием. Поскольку я специально выбрал небольшой SSD для демонстрации, то шифрование заняло меньше пяти минут. Когда оно закончилось, то интерфейс стал выглядеть так:
Установка Bitlocker и шифрование диска на виртуальном сервере — завершены. Теперь, если кто-то получит физический доступ вашему компьютеру, то он не сможет подключиться к серверу, даже если зайдет на сайт провайдера под вашим логином. А если придет в ЦОД и подключится изнутри к вашему VPS, то все равно не сможет получить данные — они будут зашифрованы.
Главное — не хранить на виду файл, в котором содержится ключ для восстановления доступа!
Настройка BitLocker на удаленном сервере — завершена.
Шифрование данных в системе Linux с помощью dm-crypt
Для Linux есть множество разных решений по шифрованию разделов, мы воспользуемся dm-crypt, простой и надежной системой, которую использует Microsoft в своем облаке Azure.
dm-crypt — стандартная система шифрования дисков на уровне ядра Linux, основанная на: device mapper, подсистеме создающей и обеспечивающей прозрачную работу с виртуальными устройствами; и crypto API — подсистеме шифрования, которая используется для работы VPN по протоколу IPsec и ряде других функций. У dm-crypt есть два способа работы с криптоконтейнером, plain — при котором данные не содержат видимого формата и выглядят как случайный набор байт, и LUKS — который предоставляет больше возможностей, например автоматическое определение криптоконтейнеров системой, но при этом файл будет содержать метаданные, по которым можно определить сам факт шифрования. Мы будем пользоваться вторым способом, через протокол LUKS.
Сервер выбирается аналогично первому разделу, за исключением операционной системы. Пропустим шаги по предварительной настройке, их можно найти в руководстве RuVDS и перейдем к установке системы шифрования. Обновим список пакетов и установим cryptsetup — интерфейс командной строки dm-crypt (для упрощения, все команды будут вводиться из под пользователя root):
Для хранения зашифрованных данных надо сначала создать специальный файл, который потом будет выступать в качестве устройства. Он обязательно должен быть неразрывным и для этого есть несколько способов, разной степени безопасности.
Один из них — с помощью команды fallocate.
Создадим файл размером 512 мегабайт, с именем test-crypt в домашней директории пользователя root:
Это способ самый простой и быстрый, но наименее безопасный, потому что команда просто выделяет место на диске, не перезаписывая данные, которые там содержались.
Более безопасно можно создать файл с помощью утилиты dd (dataset definition), она позволяет не только создать файл, но и записать в него информацию, которая затрет предыдущее содержимое из выделенной области. Например нулями из виртуального устройства /dev/zero:
Наиболее параноидальный способ, это заполнить файл из /dev/urandom. Но он и наиболее медленный:
После создания файла, надо преобразовать его в раздел LUKS:
Ответьте YES на запрос программы, а затем задайте пароль. В отличии от BitLocker здесь не будет никаких способов восстановления, секретных ключей и прочих удобств, если забыл пароль — данные будут безвозвратно потеряны! Очень ответственно подойдите к этому вопросу. Потому обязательно надо использовать опцию -y , которая запрашивает подтверждение пароля.
Проверим, что у нас получилось, с помощью утилиты file :
Вывод должен показать что-то вроде:
Это значит, что криптоконтейнер создан и готов к использованию, осталось его развернуть в устройство crypt-volume:
Создать там файловую систему:
И выбрать точку монтирования:
Зашифрованное устройство готово к использованию, осталось только смонтировать его и пользоваться как обычным диском, все операции по шифрованию и дешифрованию происходят «на лету», прозрачно для пользователя и системы.
Проверим наше устройство. Скопируем в него какие-нибудь данные, например содержимое директории /etc/ssh и посмотрим, что скажет утилита dh
Как мы видим, устройство смонтировано, имеет определенный нами объем и заполнено примерно на 1% файлами из директории ssh.
Для того, чтобы закончить работу с криптоконтейнером, надо его отмонтировать, а затем отключить:
Работа с устройством закончена и у нас есть самый обычный файл, зашифрованный с помощью нашего пароля, данные которые недоступны постороннему, даже если он получит физический доступ к серверу.
Чтобы снова воспользоваться криптоконтейнером, надо будет его опять инициализировать и смонтировать:
На этом обзор систем шифрования данных, которые можно применять на виртуальных серверах — закончен.
Читайте также: