Рейтинг:0

OpenVPN: разрешить доступ только к определенной клиентской сети

флаг ro

OpenVPN: ограничение клиентского доступа для определенных целевых клиентов У меня есть два клиента OpenVPN (ovpn_dest1, ovpn_dest2), которые работают непрерывно и имеют частную сеть (10.60.10.0/24 и 10.60.20.0/24), к которой я хочу получить доступ с двух клиентов Windows OpenVPN.

Однако клиенты Windows OpenVPN (ovpn_user1, ovpn_user2) должны иметь доступ только к своим соответствующим сетям (либо 10.60.10.0/24, либо 10.60.20.0/24).

Если ovpn_user1 имеет доступ к ovpn_dest1 (10.60.10.0/24), а ovpn_user2 должен иметь доступ только к ovpn_dest2 (10.60.20.0/24).

В текущей настройке используется директива client-to-client в файле OpenVPN server.conf хоста, которая необходима, чтобы клиенты Windows могли взаимодействовать с ovpn_dest1/2 и их сетевыми устройствами (device1_1/device1_2/etc).

К сожалению, эта директива клиент-клиент означает, что клиент Windows также может получить доступ ко всем клиентам ovpn_dest1/2, что нежелательно с точки зрения безопасности.

Обозначения сети и IP:

ovpn_dest1 - 10.60.10.2
  устройство1_1 - 10.60.10.3
  устройство1_2 - 10.60.10.4
ovpn_dest2 — 10.60.20.2
  устройство2_1 - 10.60.20.3

ovpn_user1 — 10.60.10.0/24
ovpn_user2 — 10.60.20.0/24

/etc/openvpn/сервер/server.conf:

местный 188.166.226.159
порт 1194
прото удп
разработчик tun0
ca ca.crt
сервер сертификатов.crt
ключевой сервер.key
dh dh.pem
аутентификация SHA512
tls-crypt tc.key
топология подсети
сервер 10.8.0.0 255.255.255.0
нажмите «перенаправление-шлюз def1 bypass-dhcp»
ifconfig-pool-persist ipp.txt
нажмите «dhcp-опция DNS 67.207.67.3»
нажмите «dhcp-опция DNS 67.207.67.2»
поддержка 10 120
шифр AES-256-CBC
пользователь никто
группа
постоянный ключ
упорный тун
глагол 3
crl-проверить crl.pem
явное уведомление о выходе
добавление журнала /var/log/openvpn.log

клиент-клиент
клиент-конфигурация-каталог ccd

/etc/openvpn/сервер/ccd/ovpn_dest1

маршрут 10.60.10.0 255.255.255.0
маршрут 10.60.10.0 255.255.255.0
нажмите "маршрут 10.60.10.0 255.255.255.0"

/etc/openvpn/сервер/ccd/ovpn_dest2

маршрут 10.60.20.0 255.255.255.0
маршрут 10.60.20.0 255.255.255.0
нажмите "маршрут 10.60.20.0 255.255.255.0"

Я также могу подключиться ко всем следующим устройствам из любого клиента Windows OpenVPN (ovpn_user1/ovpn_user2):

http://10.8.0.2/ (ovpn_dest1)
http://10.8.0.3/ (ovpn_dest2)
http://10.60.10.2/ (ovpn_dest1)
http://10.60.20.2/ (ovpn_dest2)
10.60.10.3 (устройство1_1)

Однако я хочу ограничить доступ для клиентов Windows, чтобы данный клиент мог получить доступ только к своей конкретной сети ovpn_destN.

Я пытался использовать iptables, однако я не эксперт в этом, и кажется, что директива клиент-клиент в файле server.conf эффективно переопределяет все попытки iptables заблокировать маршрут между источником и местом назначения. (Директива «клиент-клиентская сеть будет выполняться внутри OpenVPN, не достигая уровня хоста»). Кажется, мне, возможно, придется удалить «клиент-клиент» из server.conf, чтобы ограничить количество подключений, но я не смог установить связь, когда эта строка удалена.

Я рассматривал возможность использования нескольких экземпляров OpenVPN (по одному для каждого набора ovpn_destN, ovpn_userN), однако со многими десятками экземпляров это может быть не идеально. Хотя доступ к нескольким сетям, вероятно, не будет осуществляться часто одновременно.

Какой (и как) лучший способ ограничить клиент Windows определенной сетью назначения?

флаг us
Как клиенты получают свои IP-адреса?
vbscript avatar
флаг ro
@TeroKilkanen Извините, не совсем понимаю, что вы имеете в виду. У меня есть файл ipp.txt, который автоматически заполняется при присоединении новых клиентов, но я полагаю, что это не очень важно.
Рейтинг:0
флаг us

Поскольку ваша конфигурация содержит нажмите «перенаправление-шлюз def1 bypass-dhcp», это означает, что клиенты OpenVPN будут устанавливать шлюз по умолчанию на адрес сервера OpenVPN.

Это означает, что весь клиентский трафик перенаправляется на сервер OpenVPN. Следовательно ПЗС конфигурации бессмысленны, потому что эти маршруты покрываются маршрутом по умолчанию.

Во-первых, убедитесь, что вашим клиентам назначены статические IP-адреса. Добавьте следующую строку в ovpn_dest1 файл на сервере ПЗС директория для клиента:

ifconfig-push 10.8.0.2 255.255.255.0

И соответственно к ovpn_dest2:

ifconfig-push 10.8.0.3 255.255.255.0

Затем настройте брандмауэр на сервере OpenVPN следующим образом:

iptables -I ВПЕРЕД -s 10.8.0.2 -d 10.60.20.2 -j УДАЛИТЬ
iptables -I ВПЕРЕД -s 10.8.0.3 -d 10.60.10.2 -j УДАЛИТЬ

Первый блокирует трафик от клиента 1 к получателю 2, а второй — от клиента 2 к получателю 1.

vbscript avatar
флаг ro
Извините за путаницу, но вы хотите добавить `ifconfig-push 10.8.0.2 255.255.255.0` в файл конфигурации .ovpn клиента или в файл server.conf сервера? Кроме того, следует ли удалить строку «клиент-клиент» из файла server.conf, поскольку в противном случае правила iptable, вероятно, не будут иметь никакого эффекта?
vbscript avatar
флаг ro
Просто чтобы уточнить, ovpn_user1 и ovpn_user2 — это пользователи Windows, которые должны иметь доступ к сетям 10.60.10.0/24 и 10.60.20.0/24 соответственно.
флаг us
Эти строки должны быть добавлены на стороне сервера в файлы в каталоге `ccd`, поэтому они являются специфическими для клиента конфигурациями.
vbscript avatar
флаг ro
Следует ли оставить директивы `push "redirect-gateway def1 bypass-dhcp"` и `client-to-client` или их следует удалить?
флаг us
По крайней мере, необходимо удалить отправку шлюза по умолчанию.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.