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 определенной сетью назначения?