Networking

如何通過 IPv6 IPSec (strongswan) 網關重定向流量?

  • April 26, 2016

我正在嘗試設置與網關的 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 時 - 它在整個路徑上都是不安全的。

任何想法如何解決它?

使用這種配置,只有發往 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 上的配置必須相應更改。

引用自:https://serverfault.com/questions/772855