У меня есть несколько серверов, которые предоставляют различные публичные сервисы в Интернете. Они находятся за сервером, который выступает в качестве брандмауэра с использованием IPTables и перенаправляет трафик на серверы и обратно. Все серверы имеют общедоступный IP-адрес, например, в диапазоне 1.2.3.x.

Я настроил VPN с использованием PPTD для сервера брандмауэра. Это связано с локальным диапазоном IP-адресов в диапазоне 192.168.0.x. Я могу подключиться и SSH к локальной машине. Однако, когда я использую общедоступный IP-адрес одного из других серверов, он маршрутизируется через Интернет, а не через VPN.

Как я могу заставить VPN-сервер принимать и маршрутизировать трафик от имени других серверов при подключении?

1 ответ1

1

Вы, вероятно, имеете в виду «PPTP» VPN.

Этот тип VPN работает путем создания виртуального сетевого адаптера на стороне клиента. Любой сетевой адаптер, виртуальный или нет, может / будет иметь записи в таблице маршрутизации, и это контролирует, куда идет трафик.

Весь исходящий трафик проверяется по таблице маршрутизации. Записи таблицы маршрутизации с более высокими или более определенными масками подсети выбираются для отправки трафика раньше, чем записи с более низкими или менее конкретными масками подсети. Маска подсети 192.168.0.Х составляет 255,255,255,0 или /24. Шлюз по умолчанию, который собирает весь трафик, не захваченный чем-либо еще, имеет "маску подсети" 0.0.0.0 или /0.

Благодаря назначению IP-адреса и маски подсети адаптеру вы автоматически получаете свободный маршрут. Допустим, ваш домашний маршрутизатор дает одному из ваших адаптеров IP-адрес 10.1.1.40 и маску подсети 255.255.0.0 (что равно /16). По сути это означает, что любой трафик, который выходит из этого адаптера, может достигать 10.1.XX Таким образом, запись таблицы маршрутов генерируется с этой целью. Исходящий трафик проверяется по таблице маршрутизации и собирается ли она где-то еще в 10.1.XX, он НЕ пройдет через шлюз по умолчанию, который является /0.

Надеемся, что теперь вы можете видеть, что если вы отправляете трафик на IP-адрес, который находится не в подсети вашего VPN-адаптера, он будет проходить через шлюз по умолчанию и, следовательно, через весь Интернет.

Действительно единственный способ выполнить то, что вы пытаетесь сделать, это:

  • Настройте VPN на стороне сервера, чтобы указать клиентам использовать адаптер VPN в качестве шлюза по умолчанию. Это заставит весь трафик клиента проходить через ваш VPN.
  • Настройте VPN на стороне сервера, чтобы указать клиентам использовать сервер в VPN для DNS
  • Настройте некоторые правила брандмауэра IPTables, которые будут перехватывать исходящий трафик на общедоступных IP-адресах ваших серверов и перенаправлять их на соответствующие IP-адреса, доступные для VPN. Если клиенты используют вашу VPN в качестве шлюза по умолчанию, вам, возможно, на самом деле не нужно делать это, но это обеспечит отсутствие утечек трафика вне вашей VPN, если клиенты только пытаются получить внутренние адреса.
  • Вы также можете запустить отдельный DNS-сервер или отдельный DNS-домен, который доступен только внутри VPN и который разрешает имена клиентов в VPN во внутренние адреса VPN вместо общедоступных IP-адресов.

Еще одно примечание: очень плохая идея использовать 192.168.0.X или 192.168.1.X для корпоративного VPN - потому что это может конфликтовать с настройкой общих IP-диапазонов для домашних маршрутизаторов. Вы должны изменить это на что-то необычно используемое дома как 192.168.88.ИКС.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .