Назад | Перейти на главную страницу

Как перенаправить трафик через шлюз 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

Я хотел бы создать соединение 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.