Vienos Linux paskyros nukreipimas per OpenVPN taikant UID taisyklę
uidrange taisyklė vienos paskyros IPv4 lizdus įdeda į esamą tunelį be namespace. DNS, IPv6 ir atsarginį kelią nuspręskite atskirai, tada patikrinkite.
Maršrutizavimas pagal paskyrą tinka, kai kiekvienas vieno Linux naudotojo turimas IPv4 lizdas turi išeiti per esamą tunelį, ir netinka, kai reikia izoliacijos programos lygmeniu. Jis renkasi pagal UID, todėl viskas, kas veikia su ta paskyra, patenka į apimtį, įskaitant pamirštą paketinę užduotį. Išspręskite šį klausimą prieš paliesdami vieną ip rule.
Toliau pateiktas pavyzdys daro prielaidą, kad yra skirta naršyklės paskyra su UID 1500, tunelio įrenginys tun-office su vietiniu adresu 10.80.0.11 ir VPN, leidžiantis atitinkamus tikslus. Pats demonas veikia už to UID ribų.
Trys sąlygos, kurios pasirenka mechanizmą
Pasirinkite UID taisyklę, kai darbą atliekanti tapatybė yra paskyra, kai viso jos srauto perkėlimas yra priimtinas ir kai namespace būtų sunkesnis, nei užduotis nusipelno. Pasirinkite tinklo namespace, kai darbo krūviui reikia savo sąsajų, sprendėjo ir maršrutizavimo lentelės. Pasirinkite tarpinį serverį arba susiejimą kiekvienam procesui kai perkelti reikia lygiai vieną programą, o likusi sesijos dalis lieka vietiniame kelyje. Šių trijų užrašymas užkerta kelią taisyklei, kuri tyliai apima daugiau, nei numatyta.
Klaida, kurios reikia vengti, yra manyti, kad paleidėjas nustato savininką. Naršyklė, kuriai URL perdavė kitos naudotojo sesija, nesukūrė lizdų su UID 1500, ir jokia taisyklė neperkels jos generuojamo srauto.
Lentelė, taisyklė ir sargas
Patikrinus esamas taisykles ir pasirinkus nenaudojamus lentelės bei prioriteto numerius, išdėstymas trumpas: numatytasis maršrutas skirtoje lentelėje, kuris neša tunelio šaltinio adresą, taisyklė, siunčianti paskyros užklausas į tą lentelę, ir baigiamoji taisyklė, blokuojanti atsarginį kelią. Užrašyta tai yra idempotentinis maršruto pakeitimas, ip -4 route replace default dev tun-office src 10.80.0.11 table 51820, po kurio eina ip -4 rule add priority 12100 uidrange 1500-1500 lookup 51820.
Sargas yra ip -4 rule add priority 12101 uidrange 1500-1500 unreachable, ir jis svarbesnis, nei rodo jo ilgis. Be jo, lentelėje 51820 trūkstamas maršrutas nukrenta į įprastą aukštutinę jungtį, ir paskyra tyliai nutekina srautą, kurį politika turėjo sugauti. Su juo ta pati klaida tampa laiko limitu, tai yra blokavimu, o ne atsarginiu keliu.
Įprastą vietinio adreso taisyklę laikykite prieš šias, ir sąmoningai nuspręskite, ar LAN arba valdymo išimtys priklauso prieš pasirinktą lentelę. Ten rastas numatytasis vėliau neklausia main dėl konkretesnio LAN maršruto, o tai nustebina tuos, kurie tikisi, kad ilgiausio prefikso atitikimas galioja tarp lentelių. Numatytą išimčių sąrašą įrašykite į pakeitimo pastabą, kol pagrindimas dar šviežias.
Ko UID maršrutizavimas neapima: DNS
Sprendėjo demonas savo aukštutinius lizdus atidaro su savo UID, todėl pasirinkus 1500 šios užklausos nepereina į lentelę 51820. DNS integracija yra atskiras sprendimas: nukreipkite paskyrą į sprendėją, pasiekiamą per tunelį, arba priimkite, kad vardų sprendimas eina prieglobos keliu, o srautas ne.
Loopback užklausa vietiniam stub nėra įrodymas, kad aukštutinė užklausa naudojo naršyklės maršrutą, ir sėkmingas puslapio įkėlimas iš podėlio taip pat ne.
IPv6 projekte reikia savo sakinio
Aukščiau pateiktos taisyklės apima tik IPv4. Jei reikalavimas yra IPv4 tunelis be tiesioginio IPv6 iš šios paskyros, pridėkite peržiūrėtą baigiamąją taisyklę, pavyzdžiui, ip -6 rule add priority 12101 uidrange 1500-1500 unreachable, tada patikrinkite ankstesnes IPv6 taisykles ir loopback išimtis, kurias norite išsaugoti.
Tiesioginio IPv6 blokavimas nėra dvigubo kamino tuneliavimas; tai riba. Pavadinus tai tuneliavimu, supainiosite kitą žmogų, kuris skaitys politiką, o painiava išlįs kaip pagalbos tarnybos bilietas apie sugedusią IPv6 svetainę.
Patikrinkite su tikra paskyra, tada perimkite gyvavimo ciklą
Palyginkite užklausas: ip -4 route get 198.51.100.25 uid 1500 su tuo pačiu tikslu naudojant įprastą UID. Tada atlikite leidžiamą užklausą su skirta paskyra ir patikrinkite šaltinio adresą, kurį mato tolimas galas. Pageidaujamas šaltinio adresas nėra source NAT, ir jis neįveiks programos, kuri suriša ką nors kita. Jei abi užklausos grąžina tą patį kelią, taisyklė nedaro to, ką manote.
Lentelę, taisykles ir tunelio maršruto galiojimą laikykite pas vieną savininką, išbandykite prisijungimą iš naujo ir tunelio praradimą, o naikindami politiką pašalinkite tik tikslius jos įrašus. Namespace vis dar prieinamas, jei atskiros sąsajos ir atskira būsena yra tai, ko jums iš tikrųjų reikia.