Як відмовити у маршрутах, які PUSHed сервером OpenVPN?


27

Коли я встановлюю клієнтське підключення OpenVPN через Інтернет до нашого корпоративного OpenVPN-сервера, воно висуває кілька статичних маршрутів. На жаль, ці маршрути порушують деякий зв’язок у моєму локальному мережевому середовищі, оскільки вони стикаються з моїми власними маршрутами. Як я можу відмовити в цих маршрутах?

Відповіді:


30

Часи продовжувались, і станом на 2017 рік (OpenVPN 2.4) це можливо

pull-filter accept "route 192.168."
pull-filter ignore "route 172."
pull-filter accept "route 1"
pull-filter ignore "route "

Цей (надуманий приклад) дозволить дізнатись маршрути, які починаються з 192.168, ігнорує всі 172. маршрути, дозволяє іншим маршрутам до 1.що, а потім ігнорує всі інші маршрути.

Ігнорувати redirect-gatewayможна:

pull-filter ignore redirect-gateway

Ці команди додаються у файл налаштування вашого клієнта.

Так само ви можете використовувати ключове слово, rejectяке повідомляє серверу VPN, що його не прийнято. Не впевнений у використанні цього.

І нарешті, ви можете фільтрувати й інші параметри конфігурації. Я використовував це, щоб ігнорувати запропоновані DNS-сервери, оскільки для мене DNS обробляється локальним сервером.


3
Зауважте, це працює лише у OpenVPN 2.4.x.
ab77

Працював над OpenVPN 2.4.7 за допомогою GUI OpenVPN 11.13.0 в Windows 10 для вирішення конфлікту підмережі між двома серверами OpenVPN Access, використовуючи конфігурації за замовчуванням, які мені потрібні одночасно. Дякую за надання остаточного твору, щоб він працював!
мерехтіння

24

Після глибокого вивчення openvpnпосібника я знайшов відповідь на своє запитання:

Я не хочу, щоб маршрути виконувалися автоматично, але щоб ними оброблявся власний інструмент, використовуйте наступний варіант:

   --route-noexec
          Don't add or remove routes automatically.  Instead pass routes to --route-up script using environmental variables.

Якщо ви приймаєте все, що сервер підштовхує, крім маршрутів, використовуйте наступний варіант:

  --route-nopull
          When used with --client or --pull, accept options pushed by server EXCEPT for routes.
          When used on the client, this option effectively bars the server from adding routes to the client's routing table, however note that
          this option still allows the server to set the TCP/IP properties of the client's TUN/TAP interface.

2
FYI Ви можете також використовувати route-nopullв .opvn конфігураційного файлу: stackoverflow.com/questions/35698215 / ...
knocte

1

Ви не можете відмовитись від окремих маршрутів, однак, якщо у вас є доступ до редагування вашої конфігурації OpenVPN, ви можете ефективно зупинити сервер із --pushбудь-якою для вас конфігурацією, видаливши всі екземпляри clientабо pullз конфігурації. Натомість вам потрібно буде додати, tls-clientякщо ця директива ще не існує у вашій конфігурації ( clientце просто синонім для pull, tls-client).

Звичайно, якщо ви це зробите, ви втратите всі маршрути та будь-яку іншу конфігурацію, яка, як правило, pushредагується для вас, тому вам потрібно буде вручну налаштувати ці налаштування після того, як ваш тунель з'явиться.


Ей Майк, і як вручну конфігурувати маршрут лише до підмережі, яка мене цікавить? (10.0.0._) будь-яким способом налаштувати це у файлі .opvn?
knocte

маршрут 10.0.0.0
255.0.0.0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.