OpenVPN-huoltokatkon suunnittelu ilman isännän menettämistä
Pysäytä tunneli, menetä istunto. Kirjaa käynnissä oleva unit, kokoa palautusjoukko, harjoittele pilottikuuntelijalla ja vaihda sitten VPN:n ulkopuolelta.
VPN-palvelun uudelleenkäynnistys päättää jokaisen sitä käyttävän istunnon, joten ikkuna on rakennettava keskustelujen ympärille, ei paketinhallinnan ympärille. Käyttäjät tarvitsevat riittävän varoituksen saadakseen arkaluonteisen työn valmiiksi, ja sinä tarvitset paluutien, joka ei riipu tunnelista, jonka aiot pysäyttää. Kaikki muu käsikirjassa on olemassa, jotta nämä kaksi tosiasiaa pysyisivät hallittavina. Jätä kumpi tahansa väliin, ja rutiinipäivitys muuttuu katkokseksi, josta ei ole ulospääsyä.
Alla oleva järjestys on tarkoituksellinen: jokainen vaihe tuottaa jotain, jota seuraava tarvitsee, ja mikä tahansa vaihe voi lopettaa muutoksen ennen kuin se alkaa.
Kirjaa olemassa oleva palvelu ennen kuin muutat sitä
Lue asennettu unit, älä sitä, jonka muistat kirjoittaneesi: systemctl cat [email protected] tulostaa unitin ja mahdolliset drop-init, ja systemctl show [email protected] -p ExecStart -p User -p WorkingDirectory näyttää, mitä todella ajetaan ja minkä identiteetin alla. Kysy binaarilta, jonka unit nimeää, sillä kuoresta ajettu openvpn --version voi ratketa eri buildiksi. Kirjaa profiilin polku ja jokainen tiedosto, johon se viittaa.
Huomioi myös kuuntelevat socketit: ss -lunp | grep 1194 kertoo, mikä osoite ja protokolla daemonilla on tänään. Jos vastaus ei ole se, mitä profiili antaa ymmärtää, jokin drop-in tai ympäristötiedosto ohittaa sen, ja päivitys perii tämän yllätyksen.
Kokoa palautusjoukko, jota joku muukin voisi käyttää
Palautusjoukon on oltava kollegan käytettävissä kello 03:00 ilman sinun kontekstiasi. Sisällytä voimassa oleva kokoonpano ja jokainen siihen viitattu tiedosto, PKI:n omistajan hallinnassa oleva luottamus- ja mitätöintimateriaali, asiakaskohtaiset määritykset ja hookit sekä täsmälliset tänään asennetut pakettiversiot. Yhden tiedostonimen kopio ei ole kokoonpano. Säilytä se paikassa, johon päivystävä operaattori pääsee ilman VPN:ää.
Pääsynvalvonta koskee myös tätä joukkoa, koska se sisältää yksityisiä avaimia tai backend-tunnuksia. Älä rakenna CA:ta uudelleen äläkä myönnä identiteettejä uudelleen vain siksi, että pakettiversio muuttui.
Harjoittele pilottikuuntelijalla oikean asiakkaan kanssa
Aja ehdokasjulkaisu erillisellä kuuntelijalla, jolla on oma portti- ja osoitesuunnitelmansa, ei tuotantoinstanssin vieressä samassa socketissa. Yhdistä asiakasmoottoreilla, joita käyttäjäsi todella ajavat, myös hankalalla. Tarkista osoitteen jako, työnnetty DNS, yksi tärkeä sovellus ja yksi polku, jonka pitää pysyä estettynä. Mukautettujen hookien on ajettava palvelun todellisessa oikeus- ja tiedostojärjestelmäkontekstissa, sillä root-kuori ei todista niistä mitään.
Lue julkaisumuistiinpanot käyttäytymismuutosten varalta, älä vain uusien ominaisuuksien. Salauksen ja TLS:n oletukset liikkuvat versioiden välillä, ja profiili, joka vielä jäsennetään, voi silti epäonnistua kättelyssä. Jos päivitys vaatii profiili- tai varmennemuutoksia, suunnittele se omaksi vaiheekseen sen sijaan, että paketoisit sen pakettipäivitykseen.
Vaihda kerran, tunnelin ulkopuoliselta polulta
Aloita ikkuna konsolista tai hallintaverkosta, joka ei kulje palvelun läpi. Varmista, että käyttäjille on ilmoitettu ja että toinen operaattori osaa palauttaa. Toteuta valmisteltu muutos sen omistajan kautta, käynnistä sitten uudelleen komennolla sudo systemctl restart [email protected] ja seuraa lokia komennolla journalctl -u openvpn-server@office -b -f. Uudelleenlataus riittää, kun vain unitin määritelmät muuttuivat; muuttunut profiili vaatii prosessin uudelleenkäynnistyksen.
Odota jokaisen asiakkaan yhdistävän uudelleen ja odota joidenkin sovellusistuntojen jäävän jatkumatta. Sovita puhdas tauko niiden työkuormien kanssa, jotka eivät sitä siedä.
Hyväksy tai palauta, ja kerro sitten käyttäjille, mikä muuttui
Hyväksyntä on tuore kirjautuminen plus todellinen toimenpide plus edelleen voimassa olevat rajoitukset. Aktiivinen unit ja vihreä tilarivi ovat prosessin tosiasioita. Jos kriteerit epäonnistuvat ikkunan sisällä, palauta valmistellulla menetelmällä, ei palauttamalla yhtä tiedostoa ja toivomalla; muuttunut binaari tai palvelukäytäntö selviää kokoonpanon palautuksesta. Säilytä kaikki ikkunan aikana tehdyt mitätöinti- tai valtuutusmuutokset, jotta palautus ei kumoa turvatyötä.
Kirjaa versiot, profiilimuutokset ja hyväksyntätulokset seuraavalle operaattorille, poista pilottikuuntelija käytöstä ja kerro käyttäjille, mitä profiilia heidän tulee nyt käyttää. Ikkuna, joka päättyy ilman tätä merkintää, käsitellään uudelleen seuraavassa päivityksessä.