Делаем шпионскую флешку с защищенной операционкой Tails
Содержание статьи
Tor, безусловно, одно из самых нужных средств защиты личных данных. Но чтобы обезопасить себя со всех сторон и работать, не оставляя вообще никаких следов, нужно намного больше. Tails — операционная система семейства Debian Linux, основанная на серьезных принципах защиты данных. Используя флешку с Tails, ты можешь не опасаться не только слежки в интернете, но и обыска в квартире.
Справочник анонима
Статьи из этого цикла публикуются бесплатно и доступны всем. Мы убеждены, что каждый имеет право на базовые знания о защите своих данных.
Другие статьи цикла:
Если для тебя эти материалы тривиальны — отлично! Но ты сделаешь доброе дело, отправив ссылку на них своим друзьям, знакомым и родственникам, менее подкованным в технических вопросах.
Вступление
Tails — не единственный дистрибутив Linux, который ставит защиту данных во главу угла. Но, на мой взгляд, это на сегодняшний день лучший выбор для человека, желающего сохранить конфиденциальность переписки, защищенность личных данных и сохранность важной информации от любопытных глаз. И раз уж я заговорил о принципах защиты данных в Tails, то нелишне будет их перечислить.
Все эти принципы дополняют друг друга. Если ты действительно озабочен защитой своих данных и сохранением конфиденциальности, не пренебрегай ни одним из них.
Установка
Для установки Tails нам понадобится две флешки. Почему две? Чтобы понять, что такое рекурсия, нужно сначала понять, что такое рекурсия. А Tails можно установить, только используя Tails. Скачиваем ISO с официального сайта tails.boum.org. Образ рекомендуется сразу проверить с помощью OpenPGP, подробная инструкция о том, как это сделать, есть на сайте. Скачанный образ записываем на первую, промежуточную флешку с помощью Universal Usb Installer. После этого можно выключать компьютер и загружаться с флешки. Когда ОС загрузится, нужно будет вставить вторую (основную) флешку и выбрать Applications → Tails → Tails Installer Install by Cloning.
Если все получилось, то система готова к работе.
Начало работы
После загрузки с рабочей флешки нам потребуется создать постоянный (persistent) защищенный раздел, своеобразный «жесткий диск на флешке». Это делается через Application → Tails → Configure Persistence.
Перезагружаем компьютер и на загрузочном экране выбираем Use Persistence и More Options, после чего вводим пароль для нашего хранилища.
Из меню внизу экрана выбираем регион. Это важно, поскольку от региона зависят входные узлы Tor. Здесь следует поэкспериментировать. В моем случае лучшим выбором оказалась Дания.
В меню расширенных настроек задаем пароль для программ, которым нужны права администратора. Можешь поставить любой, он работает в рамках сессии и ни на что больше не влияет.
Имей в виду, что загрузка занимает некоторое время, а потом Tails еще несколько минут будет подключаться к Tor. Отслеживать процесс можно, щелкнув по иконке Onion Circuits — луковичке в верхнем правом углу экрана.
Спустя некоторое время Tails проинформирует об успешном подключении к Tor. По умолчанию сеть сконфигурирована так, что весь трафик будет проходить через него. Теперь можно скачать все, что нам нужно для работы.
Дополнительное ПО, сохранение файлов и настроек
По умолчанию Tails не рассчитана на сохранение установленного ПО, настроек и файлов после выключения компьютера. Однако создатели предусмотрели возможность хранить некоторые данные в персистентном разделе. Настроить, что именно будет храниться, можно в разделе Settings → Persistent.
Большинство пунктов меню очевидны, поэтому я остановлюсь на последних трех. Второй и третий с конца отвечают за хранение APT-пакетов. Tails основана на Debian, поэтому большинство нужного нам ПО можно установить при помощи apt-get. И хотя сами программы при отключении компьютера не сохранятся, пакеты APT при соответствующих настройках останутся в персистентном разделе. Это позволяет развертывать все нужное ПО в процессе загрузки системы.
Последний пункт меню Dotfiles позволяет создать в персистентном разделе папку с файлами, ссылки на которые будут создаваться в домашней папке Tails при загрузке. Выглядит это следующим образом.
Вот пример структуры файлов в постоянном разделе.
В домашней папке при таком раскладе будет следующая структура ссылок:
Защищаем данные, отбрасываем хвост
Сам по себе наш персистентный раздел уже зашифрован. Однако у него есть существенный недостаток: он не обеспечивает правдоподобное отрицание наличия зашифрованных данных. Чтобы обеспечить правдоподобное отрицание, я предложу решение, которое отличается от рекомендаций создателей Tails. Как поступить тебе — решай сам.
Создатели Tails рекомендуют использовать cryptsetup, основанный на LUKS. Эта программа позволяет создавать скрытые разделы, однако такой раздел скрыт не до конца. Насколько мне известно, существует возможность обнаружить заголовок скрытого раздела, что позволяет установить его наличие.
Такой скрытый раздел лично меня не устраивает. Поэтому я решил использовать старый добрый TrueCrypt версии 7.1а. Заголовок скрытого раздела TrueCrypt неотличим от случайных данных, и, насколько мне известно, обнаружить его невозможно. Двоичный файл программы TrueCrypt лучше хранить здесь же, в персистентном разделе.
Детально описывать процесс создания двойного криптоконтейнера я не стану, отмечу лишь важный нюанс. Поскольку скрытый раздел TrueCrypt по-настоящему скрытый, о его существовании не догадывается даже сама программа, пока ты не введешь нужный пароль. Из-за этого при записи файлов в ложный раздел скрытый раздел может быть поврежден. Чтобы этого не произошло, при монтировании ложного раздела для записи на него картинок котиков нужно выбрать Mount Options → Protect hidden volume when mounting outer volume.
Подобно ящерице, которая при опасности отбрасывает свой хвост, мы теперь в случае необходимости сможем ввести пароль от фальшивого раздела и продемонстрировать всем фотографии котиков вместо конфиденциальной информации.
Общение
Теперь, когда мы обезопасили нашу информацию, можно приступить к ее передаче, то есть к общению. Начнем с Pidgin. Он отлично годится в качестве клиента IRC, а в Tails его еще и немного усилили. В состав ОС включен Pidgin с установленным плагином для протокола OTR. Именно он нам интересен больше всего. Избегая сложной математики, можно сказать, что этот протокол обеспечивает защищенную передачу данных с возможностью отречения, то есть доказать, что конкретное сообщение написано конкретным человеком, невозможно.
После того как соединение с сервером установлено, выбираем Buddies → New Instant Message.
В открывшемся окне диалога выбираем Not Private → Start Private Conversation.
Будет предложено три варианта для аутентификации: ввести ответ на секретный вопрос, который вы обсудили с собеседником заранее (в этом случае необходимо ввести один и тот же ответ, пробелы и регистр считаются); ввести общую «секретную» фразу; проверить fingerprint — это сорокасимвольная последовательность, идентифицирующая пользователя OTR.
Теперь можно переписываться по OTR. Но как насчет голосового общения? Тут, увы, не все гладко. Поскольку Tails направляет весь трафик через Tor, возникает ряд проблем для голосового общения. Во-первых, большинство VoIP-программ используют UDP, в то время как через Tor возможна передача только пакетов TCP. Во-вторых, Tor не отличается скоростью и пакеты иногда приходят с сильной задержкой. Так что возможны задержки и разрывы связи.
Электронная почта
Почту в Tails можно использовать точно так же, как и в других ОС. В стандартную сборку входит почтовый клиент Icedove, его настройки и ключи можно хранить в персистентном разделе. Важный нюанс, который следует иметь в виду при отправке писем, состоит в том, что заголовки (subject) не шифруются. Это не ошибка, а особенность реализации протокола, о которой нужно просто знать. Кроме того, файлы, передаваемые по электронной почте, рекомендуется шифровать.
Итого
Я описал лишь некоторые возможности Tails, но базовая сборка содержит внушительный набор дополнительных программ, которые тебе предстоит изучить самостоятельно. Рекомендую, к примеру, посмотреть софт для стирания метаданных файлов — он поможет тебе обезопасить себя еще лучше.
Источник
Строим защищённую систему на основе TOR и I2P
Введение
В этом посте я попробую расписать по шагам о том, как построить защищённую систему для безопасного приёма, передачи, хранения и обработки конфиденциальных и иных опасных данных. Ни для кого не секрет, что сейчас различные лица и организации пытаются удушить свободу как самого интернета, так и его пользователей, и зачастую им это удаётся. Поэтому сейчас мы попробуем соорудить небольшую, но прочную крепость внутри нашего компьютера.
На провокации вида «при помощи такой системы можно слить гостайну врагу» я отвечаю сразу: при помощи ядерных ракет можно не только устроить конец света, но и отогнать или расколоть угрожающий нашей планете астероид.
Что нам потребуется?
Во-первых, это компьютер достаточной производительности с большим объёмом оперативной памяти. Его операционная система значения не имеет, поскольку устанавливаемое на него ПО кроссплатформенно. Ну, разве что, за исключением экзотических или совсем уж древних ОС.
Во-вторых, программное обеспечение. Я перечислю его в порядке, в котором оно потребуется в построении системы:
Начнём!
Для того, чтобы защитить данные от прямого захвата жёсткого диска, нам необходимо их зашифровать. Для этого мы будем использовать утилиту TrueCrypt.
Создадим с её помощью зашифрованный том, хранящийся в файле. Можно создать и на разделе, но, на мой взгляд, это менее удобно.
Создавать ли скрытый том? Вопрос неоднозначный. Эта фича предназначена для использования в Англии, где невыдача паролей при конфискации ПК сама по себе является преступлением. В то же время в России такой законодательной нормы нет, а использование скрытого раздела съедает полезный объём диска. Я создавать скрытый раздел не стал.
Размер раздела выберем на своё усмотрение. Лично я выбрал 50 ГБ.
Алгоритм шифрования — я выбрал AES. Во-первых, ему доверяют американские военные для защиты высших грифов секретности, а во-вторых, он аппаратно ускоряется новыми процессорами Intel и TrueCrypt имеет поддержку этого ускорения.
Далее всё стандартно: придумываем сложный и длинный пароль, генерируем энтропию хаотичными движениями мыши и создаём раздел. Тип раздела обязательно должен быть NTFS, поскольку в нём будут храниться большие файлы.
Создадим в Боксе машинку с двумя жёсткими дисками: одним — на 8-10 ГБ и вторым на всё оставшееся место, разумеется, расположив оба на шифрованном диске. Пройдёмся по настройкам, поставим сеть в NAT и настроим остальное по своему вкусу — особо критичного там ничего нет. Подключим образ Убунты (который, надеюсь, уже скачался) в качестве дисковода.
Запускаем машину и начинаем установку ОС. При разбиении дисков поступим примерно так: разместим на первом, маленьком, корень и своп, а на большом — /home. Все данные мы будем хранить в /home. Таким образом, разделение системы и данных происходит между разными файлами жёстких дисков Бокса. Далее всё выполняем по своему вкусу.
Установилось! Теперь начинаем настройку.
Идея заключается в том, чтобы оставить прямой доступ в сеть только двоим избранным — маршрутизаторам TOR и I2P.
Сначала ставим TOR из их собственного репозитория (в официальном версия может быть устаревшей) по инструкции с официального сайта. Потом поставим и I2P, опять же из собственного PPA-репа разработчиков — инструкция.
Обратим внимание, что TOR сам по себе предоставляет только SOCKS5-прокси, и его поддержка есть не во всех программах. Поэтому установим Polipo — свободный HTTP-прокси:
sudo apt-get install polipo
Настроим его:
sudo nano /etc/polipo/config
Добавим в него строчку:
proxyPort = 8118
Ниже раскомментируем (или подправим, если что-то не так):
socksParentProxy = «localhost:9050»
socksProxyType = socks5
Сохраним. Перезапустим Полип:
sudo service polipo restart
Теперь настроим I2P:
sudo nano /etc/default/i2p
Включим запуск в качестве демона:
RUN_DAEMON=»true»
Заодно видим в файле имя пользователя, от которого работает маршрутизатор — у меня это i2psvc
Сохраняем.
Запускаем: sudo service i2p start
И теперь — самое вкусное: рубим доступ в сеть всему, что не TOR и не I2P. Ещё раз — всему.
Вот готовый скрипт iptables-restore, только проверьте ещё раз имена пользователей.
Общая политика DROP, разрешён доступ всем на локалхост, I2P и TOR — во внешнюю сеть.
sudo nano /etc/iptables.up.rules
Допишем команду загрузки правил:
pre-up iptables-restore
У меня выглядит так:
auto lo
iface lo inet loopback
pre-up iptables-restore
Поскольку управление сетью у меня идёт посредством network-manager — интерфейса eth0 в файле нет. Правила прописываются при поднятии лупбэка, но разницы нет, поскольку эти правила едины для всех интерфейсов.
Загрузим правила в iptables. Можно перезапустить сеть, но мы сделаем так:
sudo iptables-restore
Готово! Крепость построена, ров вырыт, лучники на стенах выставлены. Но мы ещё не раздали пропуска её жителям! Исправим.
Для доступа во внешний интернет лучше применять TOR, HTTP-интерфейс которого у нас на 8118 порту.
nano
Допишем в конец:
export http_proxy=»http://127.0.0.1:8118/»
Теперь в терминале просто
bash
При этом шелл перечитает свой конфиг. Однако apt, без которого в Убунте — как без воды (и ни туды, и ни сюды), чихать хотел на эту переменную окружения. Разъясним ему персонально внутриобъектный режим нашей крепости:
sudo nano /etc/apt/apt.conf.d/proxy
Там должно быть:
Acquire::http::Proxy «http://127.0.0.1:8118/»;
Сохраняем, закрываем.
Ну вот вроде и всё. Теперь осталось поставить браузер (если чем-то не нравится установленный по умолчанию Фокси) и начинать пользоваться не очень быстрым, зато защищённым со всех сторон доступом. И повторюсь — программа внутри виртуалки может быть нашпигована хоть тысячей закладок — данные она, может, и сольёт, только они будут анонимными. Вычислить внешний IP не удастся никому.
Однако (спасибо amarao за дополнение) смотрите внимательно, какие программы вы запускаете от рута! Поскольку вредоносная программа может обойти защиту двумя способами: прописав своё вредоносное правило в iptables или внедрив шпионский модуль ядра. Обе процедуры требуют рут.
Систему строил полностью своими силами, не опираясь на готовые How-To (если такие вообще существуют, я не нашёл). Поэтому буду рад принять от читателей возможные усовершенствования и указания на недочёты.
Спасибо за внимание! Надеюсь, хоть кому-нибудь я пользу принёс.
Источник