Mae ychwanegu --csd-wrapper at broffil yn rhoi sgript leol i ddemonaidd sy’n ei rhedeg yn ystod mewngofnodi, felly’r penderfyniad o’ch blaen yw adolygiad cod, nid togl dewis. Mae’r opsiwn yn bodoli fel y gellir disodli cydran gwirio gwesteiwr y porth, ac mae’n cymryd llwybr at sgript rydych chi’n ei ddarparu. Mae popeth islaw’n tybio bod perchennog y defnydd eisoes wedi dweud pa wiriad osgo sydd ei angen; os yw’r rhan honno’n dal ar agor, setlwch hi’n gyntaf. Mae pedwar cam i’r llawlyfr: dod o hyd i’r cam a fethodd, darllen y sgript, dewis y hunaniaeth y mae’n rhedeg o dani, a phrofi’r canlyniad.

Cam 1: Dod o hyd i’r cam a fethodd

Y neges olaf gan y cleient fel arfer yw am gwci, sef diwedd cadwyn yn hytrach na’i dechrau. Mae mewngofnodi HTTPS, gwiriad tystysgrif gweinydd, cyfnewid dilysu a chydran osgo i gyd yn sefyll o flaen y neges honno.

Cofnodwch y fersiwn a’r cyfeiriad mewngofnodi sy’n cael eu defnyddio, yna ailadroddwch yr ymgais gyda allbwn manwl yn cael ei gadw ar eich terfynell eich hun. Darllenwch y gwall cyntaf nad yw’n ailgynnig, nid llinell olaf y trawsgrifiad. Os yw’r log yn stopio cyn i unrhyw gydran asesu gael ei henwi, nid yw’r lapio yn eich problem chi eto. Dim ond lledu’r arwyneb y bydd yn rhaid i chi ei amddiffyn yn ddiweddarach y mae ei ychwanegu ar y pwynt hwnnw.

openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/null

Cadwch y trawsgrifiad yn lleol, oherwydd bod cwcis ac ymatebion dilysu’n ddeunydd mynediad. Mae ôl-traws wedi’i bastio i edefyn sgwrs yn golled credlyfr hyd yn oed pan fo’r cam asesu’n edrych yn ddiniwed. Rhannwch destun y gwall a’r pwynt yn y llif lle gwnaeth ymddangos, byth y llwyth.

Cam 2: Darllenwch y sgript cyn iddi fynd i broffil

Dim ond mor ddibynadwy â’r diwygiad a adolygoch yw lapio, felly pinwch y diwygiad hwnnw a storiwch ei hash wrth ymyl y nodyn cymeradwyo. Mae’r ddau orchymyn isod yn rhoi eich ôl-bys a gwiriad cystrawen rhad cyn i chi ddarllen un llinell. Maent hefyd yn rhoi cyfeiriad sefydlog i’r person nesaf, sy’n bwysig pan fo’r ffeil yn byw y tu allan i reoli pecynnau. Nid yw’r un gorchymyn yn dweud beth mae’r sgript yn ei wneud, felly rhedwch nhw a pharhewch ddarllen.

sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.sh

Darllenwch y ffeil gyfan gyda phedwar cwestiwn mewn golwg: a yw’n gwneud galwadau HTTP allan, a yw’n darllen ffeiliau credlyfr neu newidynnau amgylchedd, a yw’n ysgrifennu y tu allan i gyfeiriad dros dro, ac a yw unrhyw gangen yn adrodd osgo sy’n pasio heb fesur unrhyw beth. Mae’r patrwm olaf hwnnw’n osgoi polisi gyda llinell log ynghlwm. Mae lapiodi copïedig yn tueddu i’w smyglo i mewn y tu ôl i wiriad sy’n edrych yn gredadwy. Os yw’r sgript yn penderfynu bod y ddyfais yn iawn cyn iddi edrych ar y ddyfais, stopiwch yno.

Gwiriwch am lwythi paciedig hefyd, oherwydd nid yw pennawd darllenadwy’n profi dim am weddill y ffeil. Nid yw lawrlwytho sgript o edefyn fforwm yn ei gwneud hi’n ddibynadwy dim ond oherwydd bod ei henw’n atseinio cydran gwirio gwesteiwr go iawn. Cofnodwch pwy a’i gosododd, o ble y daeth, a sut y bydd yn cael ei diweddaru.

grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.sh

Cam 3: Dewiswch y hunaniaeth y mae’r lapio yn rhedeg o dani

Mae --csd-user yn gollwng breintiau wrth i’r rhaglen CSD, TNCC neu HIP weithredu. Mae’r cyfrif hwnnw’n rhan o’r trefniant gweithredu lleol, nid yr enw defnyddiwr a gyflwynir i’r porth.

Rhowch gyfrif penodedig i’r lapio heb gragen ryngweithiol, heb hawliau sudo ac heb aelodaeth grŵp nad oes ei hangen. Caniatäwch fynediad darllen i’r sgript ac i’r ffeiliau penodol y mae’n eu harchwilio, yna profwch y gollwng cyn i chi gyffwrdd â’r proffil VPN. Mae dod o hyd i’r broblem yma’n rhatach na dod o hyd iddi y tu mewn i’r cleient.

sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.sh

Mae gollwng breintiau’n cyfyngu’r niwed y gall sgript wael ei wneud. Nid yw’n adolygu’r cod, nid yw’n gwneud yr adroddiad yn wir, ac nid yw’n sefydlu bod gweinyddwr y porth yn derbyn y gweithrediad hwn fel un sy’n bodloni polisi dyfeisiau.

Cam 4: Cadwch y newid yn wrthdro

Gwnewch gopi wrth gefn o’r proffil cyn ei olygu, a chadwch y lapio o dan reolaeth fersiwn fel bod rhoi’r gorau iddi’n adfer hash hysbys yn hytrach na hela am gopi. Ysgrifennwch lwybr y sgript, y hash, y defnyddiwr gweithredu a’r cymeradwywr mewn un lle.

I wrthdroi, tynnwch yr opsiwn, ailgychwynnwch y cleient a chadarnhewch fod y gwall gwreiddiol yn dychwelyd. Os yw’r porth yn dal i wrthod y mewngofnodi ar ôl y wrthdroi, mae rhywbeth arall wedi newid hefyd, ac mae dod o hyd i’r gwahaniaeth hwnnw’n dod cyn rhoi cynnig arall ar y lapio. Cadwch y copi blaenorol am hyd y ffenestr newid, sydd i’r rhan fwyaf o dimau’n golygu hyd nes bod y slot cynnal nesaf wedi mynd heibio.

Ar ôl rholio allan yn llwyddiannus, gwiriwch ddau beth yn hytrach nag un: mae’r twnnel yn codi, ac mae dyfais a ddylai fethu’r gwiriad osgo yn dal i gael ei gwrthod. Nid yw cysylltiad sy’n gweithio i bawb yn dystiolaeth bod yr asesiad wedi goroesi eich newid.

Llwybrau byr sy’n creu ail broblem

Peidiwch â gadael i’r cynorthwyydd adrodd cyflwr cydymffurfiol heb redeg y gwiriadau gofynnol, a pheidiwch â throsfeddiannu hunaniaeth y platfform i gyd-fynd â system weithredu arall. Nid yw honni platfform gwahanol yn dystiolaeth bod y ddyfais go iawn yn bodloni polisi. Mae’n eich gadael â chleient sy’n dweud celwydd ar bob mewngofnodi yn y dyfodol.

Mae analluogi dilysu gweinydd, ailchwarae cwci hen a pheli sgriptiau heb eu hadolygu i gyd yn cyfnewid methiant gweladwy am un anweladwy. Os na all y cleient sydd wedi’i osod gwblhau’r llif a gefnogir, gofynnwch am ddewislen gymeradwy yn lle plygu’r un sydd gennych.

Mae llawlyfr OpenConnect yn dogfennu --csd-wrapper a --csd-user ar wahân, a dyna’r awgrym sy’n bwysig: mae’r sgript a’r hunaniaeth yn ddau benderfyniad. Adolygwch nhw ar wahân ac ysgrifennwch y ddau. Yna mae’r anogwr mewngofnodi’n peidio â bod yn ddirgelwch rydych chi’n ei ddatrys trwy bastio cod.

Erthyglau cysylltiedig