我在数据中心有一台服务器。它正在运行 Linux。eth0 上的 WAN 接口连接到公共互联网;eth1 上的 LAN 接口连接到 10.0.0.0 上的数据中心网络。
机器在n、p、q端口运行一组服务;以及端口 r、s 和 t 上的一组服务。
它在 WAN 接口上有防火墙,所以没有任何东西对公共互联网开放。
我希望用户能够使用 OpenVPN 连接到机器(或其他任何东西,只要它是加密和安全的就不要在意)。然后用户应该能够连接到端口 n、p 和 q 上的服务,但不能连接到端口 r、s 和 t 或 10.0.0.0 网络上的服务。
我还需要跟踪用户的带宽消耗。如果我可以限制用户每单位时间(例如 1GB/周、10GB/月)和/或限制他们的持续传输速率(例如 100KB/秒),那将是一个很大的好处;让它们爆发得更快也很棒。
我完全是 OpenVPN 菜鸟。我什至不确定它是否适合这项任务,尽管有人建议这样做。很明显,使用 ssh 不是一个很好的解决方案,因为它依赖于 authorized_keys 文件中的一系列限制,并且带宽监控/上限将很困难。
我欢迎任何建议。
OpenVPN 将为您提供从客户端到主机的基本连接。从那里开始,只需配置 iptables 或您选择的防火墙,以允许流量流向您希望可用的服务和设备。OpenVPN 使用它自己的 TAP/TUN 接口和一个单独的网络,所以你应该能够创建规则来锁定流量到你想要的任何东西。
您将需要使用一些其他工具来获取带宽消耗。也许其他人可以插话。
OpenVPN 不会做 - 它可以做拨入,而不是其余的。
您基本上需要一个具有所有功能的适当 VPN 端点。我会为此搭建一个服务器 - 使用 Mikrotik RouterOS,可能是 Miktrotik 1xxx 路由器,它们非常便宜并且可以做到所有这些。
如果您喜欢手动操作,请获取 Linux 并使用用于防火墙(端口限制)的 IpTables 和许多其他用于带宽控制的软件进行复杂操作。