我刚刚用本教程中的说明在 CentOS 7 服务器上安装 OpenVPN。我能够从客户端计算机通过 VPNssh
访问https
远程 CentOS 7 服务器。但是,用户似乎可以完全访问远程服务器的所有方面。这对于管理员帐户来说很好,但如果应用于普通用户帐户,这种访问级别将非常糟糕。
我想在 OpenVPN 中创建一个组定义,该组仅允许使用 与服务器上运行的 Web 应用程序进行交互https
。此新用户组成员对服务器的所有其他访问都将被阻止。我该如何实现这一点?
答案1
在服务器上创建几个 OpenVPN 实例,为它们分配静态接口名称,然后创建基于接口的防火墙 (
iptables
) 规则。这些实例可能正在监听不同的端口或 IP。每个实例都应该有自己的 SSL CA 来签署访问证书。如果要避免多个实例,请使用以下方式创建静态 CN -> IP 映射电荷耦合器件或(不太安全)独立采购计划规则(
man openvpn
详情请参阅)。将管理员子网置于 VPN IP 范围的末尾,这样未列出的用户将获得非特权 IP。然后再次iptables
允许/拒绝 IP 对服务的访问。除了 TLS 安全之外,还有其他选项,例如 PAM 身份验证甚至 LDAP。如果您确实需要,我可以对此进行更详细的说明,但这会使事情变得更加复杂,并且没有增加太多灵活性。
(以上假设您使用完整 TLS 身份验证而不是仅使用静态密钥)