目前,我们的 OpenVPN 社区版服务器(在 RHEL 上运行的 2.3.11 版)客户端配置文件存储在 中/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 正在断开/连接)来设置单独的防火墙规则