Как разрешить клиентам vpn доступ к серверам локальной сети

Мне нужна помощь в понимании того, как разрешить vpn-клиентам получать доступ к серверам, которые находятся в «интрасети».

У меня есть один выделенный / физический сервер в ovh (если это имеет значение) с 4 дополнительными IPS. Установленная ОС - proxmox, и у меня есть два сетевых устройства (их тип - «мост Linux»). Одному назначен общедоступный IP-адрес сервера (vmbr0), другому (vmbr1) назначен IP 172.20.0.1 с 255.252.0.0 в качестве сетевой маски.

Я создал несколько виртуальных машин, которым назначен только vmbr1. Я могу с радостью пинговать между этими машинами. Я также получаю доступ в Интернет с этих машин, как если бы они были за моим домашним маршрутизатором. Если это важно, на 172.20.0.2 у меня есть DHCP-сервер, а на 172.20.0.3 и 172.20.0.4 у меня есть два DNS-сервера.

Я создал другую виртуальную машину, которой назначены как vmbr0, так и vmbr1. Я настроил один из дополнительных общедоступных IP-адресов на vmbr0 и могу использовать его по ssh. Я также установил openvpn и настроил его так, чтобы клиенты получали доступ в Интернет через сервер vpn. Клиенты vpn получают IP-адреса из сети 10.8.0.0/24.

Сейчас я хочу разрешить всем серверам с 172.20.0.0/14 пинговать / ssh / и т. Д. На клиентов vpn, которые находятся на 10.8. Сеть 0.0 / 24.

Я понял, что мне нужно заставить сервер openvpn проталкивать некоторые маршруты к клиентам (чтобы клиенты знали о другой сети);

Я почти уверен, что мне нужно что-то сделать на самом хосте proxmox (потому что есть шлюз для сети 172.20.0.0/14), и я считаю, что мне также нужно добавить некоторые правила iptable на самом сервере openvpn для перенаправления / маскировки трафика между сетями, но я не могу точно понять, какие правила.

Итак, мой вопрос: что мне нужно сделать, чтобы разрешить клиентам vpn доступ к виртуальным серверам при такой настройке?

0
задан 2 September 2018 в 14:01
1 ответ

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

Клиентам необходимо передать маршруты к ним, чтобы гарантировать трафик, предназначенный для внутренней подсети, направляется через VPN. Это может быть маршрут по умолчанию (при котором ВСЕ трафик будет отправляться через VPN от клиентов) или конкретный маршрут для вашей внутренней подсети. Вы определили, что можете нажать это в конфигурации VPN (при условии, что вы используете аутентификацию на основе сертификатов).

Вам необходимо включить переадресацию IP на хосте OpenVPN. Используйте sysctl , чтобы установить значение net.ipv4.conf.all.forwarding равным 1. Добавьте файл в /etc/sysctl.d , чтобы убедиться в этом. сохраняется при перезапусках.

Локальным хостам также требуются маршруты, чтобы убедиться, что они знают, как получить доступ к подсети OpenVPN. Вы можете либо:

  • Использовать NAT на хосте OpenVPN, чтобы перенаправленные пакеты выглядели как исходящие с его внутреннего IP-адреса. Это скрывает существование подсети 10.8.0.0/24 и, следовательно, устраняет требование о том, чтобы любые другие устройства знали о ней, но означает, что весь трафик от всех клиентов VPN, похоже, исходит от одного хоста.

  • Настройте маршруты к убедитесь, что трафик, предназначенный для 10.8.0.0/24, направляется на хост OpenVPN. Их можно добавить на каждую виртуальную машину или на хост-машину. Воспользуйтесь инструментом route и добавьте команды к объявлениям сетевого интерфейса, чтобы гарантировать, что они сохраняются при перезагрузках.

0
ответ дан 5 December 2019 в 05:18

Теги

Похожие вопросы