Как отказаться от маршрутов, которые PUSHed сервером OpenVPN?

27

Когда я устанавливаю соединение клиента OpenVPN через Интернет с нашим корпоративным сервером OpenVPN, он проталкивает несколько статических маршрутов. К сожалению, эти маршруты нарушают некоторые соединения в моей локальной сетевой среде, так как они сталкиваются с моими собственными маршрутами. Как я могу отказаться от этих маршрутов?

mbaitoff
источник

Ответы:

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 обрабатывается локальным сервером для меня.

Criggie
источник
3
Обратите внимание, это работает только в OpenVPN 2.4.x.
ab77
Работал над OpenVPN 2.4.7, используя OpenVPN GUI 11.13.0 в Windows 10, чтобы разрешить конфликт подсети между двумя серверами доступа OpenVPN, оба из которых использовали настройки по умолчанию, которые мне нужны одновременно. Спасибо за предоставленную последнюю часть, чтобы она заработала!
мерцание
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.
mbaitoff
источник
2
Вы также можете использовать 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
markhorrocks