我在数据中心有一台服务器。它运行的是 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 文件中的一系列限制,并且带宽监控/上限会很困难。
我欢迎任何建议。
答案1
OpenVPN 将为您提供从客户端到主机的基本连接。从那里,只需配置 iptables 或您选择的防火墙,以允许流量流向您想要的服务和设备。OpenVPN 使用自己的 TAP/TUN 接口和单独的网络,因此您应该能够创建规则来锁定几乎任何您想要的流量。
您需要使用其他工具来获取带宽消耗。也许其他人可以对此发表看法。
答案2
OpenVPN 做不到这一点 —— 它可以完成拨号,但不能完成其余部分。
您基本上需要一个具有所有功能的适当 VPN 端点。我会为此设置一个服务器 - 使用 Mikrotik RouterOS,可能是 Miktrotik 1xxx 路由器,它们非常便宜并且可以完成所有这些工作。
如果您喜欢手动操作,请获取 Linux 并使用 IpTables 进行防火墙(端口限制)和许多其他软件进行带宽控制。