Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Дельта-синхронизация крипто-дисков

Существуют разные способы зашифровать "облако". Один из них - поместить в облако крипто-диск. В предыдущей статье мы писали, почему это не всегда удобно.

Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Защищенная система своими руками. Руководство для параноика


Автор: Денис Колисниченко (dhsilabs@gmail.com)

Изначально была написана для Хакера, но не подошла. Так что статья больше нигде не публиковалась

Что будем защищать

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

Для шифрования контента жесткого диска можно использовать много разных программ, но лучшей по праву является TrueCrypt. Для шифрования трафика можно использовать всем известный TOR + I2P. Тема не нова, но давайте разберемся, как все это использовать эффективно.

Как будем защищать

А вот тут начинается самое интересное. Спрашивается, как с помощью TrueCrypt и TOR построить действительно защищенную систему? Ведь можно просто установить тот же TrueCrypt и TOR (операционка значения не имеет, поскольку эти программы работают, как в Windows, так и в Linux и Mac OS X). Но, согласись, это было бы не интересно. Совсем не интересно.

Чтобы создать оптимальную концепцию защиты, нужно продумать, зачем она тебе нужна и в какой степени:

* Самый тривиальный случай: у тебя есть файлы (пусть это будет каталог или даже диск с твоей бухгалтерией), которые нужно зашифровать, чтобы они не достались никому и никогда. Также тебе нужно время от времени зайти на какой-то форум, чтобы никто не смог отследить, откуда ты и чтобы провайдер не смог подсмотреть, по каким сайтам ты ходишь и какие сообщения ты отправляешь на тот самый форум.

* Случай чуть сложнее: нужно шифровать все файлы на винте, точнее все файлы на единственном системном диске C:, поскольку ты не приучен к порядку и файлы с важными данными могут находиться везде. Требование к шифрованию трафика такое же, но может быть ты хочешь еще шифровать не только http, но и другие протоколы.

* Полная паранойя и полная мобильность: ты полностью шифруешь отдельный жесткий диск (возможно, внешний) или создаешь в TrueCrypt зашифрованный файл, который будет использоваться как отдельный винт и который при необходимости можно будет скопировать куда угодно. На этот зашифрованный файл/диск устанавливается виртуальная машина с Linux, а в ней уже настраивается Tor, но так чтобы через него проходили все соединения всех Интернет-программ.

Теперь рассмотрим каждый из этих вариантов подробнее.

Самый тривиальный вариант

Здесь все просто: достаточно установить TrueCrypt, зашифровать какой-то раздел жесткого диска или просто создать зашифрованный файл на диске, скажем, объемом 20 Гб. На него ты поместишь все свои файлы, требующие защиты. Я даже больше склоняюсь к созданию файла, а не к шифрованию раздела. Файл размонтировал и его не видно. Конечно, можно произвести поиск по размеру, но на первый взгляд он вообще не бросается в глаза, что хорошо для "маскировки".

Параллельно устанавливаешь Tor, через которые ты будешь посещать некоторые (не все) сайты.

Удобно. Подробных инструкций не будет (читай далее, чтобы узнать, как использовать TrueCrypt), так как все просто. Еще раз отмечу, что и Tor, и TrueCrypt доступны для всех трех самых популярных ОС - Windows/Mac OS/Linux, поэтому какая у тебя операционка значения не имеет.

Чуть сложнее: шифрование всего системного раздела

С помощью TrueCrypt ты можешь зашифровать весь системный диск, но я не рекомендую этого делать. Во-первых, вносятся изменения в процесс загрузки системы (ведь пароль TrueCrypt нужно вводить до загрузки системы) и еще не известно, как TrueCrypt повлияет на загрузку, если у тебя установлено две системы, например, Windows и Linux. Лично я не проверял, что произойдет с GRUB2 после изменений в MBR, и у меня нет никакого желания это делать.

Во-вторых, шифровать же нужно далеко не все файлы. Зачем шифровать системные файлы Windows, файлы программ - они одинаковы у всех, у тебя в этих файлах точно не будет ничего секретного? Поэтому все же лучше зашифровать отдельный диск, на котором будут храниться твои данные и, возможно, будут установлены программы, которые ты хочешь скрыть, например, та же 1С. Так что я все-таки рекомендую или первый или третий вариант - по твоему усмотрению. Конечно, при желании TrueCrypt может зашифровать весь системный диск. Если уж собрался шифровать весь диск, тогда хоть выбери алгоритм шифрования AES - он не только надежен, но и аппаратно ускоряется интеловскими процами (актуально, если у тебя Интел) - хоть как-то компенсируешь потери в производительности.

Что касается защиты не только веб-трафика, но и той же аськи или почты, можно настроить клиенты для работы через TOR. Главное, чтобы программы позволяли установить адрес и порт прокси. Указываешь localhost:9050 и наслаждаешься безопасной работой. Если программы не умеют использовать прокси, меняешь программы и устанавливаешь те, которые умеют. Это самый простой вариант. Можно, конечно, настроить прозрачный прокси и тогда все программы будут работать через TOR, в этом варианте его настройка отличается для каждой ОС, и в журнале просто нет для этого места. Да и нет особой необходимости - ведь далее будет описан самый параноидальный вариант.

Для параноиков

Общий смысл этого способа был описан выше: создаем зашифрованный диск, на который помещаем виртуальную машину с Linux. В Linux уже мы ставим TOR и делаем так, чтобы весь трафик передавался через него, со всех программ. Вот она абсолютная защищенность! С одной стороны, файлы виртуальной машины будут шифроваться TrueCrypt. С другой стороны, весь доступ к Интернету будет осуществляться через виртуальную машину. Да, пусть скорость Интернет-соединения через TOR будет медленной, но зато защищенной. А даже если в твоей виртуалке и появится какая-то программа (в чем я сомневаюсь - ведь мы установили Linux), которая будет сливать данные "на сторону", ничего страшного - они будут анонимными и не будет никаких доказательств, что они были слиты именно с твоего компа.

Почему именно Linux? Теоретически, в виртуалку можно поместить хоть и Windows XP. Но мы намеренно используем софт с открытым кодом, надеясь, что в нем не будет "закладок" - программ, которые будут сливать третьей стороне инфу. В Windows может таких программ и нет (именно в самой ОС, но кто его знает - ее код недоступен общественности), но благодаря ее "дырявости" такие программы могут очень быстро там поселиться в процессе обычной работы с компом. Linux в этом плане более защищена.

Реализация

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

Первым делом ставим и запускам TrueCrypt. Нажимаем кнопку "Create Volume" для начала создания зашифрованного диска. В появившемся окне (рис. 1) выбираем "Create an encrypted file container". Этим ты создашь виртуальный зашифрованный диск, который будет сохранен в файловой системе, как обычный файл. В большинстве случаев рекомендуется именно этот вариант.

Рис. 1. Тип шифрованного тома

Далее нужно ответить на вопросы, задаваемые мастером создания зашифрованного тома. Обрати внимание на следующее: алгоритм шифрования (рис. 2), размер шифрованного тома (рис. 3) и пароль.

Рис. 2. Выбор типа шифрования

Рис. 3. Размер тома

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

Что касается размера тома, то все зависит от дистрибутива, который ты будешь устанавливать. То же Ubuntu или Debian после установки занимают около 4 Гб. Еще нужно оставить место для твоих файлов и дополнительных приложений. Для статьи я создал диск размером 10 Гб, а на практике можно создать 30 - 50 Гб.

Теперь о пароле. Программа рекомендует пароль не меньше 20 символов. Это хорошо, но вряд ли ты такой запомнишь. А записать его на бумажке или в каком-то файле, который будет находиться, понятно, в незашифрованной области винта… А смысл тогда все это было устанавливать? Поэтому выбираем пароль длиной 8-12 символов, но обязательно, чтобы в нем бы как цифры, так и буквы в разном регистре. Можно также поместить какой-то специальный символ вроде #. Пример хорошего пароля: HoM#e0691.

После того, как диск будет создан, выбери его в TrueCrypt и нажми кнопку Mount. На рис. 4 видно, что я подмонтировал зашифрованный диск к букве Z:. При монтировании программа попросит ввести пароль, указанный при создании диска.

Рис. 4. Шифрованный диск подмонтирован к букве Z:

Теперь, когда шифрованный диск создан, можно приступить ко второму этапу. Создай виртуальную машину, виртуальный диск которой нужно поместить на шифрованный диск Z:. Виртуальную машину можно создавать в той программе, которая тебе больше нравится - это можно быть VirtualBox или VMWare или любая другая.

Дистрибутив тоже выбирай тот, который тебе больше всего нравится. В последнее время меня достали глюки Ubuntu, потому я перешел на "True Linux" - Debian. Ее и предлагаю использовать.

После установки Linux в виртуальную машину нужно установить TOR и I2P. Инструкции по установке TOR и I2P в Debian можно найти на сайтах разработчиков: https://www.torproject.org/docs/debian.html.en и https://www.i2p2.de/debian.html

Для экономии места я не стану их приводить в статье. Интересно, что на сайт i2p2.de я попал только через TOR, поскольку мой провайдер создал все условия, чтобы он не открылся. Хотя, скорее всего, это "падение" какого-то маршрута, поскольку если подключиться через другого провайдера, сайт открывается.

После установки TOR и I2P нужно установить какой-то прокси. TOR сам является SOCKS5-прокси, но не все программы работают с SOCKS5. В репозитариях Debian есть простой прокси Polipo, установим его:

$ sudo apt-get install polipo

После установки открой файл /etc/polipo/config и убедись, что в нем есть следующие строки (в зависимости от дистрибутива Linux данные строки нужно или добавить или расскоментировать и отредактировать):

proxyPort = 8888
socksParentProxy = "localhost:9050"
socksProxyType = socks5

Поясню, что есть что. Порт 8888 - это порт, который мы будем использовать для Polipo. Порт 9050 - это TOR, который должен быть запущен на localhost.

После редактирования конфига Polipo его нужно перезапустить:

$ sudo service polipo restart

Теперь открой файл /etc/default/i2p. Нужно обеспечить запуск I2P как демона, для этого добавь в него строчку:

RUN_DAEMON="true"

После чего нужно запустить I2P:

$ sudo service i2p start

Следующий шаг - нужно запретить доступ в Интернет всему, что не является TOR'ом или I2P. Для этого редактируем /etc/iptables.up.rules:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT DROP [0:0]
-A OUTPUT -d 127.0.0.1/32 -j ACCEPT
-A OUTPUT -m owner --uid-owner debian-tor -j ACCEPT
-A OUTPUT -m owner --uid-owner i2psvc -j ACCEPT
COMMIT

Обрати внимание на имя пользователя TOR: debain-tor и имя пользователя I2P: i2psvc. Если ты не изменял параметры по умолчанию и используешь Debian, то эти имена у тебя будут такими же.

Как узнать имена пользователей TOR и I2P?

Имя пользователя I2P можно посмотреть в конфиге /etc/default/i2p, а имя пользователя TOR - узнать с помощью команды lsof -c tor

После этого открой файл /etc/network/interfaces и в самый его конец добавь строчку:

pre-up iptables-restore < /etc/iptables.up.rules

Осталось загрузить правила в iptables. Это можно сделать таким образом:

$ sudo iptables-restore < /etc/iptables.up.rules

Можно, конечно, перезапустить сеть или, по примеру, Microsoft перезапустить компьютер, но мы не будем этого делать.

Почти все готово. Осталось разрешить самому себе доступ в Интернет. Открой файл ~/.bashrc и в конец этого файла добавь строку:

export http_proxy="https://127.0.0.1:8888/"

Мы экспортируем переменную http_proxy (которая используется многими сетевыми программами), теперь она содержит IP-адрес прокси и его порт (8888). Открой файл /etc/apt/apt.conf.d/proxy и добавь в него строку:

Acquire::https::Proxy "https://127.0.0.1:8888/";

Почти все. Осталось только перезапустить bash (ну или перезапустить компьютер - надеюсь, разницу с Windows ты почувствовал):

$ bash

Вот и все. Можно запускать браузер (любой, какой хочешь) и наслаждаться анонимным и защищенным Интернетом. А ты думал, что будет сложнее?

В этой статье мы создали настоящую крепость из твоей системы. Надеюсь, ты найдешь как применить все это в благих целях. Если будут вопросы, замечания и пожелания, меня всегда можно найти на форуме сайта www.dkws.org.ua.