Který binární soubor openvpn běží? Zkontrolujte cestu spuštění
Název příkazu, cesta služby a soubor balíčku mohou být tři různé objekty. Zkontrolujte cestu spuštění, ověřte soubory balíčku a poté obal odstraňte.
Staré nouzové řešení přesunulo spustitelný soubor OpenVPN jinam a na původní cestě nechalo shellový obal. Po měsících přijde aktualizace a vrácení řešení se změní v hádání, který soubor je vlastně klient. Název příkazu, spustitelný soubor nakonfigurovaný ve službě a vlastní seznam souborů balíčku mohou ukazovat na různé objekty a oprava jednoho bez ostatních vytvoří hostitele, který vypadá opravený a chová se hůř.
Začněte cestou, kterou služba spouští
Terminál a jednotka systemd nerozlišují spustitelné soubory stejně. Shell prohledává PATH; jednotka pojmenovává cestu a drop-in přepisy ji mohou nahradit, aniž by se dotkly souboru, který čtete. Tento rozdíl vysvětluje většinu zmatku v tomto úkolu. Také určuje, na který soubor musí vaše oprava cílit.
Zeptejte se jednotky, co spouští, včetně drop-in souborů, které ji mění, a čtěte výsledný řádek ExecStart místo fragmentu, který považujete za směrodatný. Potom tuto cestu sledujte přes případný symbolický odkaz až ke konečnému souboru. Obal, který končí exec do skrytého adresáře, je u těchto starých oprav běžné uspořádání.
Než cokoli změníte, zapište si rozlišenou cestu.
systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"Porovnejte název příkazu s cestou služby
Obě odpovědi se často liší a tento rozdíl není automaticky závada. Zásuvný modul NetworkManageru může spouštět svou vlastní cestu a kontejner může připojit ještě jinou.
Důležité je vědět, který majitel spouští proces, jenž obsluhuje provoz. Pokud jednotka spouští /usr/local/sbin/openvpn-wrapper, zatímco váš shell rozlišuje /usr/sbin/openvpn, oprava druhého souboru na službě nic nezmění.
Zeptejte se, kterému balíčku každý kandidát patří, a pak rozhodněte, zda je soubor spravovaný balíčkem, nebo umístěný lokálně. Soubor bez vlastnícího balíčku je soubor, který tam někdo dal záměrně, a zaslouží si jméno, vlastníka a důvod, než bude smazán. Opačná chyba je také běžná: přepsání souboru balíčku starým uloženým binárním souborem, protože příspěvek na fóru použil stejný adresář.
Nechte databázi balíčků mluvit o souborech balíčku
Když software pochází z balíčku Debian, databáze balíčků vám může říct, zda jeho soubory stále odpovídají tomu, co bylo nainstalováno. Je to úzká otázka integrity, ne bezpečnostní verdikt, a rozdíl je důležitý, když se rozhodujete, co opravit. Neshoda znamená, že se soubor po instalaci změnil, což mohlo být vaše staré řešení nebo oprávněná místní úprava. Výstup nerozhodne které, takže ho čtěte jako ukazatel, ne jako závěr.
Spusťte ověření a čtěte výstup, místo abyste prázdný výsledek považovali za důkaz čehokoli.
dpkg -S /usr/sbin/openvpn
dpkg --verify openvpnManuál dpkg dokumentuje, že ověření porovnává nainstalované soubory s lokálně zaznamenanými metadaty a používá uložené kontrolní součty, kde existují. Všimne si změněného souboru balíčku a nedokáže říct, zda se místo něj nespouští jiný binární soubor.
Před opravou zaznamenejte stav
Shromážděte rozlišenou cestu spuštění, vztah souboru k balíčku, umístění obalu a záznam změny, který jej zavedl. Zkopírujte obal na chráněné místo, pokud obsahuje integrační práci, kterou budete později potřebovat.
Nevkládejte obsah obalu do vlákna podpory, dokud si jej nepřečtete, protože tyto skripty někdy nesou přihlašovací údaje nebo podrobnosti o bráně.
Zaznamenejte, které profily služba používá a kdo je připojen, zatímco pracujete, protože restart tunelu může přerušit relaci, kterou hostitele spravujete.
Ověřte spuštění a poté obal odstraňte
Po opravě službu spusťte a potvrďte, že proces běží na cestě, kterou jste zamýšleli. Ručně provedený dotaz na verzi dokazuje, že soubor funguje; nedokazuje, že jej jednotka používá.
Poté znovu připojte klienta a zkontrolujte, zda se profil stále ověřuje, protože výměna binárního souboru, která ignoruje původní volby, selže způsobem, který vypadá jako problém s certifikátem.
Odstraňte přesunutý obal prostřednictvím stejného záznamu změny, který jej zavedl. Dokončená oprava uvádí, který spustitelný soubor běží, proč a který soubor byl odstraněn; obnovit název souboru a doufat není totéž.