我们想建立一个主机到主机的 IPSec VPN(都是 RedHat Linux)。是否真的必须激活由于我们的安全策略 ( /etc/sysctl.conf net.ipv4.ip_forward = 0
) 而默认停用的 IP 转发?
我了解 VPN 适配器必须将流量转发到其他网络适配器。然而,安全风险在于这两台服务器正在成为“路由器”。这些服务器有多个网络适配器,流量应该在其中分开。
应该/可以实施哪些控制措施?比如,iptables 能把安全风险降到最低吗?
我们想建立一个主机到主机的 IPSec VPN(都是 RedHat Linux)。是否真的必须激活由于我们的安全策略 ( /etc/sysctl.conf net.ipv4.ip_forward = 0
) 而默认停用的 IP 转发?
我了解 VPN 适配器必须将流量转发到其他网络适配器。然而,安全风险在于这两台服务器正在成为“路由器”。这些服务器有多个网络适配器,流量应该在其中分开。
应该/可以实施哪些控制措施?比如,iptables 能把安全风险降到最低吗?
我刚刚对此进行了一些研究,因为我和你坐在同一个座位上;我已经设置了一个 VPN,但想确保我不会转发世界。
在内核中启用转发,并不意味着一切都会通过iptables
防火墙。但是,如果防火墙允许所有转发,您可能会遇到大麻烦。幸运的是,默认情况下iptables
似乎DROP
转发了数据包。要查看您的防火墙转发策略,请执行iptables -L FORWARD
.
FORWARD
是 IP 转发的防火墙规则所在的链。如果您对转发数据包经过的不同表和链感到好奇,请查看https://www.frozentux.net/iptables-tutorial/chunkyhtml/c962.html。
这是我的FORWARD
链在 Ubuntu 机器上的样子,使用ufw
防火墙,使用单个 VPN:
# iptables -L FORWARD
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 192.168.0.0/24 192.168.1.0/24 policy match dir in pol ipsec reqid 5 proto esp
ACCEPT all -- 192.168.1.0/24 192.168.0.0/24 policy match dir out pol ipsec reqid 5 proto esp
ufw-before-logging-forward all -- anywhere anywhere
ufw-before-forward all -- anywhere anywhere
ufw-after-forward all -- anywhere anywhere
ufw-after-logging-forward all -- anywhere anywhere
ufw-reject-forward all -- anywhere anywhere
需要注意的一些事项:
DROP
(policy DROP
,好!)。ACCEPT
规则适用于已建立的 IPSEC 连接(policy match dir in pol ipsec reqid 5 proto esp
和policy match dir out pol ipsec reqid 5 proto esp
)。我的 IPSEC 应用程序自动添加了这些规则。FORWARD
链在代表ufw-before-logging-forward
链等。当我调查它们时,我看不到额外ACCEPT
的 s。也就是说,我应该是安全的。iptables -L
这是我查看委托链的摘录:
# iptables -L
[...]
Chain ufw-after-forward (1 references)
target prot opt source destination
[...]
Chain ufw-after-logging-forward (1 references)
target prot opt source destination
LOG all -- anywhere anywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "
[...]
Chain ufw-before-forward (1 references)
target prot opt source destination
ufw-user-forward all -- anywhere anywhere
[...]
Chain ufw-before-logging-forward (1 references)
target prot opt source destination
[...]
Chain ufw-reject-forward (1 references)
target prot opt source destination
[...]
Chain ufw-skip-to-policy-forward (0 references)
target prot opt source destination
DROP all -- anywhere anywhere
[...]
Chain ufw-user-forward (1 references)
target prot opt source destination
[...]
Chain ufw-user-logging-forward (0 references)
target prot opt source destination