Milline openvpn-binaarfail töötab? Kontrolli käivitusrada
Käsu nimi, teenuse rada ja paketi fail võivad olla kolm erinevat objekti. Kontrolli käivitusrada, verifitseeri paketifailid ja eemalda seejärel ümbris.
Vana ajutine lahendus liigutas OpenVPN-i käivitatava faili mujale ja jättis algsele rajale shell-ümbris. Kuud hiljem saabub uuendus, ja lahenduse tagasipööramine muutub mõistatuseks, milline fail on tegelikult klient. Käsu nimi, teenuses seadistatud käivitatav fail ja paketi enda faililoend võivad kõik osutada erinevatele objektidele, ning ühe neist parandamine ilma teisteta annab hosti, mis näeb parandatud välja ja käitub halvemini.
Alusta rajast, mille teenus käivitab
Terminal ja systemd-ühik ei lahenda käivitatavaid faile ühtemoodi. Shell otsib PATH-ist; ühik nimetab raja, ja drop-in-alistused võivad selle asendada ilma, et puutuksid faili, mida sa loed. See erinevus selgitab suuremat osa selles ülesandes esinevast segadusest. See määrab ka, millist faili sinu parandus peab sihtima.
Küsi ühikult, mida see käivitab, sealhulgas drop-in-failid, mis seda muudavad, ja loe tulemuseks saadud ExecStart-rida, mitte lõiku, mida pead autoriteetseks. Seejärel jälgi seda rada läbi mis tahes sümboolse lingi kuni lõpliku failini. Ümbris, mis lõpeb exec peidetud kataloogi, on nende vanade paranduste tavaline lahendus.
Kirjuta lahendatud rada üles enne, kui midagi muudad.
systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"Võrdle käsu nime teenuse rajaga
Kaks vastust erinevad sageli, ja see erinevus ei ole automaatselt viga. NetworkManageri pistikprogramm võib käivitada oma raja, ja konteiner võib mountida veel ühe.
Oluline on teada, milline omanik käivitab liiklust teenindava protsessi. Kui ühik käivitab /usr/local/sbin/openvpn-wrapper, samal ajal kui sinu shell lahendab /usr/sbin/openvpn, ei muuda teise faili parandamine teenuses midagi.
Küsi, millisele paketile iga kandidaat kuulub, ja otsusta siis, kas fail on paketihalduses või paigutatud kohapeal. Fail, millel puudub seda omav pakett, on fail, mille keegi pani sinna meelega, ja see väärib nime, omanikku ja põhjust enne kustutamist. Vastupidine viga on samuti tavaline: paketifaili ülekirjutamine vana salvestatud binaarfailiga, sest foorumipostitus kasutas sama kataloogi.
Lase paketiandmebaasil paketifailide kohta rääkida
Kui tarkvara pärineb Debiani paketist, saab paketiandmebaas öelda, kas selle failid vastavad endiselt paigaldatule. See on kitsas terviklikkuse küsimus, mitte turvahinnang, ja erinevus on oluline, kui otsustad, mida parandada. Erinevus tähendab, et fail muutus pärast paigaldamist, mis võis olla sinu vana lahendus või seaduslik kohalik muudatus. Väljund ei otsusta, kumb, seega loe seda osutina, mitte järeldusena.
Käivita kontroll ja loe väljundit, selle asemel et pidada tühja tulemust millegi tõestuseks.
dpkg -S /usr/sbin/openvpn
dpkg --verify openvpndpkg käsiraamat dokumenteerib, et kontroll võrdleb paigaldatud faile kohapeal salvestatud metaandmetega, kasutades salvestatud kontrollsummasid seal, kus need on olemas. See märkab muudetud paketifaili ega suuda öelda, kas selle asemel käivitatakse mõni muu binaarfail.
Salvesta olek enne parandamist
Kogu lahendatud käivitusrada, faili seos paketiga, ümbrise asukoht ja muudatuste kirje, mis selle juurutas. Kopeeri ümbris kaitstud kohta, kui see sisaldab integratsioonitööd, mida hiljem vaja läheb.
Ära kleebi ümbrise sisu tugiteemasse enne, kui oled selle läbi lugenud, sest need skriptid kannavad mõnikord mandaate või lüüsi andmeid.
Salvesta, milliseid profiile teenus kasutab ja kes on parajasti ühendatud, kui töötad, sest tunneli taaskäivitamine võib katkestada sessiooni, mille kaudu hosti haldad.
Kontrolli käivitust ja eemalda seejärel ümbris
Pärast parandust käivita teenus ja kinnita, et protsess töötab kavandatud rajal. Käsitsi tehtud versioonipäring tõestab, et fail töötab; see ei tõesta, et ühik seda kasutab.
Seejärel ühenda klient uuesti ja kontrolli, kas profiil endiselt autendib, sest algseid valikuid eirav binaarivahetus ebaõnnestub viisil, mis näeb välja nagu sertifikaadiprobleem.
Eemalda kõrvale tõrjutud ümbris sama muudatuste kirje kaudu, mis selle juurutas. Lõpetatud parandus märgib, milline käivitatav fail töötab, miks ja milline fail eemaldati; failinime taastamine ja lootmine ei ole sama asi.