Jūsu .ovpn fails var izpildīt kodu, ne tikai maršrutēt datplūsmu
Profils, kas nosauc up vai down palīgu, izpilda kodu ar jūsu tiesībām. Pārbaudiet ceļu, īpašumtiesības, tīrīšanu un script-security iestatījumu.
Lielākā daļa cilvēku .ovpn failu lasa tāpat, kā lasa maršrutētāja iestatījumu lapu: adreses, maršruti, šifru saraksts. Daļa, kas izpilda kodu, atrodas tuvu apakšai, blakus direktīvām, kas izskatās pēc santehnikas darbiem, un tā darbojas ar tām tiesībām, kādas klientam jau ir. Tā ir plaisa, ko izmanto nevīžīgs vai ļaunprātīgs profils, un tā ir arī plaisa, kas noderīgu DNS palīgu pēc trim nedēļām pārvērš atbalsta problēmā. Notikuma direktīva, drošības līmenis un faila īpašumtiesības nosaka, kas var notikt; skripta saturs nosaka, kas notiek patiešām. Izlasiet visus četrus pirms pieslēgšanās.
Profils, kas palaiž palīgu, ir programma, nevis iestatījumu fails
Direktīvas, piemēram, route un dhcp-option, apraksta stāvokli, kas klientam jāizveido, un klients tās uztver kā datus. up skripts ir citāds: klients to palaiž kā procesu un dod tam vidi, kas pilna ar savienojuma detaļām, tāpēc viss, ko tā autors rakstījis, darbojas ar jūsu konta tiesībām. Portatīvajā datorā, kur lietotājs ir administrators, tās ir plašas durvis failam, kas atnāca kā pielikums vai ielīmēts no foruma pavediena. Atšķirība nav stilistiska, tā ir atšķirība starp konfigurāciju un kodu.
Mīts, no kura vērts atteikties, ir tas, ka profils var tikai novirzīt datplūsmu. Palīgs, kas izpilda ip route add, un tas, kas izpilda curl pret attālu resursdatoru, ir viens un tas pats mehānisms, un profils no ārpuses izskatās identisks. Nekas faila izskatā nepasaka, kurš jums ir, tāpēc pārbaudei jāsasniedz pats skripts.
Kas patiešām nosaka izpildi, un kā izskatās to atļaujošās rindas
Palīgu kontrolē trīs lietas: to nosaucošā notikuma direktīva, to atļaujošais script-security līmenis un pašas klienta platformas ieviešana. Profils var pieprasīt āķi un tomēr neredzēt neko notiekam, jo mobilais klients vai samazināta darbvirsmas būve var to notikumu nemaz neieviest. Tāpat profils, kas pieprasa vairāk atļaujas, nekā nepieciešams tā funkcijai, pasaka kaut ko par savu izcelsmi. Atļaujas līmenis ir spēja, nevis apstiprinājums. Atļaujošās rindas izskatās šādi, un ceļš stāv jūsējā vietā.
script-security 2
up /etc/openvpn/update-resolv-conf.sh
down /etc/openvpn/update-resolv-conf.sh0. līmenis atsakās no ārējām programmām, un 1. līmenis, kas ir noklusējums, atļauj tikai klienta iebūvētos izpildfailus, tāpēc āķim vajag 2 vai augstāk; 3. līmenis pastāv galvenokārt veco paroļu pārzināšanai, un no tā labāk izvairīties. Profilam, kas piegādāts ar āķi, vajag gan direktīvu, gan šo līmeni, tāpēc viena rinda netālu no faila apakšas pelna tādu pašu pārbaudi kā sertifikāta bloks. OpenVPN rokasgrāmatā ir uzskaitīti atļauju līmeņi, un tās formulējumu ir vērts lasīt līdzās tam, ko profils patiešām pieprasa.
Īpašumtiesības, ceļš un ar ko baro palīgu
Profils, kuram uzticaties, bet kas norāda uz skriptu, ko cits konts var pārrakstīt, nav uzticama vienošanās, jo vakardienas pārbaude vairs neapraksta to, kas darbojas šodien. Pārbaudiet palīga īpašnieku un režīmu un pārliecinieties, ka konfigurētais ceļš ved uz failu, kuru pārbaudījāt, nevis uz nosaukumu, kuru kaut kas cits var aizēnot. Argumenti un vide pelna tādu pašu skatienu: klients nodod savienojuma detaļas āķim, un palīgs, kas reģistrē visu savu vidi, var rakstīt akreditācijas datus atbalsta biļetē. Dodiet priekšroku dokumentētai operatora vai platformas integrācijai, nevis DNS skriptam, kas nokopēts no nesaistīta ieraksta, jo divi atrisinātāju pārvaldnieki, kas strīdas par vienu un to pašu failu, rada kļūmi, kas izskatās kā salūzis VPN.
Kad ziņojat par neveiksmīgu āķi, rediģējiet vidi pirms tās ielīmēšanas jebkur. Atkļūdošanā palīdzējošais izgūtais saturs var arī nest žetonu, kas jūs autentificē.
Tīrīšanas kļūmes parādās pēc tam, kad tunelis ir prom
up palīgs pievieno maršrutus un atrisinātāja iestatījumus, un down palīgam tie atkal jānoņem. Kad down āķa nav, tas klusi neizdodas vai nekad neizpildās, jo klients tika nogalināts, atlikumi pārdzīvo sesiju. Tad datplūsma iet ceļu, ko neviens neplānoja, un nosaukumi tiek atrisināti caur atrisinātāju, kas būtu jānoņem, kamēr pats tunelis izskatās vesels. Šie simptomi parādās pēc atvienošanās, tāpēc tiek vainots tīkls, nevis profils.
Pārbaudiet demontāžu kā atsevišķu soli: paceliet tuneli, pierakstiet maršrutus un atrisinātāju, nolaidiet to, tad apstipriniet, ka abi ir prom. Profils, kas pieslēdzas tīri, joprojām var atstāt stāvokli, un palīga nulles iziešanas kods nepierāda, ka atrisinātājs nonāca tur, kur jūs domājat.
Palīga pārskatīšana un izejas saglabāšana
Izlasiet skriptu no sākuma līdz beigām, meklējot trīs lietas: komandas, kurām vajadzīgas tiesības, cieti kodētus ceļus, kas jūsu sistēmā var nebūt, un jebkuru tīkla izsaukumu, ko tas veic. Pēc tam apskatiet, kā tas neizdodas, jo palīgs, kas aprī kļūdas, konfigurācijas kļūdu pārvērš noslēpumā. Ja nevarat vienā teikumā pateikt, ko skripts dara un kas to var mainīt, jūs neesat gatavs to iespējot. Profils, kas pieprasa vairāk tiesību, nekā prasa šis teikums, ir signāls apstāties.
Glabājiet pēdējo strādājošo profilu un palīgu, uz kuru tas norādīja, aizsargātā krātuvē, atzīmējot abas versijas, lai atritināšana būtu kopija, nevis pārbūve sliktākajā brīdī. Ja palīgs pastāv tikai izplatījumam vai klienta versijai, kurai tas vairs nav vajadzīgs, izbeidziet to konfigurācijā, kurai pieder iestatījums, nevis ceļot tiesības, kamēr kļūdas neapstājas. Tā ir izeja: mazāk kustīgu daļu, nevis vairāk atļaujas.