Конспект: Настройка доступа к Debian в Hyper-V через OpenVPN

Опубликовано jeord -

Исходные данные

  • Сервер A: Windows Server 2019, IP 192.168.0.130
  • Локальная сеть: 192.168.0.0/24
  • OpenVPN-подсеть: 192.168.100.0/24, сервер VPN имеет IP 192.168.100.1
  • Debian в Hyper-V: IP 192.168.0.134 (DHCP, закреплён на роутере по MAC)
  • Виртуальный коммутатор: External на физическом адаптере Intel I210

Проблема

OpenVPN-клиент мог пинговать сервер, но не Debian. Пакет доходил до Debian, но обратный ответ уходил через роутер, который не знал маршрута в VPN-подсеть.

Решение

1. Windows Server — firewall

Разрешён ICMP и трафик из VPN-подсети:

powershell

New-NetFirewallRule -DisplayName "ICMP from VPN" -Protocol ICMPv4 -IcmpType 8 -RemoteAddress 192.168.100.0/24 -Action Allow
New-NetFirewallRule -DisplayName "VPN Forwarding" -Direction Inbound -Action Allow -RemoteAddress 192.168.100.0/24

Профиль OpenVPN-адаптера переведён в Private:

powershell

Set-NetConnectionProfile -InterfaceAlias "OpenVPN TAP-Windows6" -NetworkCategory Private

2. Debian — маршрут в VPN-подсеть

Создан systemd-юнит /etc/systemd/system/route-vpn.service:

 

[Unit]

Description=Add route to VPN subnet

After=network-online.target

Wants=network-online.target



[Service]
Type=oneshot

ExecStartPre=/bin/bash -c 'until ping -c1 -W1 192.168.0.130; do sleep 2; done'

ExecStart=/usr/sbin/ip route replace 192.168.100.0/24 via 192.168.0.130

RemainAfterExit=yes



[Install]

WantedBy=multi-user.target