Nid yw porwr sy’n defnyddio VPN Linux sydd eisoes wedi’i sefydlu yn agor /dev/net/tun. Mae’n agor soced, a’r cnewyllyn sy’n penderfynu pa ryngwyneb y mae pecynnau’r soced hwnnw’n gadael drwyddo. Mae’r broses a greodd y twnnel yn gwneud gwaith gwahanol i’r broses y mae’n cario ei thraffig. Mae cadw’r ddau rôl hynny ar wahân yn ateb y rhan fwyaf o gwestiynau caniatâd cyn iddynt gael eu gofyn.

Dilynwch un pecyn o’r soced i’r twnnel

Mae ap cyffredin yn galw connect neu send, ac mae’r cnewyllyn yn chwilio am lwybr i’r cyrchfan. Os yw’r llwybr a ddewiswyd yn pwyntio at ryngwyneb y twnnel, mae’r pecyn yn cael ei roi yng nghiw’r ddyfais y mae daemon y VPN yn ei darllen. Mae’r daemon yn ei amgryptio ac yn ei anfon allan trwy’r rhyngwyneb corfforol. Mae pob saeth yn y disgrifiad hwnnw’n lle y gellir ateb cwestiwn caniatâd.

Nid oes dim ar y llwybr hwnnw’n gofyn i’r ap wybod am y ddyfais. Y daemon sy’n dal y disgrifydd ffeil ac yn gwneud y gweithrediadau rhyngwyneb, tra nad yw’r ap yn gweld ond API rhwydwaith arferol.

Tynnwch y ddwy hanner unwaith, a daw cwestiynau caniatâd yn haws eu gosod. Yr hanner uchaf yw byd yr apiau, a’r hanner isaf yn perthyn i’r daemon.

Penderfynwch pwy sydd angen y ddyfais a phwy sydd ddim

Mae creu rhyngwyneb TUN neu atodi iddo yn gofyn am fynediad i’r ddyfais ynghyd â ’r gallu i’w ffurfweddu, a dyna pam mae gwasanaeth VPN a gefnogir yn dechrau ag awdurdod gweinyddu rhwydwaith neu’n defnyddio cynorthwyydd breiniol. Mae’r gofyniad hwnnw’n perthyn i’r daemon. Nid yw’n dweud dim am y porwr, y cleient cronfa ddata na’r teclyn trosglwyddo ffeiliau. Mae gwasanaeth sydd angen y gallu yn ei angen ar gyfer ei gam gosod ei hun, nid ar gyfer ei gleientiaid.

Unwaith y bydd y llwybr a’r polisi yn eu lle, mae proses gyffredin yn defnyddio’r llwybr sy’n deillio o hynny trwy ei galwadau soced arferol. Nid oes angen y nod dyfais arni, ac nid oes angen root arni.

Nid yw newid caniatadau dyfais yn ffordd o roi mynediad cyrchfan i ap. Dim ond symud ffin y ddyfais i rywle arall y mae’n ei wneud.

Gwiriwch ym mha ofod enw y mae’r ap yn rhedeg mewn gwirionedd

Mae cynhwysydd, neu ail ofod enw rhwydwaith, yn rhoi set ryngwyneb a thabl llwybrau ar wahân i’w brosesau. Nid yw twnnel ar y gwesteiwr yn ymddangos yno’n awtomatig, ac nid yw unrhyw newid mewn caniatadau dyfais yn newid hynny. Bydd yr ap yn llwybro’n syml trwy’r hyn y mae’r gofod hwnnw’n ei ddarparu. Dyna pam na all delwedd cynhwysydd etifeddu twnnel gwesteiwr ar ddamwain.

Gwiriwch gyda ip netns list a ip -n NAME route, neu drwy archwilio dolen gofod enw’r broses. Mae’r ateb fel arfer i’w weld mewn un gorchymyn.

Gellir rhoi llwybrau gwahanol i ddau ddefnyddiwr ar yr un gwesteiwr trwy bolisi hefyd. Penderfyniad rhwydwaith yw hynny yn hytrach na thystiolaeth am berchnogaeth y ddyfais.

Gwahanwch alluoedd oddi wrth bolisi rhwydwaith

Mae angen mwy na soced ar rai teclynnau. Mae dal pecynnau angen soced crai, ac mae newid llwybrau angen awdurdod gweinyddu. Gweithrediadau ar wahân gyda grantiau ar wahân yw’r rhain, ac ni ddylid darllen grant un ohonynt fel gofyniad cyffredinol ar gyfer defnyddio’r VPN.

Mae rhaglen sy’n gweithredu ei thwnnel ei hun yn drydydd achos. Mae’n agor TUN mewn gwirionedd oherwydd ei bod yn cymryd rôl y daemon, a dyna pam y mae angen breintiau’r daemon arni.

Enwch y gweithrediad cyn enwi’r fraint. Fel arfer mae’n haws gwahanu’r ddau nag y maent yn ymddangos.

Gwiriwch y gwahanu gyda dau gyfrif

Cysylltwch y twnnel fel y gwasanaeth, yna rhedegwch yr ap fel defnyddiwr cyffredin a chadarnhewch ei fod yn cyrraedd yr adnodd preifat. Gwiriwch ip route get ar gyfer y gyrchfan o gragen y defnyddiwr hwnnw i weld pa ryngwyneb a ddewiswyd. Os yw’r llwybr yn gywir ac mae’r cysylltiad yn dal i fethu, mater o bolisi yw’r broblem yn hytrach na braint.

Y dyluniad sy’n deillio o hyn yw lleiafswm braint gyda ffin benodol: un gydran sy’n berchen ar y gosodiad ac adnoddau’r twnnel, mae llwythi gwaith yn cadw eu cyfrifon arferol, a pholisi rhwydwaith sy’n penderfynu beth a ganiateir i basio. Mae rhedeg popeth fel root yn cwympo’r rolau hynny heb esbonio dim.

Erthyglau cysylltiedig