Приветствую, читающий. Это небольшая заметка по установке защищённой системы Whonix внутри QEMU/KVM. Использование этого гипервизора имеет несколько преимуществ по сравнению с VirtualBox от Oracle: повышенная безопасность, лучшее управление ресурсами компьютера и более быстрая/плавная работа гостевой системы.
Дополнительно рассмотрю процесс сборки QEMU с поддержкой аппаратного ускорения под Gentoo, однако в случае установки на другой дистрибутив такие манипуляции не потребуются.
Начнём!
1. Установка Virt-manager и QEMU c поддержкой аппаратного ускорения.
Для большинства дистрибутивов этот пункт не понадобится - просто установите пакеты virt-manager и qemu из репозитория вашей системы. Однако если вы используете систему на базе Gentoo, понадобятся некоторые манипуляции, чтобы собрать гипервизор с поддержкой OpenGL и 3D-ускорения.
Пропишем нужные флаги для app-emulation/qemu:
$ doas vim /etc/portage/package.use/qemu
....
app-emulation/qemu virgl opengl spice
Флаг virgl включает поддержку 3D-ускорения в драйвере Virtio. opengl обеспечивает поддержку OpenGL внутри виртуальной машины (по желанию). Последний флаг - spice - включает поддержку протокола для передачи видео и аудио - SPICE (Simple Protocol for Independent Computing Environments), который имеет ряд преимуществ перед стандартным VNC: поддержка аппаратного ускорения, передача буфера обмена между хостом и гостевой системой, динамическое изменение разрешения экрана и возможность перетаскивания файлов.
Далее установим virt-manager в нашу систему:
$ doas emerge -av app-emulation/virt-manager
P.S. Если вы используете утилиту для сканирования сети nmap, может возникнуть блокировка со стороны пакета net-analyzer/openbsd-netcat, который необходим для работы virt-manager. В этом случае пересоберите nmap с отключённой поддержкой ncat и symlink следующим образом:
$ doas vim /etc/portage/package.use/nmap
....
net-analyzer/nmap -ncat -symlink
$ doas emerge -av net-analyzer/nmap
2. Добавим пользователя в нужные группы и запустим демон libvirtd.
Добавление в группы:
doas gpasswd -a <username> kvm
doas gpasswd -a <username> libvirt
Автозапуск и старт libvirtd для OpenRC:
$ doas rc-update add libvirtd default
$ doas rc-service libvirtd start
Автозапуск и старт для systemd:
$ doas systemctl enable libvirtd
$ doas systemctl start libvirtd
3. Скачиваем архив с образами дисков и распаковываем.
Перейдите по данной ссылке и выкачайте архив.
Далее нужно распаковать образ в директорию. Вы можете указать любую удобную вам папку, однако в конфигурационном XML-файле виртуальной машины указан путь /var/lib/libvirt/images/. Он рекомендуется к использованию, поэтому сразу распакуем содержимое туда. Советую делать это на начальном этапе, без последующего перемещения дисков с помощью mv, так как при использовании этой утилиты диски теряют динамическую аллокацию и начинают занимать всё выделенное пространство (200 ГБ), что может оказаться неприятным сюрпризом.
$ doas tar -xvf Whonix*.libvirt.xz -C /var/lib/libvirt/images/
4. Поднимаем интерфейсы и импортируем виртуальные диски.
Перейдем в директорию с файлами:
$ doas su
# cd /var/lib/libvirt/images/
Зададим параметры сети по XML-файлам:
# virsh -c qemu:///system net-define Whonix_external*.xml
# virsh -c qemu:///system net-define Whonix_internal*.xml
Активируем виртуальные адаптеры:
# virsh -c qemu:///system net-autostart Whonix-External
# virsh -c qemu:///system net-start Whonix-External
# virsh -c qemu:///system net-autostart Whonix-Internal
# virsh -c qemu:///system net-start Whonix-Internal
Импортируем два .qcow2 файла в QEMU:
# virsh -c qemu:///system define Whonix-Gateway*.xml
# virsh -c qemu:///system define Whonix-Workstation*.xml
P.S. Не забудьте перейти в директорию с .qcow2-файлами и переименовать их в Whonix-Workstation.qcow2 и Whonix-Gateway.qcow2 соответственно, чтобы XML-файл конфигурации смог найти диски. Либо отредактируйте XML-файл, указав в нём исходные имена файлов.
Откройте virt-manager, и если вы увидите две новые виртуальные машины - значит, всё прошло успешно!

5. Настройка параметров виртуальных машин и запуск.
Начнём с Whonix-Gateway. Эта виртуалка отвечает за весь сетевой трафик и служит шлюзом для Whonix-Workstation.

В случае с Whonix-Gateway все нижесказанные рекомендации являются лишь оптимизациями, но они могут сэкономить вам немного ресурсов.
В пункте "OS Information" укажите Debian 12. Это даст гипервизору понимание о том, с какой системой он работает. Для обработки интернет-трафика будет достаточно 1 ядра процессора и 1 ГБ оперативной памяти. Эти параметры можно настроить в разделах "CPUs" и "Memory".
Далее перейдём к настройке Whonix-Workstation, в которой мы и будем работать с прикладным ПО.

Задайте количество ядер процессора (если ресурсы позволяют, можно выделить 6 или даже 8 ядер). С оперативной памятью также не стоит экономить: внутри будет работать Xfce и различный графический софт, который требует достаточно много памяти. Я выделяю 8 ГБ для виртуальной машины - этого обычно хватает.
Теперь рассмотрим момент аппаратного ускорения.

Перейдите в пункт "Display Spice" и выберите тип "Spice server". Если вы всё правильно настроили, внизу появится галочка для включения поддержки OpenGL. Включите её и выберите в списке свою видеокарту. В поле "Listen type" выберите "None", иначе вылезет ошибка.

Нажмите на пункт "Video Virtio" и выберите драйвер "Virtio". Только этот драйвер поддерживает аппаратное ускорение. Не забудьте поставить галочку для включения 3D-ускорения.
Сохраним настройки и запустим виртуальные машины: сначала Gateway, затем Workstation.

Поздравляю! Мы настроили Whonix для QEMU/KVM. Надеюсь, этот материал был для вас полезен. Приятного утра, дня, вечера или ночи!
Комментарии
09:32
10:52
Нужно читать: "настраивал" и "virt-manager"
11:34
:-D
Я тоже уже давно не настаиваю , а употребляю чистый и реальный ))
12:14
Понял! xfce4-whiskey-manager
15:54
09:58
10:59
13:44
Статья доступно описывает как сделать, но как мне видится, основной вопрос на этом ресурсе - "зачем всё это нужно"?)
+ естественно.
А Whonix - это баловство, конечно!)
15:50
Пока пусть и не нужно, а потом когда-нибудь понадобится.
15:55
Так вся жизнь и пройдёт в ожидании "чего-нибудь".
16:26
17:12
Сервер ? Чтоб что-то жужжало и жрало электричество ?
Облака ? аа...проходили уже )) кучу фалов потерял там
Нет уж пусть на другом компе в доме все лежит .Отключенном от инета .
А так да...может кому и пригодиться )
17:18
17:30
"Время проведенное на рыбалке в счет жизни на засчитывается!"
А то компы ...лини О_о
лучше линь на крючке )))
19:08
>> пусть на другом компе в доме все лежит. Отключенном от инета
Я написал bash-script (и на хоткей его), который копирует конфиги и кое-какие данные на флэху. ... - Дешевле, знаете ли, серверов и безгиморней облакофф!..
19:22
20:12
Хозяин дома всегда ! Сходить на котле ручку повернуть не 5 км ехать))
Да отопление гравитационное оставил - все эти теплые полы на насосах отваливаются ,когда 3 дня света нет. А обычная система работает-ей электропердичество ни к чему.
И сервера с Гуглом под кроватью ,который и так еле глючно работает.)))
Чем меньше электроники ,тем надежнее жись! ))
20:41
Генератор заведи, в частном доме же живёшь! (?)
А ещё пару листов солнецных пенелей... Хужее не будет, а то как же будешь Линукс мацать без искричества?
20:48
Свет отключают - все равно работает ,как обычно.
А вот сосед теплые полы нагородил ..настенный котел.. а как зимой свет отрубили на 3 дня - вот тогда помчался покупать генератор ))
Про солнечные думал - у нас юг ,можно полкрыши ими загородить ...но возня...аккумы .. нах?
А Линь ? Да я уезжаю в горы отдыхать кроме книги ничего с собой не беру . Нет! Беру! Фляжку с чачей :-D
Компы уже перестал покупать новые 10 лет как . Старые бы выкинуть . Но работают еще.
Инет же уже к закату идет . Цифровое рабство ...телы,ВК,ОК,Госуслуги ...
Надо в реал перебираться )
20:39
Я скромнее беру:
https://rutube.ru/video/d64df6de274842256adde4e2fdcdcaf2/?r=plemwd
Хотя посыл ясен
+
20:08
02:29
Езжу много и бывает надолго. А доступ к облаку есть отовсюду, где слышали про интернет.
10:36
Да я в курсе ,конечно . Думал как-то тоже дома сделать - сначала ftp , а потом облака поплыли .
Но по зрелому размышлению оказалось ни к чему . Я не работаю , а если чем и занимаюсь ,то инет не нужен .
"Деньги любят тишину !" ;)
Для доступа домой нужно городить белый айпи (платный)..пробросы по портам .. дома что-то включенное оставлять. И всё для того ,чтоб книжку взять с облака ? ))
Да я её просто с собой беру в ридере. А дома рубильником всё отключаю .
Вобщем с железяками надоело возиться - всё ж не гик ))
Ну лан ,видать ,все на рыбалке уже - а у нас ветер сильный . Пойду удочки перематывать и на машине тормозуху обновить,колодки проверить , уровень в АКПП. Да еще в зал и баньку топить!
Жись хороша ! Enjoy!
16:16
Такая же фигя. Пытался полить лук... - полилась ровно половина, - ветер, цука!..
Но зацепило другое:
>> книжку взять с облака ? ... просто с собой беру в ридере
Так же и я: своё "облако" таскаю на флэхе.
18:22
Но всё ж флехи часто крашатся . Лучше карман с ноутбучным жестким тогда .
Если читать ,то на ридере миникарточка - там 5-10 тыщ книг запихнуть можно .
Файлы другое дело .
20:00
11:48
Мы люди взрослые любим ,чтоб женщина лежала рядом,деньги наличные в кармане - ну и файлы ,чтоб у себя ,а не в Америках )))
И
"Пока тебе не стукнуло 35 - все вокруг радует новизной ,а потом любое новшество становится доказательством того,что мир катится к чертям"
:-D
21:45
21:58
У меня банька - уже 3 часа отпариваюсь .
Щас закончу и за графинчик . И без всяких Линей 6-D
22:40
22:58
23:06
P.S. Проблема что не custom а оригинал разбит. Первый раз в оригинале такое встречаю и как архив не собирается. . Хотя до этого только мяу ковырял, может в hyper2 по другому
06:16
Но самое главное - что внутри?
09:16
09:24
10:40
11:52
Ни записать нормально -ни открыть)) Что за прога их делает Неро ,что ли?
И зачем разбивать ,как раньше на рапидшару ?