VPN клиенті жойылды, бірақ туннель жүктелу кезінде әлі де қосылады
Жойылған VPN клиенті systemd бірлігін, сақталған профильді, көмекшіні және apt қоймасын қалдыруы мүмкін. Басқа нәрсені тазаламас бұрын төртеуін де түгендеңіз.
Дистрибутивіңіз пакетті жояды, мәзір жазбасын жоғалтады, ал туннель келесі қайта жүктеуден кейін бәрібір көтеріледі. Коммерциялық VPN клиенті пакет менеджері ешқашан бақыламаған бөліктерді қалдырады, сондықтан таза жою таза машинамен бірдей емес. Сол бөліктердің төртеуі дерлік барлық елес қосылысты түсіндіреді: бірлік, қосылым профилі, артықшылығы бар көмекші және жеткізуші қоймасы. Бірдеңе жоймас бұрын төртеуін де оқыңыз, содан кейін әрқайсысын оған ие компонент арқылы алып тастаңыз.
Жоюшы ешқашан тіркеп қоймаған нәрсе
Пакет менеджері тек өзі жазып қойған файлдарды жояды, басқа ештеңе емес. Оның клиент жұмыс барысында жасаған қосылым профилі туралы, орнатудан кейін қосылған бірлік туралы немесе жоғарылатылған құқықтармен жұмыс істеп, өзін тіркеген көмекші туралы жазбасы жоқ. Олардың әрқайсысы басқа ішкі жүйеге жатады және әрқайсысы пакеттен кейін бір немесе бірнеше қайта жүктеуге шыдай алады. Дәл осы олқылық туннельдің сау болуын, ал оны жасаған бағдарламаның жоқ болуын түсіндіреді.
Қалдықтың әрқашан иесі болады: ол systemd пе, NetworkManager ме, қойма конфигурациясы ма әлде пайдаланушыға арналған автоқосылу жазбасы ма. Ең алдымен иесін табу тазалауды жартылай конфигурацияланған машинаға айналдырмайды. Файлдарды тікелей жою әдетте иесі оларды қайта жасамайынша жұмыс істейді, сондықтан төмендегі командалар сұраныстардан басталады.
Төрт ие, алдымен тек оқу
Жоюдан емес, сұраныстардан бастаңыз және қайтарылған нақты атауларды жазып алыңыз. Жеткізушілер жиі метапакеттің қасында нұсқаланған пакет ұсынады, сондықтан бір өнім екі атаумен көрінуі мүмкін. Екі тізімде де кездесетін атау — екі иесі бар бір өнім, екеуін де жою керек. Бірінші топтама пакеттер мен бірліктерді қамтиды, қалдықтардың көбі сонда көрінеді.
dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn
Екінші топтама тазалаудан кейін жиі аман қалатын екі компонентті қамтиды, яғни қосылым профилі мен жеткізуші қоймасы. Атауды емес, UUID бағанын оқыңыз, өйткені қайталанатын атаулар жиі кездеседі және жою командасы идентификаторды күтеді. Қойма жолын бүгін жоймасаңыз да оқыған жөн, себебі өлі жеткізуші хосты айлар өткен соң байланыссыз орнатуды бұзуы мүмкін. Екі тізімнің ешқайсысы ештеңені өзгертпейді, оларды бірінші орындауының мәні де осында.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list
Тазалаудан кейін тірі қалған процесстер не белсенді бірлік, не басқа бағдарламаның ұрпағы. Енді жоқ қызметті кінәламас бұрын процестер кестесін және оның ата-баба тізбегін оқыңыз. Пайдаланушыға арналған автоқосылу жазбалары да сол тексеруді қажет етеді және олар тек жаңа кіру қабығында көрінеді, root сессиясында емес.
Ауыстырылмайтын үш етістік
Тоқтату ағымдағы жүгірісті аяқтайды, өшіру жүктелу кезіндегі сілтемелерді алып тастайды, ал маскировкалау бірлікті /dev/null мекенжайына бағыттайды. Тек үшіншісі ғана сокет, таймер немесе тәуелділік арқылы белсендіруді де бұғаттайды, бұл оны үшеуінің ішіндегі ең күштісі етеді. Машинамен не істеуді әлі шешіп жатқанда рет маңызды. Осы шешім кезінде маскировкалау дұрыс күй, өйткені ол келесі жүктелуде тыныш қосылудың орнына дауыстап сәтсіздікке ұшырайды.
Қайта орнату алдында маскировканы алыңыз, әйтпесе жаңа пакет ешкім жазбаған себептен бүлінген болып көрінеді. Дәл осы сақтық қаптама айырмашылықтарына да қатысты: бір құрылым тоқтатуға болатын бірлік ұсынса, екіншісі мүлде қызмет қалдырмайды. Етістік таңдамас бұрын қандай қаптамаңыз бар екенін анықтаңыз, өйткені тазалау жолы екеуінде әртүрлі.
Жұлдызшалармен қате профильді жоясыз
Профильді жазбаға алған UUID-мен жойыңыз, ешқашан жұлдызшамен емес. keyfile қалтасында машинадағы барлық Wi-Fi және Ethernet профильдері де бар, сондықтан кең сәйкестік сізге әлі керек нәрселерді жояды. Қолмен жойылған keyfile-ды оған ие саясат қайта жасауы мүмкін, бұл жоюды тиімсіз көрсетеді.
nmcli connection delete uuid <uuid>
Егер бұл профиль қолыңызда қалған жалғыз көшірме болса, алдымен шлюз бен жеке басын экспорттаңыз, өйткені жергілікті жою серверде ештеңені жоймайды. Қойма да сол ережені ұстанады: жалғыз жеткізуші файлын және оның кілттер шоғырын алып тастаңыз, содан кейін пакет тізімдерін жаңартып, шын мәнінде қалаған орнатуды қайталап көріңіз. Ескірген үшінші тарап жазбасын қалдыру ескі тәуелділікті бекітіп қоюы немесе мүлде жауап бермеуі мүмкін. Екі жою да шағын, және кез келгенін сақтап қойған көшірмеден қайтаруға болады.
Қайта жүктеуден кейін әлі не жұмыс істейді
Жеңіс жарияламас бұрын қайта жүктеңіз, содан кейін қолданбаны емес, артефактілерді іздеңіз. Ескі клиент қалдырған туннель интерфейсі, ескірген бөлінген маршрут және әр байланыс үшін DNS әрқайсысы өз командасын қажет етеді. Үшеуі де барлық пакетті сәтті жойған тазалаудан кейін де өмір сүре алады.
ip link
ip route
resolvectl status
Жаңа кіру қабығын да ашыңыз, өйткені автоқосылу жазбасы тек сонда іске қосылады. Содан кейін /etc/NetworkManager/dispatcher.d/ ішінен интерфейс күйін өзгерткен сайын қосылымды көтеретін скриптті іздеп оқыңыз, бұл артында қызмет жоқ туннельдің қайта оралуын түсіндіреді. Егер бірдеңе әлі сыртқа қоңырау шалса, симптом тоқтағанша файлдарды жоюдың орнына процесті оның атасына дейін бақылаңыз. Машинаны тазалау мен тіркелгіні қайтарып алу бөлек жұмыстар болып қалады, ал қайта жүктеу тыныш көрінгенде солардың біреуі ғана бітеді.