Teenus käivitub, klient seostub ja serveri poolel ei ilmu kunagi marsruuti. Või keeldub deemon käivitumast ja nimetab käsu, mida ta ei suutnud täita. Mõlemad tulemused järgivad samu kolme rida, mis tavaliselt kopeeritakse koos karmistamisjuhendist: üleminek mitteprivilegeeritud kontole, grupist loobumine ja failisüsteemi juure muutmine. Ainult üks kolmest peidab faile ja ainult üks neist võtab ära õiguse marsruutimistabelit muuta. Nende eraldamine on viis, kuidas õpid, millist rida sa tegelikult tahad.

Mida vangla ära võtab, mida deemon veel vajab

Juure muutmine toimub pärast käivitust, nii et deemon hoiab kõike, mille ta on juba avanud, ja kaotab kõike, mille ta avaks hiljem. Iga abiline, mida ühendus pärast seda punkti käivitab, peab eksisteerima uue juure sees koos jagatud teekidega, mida see laadib. Konfiguratsioonifailist ja sertifikaadist ehitatud vanglal pole kumbagi.

Mitteprivilegeeritud kontole üleminek on eraldi piirang. Protsess, mis on rootist loobunud, ei pruugi suuta marsruute muuta ega liidest üles tõsta isegi siis, kui binaar on otse seal, seega tuleb mõlemat tõrget eraldi diagnoosida.

Kolm tingimust otsustavad, millist parandust vajad

Esimene tingimus on see, kuidas sinu build marsruute paigaldab. Uuemad OpenVPN väljalasked seadistavad liidese ja marsruutimistabeli protsessi sees, samas kui vanemad paketid ja omad seadistused toetuvad välistele tööriistadele või up ja down skriptidele. Kui logi nimetab käsu, on mängus väline tööriist ja vangla peidab selle. Kui logi näitab hoopis õiguseviga, on probleem konto.

Teine on hooldus. Kopeeritud binaaridega vangla tuleb värskendada iga kord, kui neid pakkuv pakett uuendatakse, muidu jätab esimene uuendus maha katkise tunnelid. Kolmas on see, kas konkreetne kontroll nõuab tõesti chrooti; kui nõue puudutab tegelikult õiguste eraldamist, võib kontovahetus üksi piisata.

Signal in the logOther side of the boundaryRepair direction
Command not found after startupBinary and its libraries absent inside the new rootPopulate the jail, or drop the chroot line
Operation not permittedAccount lost the privilege to edit routesKeep the account privileged, or pre-create routes elsewhere
No such deviceJail lacks the tun device nodeCreate the node inside, or open it before the root change

Mida töötav vangla peab sisaldama

Käske käivitav vangla vajab binaari, iga teeki, millega see linkub, ja iga seadmesõlme, mille deemon hilja avab. Kopeeri tükid ja testi neid ilma VPN-ita pildil:

ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up

Esimene käsk loetleb sõltuvused ja see on see, mille inimesed vahele jätavad. Kopeeritud binaar, mis ei leia teeki, ebaõnnestub teistsuguse sõnumiga kui puuduv binaar, ja mõlemad näevad kliendi poolt vaadates välja nagu OpenVPN-i rike. Käsu käsitsi vanglas käivitamine taasesitab rikke ilma teenust taaskäivitamata.

Kopeeri vanglasse ka konfiguratsioon, sertifikaadid ja võimalik CRL, sest faili, mida deemon loodab pärast käivitust uuesti lugeda, ei leita, kui juur on muutunud. Pane kirja, mida kopeerisid, kuna võrgupaketi järgmine uuendus asendab originaalid ja jätab vangla vanale koopiale.

Vähenda hoopis karmistamist

Kui vangla on olemas ainult sellepärast, et juhend nii ütles, on selle ühe rea eemaldamine kontopiirangute säilitamise juures kaitstav tulemus. Deemon hoiab oma failisüsteemivaate ja vabaneb probleemist ning õiguste langetamine eemaldab endiselt rooti pikaajalisest protsessist.

Kirjuta üles, mis jääb ja miks. Konfiguratsioon, mis kaotas vaikselt kontrolli ilma märkuseta, on viis, kuidas karmistamine triivib, ja järgmine audit küsib, miks rida kadus.

Jaota kolm rida enne valimist

Kopeeri konfiguratsioon, keela kõik kolm direktiivi ja kinnita, et klient ühendub ja oodatud marsruudid ilmuvad. Seejärel luba uuesti ainult kontoread ja lõpuks chroot üksi. Samm, kus tunnel katkeb, märgib piiri, ja sa väldid vangla ümberehitamist, mis polnud kunagi põhjus.

Kui see jälle marsruudib, käivita üks kliendiseanss suurema detailsusega ja loe rida, mis nimetab käsu või ebaõnnestunud õiguse. See rida on väärt rohkem kui timeout, mille klient lõpuks teatab.

Seotud artiklid