LXD jesponi tagħmir tal-karattri tal-host lill-kontenitur billi jżid node tat-tagħmir, mhux billi jgħallem lill-mistieden joħloq wieħed. Jekk il-kontenitur m'għandux /dev/net/tun, il-host jista' jkollu t-tagħmir u l-mistieden xorta ma jistax jiftħu. Id-dħul unix-char huwa nofs dan il-mogħdija fuq in-naħa tal-amministratur, u huwa deliberatament idjaq minn kontenitur privileġġjat. Għalhekk in-node tal-host u n-node tal-kontenitur jistħoqqilhom verifiki separati.

Il-mekkaniżmu huwa qasir biżżejjed biex tibqgħu tarah: LXD jissolva mogħdija tal-host, joħloq node li taqbel ġewwa l-istanza u jżid it-tagħmir mal-cgroup tat-tagħmir tal-kontenitur. Wara, il-proċess tal-mistieden jeħtieġ il-permess u l-kapaċità tiegħu stess biex juża n-node għal xi ħaġa.

X'inhu li verament ibiddel id-dħul unix-char

Tagħmir unix-char jgħid lil LXD biex jesponi tagħmir tal-karattri wieħed tal-host f'mogħdija magħżula ġewwa l-kontenitur. Id-dħul għandu tliet partijiet importanti: it-tikketta tat-tagħmir li juża l-amministratur, il-mogħdija source fuq il-host u path li jara l-mistieden. Biss l-aħħar tnejn jiddeskrivu t-tagħmir innifsu. Żball tat-tip f'wieħed minnhom joħloq node f'post li l-klijent qatt ma jiftaħ.

Fuq il-host it-tagħmir normalment ikun /dev/net/tun. Ġewwa l-kontenitur tista' żżomm l-istess mogħdija jew tagħżel oħra, iżda l-mogħdija trid taqbel ma' dak li jistenna l-klijent VPN. Li żżomm /dev/net/tun jevita t-tieni problema ta' konfigurazzjoni, għax ħafna klijenti jiftħu dik il-mogħdija mingħajr ma jistaqsu.

L-amministratur japplika d-dħul meta l-istanza tibda jew meta t-tagħmir jiġi mqabbad fil-mument. Ma jikkopjax driver fil-mistieden u ma joħloqx interface tat-tunnel. Jagħmel in-node viżibbli u jippermetti aċċess mill-grupp ta' kontroll tat-tagħmir tal-kontenitur.

Iddikjara t-tagħmir fuq l-istanza, mhux ġewwa l-mistieden

Żid id-dħul mill-kuntest amministrattiv ta' LXD, billi ssemmi l-istanza u tikketta li tagħraf aktar tard. Għal kontenitur bl-isem vpnbox il-kmand huwa:

lxc config device add vpnbox tun unix-char source=/dev/net/tun path=/dev/net/tun
lxc config device show vpnbox

It-tikketta tun hija lokali għall-konfigurazzjoni tal-istanza. Mhix isem ta' interface u m'għandhiex taqbel ma' xejn fil-mistieden. Jekk profil diġà jipprovdi l-istess tagħmir, it-tieni dħul joħloq kunflitt u mhux żejjed, għalhekk iċċekkja l-konfigurazzjoni effettiva l-ewwel.

L-editjar tal-fajls ġewwa l-kontenitur huwa s-saff ħażin. mknod fi skript tal-bidu jista' jidher li jaħdem fuq kontenitur privileġġjat, imbagħad jisparixxi meta jerġa' jinħoloq jew ifalli fuq wieħed anqas privileġġjat. L-amministratur jippossjedi s-sett tat-tagħmir tal-istanza; ħallih jippossjedi n-node wkoll.

Qabbel is-sjieda u l-mod mal-proċess tal-mistieden

Id-dħul unix-char jista' jistabbilixxi uid, gid u mode għan-node ġewwa l-kontenitur. Użahom biex jaqblu mal-kont li jmexxi l-klijent VPN, minflok ma tiftaħ it-tagħmir għal kull utent jew tbiddel il-kontenitur għal mod privileġġjat.

Il-viżibbiltà mhix l-istess bħall-permess. Node li jappartjeni lir-root bil-mod 600 huwa viżibbli għas-servizz li jaħdem bħala utent mhux privileġġjat u xorta ma jistax jinfetaħ minnu. Iċċekkja l-kont tal-mistieden l-ewwel, imbagħad issettja s-sjieda għal dak il-kont, u żżommx il-mod usa' milli jeħtieġ il-klijent.

Il-proċess ukoll jeħtieġ il-kapaċità li jikkonfigura interface tat-tunnel, normalment CAP_NET_ADMIN fl-ispazju tal-ismijiet tan-netwerk tal-kontenitur. Li tgħaddi t-tagħmir ma tagħtix dik il-kapaċità, u li tagħti l-kapaċità ma tipprovdix it-tagħmir; huma rekwiżiti indipendenti.

Kun af x'ma jagħtix id-dħul

Node viżibbli mhuwiex VPN li jaħdem. Il-pakkett tal-klijent xorta jrid jiġi installat, il-profil xorta jrid ikun validu, u s-servizz xorta jrid jibda. L-awtentikazzjoni, ir-rotot u d-DNS jibqgħu xogħol il-klijent, u falliment hemmhekk mhuwiex prova li d-dħul tat-tagħmir huwa ħażin.

systemd jista' jżid restrizzjoni oħra. Unità b'DeviceAllow jew politika tat-tagħmir imsaħħa tista' tiċħad l-aċċess għal node li pprovda l-amministratur tal-kontenituri. Iċċekkja l-politika tat-tagħmir tal-unità meta n-node jeżisti iżda s-servizz jirrapporta żball ta' permess, u biddel dik il-politika minflok ma tespandi l-kontenitur.

Il-qbil fil-mument huwa fakultattiv u espliċitu. Dħul b'required=false jeħtieġ mogħdija tas-sors u jista' jidher jew jisparixxi hekk kif jinbidel it-tagħmir tal-host. Dak iċ-ċiklu tal-ħajja jaqbel ma' ħardwer li jiġi u jmur; għal tagħmir TUN li l-VPN jeħtieġ waqt il-boot, dħul fakultattiv jista' jħalli s-servizz jibda qabel ma teżisti l-prerekwiżit tiegħu.

Ivverifika l-viżibbiltà, il-ftuħ u l-interface f'dan l-ordni

L-ewwel ikkonferma n-node ġewwa l-kontenitur maħsub. Il-mogħdija, in-numri maġġur u minuri u s-sjieda għandhom jaqblu mat-tagħmir tal-host u mad-dħul li żidt. Node nieqes ifisser li l-amministratur ma applika d-dħul, jew applikaħ fuq istanza oħra.

lxc exec vpnbox -- ls -l /dev/net/tun
lxc exec vpnbox -- sh -c 'test -c /dev/net/tun && echo char-device-ok'

Imbagħad ikkonferma li l-kont tas-servizz jista' jiftħu. Test qasir bħala dak il-kont jifred problema ta' sjieda minn problema ta' servizz. Fl-aħħar, ibda l-klijent u kkonferma li jidher interface tat-tunnel; biss it-tielet pass jipprova l-mogħdija kollha, għax l-ewwel tnejn jistgħu jgħaddu waqt li l-profil jew il-kapaċità tal-klijent għadhom ħżiena.

Irreġistra l-istanza, it-tikketta tat-tagħmir, is-sors fuq il-host, il-mogħdija fil-mistieden u l-kont proprjetarju meta l-bidla tiġi approvata. Dawk il-ħames valuri huma dak li ħolqien mill-ġdid, migrazzjoni jew bidla ta' profil sussegwenti jridu jippreservaw, u ħafna aktar faċli li tqabbilhom minn żball ta' permess mingħajr kuntest.

Artikli relatati