Kusitisha mteja mmoja wa OpenVPN: kwa nini kufuta ni kiwiko kisichofaa
Kuua kikao kunaweza kutenduliwa; kufuta cheti hakuwezi. Amua ni kiwiko gani kisa kinahitaji, kisha jenga CRL upya tu wakati inafaa.
Kusitisha ufikiaji wa mteja mmoja na kumwondoa kabisa vinaonekana kama kazi moja hadi ujaribu kutendua kimoja kati ya hivyo. Kufuta cheti huandika rekodi ambayo seva inaichukulia kama ya mwisho, na kuigeuza inamaanisha kuhariri hifadhidata ya mtoaji kwa mkono. Kuangusha handaki hai ni amri ya usimamizi ambayo haibadilishi chochote katika uaminifu. Chagua kiwiko kwa kuuliza kama ufunguo bado unaaminika, si kwa kuuliza jinsi ombi linavyoonekana kuwa la haraka.
Imani: kufutwa na kusitishwa ni kitu kimoja
Mkandarasi anasitishwa kwa wiki moja na mwitikio wa kwanza ni kufuta, kwa sababu kufuta kunasikika kama kuzima kitu. Inaonekana nadhifu, inachukua sekunde kumi, na inaacha uhariri wa hifadhidata kama njia pekee ya kurudi. Mwitikio huo unaeleweka na uko karibu na kuchoma pasipoti kuliko kufunga mlango. Kifaa kilichositishwa na ufunguo uliovuja vinahitaji matibabu tofauti, na ni kimoja tu kati ya hivyo ambacho ni rahisi kutendua.
Tofauti ni kuhusu kitambulisho na si kuhusu mtu. Ufunguo ambao bado uko mikononi sahihi unaweza kusitishwa na kuendelezwa bila kupoteza uaminifu wowote. Ufunguo ambao unaweza kuwa umenakiliwa haupaswi kurejeshwa kamwe, kwa sababu kurejesha kunadai kwamba nakala haipo.
Andika jibu kabla ya kugusa mojawapo ya mifumo miwili. Ikiwa huwezi kusema kama ufunguo umefichuliwa, jibu la kihafidhina ni kubadilisha.
Angusha kikao hai kwa kutumia kiolesura cha usimamizi
OpenVPN hutoa kiolesura cha usimamizi kinachoweza kuorodhesha vikao na kuua kimoja kati ya hivyo kwa jina la kawaida. Kiwashe kwenye localhost, kiweke mbali na kiolesura cha umma, na tuma amri ya kuua wakati kikao kinapaswa kutoweka sasa. Amri hufunga handaki hilo pekee, na kila mteja mwingine anaendelea kufanya kazi.
Hili ni jibu kwa tatizo linaloendelea, si sera ya kusitisha. Profaili hiyo hiyo inaweza kuunganishwa tena ndani ya dakika moja, kwa sababu hakuna kilichobadilika katika kitambulisho chake. Itumie wakati kikao kinapaswa kuondoka na uamuzi wa kudumu bado unafanywa.
Thibitisha kwamba kikao kilikuwa kimeunganishwa kabla ya kukiua, ili usifukuzie mteja ambaye hakuwahi kuunganishwa. Amri ya hali hapa chini inachapisha kilichounganishwa sasa.
printf 'status 2\nquit\n' | nc 127.0.0.1 7506
printf 'kill kiosk-14\nquit\n' | nc 127.0.0.1 7506Ikiwa kuua kunaripoti kuwa hakuna mteja kama huyo, jina la kawaida kwenye cheti si mfuatano uliouandika. Soma matokeo ya hali badala ya jina la faili la profaili.
CRL inasimamia nini kwa kweli
Seva haishauriani na bendera ya kufuta iliyohifadhiwa kwenye cheti. Inasoma orodha ya kufuta vyeti iliyotajwa katika crl-verify katika kila muunganisho mpya, na inakataa cheti ambacho nambari yake ya mfululizo inaonekana kwenye orodha hiyo. Kutokana na hilo kunafuata matokeo mawili, na yote mawili ni muhimu kiutendaji. Faili lazima liweze kusomwa na akaunti ambayo seva inaachia mapendeleo yake, na mteja aliyeunganishwa tayari anaendelea kufanya kazi hadi atakapounganishwa tena.
Tokeo la pili huwashangaza watu wakati wa matukio. Kufuta cheti hakufungi handaki linalotumia cheti hicho sasa hivi. Oanisha kufuta na kuua kwa usimamizi ikiwa kikao kinapaswa kuisha papo hapo, na chukua vitendo viwili kama hatua tofauti katika mwongozo.
Kagua orodha ili kuona kile seva itakachotekeleza kwa kweli, badala ya kuamini muhuri wa muda wa faili ya mwisho uliyoinakili. Sehemu muhimu ni idadi ya nambari za mfululizo.
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | sed -n '1,14p'
ls -l /etc/openvpn/server/crl.pemOrodha isiyo na maingizo na orodha iliyo na maingizo sahihi zinaonekana sawa katika uorodheshaji wa saraka, kwa hiyo inafaa kuchapisha idadi ya nambari za mfululizo. Mstari wa ruhusa pia ni muhimu vilevile, kwa sababu faili ambalo daemon haiwezi kusoma huzalisha hitilafu inayofanana na mteja aliyekataliwa.
Kurejesha rekodi, kwa uangalifu
Kurejesha cheti kunamaanisha kugeuza rekodi katika hifadhidata ya utoaji na kuchapisha orodha mpya. easy-rsa 3 huweka hifadhidata hiyo kama index.txt chini ya saraka ya PKI, wakati mipangilio ya zamani ilitumia mpangilio mwingine. Mstari huanza na herufi ya hali na tarehe ya mwisho. Mstari uliofutwa huweka muhuri wa muda wa kufuta kabla ya kuendelea na nambari ya mfululizo, jina la faili la cheti na jina la kutofautisha. Kurudisha mstari mahali pake kunamaanisha kufuta muhuri huo wa muda na kugeuza herufi, huku kila kitu kingine kikiachwa kama kilivyo.
Kwanza fanya nakala rudufu ya faili, na fanya uhariri kama skripti badala ya kuandika katika kihariri cha maandishi. Makosa ya kuandika yanayobadilisha idadi ya sehemu kwenye mstari huvunja utoaji kwa kila cheti kinachoongezwa baadaye. Ndiyo sababu inafaa kuendesha mabadiliko kwa mashine na kunakili faili kabla ya kuigusa.
Kufuta kwa mara ya pili kwa jina lile lile mara nyingi pia hushindwa, kwa sababu uendeshaji wa kwanza ulihamisha cheti hicho na ufunguo wake kutoka kwenye saraka ambazo chombo kinatarajia kuvipata. Wakati huo chombo hakiwezi kupata kile kilichoombwa kifutwe, na ujumbe wa hitilafu hauelezi waziwazi sababu kila wakati.
cp /etc/easy-rsa/pki/index.txt /root/index.txt.$(date +%F-%H%M)
grep -c '^R' /etc/easy-rsa/pki/index.txt
easyrsa gen-crlChapisha orodha mpya, rekebisha umiliki wake, na ufanye seva iisome. Upakiaji upya unatosha katika usanidi mwingi, lakini uthibitisho lazima utokee kwenye muunganisho mpya, kwa kuwa kikao kilichopo hakikukagua chochote tena.
Angalia ni kiwiko gani kisa kinastahili
Uliza swali moja linaloamua mwongozo wote: ufunguo wa faragha bado uko mahali panapopaswa tu. Ikiwa ndivyo, kuua kikao pamoja na kusitisha kwa nyaraka kunashughulikia kisa hicho na hakuachi rekodi ya kudumu. Ikiwa sivyo, jibu pekee salama ni ufunguo mpya huku cheti cha zamani kikiachwa kimefutwa.
Kisha thibitisha matokeo kwa jaribio la muunganisho na si kwa tofauti ya usanidi. Tofauti inakuambia ulikusudia nini, na muunganisho unakuambia seva inatekeleza nini.
openssl crl -in /etc/openvpn/server/crl.pem -noout -text | grep -c 'Serial Number'
printf 'status 2\nquit\n' | nc 127.0.0.1 7506Wakati mteja aliyerejeshwa anaunganishwa na kuonekana katika matokeo ya hali, uhariri wa rekodi ulifanya kazi. Wakati mteja aliyefutwa anakataliwa na kumbukumbu inataja CRL, kufuta kulifanya kazi. Chochote kati ya hizo ni tatizo la ruhusa au upakiaji upya, na inafaa kurekebishwa kabla ya ombi linalofuata kuwasili.