Pievienojot --csd-wrapper profilam, vietējais skripts tiek nodots dēmonam, kas to izpilda pieteikšanās laikā, tāpēc lēmums jūsu priekšā ir koda pārskatīšana, nevis izvēles slēdzis. Opcija pastāv, lai varētu aizstāt vārtejas resursdatora pārbaudes komponentu, un tā pieņem ceļu uz skriptu, ko nodrošināt jūs. Viss zemāk pieņem, ka izvietošanas īpašnieks jau ir pateicis, kāda stājas pārbaude ir nepieciešama; ja šī daļa vēl ir atvērta, vispirms to atrisiniet. Rokasgrāmatā ir četri soļi: atrast neizdevušos posmu, izlasīt skriptu, izvēlēties identitāti, ar kuru tas darbojas, un pierādīt rezultātu.

Solis 1: Atrodiet neizdevušos posmu

Klienta pēdējais ziņojums parasti attiecas uz sīkfailu, un tas ir ķēdes beigas, nevis sākums. HTTPS pieteikšanās, servera sertifikāta pārbaude, autentifikācijas apmaiņa un stājas komponents visi atrodas šī ziņojuma priekšā.

Fiksējiet izmantoto versiju un pieteikšanās adresi, pēc tam atkārtojiet mēģinājumu, detalizēto izvadi paturot savā terminālī. Lasiet pirmo kļūdu, kas nav atkārtots mēģinājums, nevis ieraksta pēdējo rindu. Ja žurnāls apstājas pirms jebkura novērtējuma komponenta nosaukšanas, tad ietvars vēl nav jūsu problēma. Tā pievienošana šajā brīdī tikai paplašina virsmu, kas jums vēlāk būs jāaizsargā.

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

Glabājiet ierakstu lokāli, jo sīkfaili un autentifikācijas atbildes ir piekļuves materiāls. Tīmekļa sarunā ielīmēta pēda ir akreditācijas datu noplūde arī tad, kad novērtējuma solis šķiet nekaitīgs. Kopīgojiet kļūdas tekstu un vietu plūsmā, kur tā parādījās, nekad — saturu.

Solis 2: Izlasiet skriptu pirms tā nonāk profilā

Ietvars ir tik uzticams, cik pārskatītā versija, tāpēc fiksējiet šo versiju un glabājiet tās jaucējvērtību blakus apstiprinājuma piezīmei. Divas zemāk esošās komandas dod pirksta nospiedumu un lētu sintakses pārbaudi pirms vienas rindas lasīšanas. Tās arī dod nākamajai personai fiksētu atsauci, kas ir svarīgi, ja fails dzīvo ārpus pakotņu pārvaldības. Neviena komanda nepasaka, ko skripts dara, tāpēc izpildiet tās un turpiniet lasīt.

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

Lasiet visu failu, paturot prātā četrus jautājumus: vai tas veic izejošus HTTP izsaukumus, vai lasa akreditācijas datu failus vai vides mainīgos, vai raksta ārpus pagaidu direktorijas, un vai kāds zars ziņo par izturētu stāju, neko neizmērot. Pēdējais modelis ir politikas apiešana ar pievienotu žurnāla rindu. Kopētie ietvari to mēdz paslēpt aiz ticami izskata pārbaudes. Ja skripts nolemj, ka ierīce ir kārtībā, pirms paskatās uz ierīci, apstājieties tur.

Pārbaudiet arī iepakotas kravas, jo lasāma galvene neko nepierāda par pārējo failu. Skripta lejupielāde no foruma pavediena nepadara to uzticamu tikai tāpēc, ka tā nosaukums atbalso īstu resursdatora pārbaudes komponentu. Pierakstiet, kas to instalēja, no kurienes tas nāca un kā tas tiks atjaunināts.

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

Solis 3: Izvēlieties identitāti, ar kuru darbojas ietvars

--csd-user samazina privilēģijas, kamēr darbojas CSD, TNCC vai HIP programma. Šis konts ir daļa no vietējās izpildes kārtības, nevis lietotājvārds, kas iesniegts vārtejai.

Piešķiriet ietvaram atsevišķu kontu bez interaktīvas čaulas, bez sudo tiesībām un bez grupu dalības, kas tam nav vajadzīga. Piešķiriet lasīšanas piekļuvi skriptam un konkrētajiem failiem, ko tas pārbauda, pēc tam pārbaudiet privilēģiju samazināšanu pirms VPN profila aiztikšanas. Problēmu atrast šeit ir lētāk nekā atrast to klienta iekšienē.

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

Privilēģiju samazināšana ierobežo kaitējumu, ko var nodarīt slikts skripts. Tas nepārskata kodu, nepadara ziņojumu patiesu un nenosaka, ka vārtejas administrators pieņem šo ieviešanu kā ierīces politikas izpildi.

Solis 4: Saglabājiet izmaiņas atgriežamas

Izveidojiet profila rezerves kopiju pirms tā rediģēšanas un turiet ietvaru versiju kontrolē, lai atgriešana atjaunotu zināmu jaucējvērtību, nevis meklētu kopiju. Pierakstiet skripta ceļu, jaucējvērtību, izpildes lietotāju un apstiprinātāju vienā vietā.

Lai atgrieztu, noņemiet opciju, restartējiet klientu un apstipriniet, ka sākotnējā kļūda atgriežas. Ja vārteja pēc atgriešanas joprojām noraida pieteikšanos, ir mainījies arī kaut kas cits, un šīs atšķirības atrašana nāk pirms ietvara atkārtotas izmēģināšanas. Turiet iepriekšējo kopiju visu izmaiņu logu, kas lielākajai daļai komandu nozīmē līdz nākamā apkopes loga beigām.

Pēc veiksmīgas ieviešanas pārbaudiet divas lietas, nevis vienu: tunelis ceļas, un ierīce, kurai vajadzētu neizturēt stājas pārbaudi, joprojām tiek noraidīta. Savienojums, kas darbojas visiem, nav pierādījums, ka novērtējums pārdzīvoja jūsu izmaiņas.

Īsceļi, kas rada otru problēmu

Neļaujiet palīgam ziņot par atbilstošu stāvokli, neizpildot nepieciešamās pārbaudes, un nepārrakstiet platformas identitāti, lai tā atbilstu citai operētājsistēmai. Apgalvojums par citu platformu nav pierādījums, ka reālā ierīce atbilst politikai. Tas jūs atstāj ar klientu, kas melo katrā nākamajā pieteikšanās reizē.

Servera pārbaudes izslēgšana, veca sīkfaila atkārtota atskaņošana un nepārskatītu skriptu kraušana visi aizstāj redzamu neveiksmi ar neredzamu. Ja instalētais klients nevar pabeigt atbalstīto plūsmu, lūdziet apstiprinātu alternatīvu, nevis lieciet esošo.

OpenConnect rokasgrāmata atsevišķi dokumentē --csd-wrapper un --csd-user, un tas ir svarīgais mājiens: skripts un identitāte ir divi lēmumi. Pārskatiet tos atsevišķi un pierakstiet abus. Tad pieteikšanās uzvedne pārstāj būt mīkla, ko atrisināt, ielīmējot kodu.

Saistītie raksti