Mae angen digwyddiad ar sgript sy’n gorfod rhedeg ar ôl i’r VPN ddod i fyny, gan y gydran sy’n berchen ar y cysylltiad. Nid yw ffeil a roddir mewn hen gyfeiriadur bachyn rhwydwaith yn alwad-yn-ôl ar gyfer pob VPN y gall NetworkManager, pppd neu broses OpenVPN annibynnol ei chreu. Mae pob un o’r perchnogion hynny’n adrodd digwyddiad gwahanol ag amgylchedd gwahanol, felly rhaid nodi’r perchennog cyn dewis y bachyn. Fel arall mae’r sgript yn gywir ac yn syml byth yn rhedeg.

Ar gyfer VPN a reolir gan NetworkManager, y trefnydd yw’r lle iawn, a vpn-up yw’r weithred iawn.

Defnyddiwch vpn-up, nid digwyddiad y rhyngwyneb

Mae’r trefnydd yn gwahaniaethu up rhag vpn-up. Mae’r cyntaf yn adrodd rhyngwyneb wedi’i actifadu; mae’r ail yn adrodd cysylltiad VPN wedi’i actifadu. Nid yw Wi-Fi yn codi’n meddwl ond bod y cyswllt sylfaenol yn bodoli; gall y tiwnel fod yn dal i drafod, neu efallai na fydd byth yn dilysu.

Mae’r sgript yn derbyn y rhyngwyneb a’r weithred, tra bod manylion y cysylltiad yn dod drwy’r amgylchedd, gan gynnwys UUID y proffil a rhyngwyneb IP y VPN. Darllenwch y newidynnau hynny yn lle casglu pwy ydych o enwau dyfeisiau.

Cyfyngwch y cyfateb i un cysylltiad

Cyfatebwch ar UUID y cysylltiad, neu ar bwy bynnag arall y mae’r trefnydd yn ei ddarparu, yn hytrach na rhagddodiad tun neu ppp0. Nid yw enwau rhyngwynebau’n sefydlog, gall mwy nag un tiwnel fodoli ar yr un pryd, a gall dau broffil gario’r un enw arddangos. Mae cyfateb rhagddodiad tun yn golygu y bydd y sgript yn y pen draw yn tanio ar gyfer cysylltiad nad oedd neb am ei gyffwrdd. Gall hefyd danio ddwywaith ar gyfer un proffil pan fydd ailgysylltiad yn ailadeiladu’r ddyfais.

Gwnewch y dasg yn idempotent. Mae alwad-yn-ôl sy’n ychwanegu llwybr ar bob galwad yn y pen draw yn llenwi’r tabl â dyblygiadau, a’r ail gopi yw’r un sy’n torri llwybreiddio.

Gwybyddwch beth nad yw actifadu’n ei brofi

Mae vpn-pre-up yn rhedeg cyn i NetworkManager adrodd bod y VPN wedi’i actifadu’n llawn, ac mae’r rheolwr yn aros am y sgriptiau hynny. Defnyddiwch gam blocio dim ond pan fo’r dasg yn wir yn perthyn yno, oherwydd mae gwiriad araf yn oedi’r actifadu y mae pob cydran arall yn aros i’w weld.

Nid yw llwybrau’n bresennol yn profi bod rhaglen yn gwrando, bod enw preifat yn datrys, na bod sesiwn defnyddiwr yn bodoli. Gwiriwch y rheini ar wahân gyda therfyn amser cyfyngedig, ac adroddwch pa haen a fethodd yn lle ailgynnig y gadwyn gyfan.

Parchwch y cyd-destun y mae’r sgript yn rhedeg ynddo

Mae sgriptiau’r trefnydd yn rhedeg fel root, y tu allan i unrhyw sesiwn defnyddiwr. Peidiwch â chymryd yn ganiataol bod amgylchedd y defnyddiwr sydd wedi mewngofnodi, ei sesiwn graffigol, na chylch allweddi heb ei gloi ar gael. Ni ddylai neb ymateb i gyd-destun bwrdd gwaith coll drwy wneud pob cymhwyster yn ddarllenadwy i bob proses. Cadwch waith sesiwn defnyddiwr mewn gwasanaeth defnyddiwr neu gymorthydd sesiwn y gall yr alwad-yn-ôl ei signalau heb efelychu’r defnyddiwr.

Mae perchnogaeth a chaniatadau ar y sgript yn bwysig hefyd. Mae ffeil a weithredir fel root y gall unrhyw ddefnyddiwr ei disodli yn ffordd i ddyrchafu braint, ac mae’n ganfyddiad sy’n annibynnol o p’un a yw rhesymeg y VPN yn gywir.

Cynlluniwch ar gyfer y datgysylltiad na fydd byth yn tanio

Mae NetworkManager yn nodi nad yw vpn-pre-down yn cael ei allyrru ar gyfer datgysylltiadau gorfodedig fel terfyniad annisgwyl neu golled cysylltedd. Felly mae glanhau a adeiledir dim ond o amgylch pre-down gorffenedig yn anghyflawn o’i natur. Mae angen perchennog arall ar unrhyw gyflwr a rennir y mae’r sgript yn ei newid, un a all ei adfer ar ôl damwain, ac mae’n rhaid profi’r llwybr adfer hwnnw yn hytrach na’i dybio.

Rhowch gynnig ar y bachyn gyda chysylltiad arferol, ailgysylltiad, datgysylltiad bwriadol a chebl wedi’i dynnu. Cofnodwch yr UUID, y weithred a’r rhyngwyneb a daniodd, heb gofnodi cyfrinachau. Y cofnod hwnnw yw’r unig dystiolaeth ddibynadwy bod y bachyn wedi rhedeg ar gyfer y cysylltiad y gwnaethoch ei fwriadu, a hwnnw sy’n gwneud y newid nesaf yn ddiogel.

Erthyglau cysylltiedig