![使用 ipsec-tools 指定 IPSEC 端口范围](https://linux22.com/image/796561/%E4%BD%BF%E7%94%A8%20ipsec-tools%20%E6%8C%87%E5%AE%9A%20IPSEC%20%E7%AB%AF%E5%8F%A3%E8%8C%83%E5%9B%B4.png)
是否可以在端口上要求 IPSEC范围? 我想要求除 80 和 443 等少数公共端口之外的所有传入连接都使用 IPSEC,但不想限制传出连接。
我的 SPD 规则如下:
spdadd 0.0.0.0/0 0.0.0.0/0[80] tcp -P in none;
spdadd 0.0.0.0/0 0.0.0.0/0[443] tcp -P in none;
spdadd 0.0.0.0/0 0.0.0.0/0[0....32767] tcp -P in esp/require/transport;
在setkey
手册页中我看到知识产权范围,但没有提到港口范围。
(这个想法是使用 IPSEC 作为一种 VPN 来保护多个服务器之间的内部通信。我不想根据源 IP 配置权限,也不想配置特定的端口,而是希望在任何事物这并不意味着要公开 - 我觉得这样不太容易出错。)
答案1
是的,虽然您确实可以指定 IP 范围,但无法指定端口范围。这意味着您需要为每个端口输入一条规则,或者更简单地使用脚本来实现这一点,例如:
perl -e 'print "spdadd 0.0.0.0/0 0.0.0.0/0[$_] tcp -P in esp/require/transport;\n" for (1..32767)' >run.sh
我假设这些服务器不位于同一个数据中心。这实际上会导致严重的效率问题,除非这些服务器之间有快速连接和/或您为 IPSEC 选择快速加密算法。