Неможливо підписати підмережу за сервером OpenVPN


1

Ось моя інфраструктура:

dns of mydomain.com:
  vpn A 90.90.90.1
  vpn A 90.90.90.2

client vpn config:
  client
  dev tun
  proto udp
  nobind
  remote vpn.mydomain.com 1394

server1
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.1.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.1/24
    ifpriv: 10.90.90.1/24
    ifvpn: 10.10.1.1/24
  routes:
    10.10.1.0/24 src 10.10.1.1 dev ifvpn
    10.10.2.0/24 via 10.90.90.2 dev ifpriv

server2
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.2.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.2/24
    ifpriv: 10.90.90.2/24
    ifvpn: 10.10.2.1/24
  routes:
    10.10.1.0/24 via 10.90.90.1 dev ifpriv
    10.10.2.0/24 src 10.10.2.1 dev ifvpn

Проблема в тому, що з мого клієнта я можу пінг OpenVPN сервер я підключений, але не інший сервер в 10.90.90.0/24 підмережі.

tcpdump показує, що запит ICMP виходить ifvpn до ifpriv на одному сервері, але потім пакет запитів ICMP ніколи не йде далі.

Додавання реєстрації в iptables також покаже мені, що пакет запитів ICMP переходить у стан POSTROUTING без падіння, але потім пакет ніколи не зробив його до місця призначення, і я не знаю, що тут відбувається, я не маю рішення.

Я знав, що можу маскувати свої пакети, але не хочу, тому що це не рекомендується ( https://community.openvpn.net/openvpn/wiki/NatHack ), або це буде моє дуже останнє рішення.


Я спробував маскарад рубати і він працює. iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -o ifpriv -j MASQUERADE наприклад, на сервері 1 і тепер я можу пінг сервера 2 приватного ip від мого клієнта. Але, як описано на сторінці NatHack The authorities would see all the telephone calls as coming from you. It would be better if everyone got their own phone, so the calls could be routed directly.. Отже, проблема тут ще ...
Victor

Для доступу до повної підмережі IIRC OpenVPN потребує спеціальної конфігурації поверх маршрутизації. Я побачу, чи зможу я знайти деталі.
dirkt

Я вважаю, ви повинні дозволити iptables INPUT на server2 для пінг для досягнення server2.
Gohu

Я тестував, щоб додати PREROUTING log on server2, але нічого не бачимо. Я припустив, що PREROUTING - це перший ланцюжок, який пакет буде вводити, як описано на цьому зображенні i.stack.imgur.com/4wdkF.png ?
Victor

Викопали його: Вам потрібно iroute на деяких топологіях, але це не здається тут. Якщо я вас правильно розумію, то ifpriv інтерфейси на обох серверах з'єднані локальною мережею, і ви бачите вихідний пакет ifpriv на сервері 1, але він ніколи не входить ifpriv на сервері 2, чи правильно? Дурне питання: Чи можете ви пінг сервер 2 з сервера 1 безпосередньо?
dirkt

Відповіді:


0

Якщо віддалений сервер "відкриває підмережу", ви повинні мати a ccd каталог, що містить файли з iroute директив, як ретельно описано в документації OpenVPN. Ви також повинні мати route директиви висунуті клієнтам.

Коли все працює правильно:

  • Клієнт відправляє пінг.
  • ОС клієнта має маршрутизацію, яка посилає цей трафік на локальний сервер OpenVPN.
  • The ccd інформація розповідає OpenVPN до якого підключено віддалене відправити трафік для доставки.
  • Трафік виникає на цьому пульті і переходить до місця призначення.
  • Для зворотної поїздки віддалена система повинна також мати маршрут операційної системи, який буде відправляти трафік назад його Сервер OpenVPN.

Добре, спасибі, я постараюся. Де описана документація? Я використовував цей: openvpn.net/index.php/open-source/documentation/…
Victor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.