Назад | Перейти на главную страницу

OpenVPN - клиент как шлюз для других клиентов

У меня следующая структура: Диаграмма сети

То, что я хотел бы достичь, - это, по сути, направлять ВЕСЬ трафик от клиентов портативных компьютеров (и любого возможного будущего клиента) через клиент MacOS OpenVPN во внутренней сети.

Я знаю, что проще всего было бы запустить сервер OpenVPN на внутреннем сервере MacOS, однако он находится за прокси и брандмауэром, и к нему нельзя получить доступ извне (в моем случае туннелирование ssh не подходит) - вот почему у меня такой странная структура.

Каким образом клиенты и сервер должны быть настроены для этого?

можно маршрутизировать подсеть, которая доступна только через другой клиент openVPN, используя ccd скрипты

Например, в вашем случае вам нужно будет добавить в конфигурацию сервера AWS, подобную этой

Предположим, что 10.80.0.1 - это IP-адрес вашего VPN-шлюза AWS (VPN-адрес, а не внешний IP-адрес), и 10.0.2.0/24 это подсеть, которую вы хотите маршрутизировать через сервер MacOS

в файле /etc/openvpn/ccd/macos_vpn_commonname

iroute 10.0.2.0 255.255.255.0 push "route 10.0.2.0 255.255.255.0 10.80.0.1" route 10.0.2.0 255.255.255.0 10.80.0.1"

Вам также понадобится строка в основном файле конфигурации вашего сервера OpenVPN на сервере AWS
client-config-dir /etc/openvpn/ccd

Что он сообщает серверу OpenVPN при macos_vpn_commonname клиентское соединение, что подсеть 10.0.2.0 / 24 доступна через этого клиента и обеспечивает маршрутизацию через этот туннель. Насколько я тестировал, другого способа сделать это нет, даже ручная маршрутизация трафика через ранее созданный туннель не сработает.

Это будет охватывать маршрутизацию подсети через сервер MacOS. Если вам нужно перенаправить ВЕСЬ трафик через него, дайте мне знать, и я постараюсь помочь вам в дальнейшем, используя iprule / iproute на сервере AWS OpenVPN и redirect-gateway директиву, так как я не уверен, готов ли OpenVPN к такому сценарию с внутренними механизмами.