Nag-boot ang image, nagsisimula ang serbisyo at kumokonekta ang mga kliyente. Iyon ang sandali para huminto at itanong kung alin sa dalawang lubos na magkaibang operasyon ang katatapos lang mangyari. Alinman sa kopya ay nagbabalik ng isang lohikal na gateway na dati nang umiiral, o nagdaragdag ito ng pangalawang gateway sa fleet. Pareho silang lehitimo, at may magkaibang kahihinatnan sa pagkakakilanlan at pag-access. Ang makinang malinis na bumangon ay hindi nagpapatunay sa alinman.

Tatlong kondisyon ang nagtatakda ng sagot, at iyon ang tatlong basket ng materyal na maaaring dalhin ng isang image. Paghiwalayin ang mga ito bago itayo ang image, hindi pagkatapos itong ma-deploy nang dalawang beses.

Magpasya muna kung alin sa dalawang operasyon ang ginagawa mo

Ang pagpapanumbalik ay nagpapanatili ng isang pagkakakilanlan ng serbisyo. Wala na ang lumang instance, nananatili ang pangalan at sertipiko, at patuloy na nagtitiwala ang mga kliyente sa parehong endpoint. Ang pagdaragdag ay lumilikha ng pangalawang pagkakakilanlan na dapat matukoy ng mga kliyente, log at pagbawi.

Ang pagkakaiba ay hindi kosmetiko. Kung dalawang buhay na host ang nagpapakita ng parehong sertipiko ng gateway, hindi sila matukoy ng isang kliyente, ganoon din ang audit trail, at ang pagbawi sa sertipikong iyon ay nag-aalis sa dalawa nang sabay. Maaaring iyon mismo ang gusto ng sinadyang disenyo ng mataas na availability, at bihirang iyon ang intensyon ng nagmamadaling kopya ng image.

Kaya ang unang desisyon ay isang pangungusap, na isinulat bago umalis ang image sa build host: ang kopyang ito ay nagbabalik sa gateway A, o ang kopyang ito ay nagiging gateway B. Lahat ng sumusunod ay pagtutuos laban sa pangungusap na iyon. Kung walang makakasulat nito, hindi pa handa ang kopya na itayo.

Mga input na magagamit muli, pagkakakilanlan at awtoridad, estado ng deployment

Ang basket na magagamit muli ay ang madali: mga pakete, nasuring configuration na walang lihim, mga template ng serbisyo, mga setting ng pagpapatibay. Dito tunay na mahusay ang isang image, at maaari itong muling gawin nang walang limitasyon.

Ang basket ng pagkakakilanlan at awtoridad ang lugar kung saan nagkakamali ang mga kopya. Ang pribadong susi at sertipiko ng isang gateway ay kumikilala sa gateway na iyon sa bawat kliyente. Ang susi sa paglagda ng awtoridad ng sertipiko ay ibang bagay na may ibang kapangyarihan: naglalabas ito ng mga pagkakakilanlan. Ang pagtitiwala sa isang tagapaglabas ay hindi nangangahulugang kailangan ng bawat bagong gateway ang kakayahang maglabas, at ang pagpapadala ng susi sa paglagda sa loob ng isang image ay nagbibigay ng kakayahang iyon sa anumang makabasa ng image.

Ang basket ng estado ng deployment ang nakakalimutan ng mga tao dahil mukhang configuration ito. Ang mga address sa pakikinig, pool ng address, mga itinulak na ruta, mga setting ng resolver at lokal na integrasyon ay lahat nagko-code ng mga palagay tungkol sa unang host. Ang pangalawang node na kumokopya ng mga ito ay maaaring maglaan mula sa pool na pag-aari na ng ibang gateway, o magturo ng mga kliyente sa isang mapagkukunan na umiiral lamang sa tabi ng orihinal.

Ano ang dapat matanggap ng bagong node, at mula kanino

Ang node na pinamamahalaang mag-isa ay dapat tumanggap ng sarili nitong mga kredensyal sa pamamagitan ng aprubadong proseso ng pagpapatala, at ang operasyon ng paglagda ay dapat mangyari kung saan naroon ang susi sa paglagda at hindi sa bagong host. Itala kung aling pagkakakilanlan ang maaaring bawiin nang hindi nakakagambala sa iba pang node; kung ang sagot ay "lahat", may isang pagkakakilanlan ang disenyo na nagpapanggap na dalawa.

Ang mga halaga ng network ay karapat-dapat sa parehong pagtrato. Pumili ng pool, address sa pakikinig at hanay ng mga itinulak na ruta na hindi bumabangga sa umiiral na gateway, at isulat ang mga ito sa mga input ng provisioning sa halip na sa image. Masusuri ang input; ang image ay hindi.

May lehitimong intermediate na kaso. Ang sinusuportahang disenyo ng pagbawi o replikasyon ay maaaring sinasadyang panatilihin ang isang lohikal na pagkakakilanlan ng serbisyo sa mga host, kasama ang kontroladong pag-access sa lumang kopya at plano ng pag-ikot. Iyon ay desisyong may may-ari, hindi default na nangyayari dahil maginhawa ang image.

openssl x509 -in /etc/openvpn/server/server.crt -noout -subject -issuer -dates
find /etc/openvpn -name '*.key' -o -name '*.pem' | head -20

Sinasabi ng unang utos kung aling pagkakakilanlan ang aktwal na ipinapakita ng node at sino ang lumagda. Ang pangalawa ay paunang imbentaryo, hindi patunay: ang pribadong materyal ay maaaring manirahan sa labas ng direktoryong iyon, sa loob ng database ng aplikasyon, o sa suson ng snapshot na hindi na ipinapakita ng tumatakbong filesystem.

Ano ang tahimik na dinadala ng kopya ng image

Ang pagbura ng file mula sa pinakabagong rebisyon ng isang image ay hindi ito nag-aalis mula sa lumang mga rebisyon, cache ng suson o mga snapshot na kinuha habang umiiral ito. Kaya ang mga image na may kredensyal ay dapat ituring na sensitibong bagay sa buong buhay nila, hindi lamang sa sandaling itinayo.

Suriin ang nilalaman ng image at ang mga input ng provisioning bilang dalawang magkahiwalay na tanong. Sinasagot ng image ang "ano ang nasa loob ng artifact na ito", samantalang sinasagot ng mga input ang "ano ang magiging instance na ito sa unang boot". Ang malinis na image na may bootstrap script na kumukuha ng shared key ay mahusay sumagot sa unang tanong at mahina sa pangalawa.

Panatilihing limitado sa mga taong nangangailangan ang mga image ng pagbawi na lehitimong may mga lihim, at itala kung saan ito nakaimbak. Ang alternatibo, isang image na maginhawa dahil gumagana nang walang anumang provisioning, ay ang parehong image na nagbibigay ng pagkakakilanlan ng gateway sa sinumang makakahanap nito. Isa lamang sa dalawang gawaing iyon ang lumilitaw sa build log.

Mga pagsusuri sa pagtanggap bago ang produksyon

Bago tumanggap ng trapiko ang node, kumpirmahin ang apat na bagay: ang pagkakakilanlang ipinapakita nito, ang mga kliyenteng tatanggapin nito, ang mga mapagkukunang pinapayagan itong maabot at ang daan pabalik para sa mga address na ipinamimigay nito.

systemctl status openvpn-server@lab --no-pager
ss -lunp 'sport = :1194'
ip -4 route show table all | grep -F '10.90.'

Pagkatapos suriin ang negatibong kaso, na siyang humuhuli sa mga aksidente: may administrator o client access ba ang bagong node na inilaan para sa orihinal? Ang kinopyang configuration ay maaaring magdala ng dagdag na entry ng kliyente, minanang ruta ng pamamahala o push directive na may katuturan sa unang host.

Kung ang isang image na may buhay na mga lihim ay lumampas na sa aprubadong hangganan nito, palitan ang mga kredensyal at pigilan ang mga kopya. Ang pag-alis ng file mula sa pinakabagong build ay hindi katulad ng pagreretiro sa kredensyal na hawak pa ng mga lumang kopya, at ang agwat sa pagitan ng dalawang katotohanang iyon ay eksaktong bintana na kailangan ng umaatake.

Kaugnay na mga artikulo