Klantheak of serverheak? Wêr’t in OpenVPN-skript rint
In skriptpaad yn in serverkonfiguraasje is in paad op ’e server. Kies de heak nei de masine dy’t it wurk dwaan moat, en hâld op mei ferwachtsjen dat in push koade op in laptop rint.
De taak is dúdlik: as in laptop ferbynt, moat der wat op ’e laptop feroarje. De konfiguraasje dy’t bewurke wurdt heart by de server, en dêr brekt de oanname. In paad yn in serverbestân neamt in bestân op dy server, en gjin inkelde push feroaret waans proses it útfiert. Kieze tusken de twa heakken is benammen beslute hokker masine it wurk besit en de grinzen akseptearje dy’t dêrút folgje.
Twa masines, twa fragen om earst te beantwurdzjen
Freegje wêr’t de steatferoaring barre moat, freegje dan hokker evenemint dêrby heart. As de feroaring in autorisaasje per brûker is of in konfiguraasjebeslút per klant, heart dy dêr’t de brûkersmap bekend is: de server. As de feroaring in rûte is, in resolverynstelling of in pleatslike helper op in einpunt, heart dy op it einpunt, en allinnich it einpunt kin it dwaan.
Dy twa fragen yn ’e oare folchoarder beantwurdzje is hoe’t minsken einigje mei it besykjen in batchbestân nei in Windows-laptop te triuwen. De server wit wa’t ferbûn is; de laptop wit hoe’t syn eigen netwurkstapel derút sjocht. Gjin fan beiden hat de ynformaasje fan ’e oare, en it besykjen mislearret meastentiids stil ynstee fan mei in dúdlike flater.
Foardat beide is in tredde fraach it wurdich: biedt it platfoarm ek mar de heak dy’t jo wolle? In apparaat dat syn eigen konfiguraasje generearret, biedt miskien net deselde evenemintnammen, en in desktopklant dy’t in .ovpn-bestân ymportearret is net needsaaklik deselde klant dêr’t it bestân foar skreaun is. It platfoarm earst befêstigje besparret jo it ûntwerpen om in heak hinne dy’t dêr net bestiet. It fertelt jo ek hokker dokumintaasje echt jildt foar de masine foar jo.
De serverside-opsje: in evenemint per ferbining
In client-connect-skript rint yn ’e proseskontekst fan ’e server as in autentisearre klant ferbynt, en it krijt dokumintearre ferbiningsdetails lykas de common name en it tawiisde adres. It is it goede plak om in konfiguraasjefragmint per klant te skriuwen, in beliedsbeslút ôf te twingjen of steat fêst te lizzen dy’t de server besit.
It ûnderskied dat minsken misse is it ferskil tusken dy heak en in server-up-heak. De up-heak giet ôf as de server syn tunnelapparaat iepenet, wat op in server mei meardere klanten ien kear by daemonstart bart. It is gjin evenemint per oanmelding, en koade dy’t dêr pleatst wurdt rint as de tsjinst start, net as brûkers ferbine.
Op in apparaat mei in webynterface brûk it stipe útwreidingsmeganisme ynstee fan generearre daemonbestannen te bewurkjen. Generearre bestannen wurde by de folgjende bewarring oerskreaun, en it oerskriuwen ferwideret jo feroaring stil op it minst mooglike momint. Hâld in kopy fan ’e útwreidingstekst bûten it apparaat, sadat in firmwarefernijing it doel ek net ferliest.
De klientside-opsje: wurk dat pleatslik rinne moat
In mienskips-klant kin in pleatslik skript rinne litte as it tunnelapparaat omheech komt en wer as rûtes ynstalleare wurde. Dat binne twa ferskillende mominten, en de ferkearde kieze makket de klassike race wêryn in helper start foardat de rûte dêr’t er fan ôfhinget bestiet.
De helper moat op dy klant bestean, lêsber en útfierber wêze foar it akkount dat de klant rint, en tastien wêze troch in eksplisite script-security-ynstelling. In skript dat wurket as jo de klant as administrator starte, seit neat oer in tsjinst foar oanmelding of oer de sesje fan in oare brûker.
Nammen meitsje ek út. De up-heak heart by it meitsjen fan it apparaat en route-up by it ynstallearjen fan rûtes, mar in taak dy’t in partikulier netwurk berikber hawwe moat, moat berikberens ferifiearje ynstee fan oan te nimmen dat it meitsjen fan it apparaat betsjut dat elke rûte, resolver-yngong en applikaasje klear is.
Wêrom’t it triuwen fan útfierbere koade net op it menu stiet
Pushte opsjes binne bewust beheind, en opsjes dy’t skripts útfiere binne ien fan ’e kategoryen dy’t de server net trochjaan mei. Dy beheining bestiet omdat it alternatyf in kompromittearre of ferkeard konfigurearre server tastean soe willekeurige opdrachten te rinnen op elke klant dy’t ea ferbynt.
It pleatslik ynskeakeljen fan skriptútfiering feroaret dat net. Jo script-security-ynstelling tasteit pleatslike skripts dy’t jo sels keazen hawwe; it jout de server gjin tastimming om nije te leverjen.
As it doel gewoan is VPN-rûtes te ynstallearjen, brûk dan de stipe rûtekonfiguraasje ynstee fan in skema foar op ôfstân útfiere te betinken. As it doel echt pleatslike koade fereasket, ferspried it dan fia de einpuntbehear-ark fan ’e organisaasje en beoardielje it as elke oare software dy’t mei de foarrjochten fan ’e brûker rint.
Wat te ferifiearjen foardat jo ien fan beide heakken fertrouwe
Skriuw fjouwer dingen op foar elke heak: de masine, de evenemintnamme, it akkount dêr’t er ûnder rint, en de steatferoaring dy’t er produsearje moat. Test dan de ferbining, in werferbining en it opromjepaad, want in heak dy’t steat lekket by werferbining is slimmer as ien dy’t nea rûn hat.
Test ûnder it akkount dat it echt útfiere sil, op it momint dat it echt útfierd wurde sil. De hânlieding openvpn(8) dokumintearret beide heakfamyljes en de push-beheiningen; it platfoarm dêr’t jo op útrôlje dokumintearret oft it dy ek mar bleatsteld. In skript dat slagget yn in ynteraktive administratorterminal is in hypoteze, gjin ferifikaasje.