Përgatitja e një klienti OpenVPN me faza që ndalen në gabim
Pesë faza pengojnë një skript përgatitjeje të lërë një instalim gjysmak: verifiko hyrjet, përgatit grupin, zëvendëso në mënyrë atomike, aktivizo një pronar, planifiko tërheqjen.
Skriptet e përgatitjes që raportojnë një gabim dhe vazhdojnë janë më keq se skriptet që nuk ekzekutohen kurrë. Konfigurimi i klientit prek çelësa të mbrojtur, një identitet në portë dhe një shërbim që mund të jetë tashmë duke shërbyer trafik. Secili prej këtyre ka nevojë për një kusht ndalimi, dhe skripti duhet të dijë në cilën fazë arriti kur u ndal.
Trajtoje të gjithë çështjen si një transaksion me pesë pika kontrolli dhe bëj që çdo pikë kontrolli të refuzojë vetë të vazhdojë.
Rregullo hyrjet para se të prekësh sistemin e skedarëve
Fillo me një kontratë të qartë: një identitet, një burim profili, një pronar shërbimi të synuar. Verifiko që profili ekziston, që certifikata dhe çelësi të cilat ai referon janë të lexueshëm dhe që drejtoria e synuar i përket paketës së pritur. Një shteg që zgjidhet nuk është provë që materiali pas tij është i plotë.
Refuzo herët variablat bosh. Një $DEVICE e pavendosur që zgjerohet në asgjë e kthen install -m 400 $KEY /etc/openvpn/client/ në një kopje të drejtuar nga një drejtori, dhe dështimi vjen më vonë si një shërbim që nuk mund të lexojë çelësin e vet.
Monto grupin e profileve në një drejtori përgatitjeje
Së pari ndërto grupin e plotë në një vend privat: profil, CA, certifikatë klienti, çelës dhe çdo ndihmës që thërret profili. Kopjo me install -m 400 -o root -g root që lejet të vendosen gjatë krijimit dhe jo më pas. Pastaj kontrollo referencat brenda profilit, sepse një rresht relativ ca ose key zgjidhet kundrejt drejtorisë së punës së njësisë sapo shërbimi niset. Asgjë nuk duhet shkruar në drejtorinë aktive derisa i gjithë grupi të vlerësohet.
Regjistro një gjurmë gishtash jo të fshehtë të asaj që prodhoi ky ekzekutim, për shembull sha256sum office.conf i ruajtur pranë një shënuesi versioni. Pikërisht ai vlerë i vetëm lejon një riekzekutim të dallojë një përditësim nga mosveprimi.
Zëvendëso në mënyrë atomike dhe mbaj grupin e mëparshëm
Zhvendos grupin e përgatitur në vendin e tij me një veprim të vetëm aty ku sistemi i skedarëve e lejon, dhe mbaj grupin e mëparshëm të rishikuar nën një emër me vulë kohe. Një kopje e pjesshme që lë një profil të ri pranë një çelësi të vjetër prodhon një shërbim që vërtetohet me identitetin e gabuar dhe nuk regjistron asgjë të dobishme për arsyen. Nëse zëvendësimi nuk mund të jetë atomik, rendit zhvendosjet që profili të ulet i fundit.
Kur objektivi ekziston tashmë, vendos në mënyrë eksplicite nëse ky ekzekutim është përditësim, riekzekutim identik ose konflikt me profilin e një pajisjeje tjetër. Rishkrimi në heshtje i një profili që i përket një identiteti tjetër është rruga me të cilën dy makina përfundojnë duke ndarë një certifikatë të vetme. Refuzo ekzekutimin dhe përmend pronarin në konflikt.
Aktivizo një pronar dhe vërtetoje
Zgjidh një rrugë të vetme aktivizimi, ose instancën systemd ose NetworkManager, dhe përdore në mënyrë konsistente. Nisja e një procesi openvpn të pamenaxhuar pranë një njësie të aktivizuar jep dy tunele, përditësime DNS konkurruese dhe asnjë përgjigje të qartë se cilit prej tyre i drejtohet një komandë ndalimi. Pas aktivizimit, kontrollo systemctl is-active openvpn-client@office, pastaj rrugën drejt prefiksit të largët, pastaj resolvectl status për zgjidhësin që instali tuneli. Përfundo duke arritur një burim për të cilin ekziston tuneli.
Një proces që funksionon dhe një ikonë e gjelbër në tabaka janë fakte të procesit, jo provë që identiteti dhe politika e trafikut i mbijetuan dorëzimit.
Riekzekutimi dhe tërheqja janë rryma pune të ndara
Një ekzekutim i dytë duhet të konvergojë në të njëjtët skedarë të rishikuar dhe të njëjtin pronar, jo të krijojë një llogari të dytë ose një demon të dytë. Tërheqja është procedurë më vete: ndalo pronarin e saktë, arkivo ose fshi profilin lokal sipas politikës dhe revoko identitetin në portë. Fshirja e një skedari lokal çelësi nuk revokon një kopje që tashmë ka lënë makinën.
Mbaj një rrugë rikuperimi që nuk varet nga tuneli, si akses në konsolë ose një rrugë të dytë menaxhimi. Një ndryshim përgatitjeje që të mbyll jashtë makinës është një ndryshim i dështuar edhe kur çdo fazë raportoi sukses.
Skripti që vlen të mbahet është një transaksion rreth pronësisë dhe provave. Një listë e shkurtër komandash kopjimi të privilegjuara nuk është e njëjta gjë.