<strong>на новичков ориентировано</strong> :) xss fail
Я использую генто, но подойдет наверное любая unix система где есть нужные пакеты(а они скорее всего есть везде). Практически все команды требуют рута. Настройка и установка qEmu не входит в статью(сильно зависит от системы, а генто как я знаю не очень популярна). Предполагается что пользователь хотя запускает wm с установленной unix системой, но не имеет в ней подключения к сети. На wm стояла kali.
Часть 1. OpenVpn
В начале всего придется перейти на рута:
(doas - аналог sudo для gentoo систем)
В моей прекрасной системе openVpn ставиться так:
После установки мне пришлось создать файл /etc/openvpn/update-resolv-conf:
208.67.222.222 b 208.67.222.220 замените на предпочитаемые dns сервера. У меня тут opendns. При выключении openvpn запускается этот скрипт и меняет dns сервера.
Теперь надо получить конфиг для openvpn. Это уже полностью зависит от вашего vpn. Proton например бесплатно дает файл настройки(сертификаты и ip вырезаны, но этот конфиг использовался пр тесте):
потом для запуска vpn:
при запуске создается tun0 интерфейс и система автоматически перенаправляет всю сеть через vpn.
Часть 2. Подготовка tap интерфейса на хосте.
Все действия надо проводить уже с включенным opebVpn.
Первым делом создаем виртуальный tap интерфейс:
Потом присваиваем интерфейсу статический ip адрес и диапазон адресов в подсети (от 192.168.123.1 до 192.168.123.254). Нужно для того чтобы этот интерфейс стал хостом для подсети и все устройства из этой подсети могли общатся. 192.168.123.1 - можно заменить например на 192.168.110.1, но тогда меняйте и 192.168.123.2 (на 192.168.110.1) и так далее.
Включаем виртуальный tap интерфейс:
Для того чтобы передавать пакеты между сетевыми интерфейсами нужно изменить параметр ядра(сбрасывается при перезагрузке):
Еще нужны некоторые настройки фаервола(iptables).
Перед отправкой пакета в сеть (POSTROUTING) подменяем адрес хоста на адрес vpn сервера:
Транспорт пакетов tap0->tun0 и обратный транспорт по установленным соединениям:
Часть 3.1. Запуск qEmu для взаимодействия с нашим tap0 интерфейсом.
Моя команда запуска qemu:
- мои параметры vm (/path/to/wm/disk.raw, memory-for-wm, cores, threads-for-core, надо заменить на свои). Это параметры wm. Они не относятся к сети, так что оставьте свои(желательно --enable-kvm добавить). С другой стороны из них нужно убрать все параметры сети. Вообщем гугл/джепете/а может даже собственные мозги вам в помощь
- указывает что будем мост tap и он будет как первое основное интернет устройство, говорит что qemu не нужно ничего делать с интерфейсом при запуски машины и ее остановке(мы сами настроили tap0)
- подключает виртуальное pci интернет устройство с нашим (net0) названием (в госте eth0 будет)
Часть 3.2. Настройка в гостевой системе.
Тоже в рута там зайдите. Проверяем что наш интерфейс появился и называеться он eth0. Может быть немного другой, но сути не меняет. Просто используете имя вашего интерфейса.
Присвоим статический адрес нашей подсети интерфейсу и активируем его:
Направляем весь сетевой трафик через шлюз - наш tap на хосте (кроме локального трафика локальный трафик):
Прописываем dns в системе: ```
тут opendns используется.
теперь пингуем чего нибудь:
Профит!! то есть теперь мы знаем что нельзя делать, чтобы случайно не подключить qEmu к openVpn на linux
PS: ребят данная статья не оправдывает Proton, не говорит как обеспечить себе анонимность( установи себе генту). В данной статье рассмотрен способ что не надо делать чтобы просто не (хаха) подключить к вашей qEmu vm внешнее vpn соединение, причем я думаю что схему можно (нужно улучшить). В этом методе наверное есть куча ошибок, так что если вы уверены, что я делаю что то не так - поправьте, буду вам благодарен. Скоро наверное напишу на тему создания qEmu машины.
Используйте генту
Я использую генто, но подойдет наверное любая unix система где есть нужные пакеты(а они скорее всего есть везде). Практически все команды требуют рута. Настройка и установка qEmu не входит в статью(сильно зависит от системы, а генто как я знаю не очень популярна). Предполагается что пользователь хотя запускает wm с установленной unix системой, но не имеет в ней подключения к сети. На wm стояла kali.
Часть 1. OpenVpn
В начале всего придется перейти на рута:
Bash:
doas su
В моей прекрасной системе openVpn ставиться так:
Bash:
emerge -av openvpn
Bash:
#!/bin/bash
echo "nameserver 208.67.222.222" >> /etc/resolv.conf
echo "nameserver 208.67.220.220" >> /etc/resolv.conf
208.67.222.222 b 208.67.222.220 замените на предпочитаемые dns сервера. У меня тут opendns. При выключении openvpn запускается этот скрипт и меняет dns сервера.
Теперь надо получить конфиг для openvpn. Это уже полностью зависит от вашего vpn. Proton например бесплатно дает файл настройки(сертификаты и ip вырезаны, но этот конфиг использовался пр тесте):
Спойлер: тадам
client dev tun proto udp дальше remote <int.int.int.int int> # ip адреса серверов remote-random resolv-retry infinite nobind cipher AES-256-GCM setenv CLIENT_CERT 0 tun-mtu 1500 mssfix 0 persist-key persist-tun reneg-sec 0 remote-cert-tls server auth-user-pass script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf дальше сертификаты
потом для запуска vpn:
Bash:
openvpn --config /path/to/config/config-name.ovpn
при запуске создается tun0 интерфейс и система автоматически перенаправляет всю сеть через vpn.
Часть 2. Подготовка tap интерфейса на хосте.
Все действия надо проводить уже с включенным opebVpn.
Первым делом создаем виртуальный tap интерфейс:
Bash:
ip tuntap add name tap0 mode tap
Bash:
ip addr add 192.168.123.1/24 dev tap0
Bash:
ip link set tap0 up
Для того чтобы передавать пакеты между сетевыми интерфейсами нужно изменить параметр ядра(сбрасывается при перезагрузке):
Bash:
sysctl -w net.ipv4.ip_forward=1
Перед отправкой пакета в сеть (POSTROUTING) подменяем адрес хоста на адрес vpn сервера:
Bash:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Bash:
iptables -A FORWARD -i tap0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Часть 3.1. Запуск qEmu для взаимодействия с нашим tap0 интерфейсом.
Моя команда запуска qemu:
Bash:
qemu-system-x86_64 --boot menu=on -drive file=/path/to/wm/disk.raw,format=raw -m memory-for-wm -cpu host -smp sockets=1,cores=cores,threads=threads-for-core --enable-kvm -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=net0
Bash:
--boot menu=on -drive file=/path/to/wm/disk.raw,format=raw -m memory-for-wm -cpu host -smp sockets=1,cores=cores,threads=threads-for-core --enable-kvm
Bash:
-netdev tap,if=net0,ifname=tap,script=no,downscript=no
Bash:
-device virtio-net-pci,netdev=net0
Часть 3.2. Настройка в гостевой системе.
Тоже в рута там зайдите. Проверяем что наш интерфейс появился и называеться он eth0. Может быть немного другой, но сути не меняет. Просто используете имя вашего интерфейса.
Bash:
ip link show
Bash:
ip addr add 192.168.123.2/24 dev eth0
ip link set eth0 up
Bash:
ip route add default via 192.168.123.1
Bash:
echo "nameserver 208.67.222.222
nameserver 208.67.220.220" | sudo tee /etc/resolv.conf
теперь пингуем чего нибудь:
Bash:
ping gentoo.org
PS: ребят данная статья не оправдывает Proton, не говорит как обеспечить себе анонимность( установи себе генту). В данной статье рассмотрен способ что не надо делать чтобы просто не (хаха) подключить к вашей qEmu vm внешнее vpn соединение, причем я думаю что схему можно (нужно улучшить). В этом методе наверное есть куча ошибок, так что если вы уверены, что я делаю что то не так - поправьте, буду вам благодарен. Скоро наверное напишу на тему создания qEmu машины.
Используйте генту
👍20
❤️6
🤔4
😢4
LIMB