如何通过 IPv6 IPSec(strongswan)网关重定向流量?

如何通过 IPv6 IPSec(strongswan)网关重定向流量?

我正在尝试设置与网关的 IPSec 安全连接。有三台主机:

A:
eth1 - fec0:1::1/64

B:
eth1 - fec0:1::2/64
eth2 - fec0:2::2/64
which is gateway between A and C; forwarding is set to 1 in sysctl

C:
eth1 - fec0:2:3/64

我想在 A 和 B 之间建立 IPsec 连接,但在 B 和 C 之间转发时会不安全。

ipsec.conf:

config setup
    charondebug="ike 2, knl 2, cfg 1"

ca strongswan
    cacert=ca.crt
    auto=add

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    mobike=no
    keyexchange=ikev2

conn host-host
    left=fec0:1::1
    leftcert=hostA.crt
    leftid=@hostA
    right=fec0:1::2
    rightid=%any
    type=transport
    auto=add

B 的配置看起来类似。我尝试设置 auto=route,但无法初始化任何连接。

使用此类配置,只有发往 B 的流量是安全的。当我尝试从 A 向 C 发送某些内容时,整个路径都是不安全的。

有什么想法可以解决它吗?

答案1

使用此类配置,只有发往 B 的流量是安全的。当我尝试从 A 向 C 发送某些内容时,整个路径都是不安全的。

确实应该如此。您在 A 和 B 之间建立了传输模式 IPsec SA,这意味着存在仅适用于这两个主机之间流量的 IPsec 策略。如果您想保护 A 和 C 之间的流量(在 A 和 B 之间的路径上),您必须使用隧道模式并配置适当的流量选择器/策略。

添加附加连接:

conn host-c
  also=host-host
  rightsubnet=fec0:2:3/128
  type=tunnel

或者更改现有的连接:

conn host-host # or host-hosts
  left=fec0:1::1
  leftcert=hostA.crt
  leftid=@hostA
  right=fec0:1::2
  rightid=%any
  rightsubnet=fec0:1::2/128,fec0:2:3/128
  type=tunnel
  auto=add

B 上的配置也必须做相应的改变。

相关内容