Puncte:0

cum să negociezi un transport-udp-esp-natt SA cu un server strongswan

drapel cn

Am scris un client IKE pentru a negocia SA IPsec cu unele servere IKE, cum ar fi racoon și strongswan.

Când negocierea s-a terminat, trimit un pachet IPsec (pachete udp-esp) de la mașina client, mașina serverului strongswan primește pachetul, dar nu îl gestionează.

scenele mele de rețea transport-udp-natt: mașină A (centos7) mașină B(win7) mașină Vmware în mașina B(centos7) 172.23.25.10 172.23.25.99 192.168.163.1 192.168.163.130 Client IKE Server IKE client udp server udp

Când negocierea s-a încheiat, informațiile SA sunt diferite între client și serverul strongswan În mașina A, sa este:

172.23.25.10[4500] 172.23.25.99[4500] 
        mod esp-udp=transport 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 reluare=0 steaguri=0x00000000 stare=matur 
        creat: 10 dec. 15:35:59 2021 curent: 10 dec. 15:36:19 2021
        diferență: 20 (e) greu: 120 (e) moale: 96 (e)
        ultimul: 10 decembrie 15:36:01 2021 greu: 120(e) moale: 96(e)
        curent: 55(octeți) hard: 0(octeți) soft: 0(octeți)
        alocate: 5 hard: 120 soft: 96
        sadb_seq=1 pid=349 refcnt=0
172.23.25.99[4500] 172.23.25.10[4500] 
        mod esp-udp=transport 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 reluare=0 steaguri=0x00000000 stare=matur 
        creat: 10 dec. 15:35:59 2021 curent: 10 dec. 15:36:19 2021
        diferență: 20 (e) greu: 120 (e) moale: 96 (e)
        ultimul: greu: 120(e) moale: 96(e)
        curent: 0(octeți) hard: 0(octeți) soft: 0(octeți)
        alocat: 0 hard: 120 soft: 96
        sadb_seq=0 pid=349 refcnt=0

În mașina Vmware, SA adăugate de strongswan este:

192.168.163.130 172.23.25.10 
        mod esp=transport 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 reluare=0 steaguri=0x00000000 stare=matur 
        creat: 10 dec. 02:35:29 2021 curent: 10 dec. 02:35:45 2021
        dif: 16(e) greu: 0(e) moale: 0(e)
        ultimul: greu: 0(e) moale: 0(e)
        curent: 0(octeți) hard: 0(octeți) soft: 0(octeți)
        alocat: 0 hard: 0 soft: 0
        sadb_seq=1 pid=10114 refcnt=0
172.23.25.10 192.168.163.130 
        mod esp=transport 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 reluare=32 steaguri=0x00000000 stare=matur 
        creat: 10 dec. 02:35:29 2021 curent: 10 dec. 02:35:45 2021
        dif: 16(e) greu: 0(e) moale: 0(e)
        ultimul: greu: 0(e) moale: 0(e)
        curent: 0(octeți) hard: 0(octeți) soft: 0(octeți)
        alocat: 0 hard: 0 soft: 0
        sadb_seq=0 pid=10114 refcnt=0

Bănuiesc că SA din mașina Vmware nu are portul**[4500]** și esp-udp info. pentru că atunci când folosesc racoon, mașina Vmware poate gestiona pachetul udp de la mașina A. SA-urile adăugate de racoon sunt ca:

192.168.163.130[4500] 172.23.25.10[4500] 
        mod esp-udp=transport spi=217431274(0x0cf5bcea) reqid=0(0x00000000)
        E: des-cbc 7744c128 a553d81a
        A: hmac-md5 af32028d 098ebf1b e0be8a42 84122992
        seq=0x00000000 reluare=4 steaguri=0x00000000 stare=matur 
        creat: 10 dec. 02:23:59 2021 curent: 10 dec. 02:24:18 2021
        diferență: 19 (e) greu: 120 (e) moale: 96 (e)
        ultimul: greu: 0(e) moale: 0(e)
        curent: 0(octeți) hard: 0(octeți) soft: 0(octeți)
        alocat: 0 hard: 0 soft: 0
        sadb_seq=1 pid=9396 refcnt=0
172.23.25.10[4500] 192.168.163.130[4500] 
        mod esp-udp=transport spi=62789244(0x03be167c) reqid=0(0x00000000)
        E: des-cbc b2a72540 98f4bfb2
        A: hmac-md5 c745f6b7 f79f5c52 e9f3cafc 38a717d3
        seq=0x00000000 reluare=4 steaguri=0x00000000 stare=matur 
        creat: 10 dec. 02:23:59 2021 curent: 10 dec. 02:24:18 2021
        diferență: 19 (e) greu: 120 (e) moale: 96 (e)
        ultimul: 10 decembrie 02:24:01 2021 greu: 0(e) moale: 0(e)
        curent: 33(octeți) hard: 0(octeți) soft: 0(octeți)
        alocate: 3 hard: 0 soft: 0
        sadb_seq=0 pid=9396 refcnt=0

Am încercat să modific configurația, dar nu am reușit să generez aceste SA. acestea sunt configurațiile mele: ipsec.conf:

conn %implicit
    ikelifetime=6m
    durata cheii=5m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev1
    ike=aes256-sha256-modp1024
    esp=aes256-sha256-modp1024
    authby=psk
    tip=transport
    auto=rută
    agresiv=nu
    fragmentare=nu
    rekey=nu
    forcecaps=da

conn trap-b
    stânga=192.168.163.130
    leftsubnet=192.168.163.0/24
    dreapta=172.23.25.10
    rightsubnet=172.23.25.0/24
    auto=adăugați

conn nat-t
    stânga=172.23.25.99
    leftsubnet=192.168.163.0/24
    dreapta=172.23.25.10
    rightsubnet=172.23.25.0/24
    auto=adăugați

strongswan.conf:

charon {
        load_modular = da
        pluginuri {
                includ strongswan.d/charon/*.conf
        }
        install_routes = nr
        jurnal de fișiere {
                charon {
                        cale = /etc/strongswan/logs/strongswan.log
                        format_timp = %b %e %T
                        ike_name = da
                        append = da
                        implicit = 2
                        flush_line = da
                }
                stderr {
                        ike = 2
                        kml = 3
                }
        }
}
include strongswan.d/*.conf

Există vreo problemă cu configurația mea? mulțumesc!

drapel cn
Clientul dvs. acceptă traversarea NAT (RFC 3947 pentru IKEv1)? strongSwan folosește încapsularea UDP numai atunci când este detectat un NAT (`forceencaps` pur și simplu forțează detectarea unui NAT prin producerea unei sarcini utile NAT-D aleatoare pentru adresa sursă).
drapel cn
da, clientul este acceptat implicit traversarea NAT. Acesta va trimite ID-ul vânzătorului NATT în primul mesaj din prima fază a negocierii
drapel cn
Citiți jurnalele pentru a vedea ce se întâmplă în timpul negocierii în ceea ce privește detectarea NAT.
drapel cn
Strongswan a tipărit „3 ianuarie 21:39:27 14[IKE] falsifică situația NAT pentru a impune încapsularea UDP” atunci când procesează al doilea mesaj primit în modul principal. Este normal?
drapel cn
Da, asta se datorează `forceencaps=yes`. Dar asta ar trebui să facă ca UDP-encap să fie activat pe SA. Cu excepția cazului în care inițiatorul nu propune modul de transport cu encap sau propune mai întâi ambele și versiunea fără encap (ceea ce nu ar trebui conform [RFC 3947](https://datatracker.ietf.org/doc/html/rfc3947#) secțiunea-5.1)).Apropo, utilizarea modului de transport cu subrețele reale în `left|rightsubnet` nu este validă.
drapel cn
Din răspunsul dumneavoastră, am verificat din nou descrierea RFC3947 și implementarea clientului. Am constatat că clientul nu a folosit UDP-Encapsulated-Transport (valoarea 4) când NAT-T a fost detectat în faza 1 în timpul negocierii fazei 2, ci întotdeauna a folosit Transport (valoarea 2) pentru a finaliza negocierea fazei 2. . Va determina acest lucru ca strongswan să nu poarte NAT-T atunci când generează SA-uri?
drapel cn
Da, nu va exista niciun cod UDP dacă peer-ul nu o propune. Poate funcționează cu modul tunel?
drapel cn
Clientul acceptă în prezent doar modul de transport, iar modul tunel nu este încă acceptat. Voi optimiza codul clientului, când NAT-T este detectat în faza 1, clientul va propune UDP-encap în faza 2 pentru a vedea dacă poate rezolva problema curentă. Mulțumesc.
drapel cn
Vă mulțumim pentru ajutor, problema este rezolvată acum!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.