Рейтинг:0

как договориться о Transport-udp-esp-natt SA с сервером strongswan

флаг cn

Я написал клиент IKE для согласования IPsec SA с некоторыми серверами IKE, такими как racoon и strongswan.

Когда согласование завершено, я отправляю IPsec-пакеты (пакеты udp-esp) с клиентской машины, серверная машина strongswan получает пакет, но не обрабатывает его.

мои сетевые сцены транспорта-udp-natt: машина A (centos7) машина B (win7) машина Vmware в машине B (centos7) 172.23.25.10 172.23.25.99 192.168.163.1 192.168.163.130 IKE-клиент IKE-сервер udp-клиент udp-сервер

Когда согласование завершено, информация SA отличается между клиентом и сервером strongswan. В машине A sa:

172.23.25.10[4500] 172.23.25.99[4500] 
        режим esp-udp = транспорт spi = 3409495451 (0xcb38c59b) reqid = 0 (0x00000000)
        E: aes-cbc bacca0d7 19fa120b 25202473 99704304 0e826139 f898be77 01b28606 b09ea092
        A: hmac-sha256 b4ded3b3 58214e27 c63d0f91 e4e66912 add797a0 67755537 9003b5b0 0c04338b
        seq=0x00000000 повтор=0 флаги=0x00000000 состояние=зрелый 
        создано: 10 декабря 15:35:59 2021 текущее: 10 декабря 15:36:19 2021
        разн.: 20(с) жесткий: 120(с) мягкий: 96(с)
        последний: 10 декабря 15:36:01 2021 жесткий: 120 (с) мягкий: 96 (с)
        текущий: 55 (байт) жесткий: 0 (байт) мягкий: 0 (байт)
        выделено: 5 жестких: 120 мягких: 96
        sadb_seq=1 pid=349 refcnt=0
172.23.25.99[4500] 172.23.25.10[4500] 
        режим esp-udp = транспортный spi = 244675610 (0x0e95741a) reqid = 0 (0x00000000)
        E: aes-cbc eb74d7ad 50dd0adf 2e93a40a aada69f6 cb4d2d26 73b76d3b 1ac8c4c1 8534c6cc
        A: hmac-sha256 5029b994 d005f5b6 8b39172a 0b86dc7c 00551e2a 1ef57a13 603e2ee6 bac29afa
        seq=0x00000000 повтор=0 флаги=0x00000000 состояние=зрелый 
        создано: 10 декабря 15:35:59 2021 текущее: 10 декабря 15:36:19 2021
        разн.: 20(с) жесткий: 120(с) мягкий: 96(с)
        последний: жесткий: 120(с) мягкий: 96(с)
        текущий: 0 (байт) жесткий: 0 (байт) мягкий: 0 (байт)
        выделено: 0 жесткий: 120 мягкий: 96
        sadb_seq=0 pid=349 refcnt=0

На машине Vmware SA, добавленные strongswan:

192.168.163.130 172.23.25.10 
        режим esp = транспорт spi = 244675610 (0x0e95741a) reqid = 1 (0x00000001)
        E: aes-cbc eb74d7ad 50dd0adf 2e93a40a aada69f6 cb4d2d26 73b76d3b 1ac8c4c1 8534c6cc
        A: hmac-sha256 5029b994 d005f5b6 8b39172a 0b86dc7c 00551e2a 1ef57a13 603e2ee6 bac29afa
        seq=0x00000000 повтор=0 флаги=0x00000000 состояние=зрелый 
        создано: 10 декабря 02:35:29 2021 текущее: 10 декабря 02:35:45 2021
        diff: 16(s) жесткий: 0(s) мягкий: 0(s)
        последний: жесткий: 0(с) мягкий: 0(с)
        текущий: 0 (байт) жесткий: 0 (байт) мягкий: 0 (байт)
        выделено: 0 жестко: 0 мягко: 0
        sadb_seq=1 pid=10114 ссылка=0
172.23.25.10 192.168.163.130 
        режим esp = транспорт spi = 3409495451 (0xcb38c59b) reqid = 1 (0x00000001)
        E: aes-cbc bacca0d7 19fa120b 25202473 99704304 0e826139 f898be77 01b28606 b09ea092
        A: hmac-sha256 b4ded3b3 58214e27 c63d0f91 e4e66912 add797a0 67755537 9003b5b0 0c04338b
        seq=0x00000000 повтор=32 флаги=0x00000000 состояние=зрелый 
        создано: 10 декабря 02:35:29 2021 текущее: 10 декабря 02:35:45 2021
        diff: 16(s) жесткий: 0(s) мягкий: 0(s)
        последний: жесткий: 0(с) мягкий: 0(с)
        текущий: 0 (байт) жесткий: 0 (байт) мягкий: 0 (байт)
        выделено: 0 жестко: 0 мягко: 0
        sadb_seq=0 pid=10114 refcnt=0

Я подозреваю, что в SA на машине Vmware отсутствует порт ** [4500] ** и esp-udp Информация. потому что, когда я использую racoon, машина Vmware может обрабатывать пакет udp с машины A. SA, добавленные racoon, выглядят так:

192.168.163.130[4500] 172.23.25.10[4500] 
        режим esp-udp = транспортный spi = 217431274 (0x0cf5bcea) reqid = 0 (0x00000000)
        E: дез-cbc 7744c128 a553d81a
        Ответ: hmac-md5 af32028d 098ebf1b e0be8a42 84122992
        seq=0x00000000 повтор=4 флага=0x00000000 состояние=зрелый 
        создано: 10 декабря 02:23:59 2021 текущее: 10 декабря 02:24:18 2021
        разн.: 19(с) жесткий: 120(с) мягкий: 96(с)
        последний: жесткий: 0(с) мягкий: 0(с)
        текущий: 0 (байт) жесткий: 0 (байт) мягкий: 0 (байт)
        выделено: 0 жестко: 0 мягко: 0
        sadb_seq=1 pid=9396 refcnt=0
172.23.25.10[4500] 192.168.163.130[4500] 
        режим esp-udp = транспорт spi = 62789244 (0x03be167c) reqid = 0 (0x00000000)
        E: des-cbc b2a72540 98f4bfb2
        Ответ: hmac-md5 c745f6b7 f79f5c52 e9f3cafc 38a717d3
        seq=0x00000000 повтор=4 флага=0x00000000 состояние=зрелый 
        создано: 10 декабря 02:23:59 2021 текущее: 10 декабря 02:24:18 2021
        разн.: 19(с) жесткий: 120(с) мягкий: 96(с)
        последний: 10 декабря 02:24:01 2021 жесткий: 0 (с) мягкий: 0 (с)
        текущий: 33 (байт) жесткий: 0 (байт) мягкий: 0 (байт)
        выделено: 3 жестко: 0 мягко: 0
        sadb_seq=0 pid=9396 refcnt=0

Я попытался изменить конфигурацию, но не смог создать эти SA. это мои конфиги: ipsec.conf:

подключение% по умолчанию
    ikelifetime=6м
    срок службы=5м
    rekeymargin=3м
    попытки ввода = 1
    обмен ключами=ikev1
    ike=aes256-sha256-modp1024
    esp = aes256-sha256-modp1024
    authby=psk
    тип = транспорт
    авто=маршрут
    агрессивный = нет
    фрагментация=нет
    ключ = нет
    форсэнкапс=да

ловушка-b
    слева=192.168.163.130
    левая подсеть = 192.168.163.0/24
    справа=172.23.25.10
    правая подсеть = 172.23.25.0/24
    авто=добавить

conn nat-t
    слева=172.23.25.99
    левая подсеть = 192.168.163.0/24
    справа=172.23.25.10
    правая подсеть = 172.23.25.0/24
    авто=добавить

Strongswan.conf:

харон {
        load_modular = да
        плагины {
                включить strongswan.d/charon/*.conf
        }
        install_routes = нет
        файлжурнал {
                харон {
                        путь = /etc/strongswan/logs/strongswan.log
                        time_format = %b %e %T
                        ike_name = да
                        добавить = да
                        по умолчанию = 2
                        flush_line = да
                }
                стандартный {
                        айк = 2
                        км = 3
                }
        }
}
включить strongswan.d/*.conf

Есть ли проблема с моей конфигурацией? благодарю вас!

флаг cn
Поддерживает ли ваш клиент обход NAT (RFC 3947 для IKEv1)? strongSwan использует инкапсуляцию UDP только при обнаружении NAT («forceencaps» просто вызывает обнаружение NAT, создавая случайную полезную нагрузку NAT-D для исходного адреса).
флаг cn
да, клиент по умолчанию поддерживает обход NAT. Он отправит идентификатор поставщика NATT в первом сообщении первой фазы переговоров.
флаг cn
Прочтите журналы, чтобы увидеть, что происходит во время согласования в отношении обнаружения NAT.
флаг cn
Стронгсван напечатал «3 января 21:39:27 14[IKE] имитирует ситуацию с NAT для принудительной инкапсуляции UDP» при обработке второго сообщения, полученного в основном режиме. Это нормально?
флаг cn
Да, это из-за `forceencaps=yes`. Но это должно привести к включению UDP-encap в SA. Если инициатор не предлагает транспортный режим с инкапсуляцией или сначала предлагает и то, и другое, и версию без инкапсуляции (чего не следует делать в соответствии с [RFC 3947] (https://datatracker.ietf.org/doc/html/rfc3947#). раздел-5.1)).Кстати, использование транспортного режима с реальными подсетями в `left|rightsubnet` недопустимо.
флаг cn
Из вашего ответа я перепроверил описание RFC3947 и реализацию клиента. Я обнаружил, что клиент не использовал UDP-Encapsulated-Transport (значение 4), когда NAT-T был обнаружен в фазе 1 во время согласования фазы 2, но всегда использовал транспорт (значение 2) для завершения согласования фазы 2. . Не приведет ли это к тому, что strongswan не будет использовать NAT-T при создании SA?
флаг cn
Да, не будет UDP-encap, если партнер не предложит его. Может быть, он работает с туннельным режимом?
флаг cn
В настоящее время клиент поддерживает только транспортный режим, а туннельный режим еще не поддерживается. Я оптимизирую клиентский код, когда NAT-T будет обнаружен на этапе 1, клиент предложит UDP-encap на этапе 2, чтобы посмотреть, сможет ли он решить текущую проблему. Спасибо.
флаг cn
Спасибо за помощь, теперь проблема решена!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.