ВМ как шлюз VPN для других ВМ

Discussion in 'Linux, Freebsd, *nix' started by hacker505, 10 Sep 2023.

  1. hacker505

    hacker505 New Member

    Joined:
    4 Jun 2023
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Есть две вирутальные машины, на одной настроен wireguard, обе вм объединины в изолированную сеть средставами virt-manager. Нужно чтобы вторая имея только 1 сетевой интерфейс из изолированной сети, ходила через впн. Обе вм и хост на ОС Devuan.

    UPDATE:
    Итак. У меня получилось это сделать благодаря ИИ.

    Для начала объединяем обе машины в изолированную сеть, то есть заходим в менеджер виртуалок, жмём свойства подключений, виртуальные сети. Удаляем НАТ и добавляем сеть с типом изолированная сеть, ничего не меняем.

    далее

    прописываем конфиги /etc/network/interfaces

    первая вм на которой подключен wireguard:

    auto eth1
    iface eth1 inet static
    address 192.168.100.1
    netmask 255.255.255.0 (у меня eth1, так как eth0 это интерфейс хоста, провод с инетрентом) )

    вторая вм которую коннектим:

    auto eth0
    iface eth0 inet static
    address 192.168.100.2
    netmask 255.255.255.0
    dns-nameserver 192.168.100.1

    Далее

    1. Убедитесь, что обе виртуальные машины находятся в одной сети, созданной в virt-manager, и что у первой машины (с IP 192.168.100.1) есть доступ к Интернету через интерфейс хоста.

    2. Настройте проброс пакетов на первой виртуальной машине для трансляции трафика от второй машины через VPN. Выполните следующую команду:

    ```
    Code:
    sudo iptables -t nat -A POSTROUTING -s 192.168.100.2 -o <интерфейс-VPN> -j MASQUERADE
    Code:
    sudo iptables -A FORWARD -i eth1 -j ACCEPT
    ```

    Здесь `<интерфейс-VPN>` - это интерфейс, используемый для вашего VPN-подключения (например, `wg0`). Если вы не знаете, какой интерфейс использовать, выполните команду `ip a` на первой машине и найдите интерфейс WireGuard.

    3. На второй виртуальной машине настройте маршрут по умолчанию через первую машину. Выполните следующую команду:

    ```
    Code:
    sudo ip route add default via 192.168.100.1
    ```

    Теперь весь сетевой трафик с второй виртуальной машины (с IP 192.168.100.2) будет направляться через первую машину (с IP 192.168.100.1), которая уже настроена с VPN-подключением.

    Обратите внимание, что эти настройки будут действовать только для текущего сеанса, поэтому вам может потребоваться настроить их для автоматической загрузки при старте машины. Помните также, что проброс трафика через другую машину может иметь потенциальные уязвимости безопасности, поэтому убедитесь, что вы предпринимаете все необходимые меры для защиты системы.

    P.S. Если не пингуется первая со второй и вторая с первой чините фаерволл или отключайте. Также на второй которую подключем к виртуалке с впн в /etc/resolv.conf должно написано nameserver 1.1.1.1 или любой другой общедоступный DNS. И не забываем включить форвардинг пакетов!

    Было бы классно поднять днс сервер на первой вм и юзать его на второй для большей конфеденицальности, но я спать пошёл. Надеюсь кому-то поможет :rolleyes:
     

    Attached Files:

    #1 hacker505, 10 Sep 2023
    Last edited: 18 Sep 2023
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202