Что такое Whonix?
Whonix представляет из себя комплект из двух преднастроенных виртуальных машин, на основе операционной системы Debian. Виртуальные машины работают в одной связке, соединяясь между собой посредством внутренней сети Virtualbox.
Первая машина называется Whonix-Gateway и представляет из себя шлюз, заворачивающий весь трафик в сеть Tor. Вторая машина называется Whonix-Workstation и представляет из себя рабочую систему оснащенную всем необходимым для комфортной работы в сети интернет. Все программное обеспечение рабочей станции настроено заранее на использование Tor, некоторые из приложений используют выделенные Tor SocksPort-ы.
Подобная схема реализована в целях анонимности и безопасности работающих операционных систем. Трафик проходящий между машинами по внутренней сети никак не связан с хост-системой и посредством шлюза уходит только в Tor. Архитектура Whonix обеспечивает значительный уровень защиты от утечек IP, DNS и от вредоносных программ. Даже если представить ситуацию когда злоумышленнику удалось каким-либо образом получить доступ к рабочей станции, то все что он увидит это адрес внутри закрытой сети Virtualbox.
Ни одно из приложений Whonix не имеет прямого доступа к сети, пользователь общается с сетью только посредством Tor. Весь трафик генерируемый Workstation отправляется в Gateway, а потом в Tor. При обрыве соединения, трафик не покинет шлюз, пока соединение не будет восстановлено. Даже обновление системы происходит через Tor.
Покинув шлюз, трафик проходит по цепочке Tor-серверов и на одной из выходных Tor-нод попадает в обычную сеть. Таким образом на конечном сайте или сервере никогда не будет виден настоящий ip-адрес. Установленный uwtwrapper перенаправляет трафик на разные порты, поэтому трафик всегда идет по разным цепочкам, на разные выходные ноды и разном порядке.
Единственное что можно увидеть во время использования Whonix, это момент соединения вашего адреса с сетью Tor. Дальнейший путь трафика остается надежно скрытым. Использование Tor можно скрыть, пустив весь направленный в Tor трафик поверх VPN, но об этом немного позднее.
К шлюзу можно подключить не только Workstation, а также любую виртуальную машину и весь трафик виртуальной машины будет направляться прямиком в Tor.
Установка Whonix
Скачать Whonix можно на официальном сайте, виртуальные машины представляют собой два OVA файла. Как таковой установки не будет, Whonix распространяется в виде уже готовых и заранее настроенных виртуальных машин, поэтому под установкой имеется ввиду импорт готовой конфигурации.
Запускаем Virtualbox и нажимаем сочетание клавиш Ctrl+I, для импорта виртуальной машины, в появившемся окне выбираем файл Whonix-Gateway, нажимаем Next. В окне параметров импорта нажимаем кнопку Импорт, больше ничего не трогаем и не меняем.
Принимаем лицензионное соглашение, ждем завершения импорта виртуальной машины. Таким же образом импортируем Whonix-Workstation.
Настройка виртуальных машин
После импорта конфигураций виртуальных машин, открываем Virtualbox-менеджер, выбираем Whonix-Workstation, нажимаем на шестеренку "Настроить".
В разделе общих настроек, на вкладке "Дополнительно", включаем двунаправленный общий буфер обмена, чтобы иметь возможность вставлять и копировать текст из виртуальной машины в хост-систему и наоборот.
Помимо общего буфера я рекомендую указать папку для снимков. Здесь будут храниться снимки состояния виртуальной машины. Снимки позволяют сохранять состояние виртуальной машины и откатываться к сохраненному состоянию при необходимости. Создайте каталог для снимков и укажите его в настройках.
В системном разделе настроек, на вкладке "Материнская плата", снимите галочки с гибкого и оптического дисков, жесткий диск переместите на верхнюю позицию в порядке загрузки. Если возможности железа позволяют, увеличьте объем оперативной памяти для виртуальной машины.
В разделе общих папок можно задать общую папку, которая позволит обмениваться файлами с хост-системой. Любой файл в расшаренной папке будет доступен для использования на Whonix-Workstation.
В системном разделе, на вкладке "Материнская плата", снимаем галочки с гибкого и оптического дисков, жесткий диск перемещаем наверх в порядке загрузки. Что касается объема оперативной памяти, то тут есть два варианта.
Первый вариант оставить все как есть, 768 мегабайт вполне хватает для работы системы. Второй вариант, это уменьшить объем памяти и сделать его меньше чем 480 мегабайт, в таком случае Whonix-Gateway будет работать в консольном режиме и не загружать графическую оболочку.
В связи с тем что от пользователя практически не требуется никакого вмешательства в работу Whonix-Gateway, то консольный режим вполне удобен для использования. Хотя имеет свои минусы, в консольном режиме не работает общий буфер обмена, но это не страшно.
В дальнейшем, для управления Whonix-Gateway мы будем использовать ssh-клиент.
Я рекомендую не изменять объем оперативной памяти перед первым запуском Whonix-Gateway, так будет удобнее выполнить первоначальную настройку. После чего можно спокойно запускать шлюз в консольном режиме, для экономии ресурсов железа.
Первый запуск Whonix
Переходим к настройке операционной системы. Сначала всегда запускаем Whonix-Gateway.
После запуска принимаем лицензионное соглашение и нажимаем Next.
Выбираем I am ready to enable Tor (Я готов задействовать Tor) и нажимаем Next.
В следующем двух окнах нажимаем Next. После сообщения о первом запуске (First Boot) соглашаемся с установкой обновлений.
Выбираем Whonix Stable Repository нажимаем Next.
Следующее сообщение предупредит что изменить репозитории можно в любой момент, через терминал - sudo whonix_repository или запуском меню Start Menu - Applications - System - Whonix Repository. В последнем окне Welcome to Whonix-Gateway жмем Finish.
После проверки соединения и поиска доступных обновлений, система предупредит что соединение с Tor установлено и есть доступные обновления. Также в предупреждении будет указана команда для обновления системы.
Нажимаем OK. Открываем терминал и запускаем обновление системы. Во время выполнения команды система запросит пароль пользователя, пароль написан в терминале - changeme. Позже пароль нужно будет изменить.
sudo apt-get update && sudo apt-get dist-upgrade -y
После обновления шлюз готов к работе. Не выключая Gateway, запускаем Workstation и выполняем все описанные выше действия, включая обновление системы.
На всякий случай выполняем команду whonixcheck для проверки системы, если все зелененькое и нет Warning, значит обновление прошло удачно и можно двигаться дальше. Команда whonixcheck не должна выполняться от root, поэтому просто вводится в консоль без sudo, от имени обычного пользователя.
Не забывайте периодически выполнять обновления обоих систем.
Общие папки в Whonix-Workstation
Создайте в хост-системе каталог share, откройте настройки виртуальной машины Whonix-Workstation и добавьте созданный каталог в разделе общих папок. Отметьте галочкой Авто-подключение.
Запустите Whonix-Workstation, нажмите на значок KDE в левом нижнем углу экрана и выберите File Manager. Расшаренный каталог будет находиться в каталоге media - /media/sf_share.
Поддержка русского языка в Whonix-Workstation
Сразу предупрежу что система не станет русской, все останется на английском языке, мы добавляем только поддержку кириллицы и клавиатурную раскладку.
Обновим системные локали.
sudo dpkg-reconfigure locales
Выбираем локали для использования. Чтобы отметить локаль жмем пробел, для выбора <OK> или <Cancel> жмем Tab. По умолчанию в Whonix включена только en_US.UTF-8 UTF-8.
Для поддержки русского языка отмечаем ru_RU.UTF-8 UTF-8, для поддержки украинского языка - ru_UA.UTF-8 UTF-8. Потом нажать ОК.
Выбираем локаль которую будем использовать по умолчанию. Чтобы отметить нужную жмем Tab, потом ОК.
Перезагружаем систему.
sudo reboot
Теперь нужно добавить клавиатурную раскладку. Кликаем по значку KDE в левом нижнем углу экрана и выбираем System Settings. Прокручиваем вниз до раздела Hardware и выбираем Input Devices. В разделе Keyboard выбираем вкладку Layouts. Отмечаем галочкой пункт Configure layouts.
Нажимаем кнопку Add с зеленым плюсиком. Выбираем нужную раскладку клавиатуры и нажимаем ОК.
В разделе Shortcuts for Switching Layout нажимаем кнопку рядом с надписью Main shortcuts. В открывшейся менюшке выбираем сочетание клавиш для переключения клавиатурных раскладок и нажимаем Apply.
Выбранную раскладку можно проверить в терминале. Русская клавиатура актуальна только для рабочей станции, в шлюзе можно обойтись и без нее.
Изменение пароля пользователя
По умолчанию на обоих системах используется стандартное имя пользователя user и пароль changeme. Пароль довольно таки говорящий, он так и просит изменить его.
Выходим из обычного пользователя и становимся root. Во время выхода будет запрошен пароль пользователя, вводим - changeme.
sudo -i
Меняем пароль для root.
passwd root Вводим новый пароль и подтверждаем его.
Меняем пароль для пользователя.
passwd user Вводим новый пароль и подтверждаем его.
Проделываем это на обоих машинах. При желании можно изменить имя пользователя, как это сделать можно узнать здесь.
Консольный режим Whonix-Gateway
Whonix-Gateway может работать в консольном режиме, режим может быть актуальным на хост-системах с небольшим объемом оперативной памяти. В консольном режиме все управление системой происходит посредством терминала, а не с ярлыков на рабочем столе.
Для запуска Whonix-Gateway в консольном режиме в настройках виртуальной машины задаем объем оперативной памяти меньше 480 мегабайт.
За минимальный объем памяти необходимой для запуска графической оболочки отвечает файл /etc/rads.d/30_default.conf. Точнее, параметр rads_minium_ram, по умолчанию равный 480-и мегабайтам.
На рабочем столе Gateway находятся четырнадцать ярлыков, включая ярлык вызова терминала. В консольном режиме для управления используются эквивалентные им команды.
Stop Tor - остановка Tor. Интернет пропадет на всех машинах.
systemctl stop tor
Reload Tor - перезагрузка Tor.
systemctl reload tor
Restart Tor - перезапуск Tor.
systemctl restart tor
Tor User Config - открывает основной конфигурационный файл /etc/tor/torrc в текстовом редакторе.
nano /etc/tor/torrc
Tor Examples - открывает файл torrc.examples в текстовом редакторе. Файл содержит примеры заполнения основного файла torrc.
nano /etc/tor/torrc.examples
Tor Data - открывает каталог /var/lib/tor.
cd /var/lib/tor/
Arm - Tor Controller - мониторинг tor-соединения.
arm
Global Firewall Settings - настройки фаервола /etc/whonix_firewall.d/30_default.conf в текстовом редакторе.
nano /etc/whonix_firewall.d/30_default.conf
User Firewall Settings - открывает файл с пользовательскими настройками фаервола /etc/whonix_firewall.d/50_user.conf в текстовом редакторе.
nano /etc/whonix_firewall.d/50_user.conf
Reload Firewall - перезагрузка сетевого экрана для применения изменений в настройках.
/usr/bin/whonix_firewall
Whonix Repository - выбор или изменение репозиториев.
sudo whonix_repository
Whonix Setup - запуск Whonix Setup Wizard, тот что запускается при первом запуске.
sudo whonixsetup
WhonixCheck - запуск проверки системы. Нельзя запускать от имени root или c использованием sudo.
whonixcheck
Обычному пользователю Whonix хватает нескольких ярлыков reload/restart tor, arm и whonixcheck. Остальные, как правило, остаются невостребованными. Не стоит изменять и трогать конфигурационные файлы, если не знаете что делаете.
Подключение к Whonix-Gateway по SSH
Если для управления Whonix-Gateway вполне хватает консольного режима, то зачем вводить команды в окно виртуальной машины? Гораздо удобнее это делать посредством SSH-клиента, тут хоть текст копировать / вставлять можно, а то в консольном режиме общий буфер обмена не работает. Хотя дело даже не в общем буфере обмена, а в простом удобстве использования.
По умолчанию у Whonix-Gateway два сетевых адаптера, один в режиме Nat, второй в режиме внутренней сети. Внутренняя сеть используется для связи между шлюзом и рабочей станцией, она полностью изолированная и со стороны хост-системы к ней не подобраться. Но зато можно подобраться со стороны сети Nat, пробросив порт в виртуальную машину. Подробнее о пробросе портов можно прочитать здесь.
Логинимся как root в Whonix-Gateway или выполняем команду.
sudo -i
Редактируем настройки фаервола, чтобы разрешить подключение по SSH.
nano /etc/whonix_firewall.d/30_default.conf
В конфигурационном файле находим секцию "SSH into Whonix-Gateway" меняем значение GATEWAY_ALLOW_INCOMING_SSH на единицу, разрешая входящие соединения на 22-ом порту.
GATEWAY_ALLOW_INCOMING_SSH=1
Сохраняем изменения Ctrl+O и Enter, выходим из редактора Ctrl+X. Перезагружаем фаервол для принятия изменений.
/usr/bin/whonix_firewall Должно быть так: OK: Loading Whonix firewall... OK: TOR_USER: 105 OK: CLEARNET_USER: 1002 OK: USER_USER: 1000 OK: ROOT_USER: 0 OK: TUNNEL_USER: 1001 OK: NO_NAT_USERS: 1002 1001 105 OK: The firewall should not show any messages, OK: besides output beginning with prefix OK:... OK: Whonix firewall loaded.
В Whonix-Gateway отсутствует ssh-сервер, его надо установить.
apt-get install openssh-server -y
Выключаем виртуальную машину, запускаем Virtualbox, открываем настройки Whonix-Gateway. В разделе "Сеть" выбираем первый сетевой адаптер, раскрываем "Дополнительно", нажимаем "Проброс портов".
В окне проброса портов добавляем правило как на изображении.
Сохраняем новые настройки. Запускаем Whonix-Gateway. Теперь к шлюзу можно подключаться через любой из ssh-клиентов. Для подключения нужно указать: адрес - 127.0.0.1, порт - 50022, пользователь - user.
Вход по ssh от имени обычного пользователя user, по умолчанию вход root-пользователя запрещен. Чтобы разрешить подключение root по ssh нужно отредактировать настройки ssh-сервера. Откройте файл sshd_config в Whonix-Gateway.
nano /etc/ssh/sshd_config
Найдите параметр PermitRootLogin и измените его значение на yes.
PermitRootLogin yes
Перезапустите демона ssh.
systemctl restart ssh
Теперь к Whonix-Gateway можно подключаться от имени root.
Скрытие использования Tor
Использование сети Tor можно скрыть. Существует три способа скрытия и во всех способах используется VPN. Использование Tor можно скрыть в начале соединения, таким образом достигается невидимость со стороны вашего провайдера. А можно скрыть в конце, таким образом использование Tor будет скрыто на конечном сайте. А можно и там и там. Работает это следующим образом.
Whonix > VPN > Tor > Интернет
В данной схеме весь трафик сначала проходит через VPN соединение, после чего соединяется с сетью Tor, но не с вашего ip-адреса а с адреса VPN-сервера. В результате получаем скрытие использования Tor от вашего провайдера.
Все пакеты с вашего ip идут на адрес VPN-сервера, а не на адрес принадлежащий сети Tor, помимо этого VPN трафик как правило зашифрован. Еще одним плюсом будет соединение со входной Tor-нодой с адреса VPN-сервера, а не с вашего настоящего ip.
Это возможно сделать запустив VPN-соединение на хост-системе и весь генерируемый ей трафик, включая трафик Whonix, будет уходить в VPN тоннель, а только потом попадать по назначению. Еще можно организовать VPN соединение непосредственно на Whonix-Gateway, эффект будет тот же. Но лучше использовать вариант с VPN на хост-системе.
Whonix > Tor > VPN > Интернет
В данной схеме весь трафик генерируемый Whonix пойдет напрямую в Tor c вашего адреса. На выходе из сети Tor он попадет в VPN тоннель и уже с VPN-сервера в открытую сеть. В результате достигается скрытие Tor-адреса на конечном сайте. Некоторые сайты и онлайн-сервисы не любят Tor и не пускают его пользователей, но таким способом этот запрет можно обойти.
Это возможно сделать запустив VPN соединение на Whonix-Workstation. Поскольку рабочая станция не имеет своего выхода в интернет, а выходит наружу только с адресов Tor, то и запущенное на ней VPN соединение будет соединяться со своим сервером с Tor-адреса.
После чего пакеты попадут в открытую сеть с адреса VPN-сервера. Кроме того шифрованное соединение защищает от прослушивания и перехвата пакетов на выходной Tor-ноде, некоторые владельцы выходных нод любят этим заниматься.
Whonix > VPN > Tor > VPN > Интернет
Способ скомбинированный из двух предыдущих, самый затратный, но и самый профитный. VPN должен быть активен одновременно на двух системах.