Via .ovpn-dosiero povas ruli kodon, ne nur enkursigi trafikon
Profilo, kiu nomas helpanton up aŭ down, rulas kodon kun viaj privilegioj. Kontrolu la vojon, posedon, purigadon kaj la agordon script-security.
Plej multaj homoj legas .ovpn-dosieron kiel ili legas la agordan paĝon de enkursigilo: adresoj, vojoj, listo de ĉifroj. La parto, kiu rulas kodon, sidas proksime al la malsupro, apud direktivoj, kiuj aspektas kiel tubinstala laboro, kaj ĝi ruliĝas kun kia ajn privilegio la kliento jam havas. Tiu estas la breĉo, kiun malzorga aŭ malica profilo ekspluatas, kaj ĝi ankaŭ estas la breĉo, kiu ŝanĝas utilan DNS-helpanton en subtenan problemon tri semajnojn poste. La okazaĵa direktivo, la sekureca nivelo kaj la posedo de la dosiero decidas, kio povas okazi; la enhavo de la skripto decidas, kio efektive okazas. Legu ĉiujn kvar antaŭ ol konekti.
Profilo, kiu rulas helpanton, estas programo, ne agorda dosiero
Direktivoj kiel route kaj dhcp-option priskribas staton, kiun la kliento devus establi, kaj la kliento traktas ilin kiel datumojn. up-skripto estas malsama: la kliento lanĉas ĝin kiel procezon kaj donas al ĝi medion plenan de konektaj detaloj, do kion ajn ĝia aŭtoro skribis, tio ruliĝas kun la rajtoj de via konto. Ĉe tekkomputilo, kie la uzanto estas administranto, tio estas larĝa pordo por dosiero, kiu alvenis kiel aldonaĵo aŭ kiel algluitaĵo el forumfadeno. La distingo ne estas stila, ĝi estas la diferenco inter agordo kaj kodo.
La mito inda forlasi estas, ke profilo povas nur alidirekti trafikon. Helpanto, kiu rulas ip route add, kaj unu, kiu rulas curl kontraŭ malproksima gastiganto, estas la sama mekanismo, kaj la profilo aspektas idente de ekstere. Nenio en la aspekto de la dosiero diras al vi, kiun vi havas, tial la revizio devas atingi la skripton mem.
Kio efektive decidas la plenumon kaj kiel aspektas la ebligaj linioj
Tri aferoj regas helpanton: la okazaĵa direktivo, kiu nomas ĝin, la nivelo script-security, kiu permesas ĝin, kaj la propra efektivigo de la klienta platformo. Profilo povas peti hokon kaj tamen vidi nenion okazi, ĉar poŝtelefona kliento aŭ reduktita labortabla konstruo eble tute ne efektivigas tiun okazaĵon. Same, profilo, kiu petas pli da permeso ol ĝia funkcio bezonas, diras al vi ion pri sia origino. Permesa nivelo estas kapablo, ne aprobo. La ebligaj linioj aspektas tiel, kun vojo, kiu staras anstataŭ la via.
script-security 2
up /etc/openvpn/update-resolv-conf.sh
down /etc/openvpn/update-resolv-conf.shNivelo 0 rifuzas eksterajn programojn, kaj nivelo 1, la defaŭlto, permesas nur la enkonstruitajn ruleblajn dosierojn de la kliento, do hoko bezonas 2 aŭ pli; nivelo 3 ekzistas ĉefe por transdono de malnovaj pasvortoj kaj estas plej bone evitata. Profilo liverita kun hoko bezonas kaj la direktivon kaj tiun nivelon, tial unu linio proksime al la malsupro de la dosiero meritas la saman ekzamenon kiel la certifikata bloko. OpenVPN-manlibro listigas la permesajn nivelojn, kaj ĝia vortumo indas legi apud tio, kion la profilo efektive petas.
Posedo, vojo kaj kion oni nutras al la helpanto
Profilo, kiun vi fidas, sed kiu montras al skripto, kiun alia konto povas reskribi, ne estas fidinda aranĝo, ĉar la revizio de hieraŭ ne plu priskribas, kio ruliĝas hodiaŭ. Kontrolu la posedanton kaj modon de la helpanto, kaj kontrolu, ke la agordita vojo solviĝas al la dosiero, kiun vi ekzamenis, kaj ne al nomo, kiun io alia povas ombrumi. Argumentoj kaj medio meritas la saman rigardon: la kliento transdonas konektajn detalojn al la hoko, kaj helpanto, kiu protokolas sian tutan medion, eble skribas akreditaĵojn en subtenan bileton. Preferu dokumentitan integriĝon de la funkciigisto aŭ la platformo anstataŭ DNS-skripto kopiita el nerilata afiŝo, ĉar du solvilaj administriloj, kiuj kverelas pri la sama dosiero, produktas fiaskon, kiu aspektas kiel rompita VPN.
Kiam vi raportas malsukcesan hokon, redaktu la medion antaŭ ol alglui ĝin ie ajn. La elĵeto, kiu helpas vin sencimigi, povas ankaŭ porti la ĵetonon, kiu aŭtentigas vin.
Purigaj fiaskoj aperas post kiam la tunelo foriras
up-helpanto aldonas vojojn kaj solvilajn agordojn, kaj la down-helpanto devus forpreni ilin denove. Kiam la down-hoko mankas, malsukcesas silente aŭ neniam ruliĝas ĉar la kliento estis mortigita, la restaĵoj postvivas la seancon. Trafiko tiam prenas vojon, kiun neniu planis, kaj nomoj solviĝas tra solvilo, kiu devus esti forigita, dum la tunelo mem aspektas sana. Tiuj simptomoj alvenas post la malkonekto, tial oni kulpigas la reton anstataŭ la profilon.
Testu la malkonstruon kiel apartan paŝon: levu la tunelon, notu la vojojn kaj la solvilon, faligu ĝin, poste konfirmu, ke ambaŭ foriris. Profilo, kiu konektiĝas pure, povas tamen lasi staton malantaŭe, kaj nula elira kodo de la helpanto ne pruvas, ke la solvilo finiĝis tie, kie vi pensas.
Revizio de la helpanto kaj konservo de eliro
Legu la skripton de komenco ĝis fino serĉante tri aferojn: komandojn, kiuj bezonas privilegion, fikskribitajn vojojn, kiuj eble ne ekzistas en via sistemo, kaj ajnan retan alvokon, kiun ĝi faras. Poste rigardu, kiel ĝi malsukcesas, ĉar helpanto, kiu glutas erarojn, ŝanĝas agordan eraron en misteron. Se vi ne povas diri per unu frazo, kion la skripto faras kaj kiu povas ŝanĝi ĝin, vi ne pretas ebligi ĝin. Profilo, kiu petas pli da privilegio ol tiu frazo postulas, estas la signalo halti.
Konservu la lastan funkciantan profilon kaj la helpanton, al kiu ĝi referencis, en protektita konservado, kun ambaŭ versioj notitaj, por ke restarigo estu kopio anstataŭ rekonstruo en la plej malbona ebla momento. Se la helpanto ekzistas nur por distribuo aŭ klienta versio, kiu ne plu bezonas ĝin, retiru ĝin en la agordo, kiu posedas la agordon, anstataŭ altigi privilegiojn ĝis la eraroj ĉesos. Tio estas la eliro: malpli da moviĝantaj partoj, ne pli da permeso.