Кој openvpn бинарен файл работи? Проверете ја патеката на стартување
Име на команда, патека на услуга и датотека на пакет можат да бидат три различни објекти. Проверете ја патеката на стартување, потврдете ги датотеките на пакетот, потоа отстранете ја обвивката.
Старо решение го премести извршниот файл на OpenVPN на друго место и остави shell обвивка на првобитната патека. Месеци подоцна доаѓа надградба, и враќањето на решението станува игра на погодување која датотека е навистина клиентот. Името на командата, извршната датотека конфигурирана во услугата и сопствениот список на датотеки на пакетот можат сите да покажуваат на различни објекти, а поправка на еден од нив без другите создава домаќин што изгледа поправен и се однесува полошо.
Почнете од патеката што ја стартува услугата
Терминалот и systemd единицата не ги решаваат извршните датотеки на ист начин. Shell пребарува во PATH; единицата именува патека, а drop-in отфрлањата можат да ја заменат без да ја допрат датотеката што ја читате. Таа разлика го објаснува најголемиот дел од конфузијата во оваа задача. Таа одредува и кон која датотека мора да се насочи вашата поправка.
Прашајте ја единицата што извршува, вклучително drop-in отфрлањата што ја менуваат, и читајте го добиениот ред ExecStart наместо делот што го сметате за авторитетен. Потоа следете ја таа патека низ која било симболичка врска до конечната датотека. Обвивка што завршува со exec во скриена папка е вообичаен распоред од овие стари поправки.
Запишете ја решената патека пред да промените нешто.
systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"Споредете го името на командата со патеката на услугата
Двата одговора често се различни, и таа разлика не е автоматски дефект. Приклучок на NetworkManager може да стартува своја патека, а контејнер може да монтира уште една.
Важно е да знаете кој сопственик го стартува процесот што го опслужува сообраќајот. Ако единицата извршува /usr/local/sbin/openvpn-wrapper додека вашиот shell решава /usr/sbin/openvpn, поправката на втората датотека не менува ништо во услугата.
Прашајте кој пакет го поседува секој кандидат, потоа одлучете дали датотеката ја управува пакетот или е поставена локално. Датотека без пакет што ја поседува е датотека што некој намерно ја ставил таму, и заслужува име, сопственик и причина пред да се избрише. Обратната грешка е исто така вообичаена: препишување на датотека од пакет со стара зачувана бинарна датотека затоа што објава на форум ја користела истата папка.
Оставете базата на податоци за пакети да зборува за датотеките на пакетот
Кога софтверот доаѓа од Debian пакет, базата на податоци за пакети може да ви каже дали неговите датотеки сѐ уште одговараат на инсталираното. Тоа е тесно прашање за интегритет, не пресуда за безбедност, и разликата е важна кога одлучувате што да поправите. Несовпаѓање значи дека датотеката се променила по инсталацијата, што може да биде вашето старо решение или легитимна локална измена. Излезот не одлучува која, затоа читајте го како показател, а не како заклучок.
Стартувајте ја проверката и читајте го излезот наместо празен резултат да го сметате за доказ за нешто.
dpkg -S /usr/sbin/openvpn
dpkg --verify openvpnПрирачникот за dpkg документира дека проверката ги споредува инсталираните датотеки со локално запишани метаподатоци, користејќи зачувани контролни суми каде што постојат. Забележува променета датотека од пакет и не може да ви каже дали наместо неа се стартува друга бинарна датотека.
Запишете ја состојбата пред поправката
Соберете ја решената патека на стартување, односот на датотеката со пакетот, локацијата на обвивката и записот за измена што ја вовел. Копирајте ја обвивката на заштитено место ако содржи интеграциска работа што ќе биде потребна подоцна.
Не вметнувајте ја содржината на обвивката во нишка за поддршка пред да ја прочитате, бидејќи овие скрипти понекогаш носат акредитиви или детали за портата.
Запишете кои профили ги користи услугата и кој е поврзан додека работите, бидејќи рестартирањето на тунелот може да ја прекине сесијата со која го администрирате домаќинот.
Потврдете го стартувањето, потоа отстранете ја обвивката
По поправката стартувајте ја услугата и потврдете дека процесот работи на патеката што сте ја намениле. Рачно извршено барање на верзија докажува дека датотеката работи; тоа не докажува дека единицата ја користи.
Потоа повторно поврзете клиент и проверете дали профилот сѐ уште се автентицира, бидејќи замена на бинарна датотека што ги игнорира оригиналните опции ќе не успее на начин што изгледа како проблем со сертификат.
Отстранете ја преместената обвивка преку истиот запис за измена што ја вовел. Завршената поправка наведува која извршна датотека работи, зошто и која датотека е отстранета; враќање на име на датотека и надеж не е исто.