- Сообщения
- 1.490
- Реакции
- 1.348
- Продажи
- 4
- Кешбек
- 2.61$
В данной статье я хочу продемонстрировать процесс создания виртуального Tor-шлюза на qemu, данная схема аналогична системе whonix, но, в отличии от whonix, в данном случае мы проведем более тонкую настройку iptables, так же в этом случае можно выбрать любое графическое окружение(я предпоитаю вообще его не использовать на шлюзе) и использовать другую файловую систему(btrfs или zsh).
Сам процесс даже легче, чем установить самой whonix на kvm, приступим к процессу:
Устанавливаем QEMU и необходимые утилиты(в качестве менеджера виртуальных машин я буду использовать virt-manager)
Добавляем пользователя в группу libvirt
Перезаходим в систему, запускаем менеджер виртуальных машин и создаем виртуальную машину, для облегчения процесса настройки для новичков я буду использовать debian на xfce(продвинутым пользователям рекомендую Hyperbola GNU/Linux-libre)
Чтобы не заморачиваться с настройкой фаервола в основной системе я буду использовать мост для сетевого адаптера в гостевую систему, если вы часто меняете интерфейсы подлючения в основной системе, то используйте NAT.
Во время установки рекомендую зашифровать систему и использовать файловую систему btrfs, вместо ext4.
После установки системы закрываем её и создаем виртуальную локальную сеть в менеджере виртуальных машин, для этого переходим Правка>Свойства подлючения>Виртуальные сети, жмем на значок "+"
Мои настройки для этой сети вы можете видеть на скриншоте(название используйте любое, IPv6 отключаем)
Теперь в созданну систему необходимо добавить ещё 1 сетевой интерфейс, его настройки вы видете на скриншоте:
Запускаем нашу систему и начинаем настройку сетевых интерфейсов:
В 1ом соединении выбираем тип Ethernet, и указываем адаптер, который идет из основной ОС
Отключаем на нем IPv6:
Создаем 2ое подлючение, тип VLAN, указываем наш виртуальный сетевой интрефейс(В графу "Имя интерфейса VLAN" вписываем наше название сети):
В найстройках IPv4 задаем всё в ручную, добавляем новый адрес, в графу "адресс" вписываем адрес нашей виртуальной локальной сети, маска сети стандартная, IPv6 отключаем
Теперь приступим к настройке tor:
Устанавливаем Tor и obfs4proxy данной командой:
В данном примере я буду использовать мосты obfs4, на официальном сайте Tor Project получаем конфигурацию мостов(рекомендую обновлять хотя б раз в месяц)
Приступаем к редактированию конфигруационного файла Tor, для этого вводим команду:
В данный файл вставляем следущие строки(красным выделен 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}
Пример того, как это должно выглядеть:
Сохраняем файл и переходим к настройке DNS:
Настроим маршрутизацию DNS запросов с серверов Tor, для этого откроем файл /etc/resolv.conf, очищаем этот файл, если там есть какие-либо записи и впишем следующую строку:
nameserver 127.0.0.1
Защитим этот файл от перезаписи следующей командой:
Включим форвардинг, для трансляции трафика.
Для этого откроем файл /etc/sysctl.conf и раскомментируем в нем строку net.ipv4.ip.forward=1
Теперь приступим к настройке фаервола, т.к. настроек очень много, я облегчу вам жизнь, и прикреплю файл с кодом для скрипта, данный скрипт автоматически внесет правила в iptables, эти правилы для взяты с сайта Tor Project и из ОС whonix.
Создаем пустой файл с расширением .sh и копируем туда строки для скрипта, вбиваем свои значения в следующих пунктах:
_tor_uid="111" #As per assumption здесь указываем свой uid, на скриншоте показал, как узнать ваш uid:
В строках
# 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 следующей командой:
Соглашаемя с сохранением правил, и ждем окончания установки
Теперь внесем Tor в автозагрузку следующей командой:
Перезагружаем систему и проверяем работу тор
Чтобы проверить,, не идет ли трафик в обход тор, отключим сервис Tor:
Проверяем доступ в интернет через бразуер(его быть не должно)
Если всё нормально, то удаляем всё ненужное из системы(бразуер, текстовый редактор, графическое окружение и т.д.)
Если во время загрузки шлюза произошел какой-либо сбой и подключение отсутствует, то перезапустите Tor следующей командой:
Наш шлюз готов, чтобы подлючить к нему другую виртуальную машину, в качестве сетевого интерфейса новой ВМ(тип интерфейса VLAN), указывайте вашу виртуальную локальную сеть, в настройках сети этой ВМ создаете новый виртуальный адаптер(указывайте ему имя вашей виртуальной сети), в качестве адреса системы указывайте любой адрес из вашей виртуальной сети, в качестве шлюза и DNS указывайте IP адрес вашего Tor шлюза.
На этом всё, желаю удачи в настройке!
Сам процесс даже легче, чем установить самой whonix на kvm, приступим к процессу:
Устанавливаем QEMU и необходимые утилиты(в качестве менеджера виртуальных машин я буду использовать virt-manager)
Код:
sudo apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin bridge-utils libvirt-daemon libvirt-clients
Код:
sudo usermod -aG libvirt $(whoami)
Чтобы не заморачиваться с настройкой фаервола в основной системе я буду использовать мост для сетевого адаптера в гостевую систему, если вы часто меняете интерфейсы подлючения в основной системе, то используйте NAT.
Во время установки рекомендую зашифровать систему и использовать файловую систему btrfs, вместо ext4.
После установки системы закрываем её и создаем виртуальную локальную сеть в менеджере виртуальных машин, для этого переходим Правка>Свойства подлючения>Виртуальные сети, жмем на значок "+"
Мои настройки для этой сети вы можете видеть на скриншоте(название используйте любое, IPv6 отключаем)
Теперь в созданну систему необходимо добавить ещё 1 сетевой интерфейс, его настройки вы видете на скриншоте:
Запускаем нашу систему и начинаем настройку сетевых интерфейсов:
В 1ом соединении выбираем тип Ethernet, и указываем адаптер, который идет из основной ОС
Отключаем на нем IPv6:
Создаем 2ое подлючение, тип VLAN, указываем наш виртуальный сетевой интрефейс(В графу "Имя интерфейса VLAN" вписываем наше название сети):
В найстройках IPv4 задаем всё в ручную, добавляем новый адрес, в графу "адресс" вписываем адрес нашей виртуальной локальной сети, маска сети стандартная, IPv6 отключаем
Теперь приступим к настройке tor:
Устанавливаем Tor и obfs4proxy данной командой:
Код:
sudo apt install tor obfs4proxy
Приступаем к редактированию конфигруационного файла Tor, для этого вводим команду:
Код:
sudo nano /etc/tor/torrc
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}
Пример того, как это должно выглядеть:
Сохраняем файл и переходим к настройке 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:
В строках
# 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
На этом всё, желаю удачи в настройке!
Вложения
Последнее редактирование: