Is fadhb ródaithe go príomha é clár amháin a cheangal le VPN ar Linux, agus ní chuireann riail an bhalla dóiteáin ach síos ar a dtarlaíonn tar éis an ród a roghnú. Má mheaitseálann tú UID an chláir in OUTPUT sula mbíonn an ród réamhshocraithe ag an tollán, scaoileann an riail an trácht a bhí uait a chosaint féin. Ní fheiceann an riail chéanna an próiseas réitigh a fhreagraíonn ceisteanna DNS an chláir ach an oiread. Cuir an t-ord ceart air agus éiríonn cuntas amháin gan phribhléidí ina roghnóir iontaofa don tollán roinnte.

Tabhair ród don chuntas sula dtugtar breith

Freagraíonn meaitseáil an úinéara ceist amháin: ar thóg soicéad áitiúil a bhaineann leis an UID seo an paicéad? Ní roghnaíonn sé comhéadan agus ní féidir leis trácht a bhogadh a sheolann an phríomhthábla amach cheana tríd an NIC fhisiciúil. Sin é an fáth go gcuireann riail UID gan ród mheaitseála bac ar an gclár in ionad é a atreorú.

Seol an cuntas trína thábla féin ar dtús, agus ansin lig don bhalla dóiteáin an toradh a dhaingniú. Oibríonn sé seo ar óstach a dtuigeann a iproute2 uidrange, rud a thuairiscíonn ip rule help i líne amháin. Coimeádann tábla 100 ród réamhshocraithe tríd an tollán, agus ní sheolann an riail ach UID 1000 chuig an tábla sin. Fanann gach rud eile ar an bpríomhthábla agus leanann sé ag úsáid an naisc fhisiciúil.

ip rule add uidrange 1000-1000 table 100
ip route add default dev tun0 table 100

Faigheann dara cuntas a dteastaíonn tollán eile uaidh tábla 101 agus a riail féin, mar ní féidir le dhá phróifíl an ród réamhshocraithe a bheith acu araon sa tábla céanna. Tá próifílí NetworkManager ar fud an chórais, mar sin fanann an chuid seo de láimh, agus imíonn na rialacha ar atosú mura gcuireann rud éigin ar ais iad. Scríobh na táblaí i script tosaithe in aice le sainmhíniú an tolláin ionas nach féidir le hathnascadh cuntas amháin a fhágáil ar an gcosán mícheart.

Cén fáth a maraíonn eisceacht loopback an tollán

Scaoileann formhór na leaganacha cóipeáilte den riail gach paicéad nach n-imíonn trí loopback. Ní loopback é an tollán, mar sin scaoileann an fhoirm sin trácht an tolláin freisin, agus breathnaíonn an toradh mar VPN marbh seachas mar mheancóg bhalla dóiteáin.

Nuair a ritheann OUTPUT, tá comhéadan egress roghnaithe ag an eithne cheana, mar sin -o déantar comparáid le freagra an róid, ní le ceannteideal an phaicéid. Déantar an mheaitseáil úinéara a chomhairliú in OUTPUT agus POSTROUTING amháin, agus ní iompraíonn paicéid a sheoltar ar aghaidh aon soicéad lena léamh. Ciallaíonn an teaglaim sin nach mór don eisceacht comhéadan an tolláin a ainmniú agus an mheaitseáil sin a shéanadh, seachas loopback a shéanadh.

Tuilleann loopback a ACCEPT féin os cionn an DROP fós, mar téann an chéad phaicéad DNS ón gclár chuig an stub áitiúil trí lo. Cuir an dá riail san ord seo agus sroicheann an cuntas an stub, ansin an tollán, agus ní aon rud eile.

iptables -I OUTPUT 1 -o lo -m owner --uid-owner vpnapp -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner vpnapp ! -o tun0 -j DROP

Is sraith rialacha ar leith é IPv6, agus fágann péire nach bhfuil ann ach do v4 ip6tables gan teagmháil. Rachadh clár a thugann tosaíocht do thaifead AAAA amach tríd an nasc fisiciúil gan an DROP a shroicheadh riamh. Scáthaigh an dá riail in ip6tables, nó díchumasaigh IPv6 ar an óstach nuair nach n-iompraíonn an tollán aon seoladh v6. Imíonn rialacha a cuireadh de láimh freisin ar atosú, mar sin sábháil iad le netfilter-persistent save nó atóg an loighic chéanna mar thábla nftables a lódálann an t-aonad tosaithe.

Tagann freagraí DNS ó phróiseas eile

Téann ceist an chláir chuig 127.0.0.53 tríd an ACCEPT loopback, agus is ansin a stopann meaitseáil UID. Seolann an stub-resolver ar aghaidh óna chuntas seirbhíse féin, mar sin ní fheiceann riail atá nasctha le vpnapp an dara ceist riamh. Má roghnaíonn an resolver freastalaí LAN don nasc, tagann na freagraí ar ais tríd an NIC fhisiciúil agus fanann paicéid an chláir féin sa tollán. Is é an toradh infheicthe tollán oibre le hainmneacha briste, nó hainmneacha ar a bhfreagraíonn freastalaí nár roghnaigh tú.

Deisigh réiteach ainmneacha ar nasc an tolláin, ní ar an aip. Tabhair freastalaí DNS agus fearann ródaithe do phróifíl an tolláin, ansin dearbhaigh le resolvectl query agus resolvectl status tun0 go n-úsáideann an resolver é do na hainmneacha is tábhachtaí. Laistigh de spás ainmneacha líonra imíonn an fhadhb, mar ní bhíonn aithne ag resolver an spáis ach ar an tollán.

Seiceáil an riail ón gcuntas féin

Fiafraigh den eithne cén ród a fhaigheann UID, ansin déan iarratas mar an cuntas sin agus cuir an seoladh amach i gcomparáid le seoladh do chuntais féin. Má thuairiscíonn an dá cheann an seoladh céanna, tá an riail ag meaitseáil rud éigin eile seachas an trácht a thástáil tú. Taispeánann an chéad ordú thíos an chuardach róid gan paicéad a sheoladh, rud a dhealaíonn meancóg ródaithe ó mheancóg bhalla dóiteáin.

ip route get 1.1.1.1 uid 1000
sudo -u vpnapp curl -s https://ifconfig.co

Taispeánann áiritheoirí ar scaoileadh riail riamh. Rith iptables -vnL OUTPUT, léigh líon na bpaicéad in aice gach rialach, agus caith le nialas in aice an DROP tar éis tráchta fíor mar mheancóg mheaitseála.

Seasann trácht a sheoltar ar aghaidh lasmuigh den dearadh seo. Níl aon soicéad áitiúil ag coimeádán nó VM taobh thiar de dhroichead a bheadh ag vpnapp, mar sin ní thagann an mheaitseáil úinéara i ngníomh riamh agus leanann na paicéid sin polasaí FORWARD ina ionad. Má chaithfear an t-ualach oibre sin a chlúdach, tástáil ar leith é agus scríobh polasaí atá nasctha leis an droichead nó le seoladh an choimeádáin. Seasann an dearadh nuair a dhíríonn an tábla, eisceacht an chomhéadain, an resolver agus na rialacha v6 go léir an bealach céanna; fág ceann ar bith díobh amach agus sileann an cuntas nó cailleann sé nascacht.

Ailt ghaolmhara