Які бінарны файл openvpn працуе? Праверце шлях запуску
Імя каманды, шлях службы і файл пакета могуць быць трыма рознымі аб’ектамі. Праверце шлях запуску, праверце файлы пакета, затым прыбярыце абгортку.
Старое абыходнае рашэнне перанесла выканальны файл OpenVPN у іншае месца і пакінула shell-абгортку па першапачатковым шляху. Праз месяцы прыходзіць абнаўленне, і адкат рашэння ператвараецца ў гульню здагадак пра тое, які файл насамрэч з’яўляецца кліентам. Імя каманды, выканальны файл, настроены ў службе, і ўласны пералік файлаў пакета могуць указваць на розныя аб’екты, а рамонт аднаго з іх без астатніх дае хост, які выглядае выпраўленым і працуе горш.
Пачніце са шляху, які запускае служба
Тэрмінал і модуль systemd не развязваюць выканальныя файлы аднолькава. Абалонка шукае ў 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, а ваша абалонка развязвае /usr/sbin/openvpn, выпраўленне другога файла нічога не змяняе ў службе.
Спытайце, якому пакету належыць кожны кандыдат, затым вырашыце, ці файл кіруецца пакетам, ці размешчаны лакальна. Файл без пакета-уладальніка — гэта файл, які хтосьці паставіў туды наўмысна, і ён заслугоўвае імя, уладальніка і прычыну, перш чым яго выдаляць. Адваротная памылка таксама частая: перазапіс файла пакета старым захаваным бінарнікам, бо паведамленне на форуме выкарыстоўвала той жа каталог.
Няхай база даных пакетаў гаворыць пра файлы пакета
Калі праграма прыйшла з пакета Debian, база даных пакетаў можа сказаць, ці яго файлы ўсё яшчэ супадаюць з усталяваным. Гэта вузкае пытанне цэласнасці, а не вердыкт бяспекі, і розніца важная, калі вы вырашаеце, што рамантаваць. Неадпаведнасць азначае, што файл змяніўся пасля ўсталявання, і гэта можа быць ваша старое рашэнне або законная лакальная праўка. Вынік не вырашае, што менавіта, таму чытайце яго як паказальнік, а не як выснову.
Запусціце праверку і чытайце вынік, а не ўспрымайце пусты вынік як доказ чаго-небудзь.
dpkg -S /usr/sbin/openvpn
dpkg --verify openvpnУ дапаможніку dpkg сказана, што праверка параўноўвае ўсталяваныя файлы з лакальна запісанымі метаданымі, выкарыстоўваючы захаваныя кантрольныя сумы, дзе яны ёсць. Яна заўважае зменены файл пакета і не можа сказаць, ці запускаецца замест яго іншы бінарнік.
Запішыце стан перад рамонтам
Сабярыце развязаны шлях запуску, сувязь файла з пакетам, месцазнаходжанне абгорткі і запіс змен, які яе ўвёў. Скапіруйце абгортку ў абароненае месца, калі яна змяшчае інтэграцыйную працу, якая спатрэбіцца пазней.
Не ўстаўляйце змесціва абгорткі ў тэму падтрымкі, пакуль яго не прачытаеце, бо гэтыя скрыпты часам нясуць уліковыя даныя або звесткі пра шлюз.
Запішыце, якія профілі выкарыстоўвае служба і хто падключаны, пакуль вы працуеце, бо перазапуск тунэля можа перарваць сеанс, праз які вы кіруеце хостам.
Праверце запуск, затым прыбярыце абгортку
Пасля рамонту запусціце службу і пацвердзіце, што працэс працуе па шляху, які вы мелі на ўвазе. Запыт версіі, выкананы ўручную, даказвае, што файл працуе; ён не даказвае, што модуль выкарыстоўвае яго.
Затым зноў падключыце кліента і праверце, што профіль усё яшчэ аўтэнтыфікуецца, бо замена бінарніка, якая ігнаруе першапачатковыя опцыі, скончыцца правалам, які выглядае як праблема з сертыфікатам.
Прыбярыце перамешчаную абгортку праз той жа запіс змен, які яе ўвёў. Завершаны рамонт указвае, які выканальны файл працуе, чаму і які файл быў выдалены; аднавіць імя файла і спадзявацца — гэта не тое самае.