Додавање --csd-wrapper у профил предаје локалну скрипту демону који је извршава током пријаве, па је одлука пред вама преглед кода, а не прекидач поставке. Опција постоји да би се компонента провере домаћина на порталу могла заменити, и прима путању до скрипте коју ви обезбеђујете. Све испод претпоставља да је власник распоређивања већ рекао која је провера стања потребна; ако је тај део још отворен, решите га прво. Упутство има четири корака: пронађите фазу која није успела, прочитајте скрипту, изаберите идентитет под којим се извршава и докажите исход.

Корак 1: Пронађите фазу која није успела

Последња порука клијента обично је о колачићу, што је крај ланца, а не почетак. HTTPS пријава, провера сертификата сервера, размена аутентификације и компонента стања стоје пред том поруком.

Забележите верзију и адресу пријаве која се користи, затим поновите покушај са детаљним излазом задржаним на вашем терминалу. Прочитајте прву грешку која није поновни покушај, а не последњу линију записа. Ако се дневник заустави пре него што буде именована било која компонента процене, омотач још није ваш проблем. Његово додавање у том тренутку само проширује површину коју ћете касније морати да браните.

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

Чувајте запис локално, јер су колачићи и одговори аутентификације приступни материјал. Траг залепљен у разговор је цурење акредитива чак и када корак процене изгледа безбедно. Поделите текст грешке и тачку у току где се појавила, никада садржај.

Корак 2: Прочитајте скрипту пре него што уђе у профил

Омотач је поуздан онолико колико ревизија коју сте прегледали, зато фиксирајте ту ревизију и сачувајте њен хеш поред белешке о одобрењу. Две команде испод дају вам отисак и јефтину проверу синтаксе пре него што прочитате и једну линију. Оне дају и следећој особи фиксну референцу, што је важно када датотека живи изван управљања пакетима. Ниједна команда не говори шта скрипта ради, зато их извршите и наставите да читате.

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

Прочитајте целу датотеку са четири питања у глави: да ли прави одлазне HTTP позиве, да ли чита датотеке акредитива или променљиве окружења, да ли пише изван привременог директоријума и да ли нека грана извештава о прођеном стању без мерења ичега. Последњи образац је заобилажење политике са прикаченом линијом дневника. Копирани омотачи имају обичај да га прошверцују иза провере која изгледа уверљиво. Ако скрипта одлучи да је уређај у реду пре него што погледа уређај, зауставите се ту.

Проверите и спаковане садржаје, јер читљиво заглавље ништа не доказује о остатку датотеке. Преузимање скрипте са форумске теме не чини је поузданом само зато што њено име подсећа на стварну компоненту провере домаћина. Забележите ко је инсталирао, одакле је дошла и како ће се ажурирати.

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

Корак 3: Изаберите идентитет под којим се омотач извршава

--csd-user снижава привилегије док се извршава програм CSD, TNCC или HIP. Тај налог је део локалног уређења извршавања, а не корисничко име послато порталу.

Дајте омотачу посебан налог без интерактивне шкољке, без sudo права и без чланстава у групама која му не требају. Дозволите читање скрипте и конкретних датотека које прегледа, затим тестирајте снижење привилегија пре него што дотакнете VPN профил. Проналажење проблема овде је јефтиније од проналажења унутар клијента.

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

Снижење привилегија ограничава штету коју лоша скрипта може да нанесе. Оно не прегледа код, не чини извештај истинитим и не утврђује да администратор портала прихвата ову реализацију као испуњење политике уређаја.

Корак 4: Сачувајте промену повратном

Направите резервну копију профила пре измене и држите омотач под контролом верзија, да би враћање обновило познати хеш уместо да тражи копију. Запишите путању скрипте, хеш, корисника извршавања и одобраваоца на једном месту.

Да бисте вратили, уклоните опцију, поново покрените клијента и потврдите да се првобитна грешка враћа. Ако портал и после враћања одбија пријаву, променило се и нешто друго, а проналажење те разлике претходи новом покушају са омотачем. Сачувајте претходну копију током целог прозора измена, што за већину тимова значи до престанка следећег прозора одржавања.

После успешног распоређивања проверите две ствари, а не једну: тунел се подиже и уређај који треба да не прође проверу стања и даље се одбија. Веза која ради за све није доказ да је процена преживела вашу измену.

Пречице које стварају други проблем

Не дозволите помоћнику да пријави усклађено стање без извршавања потребних провера и не мењајте идентитет платформе да би се подударао с другим оперативним системом. Тврдња о другој платформи није доказ да стварни уређај испуњава политику. То вас оставља са клијентом који лаже при свакој будућој пријави.

Искључивање провере сервера, поновно пуштање старог колачића и гомилање непроверених скрипти мењају видљив неуспех невидљивим. Ако инсталирани клијент не може да заврши подржани ток, затражите одобрену алтернативу уместо да савијате постојећи.

Приручник за OpenConnect одвојено документује --csd-wrapper и --csd-user, и то је савет који је важан: скрипта и идентитет су две одлуке. Прегледајте их одвојено и запишите обоје. Тада позив за пријаву престаје да буде загонетка коју решавате лепљењем кода.

Повезани чланци