IPSec 主机到主机 VPN (RedHat) 需要 IP 转发?

信息安全 虚拟专用网 ip ipsec
2021-08-12 01:43:14

我们想建立一个主机到主机的 IPSec VPN(都是 RedHat Linux)。是否真的必须激活由于我们的安全策略 ( /etc/sysctl.conf net.ipv4.ip_forward = 0) 而默认停用的 IP 转发?

我了解 VPN 适配器必须将流量转发到其他网络适配器。然而,安全风险在于这两台服务器正在成为“路由器”。这些服务器有多个网络适配器,流量应该在其中分开。

应该/可以实施哪些控制措施?比如,iptables 能把安全风险降到最低吗?

1个回答

我刚刚对此进行了一些研究,因为我和你坐在同一个座位上;我已经设置了一个 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

需要注意的一些事项:

  • 默认操作是DROPpolicy DROP,好!)。
  • 仅有的两条ACCEPT规则适用于已建立的 IPSEC 连接(policy match dir in pol ipsec reqid 5 proto esppolicy 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