Staro zaobilazno rješenje premjestilo je izvršni fajl OpenVPN-a na drugo mjesto i ostavilo shell omotač na izvornoj putanji. Mjesecima kasnije dolazi nadogradnja i poništavanje rješenja pretvara se u nagađanje koji je fajl stvarno klijent. Naziv komande, izvršni fajl konfigurisan u usluzi i vlastiti popis fajlova paketa mogu svi pokazivati na različite objekte, a popravka jednog od njih bez ostalih daje host koji izgleda popravljen i ponaša se gore.

Pođite od putanje koju usluga pokreće

Terminal i systemd jedinica ne razrješavaju izvršne fajlove na isti način. Shell pretražuje PATH; jedinica imenuje putanju, a drop-in izmjene je mogu zamijeniti bez diranja u fajl koji čitate. Ta razlika objašnjava većinu zabune u ovom zadatku. Ona takođe odlučuje na koji fajl vaša popravka mora ciljati.

Pitajte jedinicu šta pokreće, uključujući drop-in fajlove koji je mijenjaju, i čitajte rezultujući ExecStart red umjesto fragmenta koji smatrate mjerodavnim. Zatim pratite tu putanju kroz svaku simboličku vezu do konačnog fajla. Omotač koji završava exec u skriveni direktorij čest je raspored iz ovih starih popravki.

Zapišite razriješenu putanju prije nego što bilo šta promijenite.

systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"

Uporedite naziv komande s putanjom usluge

Dva odgovora se često razlikuju i ta razlika nije automatski kvar. NetworkManager dodatak može pokretati svoju putanju, a kontejner može montirati još jednu.

Važno je znati koji vlasnik pokreće proces koji opslužuje saobraćaj. Ako jedinica pokreće /usr/local/sbin/openvpn-wrapper dok vaš shell razrješava /usr/sbin/openvpn, popravka drugog fajla ne mijenja ništa u usluzi.

Pitajte koji paket posjeduje svakog kandidata, pa odlučite da li je fajl pod upravljanjem paketa ili lokalno postavljen. Fajl bez paketa koji ga posjeduje je fajl koji je neko namjerno tu stavio i zaslužuje naziv, vlasnika i razlog prije brisanja. Obrnuta greška je takođe česta: prepisivanje fajla paketa starim sačuvanim binarnim fajlom jer je objava na forumu koristila isti direktorij.

Pustite bazu paketa da govori o fajlovima paketa

Kada softver dolazi iz Debian paketa, baza podataka paketa može vam reći da li se njegovi fajlovi još podudaraju s onim što je instalirano. To je usko pitanje integriteta, a ne sigurnosna presuda, i razlika je važna kada odlučujete šta popraviti. Nepodudaranje znači da se fajl promijenio nakon instalacije, što može biti vaše staro rješenje ili legitimna lokalna izmjena. Izlaz ne rješava koje je, pa ga čitajte kao pokazatelj, a ne kao zaključak.

Pokrenite provjeru i čitajte izlaz, umjesto da prazan rezultat smatrate dokazom bilo čega.

dpkg -S /usr/sbin/openvpn
dpkg --verify openvpn

dpkg priručnik dokumentuje da provjera poredi instalirane fajlove s lokalno zapisanim metapodacima, koristeći sačuvane kontrolne sume gdje postoje. Ona primjećuje promijenjen fajl paketa i ne može vam reći da li se umjesto njega pokreće drugi binarni fajl.

Zabilježite stanje prije popravke

Prikupite razriješenu putanju pokretanja, odnos fajla s paketom, lokaciju omotača i zapis o promjeni koji ga je uveo. Kopirajte omotač na zaštićeno mjesto ako sadrži integracijski rad koji će kasnije trebati.

Ne lijepite sadržaj omotača u temu podrške prije nego što ga pročitate, jer ove skripte ponekad nose akreditive ili detalje o pristupniku.

Zabilježite koje profile usluga koristi i ko je povezan dok radite, jer ponovno pokretanje tunela može prekinuti sesiju kojom administrirate host.

Provjerite pokretanje, zatim uklonite omotač

Nakon popravke pokrenite uslugu i potvrdite da proces radi na putanji koju ste namjeravali. Ručno izvršen upit verzije dokazuje da fajl radi; ne dokazuje da ga jedinica koristi.

Zatim ponovo povežite klijenta i provjerite da li se profil još autentificira, jer zamjena binarnog fajla koja zanemaruje izvorne opcije neće uspjeti na način koji izgleda kao problem sa certifikatom.

Uklonite premješteni omotač kroz isti zapis o promjeni koji ga je uveo. Završena popravka navodi koji izvršni fajl radi, zašto i koji je fajl uklonjen; vraćanje naziva fajla i nada nisu ista stvar.

Povezani članci