Importige profiil töölauakliendile ja esimene tõrge on sageli rida, mida klient keeldub täitmast: skripti konks, mida ta ei käivita, või script-security väärtus, mida ta peab liiga lubavaks. Numbri tõstmine paneb dialoogi kaduma. See laiendab aga ka seda, mida see profiil tohib teie masinas käivitada, mis on kummaline asi anda ainult hoiatuse sulgemiseks. Jälgige importi kuni direktiivini ja otsus muutub konkreetseks.

Impordi dialoogist direktiivini

Profiil on direktiividega tekstifail ja klient loeb neid enne, kui ükski tunnel on olemas. Direktiiv nagu up, down või tls-verify nimetab välise programmi, mille OpenVPN peaks kindlal hetkel käivitama. Kas OpenVPN on valmis seda käivitama, on eraldi säte nimega script-security, ja profiil tavaliselt määrab selle samuti.

Hoiatus ei ole seega krüptograafia ega sertifikaatide kohta. See on konfiguratsioonifaili kohta, mis palub kliendil hostis midagi käivitada, ja kliendi kohta, kes kontrollib, kas tema praegune loa tase seda taotlust lubab.

Selles etapis näevad kaks erinevat tõrget ühesugused välja. Profiil, mis küsib taset, mida klient ei anna, tekitab keeldumise. Profiil, mis küsib taset, mida klient annab, aga skript puudub, tekitab hoopis käitusaegse tõrke, ja neid aetakse tugilõimedes segi. Üks on loa küsimus ja teine on pakendamise küsimus.

Mida iga tase tegelikult avab

Tase 0 keelab välised programmikutsed täielikult, mis on järjekindel kliendi puhul, kes seadistab oma liidese ise ilma abita, ja ebajärjekindel selle puhul, kes pöördub operatsioonisüsteemi poole. Tase 1, vaikimisi, lubab sisseehitatud käivitatavad failid, mida liidese ja marsruudi seadistamine vajab. Kumbki tase ei käivita midagi, mille kasutaja on lisanud.

LevelWhat OpenVPN may executeWhat it exposes
0No external programs at allInterface and route setup must not depend on helpers
1 (default)Built-in helpers such as ip, ifconfig, route or netshPrivileged commands the platform already ships
2Built-in helpers plus user-defined scriptsWhatever the named script does with the client's privileges
3Everything above, plus passwords in environment variablesCredentials visible to child processes and their logs

Tase 2 on huvitav piir, sest see lubab kasutaja määratud skripte. Sellest hetkest kehtivad kliendi privileegid koodile, mida te võib-olla kunagi lugenud ei ole, mida kutsutakse hetkedel, mida te ei valinud, keskkonnaga, mis sisaldab ühenduse üksikasju. Tase 3 läheb kaugemale ja lubab paroole keskkonnamuutujate kaudu edasi anda, mistõttu käsiraamat kirjeldab seda võimalikult ebaturvalisena.

Ükski neist numbritest ei ole tugevuse säte. Tase 3 profiilil ei ole paremat krüpteerimist kui taseme 1 profiilil; sellel on lihtsalt suurem käituspind, ja tunnel on identne.

Otsustage, mida profiil väärib

Küsige, milleks skript on, enne kui küsite, millist taset see vajab. Konks, mis surub peale DNS-sätted või parandab pärast ühendamist marsruudi, on legitiimne põhjus midagi käivitada. Konks, mis ajutises kataloogis kutsub tundmatut binaarfaili, on põhjus peatuda.

Skripti tee loeb sama palju kui skript. Suhteline tee lahendatakse kataloogi suhtes, mida klient kasutab, ja kirjutatav kataloog muudab ühekordse impordi püsivaks käituspesaks. Absoluutsed teed kataloogis, mida kasutaja muuta ei saa, on vorm, mida eelistada.

Skriptid pärivad ka kliendi keskkonna, kus elavad volitused ja ühenduse metaandmed. Just see pärimine teeb taseme 3 ohtlikuks koos skriptiga, mis logib oma keskkonda, ja seepärast väärib skriptidega kliendi diagnostiline väljavõte teist pilku enne, kui see piletisse kleepida. Eemaldage keskkond enne, kui seda jagate.

grep -nE 'script-security|^up |^down |tls-verify' client.ovpn

Muutke ühte asja ja jälgige siis ka mahavõtmist

Kui profiil tõesti vajab skripti, muutke ainult taset ja ainult selle profiili puhul. Käivitage klient esiplaanil üksikasjaliku väljundiga, et skripti enda vead oleksid nähtavad, mitte teenusehalduri poolt alla neelatud.

openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default

Testige kogu elutsüklit, mitte ainult ühendamist. Ebaõnnestunud väljalülitamise konks jätab marsruudid osutama surnud tunnelile, mis annab masina, mis näib ühendatud ja ei jõua kuhugi. Enne muudatuse lõpetatuks kuulutamist ühenduge korra uuesti ja lahutage korra, ning kontrollige pärast kumbagi marsruutimistabelit.

Hoidke algse profiili koopia. Kui platvormi klient ei rakenda sama skriptimudelit, võib direktiivide kustutamine kuni impordi õnnestumiseni eemaldada DNS-i või marsruudi integratsiooni, mida tunnel vajas, ja tulemuseks olev ühendus autendib laitmatult, lahendamata midagi.

Kirja pandav otsus on kitsas: milline skript, millisel teel, millisel tasemel lubatud, millise profiili jaoks. Kõik muu profiilis jääb muutumatuks, ja see on lause, mida ülevaataja saab kontrollida.

Seotud artiklid