我正在使用 StrongSwan 到 Mikrotik IKEv2 隧道。我想知道是否可以对来自 Mikrotik 端的 ipsec 隧道的内容进行源地址转换?
问题是,我的本地网络中有一台主机位于防火墙后面,而防火墙的配置被禁止。该防火墙只允许来自同一子网(比如说 192.168.10.X)的连接,但来自隧道的数据被源地址改为 100.64.10.1,而上述主机拒绝了该地址。
还值得一提的是,在 Mikrotik 方面我有一个由 Swan 的 ipsec 配置创建的 IP 100.64.10.2。
我已经尝试过在 Mikrotik 上创建 NAT 规则的直接方法,但它被忽略了(据我所知,这是由于 ipsec 生成的 notrack 规则)。我也一直在通过 RAW 和 MANGLE(实际上正在工作)寻找解决方法,但虚拟主机上的 netstat 仍然会显示传入 IP 为 100.64.10.1。
请帮忙:D
ipsec.conf片段:
conn arterial
[email protected]
left=%any
leftcert=scert.pem
lefthostaccess=yes
leftid=XXX.XXX.XXX.XXX (public IP)
leftsendcert=always
leftsubnet=100.64.10.0/28
right=%any
rightid=%any
rightauth=eap-mschapv2
rightdns=8.8.8.8,8.8.4.4
rightsendcert=never
rightsourceip=100.64.0.2
rightsubnet=192.168.10.0/16
conn roadwar
also=arterial
[email protected]
rightsourceip=100.64.10.3-100.64.10.15
rightsubnet=100.64.10.0/28
iptables 片段:
iptables -t nat -A POSTROUTING -s 192.168.10.0/16 -o enpXsY -m policy --pol ipsec --dir out -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.10.0/16 -o enpXsY -j MASQUERADE
我应该将客户端 ipsec 身份中的notrack 链切换为输出而不是预路由,以使 NAT 正常工作。
不幸的是,这一举动减慢了速度,并使得客户端的路由器无法从 WAN 访问,因此我创建了原始规则,将 notrack 恢复为在不需要 NAT 的所有地方进行预路由。
再次强调。这样做的目的是访问您无法配置的防火墙后面的服务和设备。