[НЕАКТУАЛЬНО] Виртуальный Tor-шлюз на KVM

Статус
В этой теме нельзя размещать новые ответы.

Argos

Консультации по кибербезопасности
Подтвержденный
Сообщения
1.444
Реакции
1.365
Продажи
4
Кешбек
2.61$
В данной статье я хочу продемонстрировать процесс создания виртуального Tor-шлюза на qemu, данная схема аналогична системе whonix, но, в отличии от whonix, в данном случае мы проведем более тонкую настройку iptables, так же в этом случае можно выбрать любое графическое окружение(я предпоитаю вообще его не использовать на шлюзе) и использовать другую файловую систему(btrfs или zsh).
Сам процесс даже легче, чем установить самой whonix на kvm, приступим к процессу:
Устанавливаем QEMU и необходимые утилиты(в качестве менеджера виртуальных машин я буду использовать virt-manager)

Код:
sudo apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin bridge-utils libvirt-daemon libvirt-clients
Добавляем пользователя в группу libvirt
Код:
sudo usermod -aG libvirt $(whoami)
Перезаходим в систему, запускаем менеджер виртуальных машин и создаем виртуальную машину, для облегчения процесса настройки для новичков я буду использовать debian на xfce(продвинутым пользователям рекомендую Hyperbola GNU/Linux-libre)
Чтобы не заморачиваться с настройкой фаервола в основной системе я буду использовать мост для сетевого адаптера в гостевую систему, если вы часто меняете интерфейсы подлючения в основной системе, то используйте NAT.
Во время установки рекомендую зашифровать систему и использовать файловую систему btrfs, вместо ext4.
После установки системы закрываем её и создаем виртуальную локальную сеть в менеджере виртуальных машин, для этого переходим Правка>Свойства подлючения>Виртуальные сети, жмем на значок "+"
Мои настройки для этой сети вы можете видеть на скриншоте(название используйте любое, IPv6 отключаем)
screen01.jpg

Теперь в созданну систему необходимо добавить ещё 1 сетевой интерфейс, его настройки вы видете на скриншоте:
screen02.jpg

Запускаем нашу систему и начинаем настройку сетевых интерфейсов:
В 1ом соединении выбираем тип Ethernet, и указываем адаптер, который идет из основной ОС
1.png

Отключаем на нем IPv6:

2.png

Создаем 2ое подлючение, тип VLAN, указываем наш виртуальный сетевой интрефейс(В графу "Имя интерфейса VLAN" вписываем наше название сети):

3.png

В найстройках IPv4 задаем всё в ручную, добавляем новый адрес, в графу "адресс" вписываем адрес нашей виртуальной локальной сети, маска сети стандартная, IPv6 отключаем
4.png

Теперь приступим к настройке tor:
Устанавливаем Tor и obfs4proxy данной командой:
Код:
sudo apt install tor obfs4proxy
В данном примере я буду использовать мосты obfs4, на официальном сайте Tor Project получаем конфигурацию мостов(рекомендую обновлять хотя б раз в месяц)
Приступаем к редактированию конфигруационного файла Tor, для этого вводим команду:
Код:
sudo nano /etc/tor/torrc
В данный файл вставляем следущие строки(красным выделен ip адрес нашего шлюза):
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 192.168.100.1:9040 IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort
TransPort 127.0.0.1:9040 IsolateClientAddr IsolateClientProtocol IsolateDestAddr IsolateDestPort
DNSPort 192.168.100.1:5353
DNSPort 127.0.0.1:5353
Чтобы использовать мосты, добавляем следующие строки:
UseBridges 1
ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed
bridge <сюда вставить свои мосты>
Теперь исключим нежелательные выходные ноды, дописав в конце следующее(специалисты так же рекомендуют исключать ноды стран, входящих в альянс 14ти глаз, но я с этим не заморачиваюсь):
ExcludeNodes {ru}, {ua}, {by}, {kz}
Пример того, как это должно выглядеть:
5.png

Сохраняем файл и переходим к настройке DNS:
Настроим маршрутизацию DNS запросов с серверов Tor, для этого откроем файл /etc/resolv.conf, очищаем этот файл, если там есть какие-либо записи и впишем следующую строку:
nameserver 127.0.0.1
Защитим этот файл от перезаписи следующей командой:
Код:
sudo chattr +i /etc/resolv.conf
Включим форвардинг, для трансляции трафика.
Для этого откроем файл /etc/sysctl.conf и раскомментируем в нем строку net.ipv4.ip.forward=1
Теперь приступим к настройке фаервола, т.к. настроек очень много, я облегчу вам жизнь, и прикреплю файл с кодом для скрипта, данный скрипт автоматически внесет правила в iptables, эти правилы для взяты с сайта Tor Project и из ОС whonix.
Создаем пустой файл с расширением .sh и копируем туда строки для скрипта, вбиваем свои значения в следующих пунктах:
_tor_uid="111" #As per assumption здесь указываем свой uid, на скриншоте показал, как узнать ваш uid:
6.png

В строках
# Your outgoing interface
_out_if="enp1s0" - имя вашего 1го адаптера

# Your incoming interface and assigned local IP (Gateway)
_inc_if="tor-gateway" - имя вашего 2го (виртуального) адаптера
_inc_ip="192.168.100.1" - IP адрес вашего шлюза
После внесения измений запускаем этот скрипт от суперпользователя.
Чтобы правила iptables не сбрасывались после перезагрузки установим пакет iptables-persistent следующей командой:
Код:
sudo apt install iptables-persistent
Соглашаемя с сохранением правил, и ждем окончания установки
Теперь внесем Tor в автозагрузку следующей командой:
Код:
sudo update-rc.d tor enable
Перезагружаем систему и проверяем работу тор
Чтобы проверить,, не идет ли трафик в обход тор, отключим сервис Tor:
Код:
systemctl stop tor
Проверяем доступ в интернет через бразуер(его быть не должно)
Если всё нормально, то удаляем всё ненужное из системы(бразуер, текстовый редактор, графическое окружение и т.д.)
Если во время загрузки шлюза произошел какой-либо сбой и подключение отсутствует, то перезапустите Tor следующей командой:
Код:
systemctl restart tor
Наш шлюз готов, чтобы подлючить к нему другую виртуальную машину, в качестве сетевого интерфейса новой ВМ(тип интерфейса VLAN), указывайте вашу виртуальную локальную сеть, в настройках сети этой ВМ создаете новый виртуальный адаптер(указывайте ему имя вашей виртуальной сети), в качестве адреса системы указывайте любой адрес из вашей виртуальной сети, в качестве шлюза и DNS указывайте IP адрес вашего Tor шлюза.
На этом всё, желаю удачи в настройке!
 

Вложения

  • скрипт iptables.zip
    1.3 КБ · Просмотры: 100
Последнее редактирование:
Спасибо за статью. Если не трудно, можешь записать видео с настройкой шлюза? Для новичков так будет более наглядней.

Запускаем нашу систему и начинаем настройку сетевых интерфейсов:
В 1ом соединении выбираем тип Ethernet, и указываем адаптер, который идет из основной ОС

Если интернет не по Ethernet, а от wifi через usb адаптер, то что нужно указать настройках сетевых интерфейсов?

Вторую часть с подклучением другой виртуалки к шлюзу, тоже было бы интересно почитать, а то не совсем понятно как настроить.
Виртуалку с Виндой можно подключить к шлюзу?
 
можно использовать vlan и завернуть туда весь торифицируемый трафик, в том числе и wifi
 
Спасибо за статью. Если не трудно, можешь записать видео с настройкой шлюза? Для новичков так будет более наглядней.



Если интернет не по Ethernet, а от wifi через usb адаптер, то что нужно указать настройках сетевых интерфейсов?

Вторую часть с подклучением другой виртуалки к шлюзу, тоже было бы интересно почитать, а то не совсем понятно как настроить.
Виртуалку с Виндой можно подключить к шлюзу?
Видео записывать точно не буду, про подлючение виртуалки к шлюзу я в конце всё написал, если используешь usb адаптер, по просто включи перенаправление usb на виртуалку и поставь на шлюз драйвера для адаптер
 
в качестве шлюза и DNS указывайте IP адрес вашего Tor шлюза.

В данном случае IP адрес Tor шлюза 192.168.100.1?

в качестве адреса системы указывайте любой адрес из вашей виртуальной сети

Где можно посмотреть этот IP адрес виртуальной сети, чтоб его указать?
Можно указывать любой адрес, просто меняя последнюю цифру после точки?
 
В данном случае IP адрес Tor шлюза 192.168.100.1?



Где можно посмотреть этот IP адрес виртуальной сети, чтоб его указать?
Можно указывать любой адрес, просто меняя последнюю цифру после точки?
Да, в моем случае адрес шлюза 192.168.100.1
Диапазон IP виртуальной сети можно посмотреть в настройках вашей виртуальной сети
 
Диапазон IP виртуальной сети можно посмотреть в настройках вашей виртуальной сети

Так а как это сделать? В настройках QEMU или в терминале на виртуальной ОСи, которую настроили под шлюз? Можно скриншот?
Мое мнение, что в статье нужно указать все детали, чтоб даже у новичков небыло вопросов по нюансам, потому что они как раз самые важные.
Я например как читатель с линуксом мало знаком, с QEMU еще меньше, и фраза "посмотреть в настройках вашей виртуальной сети" ввергает в ступор.
 
Так а как это сделать? В настройках QEMU или в терминале на виртуальной ОСи, которую настроили под шлюз? Можно скриншот?
Мое мнение, что в статье нужно указать все детали, чтоб даже у новичков небыло вопросов по нюансам, потому что они как раз самые важные.
Я например как читатель с линуксом мало знаком, с QEMU еще меньше, и фраза "посмотреть в настройках вашей виртуальной сети" ввергает в ступор.
Скриншот есть(самый 1ый, только он получился плохого качества), статья написана со всеми подробностями
Если плохо знакомы с QEMU, можно найти много мануалов и самому потренироваться в установке виртуальных машин, потом уже переходить к построению виртуальных локальных сетей
 
  • Нравится
Реакции: Gaml
Диапазон IP виртуальной сети можно посмотреть в настройках вашей виртуальной сети

Эти настройки находятся в меню гипервизора QEMU или в терминале на виртуальной ОСи, которую настроили под шлюз?
 
ТС за статью лайк, а так выложи под спойлером код iptables
 

drug_desire

нужна инструкция для создания livecd/usb шлюза под реальную тачку с другим прокси
 
Мне нравится, что ТС пишет. Это познавательно и хорошо.
 
Сформулируй запрос более корректно
есть комп1 с 2 сетевыми картами, нужно чтобы интернет с провайдерского роутера поступал на сетевукарту1 и выходил проксированным из сетевой карты2 на комп2, а проски должен быть отличным от тора и не оставлять следов(поэтому livecd).
 
есть комп1 с 2 сетевыми картами, нужно чтобы интернет с провайдерского роутера поступал на сетевукарту1 и выходил проксированным из сетевой карты2 на комп2, а проски должен быть отличным от тора и не оставлять следов(поэтому livecd).
Очень странный запрос, зачем так усложнять схему?
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Приветствую, киберсамурай Для начала необходимо оплатить и поднять сервер. Можешь выбрать любой хостинг по сути, но советую тот, на котором можно оплачивать сервер в крипте. Карты с дропами есть не у всех, да и заведомо выбирать сервис, который не поддерживает оплату в крипте, я не советую...
Ответы
5
Просмотры
В темных уголках даркнета, где анонимность и безопасность — это всё, каждый инструмент может быть либо вашим щитом, либо слабым звеном. Firejail — это мощный инструмент песочницы для Linux, который действует как укрепленный бункер для ваших приложений. Он изолирует программы, ограничивает их...
Ответы
6
Просмотры
Привествую уважаемый читатель. Данный гайд будет больше направлен на владельцев шопов или кому надо придерживать анонимную и безопасную связь с работниками или коллегами, чем на обычного юзера даркнет сети. Здесь расскажу как поднять "свой мессенджер" в сети ТОР. Много где находил вопросы по...
Ответы
17
Просмотры
Ранее я описывал, что из себя представляет Whonix (/threads/whonix-dlja-novichkov-obzor-sistemy.100631/), в данной статье я уже опишу его установку на KVM, в качестве основной ОС будет Ubuntu 23.04. Про установку на VirtualBox есть отдельная статья -...
Ответы
7
Просмотры
Whonix в облаке Сегодня я расскажу вам о том, как использовать whonix на своем выделенном сервере в kvm виртуалках через web. Введение Должно быть все знакомы с этой системой? Кратко расскажу о ней. Whonix — это система для анонимной работы, состоящая из двух виртуалок. Первая виртуальная...
Ответы
51
Просмотры
10К
Назад
Сверху Снизу