Як отримати сервер OpenVPN для пересилання пакетів tun0 до локальної мережі?


1

У мене є три машини, які я намагаюся координувати через з'єднання TUN.

FREEBSD вікно запуску сервера OpenVPN (tun)
10.0.200.21/24 на локальній підмережі
10.0.202.1/24 на VPN

REMOTE
Публічний IP
10.0.202.6/24 на VPN

WEBSERVER
10.0.200.31/24 на локальній підмережі

я можу дістати REMOTE до VPN FREEBSD через OpenVPN і з'єднання нормальне, але налаштовано неправильно. Коли я намагаюся з'єднатися з REMOTE до WEBSERVER через введення тексту WEBSERVER IP - адреса в REMOTE веб-переглядач WEBSERVER недоступний. Це досяжно, якщо я додаю REMOTE безпосередньо до локальної підмережі.

Під час виправлення неполадок я дізнався наступне.

  • REMOTE може пінг FREEBSD і навіть SSH до нього.
  • Налаштування захоплення пакета FREEBSD Порт Ethernet не захоплює пакети від або до REMOTE IP VPN IP 10.0.202.6. Отже, пакети REMOTE не входять до локальної підмережі.
  • The openvpn.log файл на FREEBSD має такий рядок: GET INST BY VIRT: 10.0.200.31 [failed]

Отже, здається, що OpenVPN не пересилає пакети, отримані на TUN-пристрої FREEBSD Ethernet-адаптер і виходить до локальної підмережі.

У мене є наступний рядок у файлі server.conf.
push "route 10.0.200.0 255.255.255.0"

Я спробував додати цей рядок, але це не допомогло.
route 10.0.200.0 255.255.255.0


Ось таблиця маршрутизації FREEBSD

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.0.200.1         UGS         0     4306    re0
10.0.200.0         link#9             U           0    61582    re0
10.0.200.21        link#9             UHS         0       41    lo0
10.0.201.0         10.0.200.1         UGS         0        0    re0
10.0.202.0         10.0.202.2         UGS         0        0   tun0
10.0.202.1         link#12            UHS         0        0    lo0
10.0.202.2         link#12            UH          0        0   tun0
localhost          link#11            UH          0   193743    lo0


Я читав в Інтернеті про GET INST BY VIRT: 10.0.200.31 [failed] і для машин Linux рекомендується запускати наступну команду.
echo 1 > /proc/sys/net/ipv4/ip_forward
Я боюся запустити його, тому що не розумію і не хочу FREEBSD в незвичайну конфігурацію. Я також віддаю перевагу рішенню, яке змінює файл server.conf для автоматичного створення необхідної конфігурації, щоб він правильно керувався і розривався, коли OpenVPN закрито.

Яке рішення цієї проблеми?

Відповіді:


2

Виявили проблему. Виявляється, що FreeNAS, програмне забезпечення приладу NAS, засноване на FreeBSD, і про що я маю на увазі FREEBSD вище, має net.inet.ip.forwarding Встановіть значення 0. Це можна переглянути за допомогою команди sysctl -a | grep net.inet.ip.forwarding. Для того, щоб передати пакети, я повинен був зробити sysctl net.inet.ip.forwarding=1.

Ця зміна не зберігається через перезавантаження. Я думаю, що мені доведеться скористатися файлом /etc/rc.conf і встановити gateway_enable="YES", але поки що я знайшов, що ця настройка не обробляється до перезавантаження, і, на жаль, на FreeNAS, rc.conf, здається, перезаписується кожне перезавантаження. Можливо, можна записати цю змінну в /etc/defaults/rc.conf, яка повинна зберігати значення за замовчуванням для системи і перезаписується користувацькими конфігураціями в rc.conf, але /etc/defaults/rc.conf Файл має попередження у верхній частині, щоб не редагувати його.

Отже, ця проблема не повністю розв'язана, але принаймні я зрозумів, які саме проблеми. Тепер, коли я розумію це, я помічаю проблему з входом до https web-пристроїв керування в локальній підмережі. Це буде ще одна проблема, яку потрібно вирішити.


0

Так, ваш клієнт VPN має маршрут, щоб дістатися до 10.0.200.0/24 і ваш сервер VPN має маршрут. Але питання полягає в тому, ваш веб-сервер 10.0.200.31 мати маршрут, щоб дістатися до 10.0.202.0/24 мережі?

Зробіть tcpdump на вікні freebsd. Я підозрюю, що ви побачите трафік від вашого 10.0.202.6 хост отримує переадресацію, але ви не бачите жодного зворотного трафіку.


Спасибі за вашу допомогу! Завтра буду дивитися на tcpdump. Але я б подумав, що ці пакети повинні були з'явитися в моєму захопленні Wireshark. Крім того, я маю статичний маршрут, встановлений на шлюзі за замовчуванням локальної підмережі (мій інтернет-маршрутизатор), щоб направити пакети на FREEBSD.
Shaun
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.