Общие сетевые маршруты клиента OpenVPN
В настоящее время файлы конфигурации клиента нашего сервера OpenVPN Community Edition (версия 2.3.11, работающие на RHEL) хранятся в /etc/openvpn/ccd
, Мы хотим контролировать, какие сетевые маршруты получает каждый пользователь, в зависимости от его должности. Например, разработчики получают маршруты AWS, которые не должны получать не разработчики, но все пользователи должны иметь доступ к файловому серверу. Я знаю, что маршруты для всех клиентов могут быть добавлены в /etc/openvpn/openvpn.conf, но нам нужно добавить маршруты на основе названия должности. Есть ли способ контролировать это, возможно, путем создания одного файла со всеми маршрутами AWS, на который ссылается файл конфигурации клиента (CCD) каждого разработчика? Или есть способ как-то создать групповую структуру, где, если вы попадаете в определенную группу (например, разработчик), вы получаете определенные маршруты? В настоящее время я должен вручную отредактировать файл CCD каждого пользователя, чтобы предоставить им соответствующий доступ к сети, что является настоящей болью, когда у вас есть десятки пользователей, и маршруты для каждого пользователя могут меняться в любое время. У нас смешанная среда с клиентами под управлением Windows или macOS, поэтому идеальное решение будет сделано с сервера, а не с компьютера клиента.
1 ответ
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 это не брандмауэр!
Имейте в виду, что отсутствие продвижения по маршруту не означает, что этот пользователь не может добавить его вручную на своей стороне... В случае, если он будет действительно отдельным, вы должны обрабатывать его также на уровне брандмауэра, чтобы действительно ограничить доступ для пользователей:
- используйте постоянный IP-адрес и рядом с проталкиваемым маршрутом настройте брандмауэр
- использовать скрипт маршрутизации вверх / вниз (который знает, кто и с каким IP-адресом / отключен / подключен) для настройки отдельных правил брандмауэра