У меня есть несколько серверов OpenVPN, у которых есть клиенты, такие как slave-1 и slave-2, которые имеют доступ только к самому серверу OpenVPN. У меня есть выделенный CA-сервер для создания новых пользователей в системе. Я хочу реализовать поддержку таких пользователей, как master-1 и master-2, у которых есть доступ к подчиненным клиентам.
Я читал, что если я включу клиент-клиент в OpenVPN, я не смогу использовать брандмауэр, потому что взаимодействие между клиентом будет выполняться внутри OpenVPN без достижения уровня хоста.
Я читал, что могу создавать специфичные для клиента модификации в server.conf, используя client-config-dir и общее имя сертификата, но я не могу найти способ внести изменения с использованием префиксов типа «master- *».
Чтобы приступить к решению этой проблемы, я попытался разрешить всю сеть между всеми клиентами, не разрешая клиент-клиент в OpenVPN, выполнив следующие команды на сервере OpenVPN:
echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -I FORWARD --src 10.8.0.0/24 --dst 10.8.0.0/24 -j ACCEPT
И эти команды на клиенте OpenVPN:
sudo ip route del 10.8.0.1/32 via 10.8.0.53
sudo ip route add 10.8.0.0/24 via 10.8.0.53 dev tun0
После этого клиент OpenVPN все еще не мог подключиться к другим клиентам.
Это делается с помощью соответствующих iroute
директивы, устанавливаемые с помощью механизма "CCD" (биты конфигурации для каждого клиента).
Видеть этот для получения дополнительной информации.