В настоящее время наши файлы конфигурации клиента OpenVPN Community Edition (версия 2.3.11, работающая на RHEL) хранятся в /etc/openvpn/ccd
. Мы хотим контролировать, какие сетевые маршруты получает каждый пользователь в зависимости от его должности. Например, разработчики получают маршруты AWS, которые не должны получать не разработчики, но все пользователи должны иметь доступ к файловому серверу. Я знаю, что маршруты для всех клиентов можно добавить в /etc/openvpn/openvpn.conf, но нам нужно добавлять маршруты в зависимости от должности. Есть ли способ контролировать это, возможно, создав один файл со всеми маршрутами AWS, на который ссылается файл конфигурации клиента (CCD) каждого разработчика? Или есть способ каким-то образом создать структуру группы, в которой, если вы попадаете в определенную группу (например, разработчик), вы получаете определенные маршруты? В настоящее время мне приходится вручную редактировать файл CCD каждого пользователя, чтобы предоставить им соответствующий доступ к сети, что является настоящей проблемой, когда у вас есть десятки пользователей, а маршруты для каждого пользователя могут измениться в любое время. У нас смешанная среда с клиентами, работающими под управлением Windows или macOS, поэтому идеальное решение было бы реализовано с сервера, а не с машины клиента.
CCD в принципе рассчитывается на CN (общее имя / имя пользователя). Что вы можете сделать, так это создать определение «роли» (например, _developers, _admins, _sales, _developers-admin, ...) и создать символическую ссылку на конкретный cn ...
_admin
_developer-admin
_developers
_sales
user1 -> _admin
user2 -> _developer-admin
user3 -> _developer-admin
user4 -> _developers
user5 -> _developers
user6 -> _sales
Таким образом, вы можете редактировать «шаблон» вместо каждого отдельного файла для каждого пользователя.
CCD - это не межсетевой экран!
Имейте в виду, что отказ от проталкивания маршрута не означает, что этот пользователь не может добавить его вручную на своей стороне ... В случае, если он действительно будет отдельным, вы должны обработать его также на уровне брандмауэра, чтобы действительно ограничить доступ для пользователей :