这是我当前的设置:
- 机器A与单个IPA:通用 debian 服务器,带 ssh、Web 服务器等...
- 机器B与单个IPB:openvpn 服务器(也在 debian 上)
我的目标是使用相同的物理机器做同样的事情(机器C既IPA和IPB在同一物理接口上):
- 一切(ssh,网络服务器,...)通过IPA
- 除了 openvpn 通过IPB。
我的要求是外部用户不应该能够(不包括旁路)推断 ipA 和 ipB 路由到同一台物理机。例如,机器 A 当前的所有服务都不应该监听 ipB。
此外,由于机器 B 仅用于 openvpn,因此我想避免使用基于管理程序的解决方案。我希望有一种方法可以在我现有的操作系统下“监禁”openvpn 和 ipB。
在这种情况下我应该使用哪种技术/包?
由于 openvpn 对延迟敏感且资源匮乏,因此轻技术是首选。
答案1
最好的选择是在每个服务配置中执行此操作,并将每个服务设置为侦听特定 ip 而不是任何 ip,但是,您可以这样做,这样iptables
您就可以丢弃任何具有目标 ipB 且端口不是openvpn
端口或仅允许的数据包目的地 ipB 和端口openvpn
,但你在这里将失去使用 ipA 端口的能力。
例如:
iptables -t filter -A INPUT -p udp -d <ipB> --dport 1194 -j ACCEPT
iptables -t filter -A INPUT -p tcp -d <ipB> --dport 1194 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 1194 -j DROP
iptables -t filter -A INPUT -p tcp --dport 1194 -j DROP
这里只允许1194
目标 ipB 的数据包在端口上进行连接