Puncte:0

Nu se poate face tunelul divizat să funcționeze în Strongswan

drapel us

Încerc să configurez Strongswan pentru VPN split tunneling.

Ceea ce vreau sunt doar subrețele 10.88.0.0/16 și 10.0.200.0/24 este accesibil prin tunelul VPN. Orice altceva este gestionat prin intermediul Gateway implicit pentru retea.

Tuturor clienților li se atribuie o adresă IP aparținând 10.0.201.0/24 subrețea.

În fișierul meu de configurare am printre altele următoarele:

# Metoda de conectare implicită
eap-defaults {
  la distanta {
   auth = eap-radius
   id = %oricare
   eap_id = %any
  }
}

conexiuni
{
  conn-unix: conn-defaults, eap-defaults {
    copii {
      net {
        local_ts = 10.0.200.0/24, 10.88.0.0/16
      }

      esp_proposals = aes128gcm128-x25519
    }

    pool-uri = IkeVPN-ipv4
    propuneri = aes128-sha256-x25519
  }

  conn-windows : conn-defaults, eap-defaults {
    copii {
      net {
        local_ts = 10.0.200.0/24, 10.88.0.0/16
      }

      esp_proposals = aes256-sha256-prfsha256-modp1024
    }

    propuneri = aes256-sha256-prfsha256-modp1024
    pool-uri = IkeVPN-ipv4
  }
}

piscine
{
  IkeVPN-ipv4 {
    adrese = 10.0.201.0/24
    dns = 10.0.88.2
  }
}

Când mă conectez prin VPN, este posibil să ping gazdele care le aparțin 10.88.0.0/16 și 10.0.200.0/24, așa că știu că pot folosi tunelul VPN.

In orice caz:

Dacă încerc să accesez orice altă resursă de pe Internet în timp ce sunt încă conectat la VPN, atunci nici măcar nu pot face ping la adresa IP care aparține acelei resurse.

În tabelul meu de rutare de pe computerul meu Windows pot găsi următoarele intrări:

Tabel de rutare parțial pentru un client Windows conectat la serverul VPN

Știu că atunci când aveți două rute către o anumită subrețea, cum ar fi 0.0.0.0/0 în tabelul de rutare, atunci orice regulă are cea mai mică valoare câștigă și traficul este redirecționat folosind acea regulă.

Cu toate acestea, nu vreau ca serverul VPN să instaleze o rută implicită prin VPN, ci mai degrabă să le spună subrețelelor 10.88.0.0/16 și 10.0.200.0/24 trebuie direcționat prin VPN.

Ceea ce vreau este să văd un tabel de rutare mai aproape de acesta, fără a fi nevoie să editez manual tabelul de rutare pe fiecare client VPN:

Tabel de rutare dorit

Deci, cum să fac asta?

drapel cn
Vă rugăm să aruncați o privire la [this](https://wiki.strongswan.org/projects/strongswan/wiki/ForwardingAndSplitTunneling#Split-Tunneling-with-IKEv2) și la [this](https://wiki.strongswan.org/ projects/strongswan/wiki/WindowsClients#Split-routing-on-Windows-10-and-Windows-10-Mobile) de pe wiki-ul strongSwan.
drapel us
Ei bine, Strongswan trebuie să-și actualizeze documentația atunci, deoarece se pare că Windows setează gateway-ul implicit atunci când înregistrați o nouă conexiune VPN. Cel puțin pentru ipv4.
drapel us
A trebuit să dezactivez `rutarea implicită` și să activez `disable class based routing addition` (traducere din daneză) pentru a elimina gateway-ul implicit sau cel puțin doar traficul pentru subrețeaua `10.0.0.0/8` prin VPN. Ceea ce speram era că Strongswan avea ceva echivalent cu directiva „push route” a OpenVPN.
drapel us
Căutând puțin mai mult pe Google, mi-a spus că trebuie să introduc „codul opțiunii dhcp 121 și 249” către clienți. Codul de opțiune 121 funcționează cu Linux și versiunile mai vechi de Windows, în timp ce codul de opțiune 249 funcționează cu versiuni mai noi de Windows (mai noi decât Vista) și MacOS. Cu toate acestea, Strongswan nu folosește gateway standard, deci cum intervine acest lucru atunci când împinge rute către clienți?
Puncte:0
drapel us

Se pare că problema mea cu tunelul divizat a fost plasată într-o zonă complet diferită, deoarece am 2 routere acasă, așa că rețeaua mea de acasă este ceva de genul: ISP <-> R1 <-> R2 <-> Eu.

... și R1 a fost configurat la o adresă IP în intervalul 10.0.0.0/24.

Când dezactivați rutarea implicită în clientul VPN Windows, va adăuga apoi o rută bazată pe clasă instalată, așa că în cazul meu va adăuga o rută care trimite totul pentru 10.0.0.0/8 prin VPN, ceea ce, desigur, ar intra în conflict cu configurarea. pe routerul R1.

Acesta este motivul pentru care am vrut să elimin complet ruta 10.0.0.0/8 și să împing rute pentru subrețele 10.88.0.0/16 și 10.0.200.0/16 prin VPN.

Se dovedește că este realizabil.

Rutarea bazată pe clasă este eliminată prin activare dezactivați rutarea bazată pe clasă când dezactivați rutare implicită în clientul VPN.

În Strongswan, trebuie să redirecționați cererea dhcp de la clienți către un server DHCP care a implementat RFC3442.

Deci, în configurația mea de mai sus, trebuie să înlocuiesc toate aparițiile pool-uri = IkeVPN-ipv4 cu piscine = dhcp si in strongswan.conf Trebuie să adaug următoarele la subsecțiunea plugin-uri charon:

charon {
  pluginuri {
    ...
    dhcp {
      server = ip.address.of.dhcp.server
    }
  }
}

Apoi pot șterge întregul piscine secțiunea din partea de jos a configurației mele.

Mai sunt câteva opțiuni disponibile care poate fi citit aici.

Ghidul de la Strongswan de la @ecdsa indiciu a oferit câteva dintre informații, dar acel ghid este specific pentru Windows, așa că nu vă va spune cum să gestionați dispozitivele Linux, MacOS sau Android. RFC3442 se va ocupa totuși de cazul generic.

Pe scurt, ceea ce spune RFC3442 este că trebuie să trimiteți următoarele două opțiuni dhcp:

  • opțiunea 121 (referită la Linux, Android și Windows Vista sau mai vechi)
  • opțiunea 249 (referită la Windows 7 sau mai nou și MacOS)

Practic, trebuie să codificați fiecare rută ca o matrice de int folosind următoarea sintaxă:

x,y1,y2,y3,y4,z1,z2,z3,z4

Unde:

  • x: mască de rețea CIDR
  • y1 - y4: este rețeaua pe care doriți să o direcționați, dar cu răsucirea că atunci când coada secvenței y1,y2,y3,y4 este toate zerouri, acestea sunt apoi omise.
  • z1 - z4: este poarta nexthop către subrețea.

Dacă există mai multe rute de trimis prin DHCP, atunci va trebui să adăugați o altă secvență similară cu cea de mai sus la coada primului router.

Conform documentației Strongswan, pot înlocui gateway-ul standard cu 0.0.0.0.

Asta înseamnă drumul meu către 10.0.200.0/24 este codificat ca 24,10,0,200,0,0,0,0 și 10.88.0.0/16 este codificat pentru 16,10,88,0,0,0,0.

Combinarea celor două îmi dă 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0, ceea ce mă duce la următoarea configurație în Server ISC DHCP:

opțiunea rfc-routes cod 121 = matrice de întreg 8;
opțiunea ms-routes cod 249 = matrice de întreg 8;

default-lease-time 21600;
max-lease-time 86000;

subnet 10.0.201.0 netmask 255.255.255.0 {
    interval 10.0.201.1 10.0.201.254;

    opțiunea nume-domeniu „example.com”;
    opțiune domain-name-server ip.address.of.dns.server;

    opțiunea rfc-routes 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
    opțiunea ms-routes 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
}

Sper că acest lucru va ajuta pe oricine se confruntă cu tunelul divizat.

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.