Сообщество OpenVPN, ограничивающее доступ к подсети

Сообщество OpenVPN, ограничивающее доступ к подсети

Я настроил сервер OpenVPN, и он пока работает. В моей сети есть следующие подсети: 10.200.1.0/24, 10.200.2.0/24, и 10.200.3.0/24. Когда я подключился к своему VPN, я могу пинговать все 3 подсети, без проблем. Как мне ограничить доступ к подсети со стороны сервера? Мне не нужна ccdнастройка, так как она предназначена для всех клиентов. Я просто хочу ограничить доступ к подсети 10.200.1/24и 10.200.2/24глобально, если подключено.

Конфигурация ниже работает, когда клиент не может получить доступ 10.200.3/24при подключении, поскольку сервер не отправил маршрут клиенту. Но когда клиент вручную добавляет маршрут на свою машину, он технически может подключиться к ней.

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

сервер.conf

local 10.200.0.8
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.200.1.0 255.255.255.0"
push "route 10.200.2.0 255.255.255.0"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
explicit-exit-notify

решение1

Ваш VPN-сервер — это IP-маршрутизатор (который осуществляет пересылку пакетов), где пакеты могут фильтроваться (пересылаться или не пересылаться). Это делается с помощью брандмауэра. Например, если сервер — Linux, вы добавляете:

iptables -I FORWARD 1 -s 10.8.0.0/24 -d 10.200.3.0/24 -j REJECT

Правило -I ... 1будет установлено перед всем остальным в цепочке, я создал его таким образом, чтобы быть уверенным, что оно будет работать правильно, как есть, независимо от того, что уже есть в брандмауэре. Это может быть неоптимально. Пожалуйста, настройте правило по мере необходимости. Просто убедитесь, что оно появляется перед любым разрешающим правилом, которое соответствует пакетам от VPN-клиентов.

Эту фильтрацию также можно реализовать с помощью плагина OpenVPN, но это гораздо сложнее.

Связанный контент