Я пытаюсь настроить защищенное соединение 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
Я хотел бы создать соединение IPsec между A и B, которое будет небезопасно пересылаться между 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 - это небезопасно на всем пути.
Так и должно быть. Вы установили SA IPsec транспортного режима между A и B, что означает, что существуют политики 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.