Lejupējais apakštīkls pret galddatora VPN: izslēdziet tranzītu, nevis lietotnes
Lietotnes līmeņa apiešana klasificē tikai vietējo izvadi. Ierīcēm aiz darbstacijas vajadzīga sava ievades, pārsūtīšanas un atgriešanās ceļa politika.
Viena iekārta, divi darbi, viens ugunsmūris: Wi-Fi augšupceļa līnija, aiz tās neliels Ethernet apakštīkls un galddatora VPN klients, kas pieņem, ka viss, kas iziet no iekārtas, ir vietējs. Vietēji palaistas lietotnes iziet pa vietējo izvades ceļu. Ierīces aiz darbstacijas ienāk Ethernet portā un tām vajadzīgs pārsūtīšanas lēmums. Pirmajam ceļam rakstītais izņēmums nekad neredz otro, un tāpēc pārlūks apiet tuneli, bet ierīces nē.
Divi pakešu ceļi, viena politika
| Origin | Path | Decision owner |
|---|---|---|
| Application on the workstation | OUTPUT then egress | The VPN app's routing policy |
| Device behind the workstation | PREROUTING then FORWARD | The workstation's own forwarding policy |
Pirmā rinda ir tas, ko apraksta lielākā daļa split-tunneling rokasgrāmatu. Otrā ir maršrutētāja konfigurācija, kas nejauši atrodas tajā pašā iekārtā. To sapludināšana vienā mentālā modelī ir kļūda; tām ir kopīgs kodols, bet ne politika. Uzzīmējiet abus ceļus pirms jebkura noteikuma rediģēšanas, un pārējais dizains izriet no tā, kura ceļa trūkst.
Tabula arī izskaidro, kāpēc viena iekārta var izturēt vienu testu un neizturēt citu. Pārlūks darbstacijā pierāda vietējo ceļu; klēpjdators, kas pievienots Ethernet portam, pierāda pārsūtīšanas ceļu. Pārbaudiet katru izmaiņu ar abiem, citādi otrais paliek nepārbaudīts, lai cik reižu pārlūku atsvaidzinātu.
Ko lietotnes izņēmums patiešām klasificē
Lietotnes līmeņa izņēmums parasti darbojas tā: atzīmē procesa vai lietotāja paketes, pēc tam maršrutē atzīmēto satiksmi ārpus tuneļa. Tā ir vietējās izvades konstrukcija. Paketei no lejupējas ierīces nav vietēja procesa, tāpēc tā nekad neatbilst selektoram, lai kāds selektors būtu.
Lai kāds selektors būtu, abi saraksti nav viens un tas pats saraksts, un tā ir visa būtība. Mullvad Linux rokasgrāmata apraksta atzīmes, ko patērē tā ugunsmūris un maršrutēšanas politika, un tās piemēri mērķē uz vietējo izvadi; tie nav atbalstīts lejupēja maršrutētāja apraksts. To kopēšana dod iekārtu, kas tic, ka tai ir izņēmums, vienlaikus visu pārsūtot tunelī.
Uzrakstiet tranzīta līgumu
Kopā nosauciet lejupējo avota prefiksu un ievades saskarni, pēc tam ierobežojiet šo prefiksu ievadē. Bez ierobežojuma jebkura ierīce, kas sasniedz portu, var pieprasīt izslēgtu adresi un iziet caur apiešanu. Uztveriet to kā divus jautājumus: vai šie resursdatori vispār drīkst izmantot šo augšupceļa līniju, un vai tie drīkst sasniegt darbstaciju vai tuneļa privātos diapazonus? Tās ir papildu atļaujas, nevis līnijas izvēles blakusefekts.
Atļaujiet pārsūtīšanu, pēc tam filtrējiet to. Linux vārtejai vajadzīga iespējota pārsūtīšana, noteikumi, kas atļauj paredzēto satiksmi abos virzienos, un vai nu augšupējs atgriešanās maršruts, vai apzināti sašaurināta avota tulkošana. NAT viens pats neizvēlas augšupceļa līniju un neļauj iziet cauri filtram; tas tikai pārraksta adresi pēc šiem lēmumiem.
Tranzīta klasifikācijai jānotiek pirms pārsūtīšanas maršruta lēmuma, tas nozīmē prerouting posmā, nevis output. Pēc lēmuma ievietots noteikums vēl var mainīt paketi, bet nevar mainīt to, kur tā jau nosūtīta.
Atzīmes pieder lietotnei, kurai tās pieder
Atzīmju vērtības, tabulu numuri un ķēžu prioritātes ir VPN lietotnes politikas daļa, nevis mūžīgas konstantes. Tīkls, kas atkarīgs no noteikuma ievietošanas tabulā, ko cita programma ģenerē no jauna, salūzīs nākamajā atjauninājumā, parasti atkārtotas savienošanas laikā, nevis ērtā brīdī.
Otras bāzes ķēdes ar accept spriedumu pievienošana ne vienmēr pārspēj vēlākas ķēdes drop. Bāzes ķēdēm ir āķi un prioritātes, un pirmais spriedums secībā uzvar; accept vienā ķēdē neatceļ drop, kuru cita ķēde sasniedz agrāk. Skatieties uz visu noteikumu kopumu un maršrutēšanas politikas secību, nevis uz vienu skaitītāju, kas pieauga. Skaitītājs pierāda, ka noteikums darbojās, nekad to, ka tā spriedums tika piemērots.
Integrējiet vai pārvietojiet apakštīklu
Abi dizaini atšķiras ar to, kam pieder apiešana. Integrēts dizains saglabā vienu iekārtu un vienu politiku, par cenu atkarībai no VPN lietotnes tabulu dzīves cikla un atzīmju kopas, ko tās dokumentācija var mainīt. Atsevišķs maršrutētājs lejupējam tīklam pilnībā novērš šo atkarību: apakštīklam ir sava augšupceļa līnija, un darbstacija paliek klients bez pārsūtīšanas lomas.
Izvēlieties otro, ja lejupējam tīklam jāturpina darboties VPN atjauninājumu laikā, vai ja neviens nevar pārbaudīt integrēto politiku pēc katras versijas. Izvēlieties pirmo tikai tad, ja integrācija ir dokumentēta un kāds par to atbild.
Pārbaudiet robežu četros stāvokļos: savienots, atkārtoti savienojas, apzināti bloķēts un apturēts. Katrā pārbaudiet vārdu izšķiršanu un abas adrešu saimes, jo apiešana, kas noplūdina DNS, nav tas izņēmums, ko projektējāt. Testam jāpierāda precīza robeža, nevis tikai tas, ka viena lapa ielādējās.