Lebo za uwekaji ni sababu ya kawaida kwa nini watu hukimbilia kipengele hiki: kila muunganisho unapaswa kubeba kitu kama tovuti au jukumu, na seva inapaswa kuisoma bila kubuni muundo wa pili wa vitambulisho. OpenVPN ya jamii tayari ina utaratibu huo, na ni mdogo. Sehemu inayoumiza ni matarajio. Kuweka kigezo cha kawaida katika wasifu wa mteja hakufanyi chochote kwenye seva, na thamani inayofika inathibitisha tu kwamba mteja aliituma.

Hiki ni kitabu cha mwongozo kwa njia inayofanya kazi, hatua ya uthibitishaji inayoonyesha kilichofika kwa kweli, na kurudi nyuma kusikoacha ndoano iliyosanidiwa nusu. Hakuna chochote hapa kinachohitaji cheti kipya, programu-jalizi mpya au upanuzi wa itifaki.

Weka kigezo na uwashe njia

Mistari miwili hufanya kazi katika wasifu wa mteja, na zote mbili zinahitajika. Bila ya kwanza hakuna cha kutuma; bila ya pili mteja haitoi taarifa za rika hata kidogo. Mpangilio hauna umuhimu, na ni vyema kujua hilo kwa sababu mistari miwili mara nyingi huishia sehemu tofauti za wasifu uliozalishwa. Kilicho muhimu ni kwamba zote mbili zistahimili chochote kinachoandika upya wasifu kabla mteja kuusoma.

setenv UV_DEPLOY field-support
push-peer-info

UV_ kiambishi awali si mapambo. Kigezo cha kawaida cha DEPLOY hubaki ndani ya mchakato wa mteja na hakiwahi kusambazwa, ilhali umbo lenye kiambishi awali ni nafasi ya majina ambayo itifaki huhifadhi kwa sehemu zilizofafanuliwa na mtumiaji. Acha sehemu nyingine ya wasifu ulioidhinishwa ikiwa salama na uthibitishe kabla ya uwekaji kwamba build ya mteja unayoweka inaunga mkono maagizo yote mawili.

Ukaguzi mmoja wa kimatendo unafaa hapa, si mwishoni: hakikisha agizo linafika kwenye binary ya mteja na hakilimezwi na kifuniko. Mteja wa picha anayezalisha mstari wake wa amri, au kiolesura cha usimamizi kinachopakia upya wasifu uliohifadhiwa, vinaweza kutupa mistari ambayo havitambui. Ikiwa seva haioni chochote, hapa ndipo mahali pa kwanza pa kuangalia.

Soma sehemu kutoka ndoano ya seva

Upande wa seva, taarifa za rika zilizopokelewa huthibitishwa na kuwekwa katika mazingira ya mtiririko wa kazi wa muunganisho, na hilo ndilo linaifanya isomeke kutoka ndoano bila kazi yoyote ya itifaki kutoka kwako. Seva haihitaji kuchanganua chaneli ya udhibiti au kuhifadhi chochote kwa ajili yako; thamani ipo tu wakati muunganisho unasanidiwa. Script ndogo ya client-connect inayorekodi lebo kando ya jina lililothibitishwa inaonekana hivi.

#!/bin/sh
# /etc/openvpn/server/hooks/label.sh
printf '%s %s\n' "$common_name" "${UV_DEPLOY:-unset}" \
  >> /var/log/openvpn/deploy-labels.log

Soma kigezo kupitia mazingira badala ya kuchanganua kumbukumbu, na uipe thamani chaguo-msingi kila wakati. ${UV_DEPLOY:-unset} huweka script ikiwa inafanya kazi kwa wateja ambao hawatumi sehemu hiyo kamwe, ambayo ni hali ya kawaida wakati wa uwekaji wa hatua kwa hatua. Usimwage mazingira yote kwenye kumbukumbu ili kupata jina; yana mengi zaidi kuliko lebo, ikiwa ni pamoja na thamani ambazo hukukusudia kuzihifadhi.

Endesha script kwa mkono na itaripoti unset kwa kila kitu, kwa sababu ganda la mkono halibebi mazingira ya muunganisho. Hilo si hitilafu katika script na si uthibitisho kwamba sehemu haipo. Ijaribu kupitia muunganisho halisi, muktadha pekee ambao kigezo kinapatikana.

Hakikisha kilichofika kwa kweli

Unganisha mteja mmoja mwenye lebo na mmoja asiye nayo, kisha soma faili. Jozi ndiyo jaribio: mstari mmoja unapaswa kubeba thamani na mwingine chaguo-msingi, na zote mbili zinapaswa kutaja utambulisho ule ule uliothibitishwa unaotarajia.

tail -n 5 /var/log/openvpn/deploy-labels.log
# field-support deployed-client-07
# unset         legacy-laptop-02

Mistari hiyo ya maoni ni umbo la matokeo, si nakala kutoka seva yako; soma faili yako mwenyewe. Ikiwa mteja wa pili pia anaonyesha thamani, kigezo kimewekwa mahali pengine katika mazingira, na unasoma mpangilio wa zamani badala ya sehemu ya rika.

Angalia pia kumbukumbu ya seva kwa muunganisho. Taarifa za rika zinaweza kuonekana hapo, jambo ambalo ni rahisi kwa utatuzi wa hitilafu na sababu ya kuweka thamani zisizovutia: hakuna majina ya watu, hakuna nambari za tikiti, hakuna kitu ambacho usingependa msomaji wa kumbukumbu akione.

Chukulia lebo kama madai, si utambulisho

Yeyote anayeweza kuhariri wasifu wa mteja anaweza kubadilisha lebo, na handaki kuwa lililothibitishwa hakulifanyi lebo kuwa na mamlaka. Usafirishaji hulinda thamani ikiwa njiani; hauthibitishi madai hayo. Idhini bado ni ya utambulisho uliothibitishwa na rekodi ya usajili ambayo seva inamiliki, na lebo hulinganishwa na rekodi hiyo inapohitajika.

Tofauti hiyo huamua lebo inaweza kutumika wapi. Matumizi mazuri ni kuelekeza kipindi kwenye faili sahihi ya kumbukumbu, kuchagua kikundi cha kuonyesha kwenye dashibodi, au kuweka lebo kwenye kipindi cha msaada ili mtu aipate baadaye. Matumizi mabaya ni kuingiza kifaa kwenye subneti, kuchagua sera ya firewall, au kuamua data ya mteja gani kipindi kinaweza kusoma.

Thibitisha thamani kabla ya kufika kwenye njia, swali au amri ya ganda. Orodha ya kuruhusiwa ya mifuatano inayotarajiwa inatosha kwa lebo ya uwekaji, na haigharimu chochote. Kamwe usiingize mfuatano uliotolewa na rika kwenye mstari wa amri ya ganda, na weka kikomo kwa uchunguzi wowote uliohifadhiwa kwenye kipindi na si kwenye anwani ya handaki ambayo mteja anayefuata ataitumia tena.

case "${UV_DEPLOY:-}" in
  field-support|field-qa|lab) : ;;
  *) UV_DEPLOY=unknown ;;
esac

Irudishe kwa usafi

Kuondoa kipengele ni ufutaji mbili na uthibitishaji mmoja. Ondoa mistari ya setenv na push-peer-info kutoka wasifu wa mteja, kisha ondoa au zima ndoano na lengo lake la kumbukumbu kwenye seva.

grep -rn 'UV_DEPLOY\|push-peer-info' /etc/openvpn/
tail -n 3 /var/log/openvpn/deploy-labels.log

Unganisha tena mteja mmoja baadaye na uthibitishe kwamba mstari wa kumbukumbu unaacha kuonekana. Ndoano inayoendelea kuwaka baada ya mabadiliko ya wasifu kwa kawaida ni wasifu wa pili ambao bado umewekwa kwenye kifaa cha majaribio, na kuipata sasa ni nafuu kuliko kuipata wakati wa ukaguzi.

Kinachobaki mwishoni ni kipande kidogo na chenye mipaka cha metadata ya kipindi chenye asili iliyoandikwa: mteja anaidai, seva inairekodi, na hakuna chochote kuhusu ufikiaji kinachotegemea hiyo. Hiki ni toleo muhimu la kipengele, na halihitaji kitambulisho kipya kufika hapo.

Makala zinazohusiana