[about] [index] [prev] [2017-10-08 14:50:09+03:00] [4fd50729cbda852f89101b587ec7483fdda2108c]
Topics: [bsd][ipsec][tip]

ipsec интерфейс в FreeBSD

Обновил FreeBSD на своём шлюзе до 11.1 в которой появился ipsec
интерфейс (man if_ipsec). Настолько удобная штука, что вот потратил
прилично времени всё везде обновляя аккуратно.

Выглядит, с точки зрения пользователя, ipsec как gif интерфейс, но с
одним отличием: он автоматически добавляет security policies связанные с
этим интерфейсом. Именно их добавление очень удручало меня всегда в
настройке IPsec-а. А с ipsec интерфейсом теперь поднимать IPsec стало
делом проще некуда.

Предварительно на двух компьютерах убеждаюсь что конфигурационный файл
racoon имеется. У меня он выглядит неизменно как в
http://www.stargrave.org/IPsec-setup.html статье.
К этапу конфигурации я бы не стал это относить.

На компьютере A делаю:

    # ifconfig ipsec0 create
    # ifconfig ipsec0 inet 192.168.20.2/32 192.168.20.1
    # ifconfig ipsec0 inet6 tunnel fc00::7a00 fc00::2752

на B:

    # ifconfig ipsec0 create
    # ifconfig ipsec0 inet 192.168.20.1/32 192.168.20.2
    # ifconfig ipsec0 inet6 tunnel fc00::2752 fc00::7a00

то есть, адреса просто симметричны. fc00 сеть имеется заранее и она
внутренняя. На этом вся конфигурация туннеля завершена. Указали
endpoint-ы и указали виртуальную сеть. На этом реально всё. ipsec
интерфейс добавляет SP такого рода:

    0.0.0.0/0[any] 0.0.0.0/0[any] any
            in ipsec
            esp/tunnel/fc00::2752-fc00::7a00/unique#16385
            spid=1 seq=3 pid=96714 scope=ifnet ifname=ipsec0
            refcnt=1
    ::/0[any] ::/0[any] any
            in ipsec
            esp/tunnel/fc00::2752-fc00::7a00/unique#16385
            spid=3 seq=2 pid=96714 scope=ifnet ifname=ipsec0
            refcnt=1
    0.0.0.0/0[any] 0.0.0.0/0[any] any
            out ipsec
            esp/tunnel/fc00::7a00-fc00::2752/unique#16385
            spid=2 seq=1 pid=96714 scope=ifnet ifname=ipsec0
            refcnt=1
    ::/0[any] ::/0[any] any
            out ipsec
            esp/tunnel/fc00::7a00-fc00::2752/unique#16385
            spid=4 seq=0 pid=96714 scope=ifnet ifname=ipsec0
            refcnt=1

а racoon видя эти SP, автоматически пытается сделать IKE для
согласования ключей и создания SA. Единственное чего пока не хватает,
так это прописать pre-shared ключи аутентификации в psk.txt:

    fc00::2752 0x40b4ce70eb608e66b8b181705233e63e6ff2ff494ad83fb48af72cc875882d44
    fc00::7a00 0x40b4ce70eb608e66b8b181705233e63e6ff2ff494ad83fb48af72cc875882d44

То есть, повторюсь, если забыть про константный racoon.conf, то
достаточно: прописать PSK, указать конечные точки туннеля, сделать любую
соответствующую настройку адресов внутри туннеля. В принципе проще быть
уже не может. if_ipsec очень удобен. Без него, на самом деле, было бы
всё то же самое, но ещё надо было бы руками прописывать эти SP, как это
было в http://www.stargrave.org/IPsec-setup.html

[leave comment]
comment 0:
From: Sergey Matveev
Date: 2020-01-17 08:32:26Z

А ещё это всё можно подружить с strongSwan: 98233e636af71ec441ad68f32e35d430c3264281