>
Ноябрь 2017
Пн Вт Ср Чт Пт Сб Вс
« Окт    
 12345
6789101112
13141516171819
20212223242526
27282930  

Шифрование данных и настройки приватности в Linux

Шифрование данных и защита приватности на сегодняшний день является практически первоочередной задачей. Масса приложений собирают нашу информацию и сохраняют ее на своих серверах. Сегодня мы раскажем как можно защитить свою информацию с исползованием системы Linux.

шифрование данных

Под термином защита информации мы имеем ввиду шифрование данный и анонимизация и криптование сетевого трафика. Начнем пожалуй с шифрования. Для начала  сформулируем основные требования к системе, то есть что бы хотелось получить на выходе. Будем считать, что хорошая криптосистема должна шифровать абсолютно всё содержимое жесткого диска так, чтобы его содержимое нельзя было отличить от случайных данных. Загрузчик системы должен состоять из двух частей и находиться на флешке или другом сьёмном носителе. Первая, незащищенная часть, по паролю расшифровывает вторую, в которой находится ядро системы и ключи от жесткого диска. Система должна допускать быструю смену ключей и паролей без потери данных, а работа с разделами должна быть такой же, как и обычно.

АЛГОРИТМ РАБОТЫ
С требованиями определились. Теперь давай подумаем о том, как будем этого добиваться. Итак, наша схема будет работать следующим образом:
• при включении компьютера мы вставляем в него флешку,
• она запускает загрузчик,
• мы вводим пароль,
• после загрузки ОС флешка вынимается,
• дальше работа с компьютером идёт как обычно.

В то время как обычные средства шифрования защищают только домашний раздел или оставляют загрузчик на жестком диске — наша схема делает выключенный компьютер практически неуязвимым к снятию информации и протрояниванию компонентов системы, а для уничтожения всех данных на нём достаточно просто уничтожить флешку. Когда компьютер включен, ключи от диска находятся в оперативной памяти, поэтому для надёжной защиты от cold-boot атак необходимо использовать пароль на BIOS/UEFI и входить в режим гибернации, если нет возможности контролировать доступ к компьютеру.

ПОДГОТОВКА ДИСКА
Ну а теперь перейдем непосредственно к действиям.
Для осуществления задуманного нам понадобятся:
1. Live-DVD с любым дистрибутивом Linux (все команды в статье даны для Debian/Ubuntu);
2. Любая свободная флешка размером более 128 Мб;
3. Прямые руки.

Если ты хочешь защитить уже существующую систему, а не ставить новую, необходимо сначала сделать её полный бэкап.
Для начала нам нужно загрузиться с Live-DVD и определиться с носителями, на которые будем ставить систему. В нашем примере мы работаем с дистрибутивом Debian, а наши носители — жесткий диск /dev/sda и флеш-карта /dev/sdb. После загрузки нам необходимо открыть консоль с правами root и установить необходимые программы — полнодисковое шифрование cryptsetup
и загрузчик grub2:

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

А затем затрем диск случайными данными:

Теперь нам необходимо сгенерировать ключ шифрования и положить его в /root/key:

Итак, форматируем жесткий диск:

В начале диска, зашифрованного LUKS, есть заголовок, в котором перечис-
лены методы шифрования и зашифрованные ключи. Чтобы содержимое диска
выглядело как случайные данные, мы забэкапим и затрём этот заголовок:

Открываем наш зашифрованный диск:

Далее с /dev/mapper/rootfs можно работать как с обычным жестким диском. При необходимости можно использовать RAID, LVM и даже создатьswap-раздел. Устанавливаем систему или копируем защищаемую:

УСТАНОВКА СИСТЕМЫ
В рамках статьи мы будем устанавливать Debian Jessie с помощью debootstrap, утилиты для развёртывания базовой debian-based системы в папке другой системы (а скопировать уже существующую систему можно rsync-ом):

Теперь chroot-имся в неё, ставим необходимый софт и настраиваем initramfs:

Обязательно нужно установить пароль на систему, если она новая:

НАСТРОЙКА СИСТЕМЫ
Так как теперь корневая ФС системы при загрузке теперь будет находиться в /dev/mapper/rootfs, надо поправить информацию о файловых системах в fstab:

Следующим шагом выходим из chroot и делаем копию initrd:

Распаковываем его:

И подправляем скрипты, запускаемые при загрузке системы до монтирования основных файловых систем. В файле ./scripts/local-top/ORDER необходимо заменить cryptroot на crypto. Содержимое файла ./scripts/local-top/crypto нужно заменить на скрипт, открывающий наш полностью зашифрованный диск:

$DISK_ID можно узнать, используя ls -l /dev/disk/by-id/ | grep sda. После этого делаем скрипт исполняемым:

Затем кладём в initrd ключ и заголовок тома:

Собираем получившийся initrd и кладём его в папку /root:

ПОДГОТОВЛИВАЕМ ФЛЕШКУ
Пришло время заняться флешкой, без которой наш зашифрованный диск будет представлять собой несвязанный набор байт. Начинаем с ее разметки:

Теперь шифруем раздел и устаналиваем на него пароль (как ты помнишь, мы разбиваем флешку на два раздела):

Остается настроить загрузчик. Для этого открываем /etc/default/grub и добавляем в конец файла строку GRUB_ENABLE_CRYPTODISK=1. После этого форматируем раздел под загрузчик:

И монтируем его:

Устанавливаем GRUB на флеш-карту. Значение –target следует выбрать в зависимости от параметров твоего компьютера. Наиболее универсальный вариант — i386-pc:
grub-install –target=i386-pc –root-directory /mnt/grub/ /dev/sdb
Теперь создадим файл конфигурации /mnt/grub/grub.cfg:

Загрузчик системы теперь выглядит так

Загрузчик системы теперь выглядит так

В этом файле мы задаем одну строку меню «Linux», при запуске которой после ввода пароля открывается зашифрованный раздел флешки с ядром системы и ключами от жесткого диска.

Ввод пароля от флешки

Ввод пароля от флешки

После этого открываем защищенный раздел на флешке:

Форматируем его и монтируем:

Hex-дамп заголовка диска и флешки

Hex-дамп заголовка диска и флешки

После чего копируем в него ядро и initrd:

Всё готово!
Размонтируем диски и перезагружаемся:

АНОНИМИЗАЦИЯ ОС
С шифрованием разобрались. Теперь пришло время поговорить об анонимизации системы.
Во многих случаях (например, при анализе вредоносного программного обеспечения) необходимо изолировать всю операционную систему и анонимизировать её трафик таким образом, чтобы никакие действия в ней не привели к раскрытию нашего ip-адреса или утере важных данных. Для этого воспользуемся схемой на основе связки Whonix (виртуальной машины, выступающей в качестве шлюза, перенаправляющего трафик в Tor) и любой другой виртуальной машины.

НАСТРОЙКА
По шагам:
• Скачиваем Virtualbox, Whonix Gateway и Kali;
• Проверяем ova-файл, устанавливаем и обновляем Whonix по инструкции на сайте;
• Для отключения графического интерфейса — выделяем виртуальной машине 120 Мб оперативной памяти;
• Затем проверяем файл с образом диска Kali и создаём под него новую виртуальную машину;
• В настройках сетевого адаптера VM выбираем внутреннюю сеть whonix;
• Включаем систему;
• Настраиваем сеть вручную или с помощью Network Manager-а:

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

Кстати говоря, в нашем случае для усложения отслеживания лучше использовать Tor Browser с правами обычного пользователя, так как стандартный браузер Kali довольно редок и запускается от рута. Для этого устанавливаем sux, который позволит нам запускать графические приложения от имени другого пользователя:

Скачиваем браузер с официальной страницы проекта. Опять же на всякий случай проверяем целостность скачанного файла (по данной инструкции). Затем создаём пользователя torbrowser, логинимся в него через su и распаковываем архив с правами этого пользователя:

Далее отключаем в нём Tor, так как весь трафик уже анонимизируется на виртуальной машине с Whonix, а Tor через Tor – это вредно и очень медленно. Как это сделать, можно посмотреть тут. Ну и, наконец, запускаем torbrowser:

Настройка ssh и sshfs для включенной машины
Для подключения к гостевой машине через ssh нужно сначала подключиться к Whonix-Gateway, пробросив порт, а потом из Whonix-Gateway подключиться к ssh-серверу, запущенному на Kali. Аналогичным способом можно получить доступ к файлам на Kali с помощью двойного sshfs.

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

ВО ВРЕМЯ РАБОТЫ
Перед запуском Whonix Gateway и Kali рекомендую включить VPN и поставить на закачку несколько произвольных торрентов с большим количеством сидов — например, с популярными дистрибутивами Linux-a. Это сильно затруднит проведение атак, основанных на статистическом анализе трафика. Кроме того, чтобы избежать случайной утечки информации, желательно закрыть всепосторонние программы.

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

TIPS & TRICKS
Ну а теперь приведем несколько советов, которые обязательно пригодятся тебе в будущем.
Совет 1. Чтобы сменить цепочку Tor-серверов и выходную ноду, необходимо запустить в консоли Whonix Gateway утилиту arm и нажать клавишу «n».

Совет 2. Для безопасного обмена данными с выключенной виртуальной машиной можно монтировать её диски с помощью vdfuse:

Совет 3. При подключении по ssh из реальной машины можно использовать tmux для одновременной работы с терминалом изнутри и снаружи VM. Для этого необходимо запустить tmux в Kali, подключиться к ней по ssh и выполнить tmux a. Можно также смонтировать папки  виртуальной машины с помощью sshfs:

Совет 4. Для приватной анонимной связи и передачи файлов я рекомендую torchat. Его стоит запускать в основной системе, чтобы предотвратить сценарий Tor-over-Tor, утечку и потерю данных. Для связи с группой лиц можно использовать свои irc- или jabber-серверы в качестве onion-ресурсов: рекомендуемый клиент — Pidgin, система криптографической защиты чатов — otr.

Совет 5. В случае если необходимо анонимно работать с не-TCP-шными протоколами, можно воспользоваться VPN (желательно — не требующей регистрации). Для этого обычно нужно скачать соответствующий конфигурационный файл и использовать команду sudo openvpn config.ovpn.

МЕРЫ ПРЕДОСТОРОЖНОСТИ
Хотя рассмотренная схема и гарантирует защиту от утечки ip-адреса из виртуальной машины, для настоящей анонимности необходимо соблюдать следующие правила:
• Нельзя подключаться к своим ресурсам;
• Нельзя заходить в аккаунты, которые использовались тобой без Tor-а;
• Нужно помнить, что все нешифрованные данные могут перехватываться exit nod-ой;
• Нельзя допускать прохождение трафика Tor-a через Tor, так ноды двух цепочек могут случайно совпасть, тем самым сокращая эффективную длину цепочки вплоть до 1 машины;
• При передаче файлов нужно защищать их криптографическими и стеганографическими методами, используя утилиты gpg и steghide, и анонимизировать их метаданные, например, с помощью mat (Metadata Anonymisation Toolkit).

Заключение:
Ну вот и все, чем я хотел поделиться с тобой сегодня. Надеюсь, данная небольшая статья-нструкция поможет тебе защитить свои данные и личную жизнь от чужих глаз. Удачи и до новых встреч!

Также вам может быть интересно:

Анонимность в сети – обзор дистрибутивов Linux.

Как проверить свою анонимность в сети интернет

Как обеспечить себе максимальную анонимность в сети.

Бесплатный VPN в любой стране.

Как быть анонимным в сети.

Как быть анонимным в сети. Часть 2

Анонимности в сети нет… (Steven Rambam)

[Всего голосов: 4    Средний: 5/5]
Share Button

Вам может быть интересно также:

Last updated by at .

Leave a Reply

You can use these HTML tags

<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">