Kuunganisha RADIUS na OpenVPN: programu-jalizi au ndoano ya skripti?
Programu-jalizi ya zamani ya RADIUS imefungwa na toleo la seva ililokompiliwa kwa ajili yake. Ndoano ya auth-user-pass-verify inaichukua nafasi, lakini huhamishia uaminifu kwenye skripti yako.
Programu-jalizi bado inapendekezwa katika mazungumzo ya zamani kuliko matoleo ya sasa, na kwenye seva iliyokompiliwa jana inashindwa wakati wa kupakia. Hii si kosa la usanidi linaloweza kurekebishwa kwa njia. Programu-jalizi na ndoano ya skripti hutatua tatizo moja katika tabaka tofauti, na kuhamia kutoka moja hadi nyingine hubadilisha kile kinachopaswa kusakinishwa, kile kinachokimbia kwa ruhusa za seva, na kile kuingia kumeshindwa kunakuambia kwa kweli.
Hadithi: programu-jalizi ndiyo njia inayoungwa mkono
Programu-jalizi ni kitu kilichoshirikiwa kinachopakiwa katika mchakato wa OpenVPN, kwa hiyo ni lazima ilingane na kiolesura ambacho mchakato huo hutoa. Matoleo hubadilika, ufungashaji hubadilika, na maktaba iliyokompiliwa kwa kiolesura cha zamani hukataa kupakiwa. Hakuna kitu katika usanidi wa seva kinachoweza kuziba pengo hilo, ndiyo sababu ushauri "sakinisha radiusplugin tu" huishia na seva isiyoanza.
Ndoano ya skripti badala yake inasimama nje ya mchakato. OpenVPN huendesha programu, huipa vitambulisho na kusoma hukumu. Utengano huo ndio unaoiruhusu kustahimili masasisho, na pia unaifanya kuwa jukumu lako kwa namna ambayo programu-jalizi haikuwa kamwe.
Hakuna njia iliyo salama zaidi kwa muundo wake. Moja huendesha msimbo wa nje ndani ya daemon; nyingine huendesha msimbo wako kando yake ikiwa na vitambulisho mkononi. Swali sahihi ni lipi kati ya hatari hizi mbili unaweza kusimamia kwa kweli.
Programu-jalizi ilifunga nini pamoja
Programu-jalizi ilikuwa na faili yake ya usanidi yenye mwenyeji wa RADIUS, siri iliyoshirikiwa, idadi ya majaribio na muda wa mwisho, na usanidi wa seva uliirejelea kwa mstari mmoja. Ushughulikiaji wa vitambulisho ulibaki ndani ya mchakato wa seva, ikimaanisha neno la siri halikuvuka kamwe mpaka wa mchakato ambao msimamizi alipaswa kuulinda.
Gharama ilikuwa uunganishaji. Kila sasisho la OpenVPN lilihatarisha kiolesura kisicholingana, na kila usambazaji unaounda upya kifurushi ulihatarisha kutoa maktaba isiyolingana tena. Hilo linapotokea, kushindwa ni kwa sauti na papo hapo, na hiyo ndiyo rehema pekee ya muundo.
Iwapo programu-jalizi kama hiyo bado inapakiwa kwenye toleo lako, inaweza kuwa uso mdogo wa uendeshaji. Thibitisha kiolesura ilichoundwa kwa ajili yake, iweke imeunganishwa na toleo ulilojaribu, na chukulia kila sasisho kama mabadiliko yanayohitaji jaribio kamili la kuingia, si sasisho la kawaida la kifurushi.
Ndoano ya skripti inaamini nini kwa kweli
Ndoano husanidiwa kwa auth-user-pass-verify na utaratibu wa uwasilishaji: vigeu vya mazingira au faili ya muda. Katika umbo la mazingira, OpenVPN inahitaji script-security 3, kiwango kilichoandikwa kinachoruhusu neno la siri kuwekwa wazi kwa skripti. Kiwango hicho ni udhaifishaji wa makusudi wa chaguo-msingi, na unapaswa kuchukuliwa kama idhini iliyoambatanishwa na sababu.
Kila kitu skripti inachogusa hurithi imani hiyo. Ni lazima iwe inamilikiwa na root, isiweze kuandikwa na kikundi au wengine, irejelewe kwa njia kamili, na isiwe na mahali popote ambapo thamani isiyoaminika hufikia shell. Weka kila kigeu ndani ya alama za nukuu, kataa herufi zisizotarajiwa, na usijenge kamwe amri kutoka kwa jina la mtumiaji lililotolewa. Skripti inayokimbia kama root kwenye kila jaribio la kuingia inastahili mapitio moja kwa sababu ya sifa hizo nne.
ls -l /usr/local/sbin/radius-auth.sh
stat -c '%U %a' /usr/local/sbin/radius-auth.sh
Umbo la uwasilishaji wa faili huepuka tatizo la urithi wa mazingira na huipa skripti vitambulisho kupitia faili ya muda yenye ruhusa zilizopunguzwa. Iwapo mteja wako anaunga mkono, kwa kawaida ni chaguo-msingi bora, ingawa huongeza kitu kimoja zaidi cha kusafisha wakati wa kushindwa.
Misimbo ya kutoka huamua ikiwa utashindwa kwa wazi
Hali ya kutoka ya skripti ndiyo hukumu: sifuri hukubali, isiyo sifuri hukataa. Mfumo unaosababisha matatizo ni skripti ya shell inayokubali tu wakati jibu la RADIUS lina ishara maalum ya kukubali na hurudisha kushindwa kwa kila kitu kingine, kwa sababu hilo huchanganya matukio matatu tofauti kuwa jibu moja. Neno la siri lisilo sahihi, seva isiyofikika na jibu lisilo sawa vyote huwa kukataa kulekule.
Tenganisha kesi hizo katika skripti hata kama ndoano inaweza kurudisha kubali au kataa pekee. Rekodi matokeo ya backend kando, tahadharisha kuhusu muda wa mwisho na makosa ya usafirishaji, na ufanye iwe wazi katika ufuatiliaji wakati uthibitishaji unashindwa kwa sababu huduma haifanyi kazi na si kwa sababu watumiaji wanachapa vibaya.
Tabia mbili huweka mengine sawa. Ikiwa RADIUS ni mamlaka, inapaswa kuwa mahali pekee ambapo neno la siri hukaguliwa, kwa sababu jedwali la kivuli huunda majibu mawili kwa swali moja na la pili ni uso wa mashambulizi ambao hakuna anayeuangalia. Na kumbuka ndoano inaitwa tena kwenye kila jaribio, kwa hiyo skripti ya polepole pamoja na mteja asiye na subira huwa kiongeza kwa kubahatisha neno la siri isipokuwa uongeze ucheleweshaji au sera upande wa RADIUS.
Unachokosa cheti kinapotoweka
Usambazaji mwingi wa umbo hili huzima kabisa ukaguzi wa cheti cha mteja, wakiacha jina la mtumiaji na neno la siri kama dai lote la mteja. Kinachotoweka kwa mpangilio huo ni utambulisho unaotegemea cheti. Kituo kinabaki kimesimbwa, lakini kitu pekee kinachomtaja mteja ni hukumu ya RADIUS. Kitu chochote cha chini ambacho zamani kilitegemea somo la cheti sasa kinapaswa kutegemea jina la mtumiaji.
Weka ulinzi wa kituo cha udhibiti mahali pake ili mwenzake asiye na uthibitisho asiweze kuchunguza au kufurika makubaliano ya mkono, na tumia username-as-common-name wakati usanidi kwa kila mtumiaji unategemea jina la kawaida. Lango zinazosimamiwa mara nyingi hutatua hili kwa namna nyingine, zikimaliza uthibitisho wa cheti kwenye lango linalozungumza EAP-TLS na RADIUS, na katika hali hiyo hakuna maagizo haya ya seva yanayotumika. Nakili mfano unaoandikwa na jukwaa lako mwenyewe, si ule wa bidhaa jirani. Maagizo muhimu yanatofautiana vya kutosha hivi kwamba kuyachanganya hutoa usanidi unaochanganuliwa na kisha haumthibitishi mtu yeyote.