Kā maršrutā balstīts IPsec darbojas ar XFRM saskarni
XFRM saskarne maršrutā balstītam IPsec dod ierīci, pa kuru maršrutēt. if_id, aiz tās esošās drošības asociācijas un ārējais maršruts visiem jāsakrīt.
Maršrutā balstīts IPsec nodod maršrutēšanas tabulai lēmumu, ko agrāk pieņēma politikas selektori. Linux vidē to iespējamo daļa ir XFRM saskarne: virtuāla ierīce, kuras trafiks tiek saskaņots ar IPsec stāvokli pēc saskarnes identifikatora, nevis pēc selektora. Vienas izveide prasa vienu komandu, un tā neko nepierāda par to, vai tunelis pastāv. Ierīce ir āķis starp maršrutēšanu un drošības politiku, un abas šī āķa puses ir jākonfigurē, pirms kaut kas ir aizsargāts.
Kas ir ierīce un kas tā nav
XFRM saskarne ir maršrutēšanas rokturis. Uz to maršrutētie paketes tiek saskaņotas ar XFRM politikām, kas atsaucas uz to pašu saskarnes identifikatoru, un, ja pastāv politika un stāvoklis, tās tiek iekapsulētas. Bez tām saskarne pastāv, skaitītāji stāv uz vietas, un trafiks aiziet uz vietu, kur no tā nav nekāda labuma.
Šī ir pirmā diagnostiskā dalīšana. Maršruts ierīcē ir maršrutēšanas fakts, uzstādīts stāvoklis ir drošības fakts, un ierīcē augošs skaitītājs nav ne viens, ne otrs. Kad cilvēki saka, ka tunelis ir uz augšu, jo saskarne rāda UP, viņi apraksta virtuālas ierīces saites karodziņus, kurai nav sava partnera. Karodziņš nozīmē, ka ierīce tika izveidota un iespējota, neko vairāk.
Vēl viena robeža: saskarnes identifikators nav nosaukums. Divas ierīces ar līdzīgiem nosaukumiem un atšķirīgiem identifikatoriem nedala stāvokli, un savienojums, kas konfigurēts ar nepareizo identifikatoru, uzstāda stāvokli, kuru neviens maršruts nekad neizmantos.
Izveidojiet vienu pareizajā secībā
Sāciet ar ārējo ierīci un skaitli, ko arī ievietosiet dēmona konfigurācijā. Piemērā kā ārējā saskarne tiek izmantots eth0 un kā identifikators — 42, adreses, kas jums jāaizstāj ar savām.
Paceliet ierīci, pēc tam apstipriniet kodola reģistrēto identifikatoru pirms VPN konfigurācijas aizskaršanas:
sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip link set xfrm0 up
ip -d link show xfrm0 | grep -o 'if_id [0-9]*'Tagad konfigurējiet savienojumu strongSwan ar to pašu identifikatoru, jo dēmonam jāuzstāda politikas un stāvokļi, kas uz to atsaucas. Iestatiet vietējos un attālos trafika selektorus uz diapazonu, kuru plānojat maršrutēt, pēc tam maršrutējiet šo diapazonu ierīcē. Dēmona konfigurācijai un maršrutēšanas tabulai jāsaskaņojas gan par identifikatoru, gan par galamērķiem, un neviena nepiegādā otru.
Turiet IKE un ESP ārpus tuneļa maršruta
Noklusējuma maršruts, kas vērsts uz XFRM ierīci, pārtver iekapsulētās paketes un arī trafiku, ko tās pārvadā. Rezultāts ir cilpa: vārteja mēģina nosūtīt savu ESP pa tuneli, kuru ESP ir jāuzbūvē.
Risinājums ir konkrētāks maršruts partnera ārējai adresei pa fizisko saskarni, kas uzvar noklusējumu, jo atbilst vairāk bitiem. Uz atzīmēm balstīta maršrutēšana dara to pašu, kad vairāki tuneļi dala vienu tabulu, un strongSwan dokumentē abas pieejas uz maršrutiem balstītiem ieviešanām.
Lai ko jūs izvēlētos, pārbaudiet, vai ārējā pakete iziet bez iekapsulācijas. Ātra pārbaude ir pingot partnera ārējo adresi pēc tuneļa pacelšanas; ja tas neizdodas, kamēr saskarne ir augšā, šaubieties par pārtveršanu, nevis sasniedzamību. Tā pati loģika attiecas uz IKE portu, jo paša dēmona UDP trafiku nedrīkst maršrutēt ierīcē, kuru tas mēģina izveidot.
Pārbaudiet skaitītājus divās vietās, pirms vainot šifrēšanu
Saskarnes skaitītāji un stāvokļa skaitītāji mēra dažādus posmus. Ierīcē maršrutētās paketes palielina ierīci arī tad, kad neviens stāvoklis neatbilst, savukārt stāvokļa skaitītāji kustas tikai trafikam, kas tiešām tika iekapsulēts.
Izlasiet abus, pēc tam izlasiet dēmona skatījumu uz bērna asociāciju:
ip -s link show xfrm0
sudo ip xfrm state list | grep -E 'src|proto|mode'
sudo swanctl --list-sasIerīces skaitītāju pieaugums ar tukšu stāvokļa izvadi nozīmē, ka maršrutēšana strādā un politika neatbilst, parasti identifikatora vai selektora kļūda. Stāvokļa skaitītāju pieaugums, kamēr attālā puse neko neziņo, nozīmē, ka paketes iziet, bet neierodas vai neiztur autentifikāciju, kas norāda uz ceļu vai partnera konfigurāciju. Sarakstā iekļauts bērns ar nulles trafiku ir selektora problēma vienā galā, nevis salauzts šifrs.
Izlemiet, kas instalē maršrutus
Divi īpašnieki vienai maršrutēšanas tabulai ir ierastais flapping avots. Ja dēmons instalē maršrutus automātiski, jūsu tīkla pārvaldniekam arī nav jāinstalē noklusējuma maršruts pa to pašu ierīci, un palaišanas skripta pievienotais manuālais maršruts tiks noņemts nākamreiz, kad dēmons pārkonfigurēsies.
Izvēlieties vienu īpašnieku un pierakstiet to. Kad maršruti pieder dēmonam, turiet palaišanas skriptu ārpus tabulas un ļaujiet savienojuma definīcijai aprakstīt trafika selektorus. Kad tie pieder tīkla pārvaldniekam, izslēdziet automātisko instalāciju un pieņemiet, ka dēmons nelabos trūkstošo maršrutu, atkārtoti pieslēdzoties.
Pārsūtīšanas un ugunsmūra noteikumi ir atsevišķs lēmums virs tā, jo vārtejai, kas laiž cauri citu resursdatoru trafiku, vajag abus. Uz maršrutiem balstīts IPsec padara šo trafiku viegli izsakāmu ar parastiem maršrutēšanas rīkiem; tas nepadara politikas slāni par neobligātu.