Elavult VPN-rekord eltávolítása a resolvconf adatbázisából
Olyan gazdagépen, ahol a Debian resolvconf kezeli az állapotot, egy bejegyzés törlése egyszerű. Előbb bizonyítsa, hogy a rekord elavult és nincs gazdája, majd ellenőrizze az újraírást.
Egy belső név még egy nappal az alagút lezárása után is a VPN-kiszolgálóra oldódik fel, és a feloldó fájl újra meg újra visszatér ezzel a bejegyzéssel. Ahol a Debian resolvconf kezeli az állapotot, ott ez a fájl szállítói rekordokból áll össze, és ezek egyike a maradék. A rekord törlése egy percet vesz igénybe; annak bizonyítása, hogy biztonságos törölni, az igazi munka. Ezek a kapuk sorban futnak, és egy meghiúsult kapu befejezi az eljárást ahelyett, hogy a következő lépésre küldené.
Erősítse meg, hogy a resolvconf kezeli az állapotot
Először a gazdát azonosítsa, mert ugyanez a tünet a systemd-resolved alatt más parancsokat és más javítást igényel. A resolvconf csomag az /run/resolvconf alatt tart egy adatbázist, és a /etc/resolv.conf-t arra a fájlra irányítja, amelyet ebből az adatbázisból épít. Két leolvasás dönti el a kérdést: a symlink célja, valamint hogy a csomag telepítve és aktív-e. Az /run/systemd/resolve alatti cél a másik felépítést jelenti, ahol az alábbiak egyike sem érvényes.
dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service
Ha a hivatkozás máshová mutat, vagy a csomag hiányzik, álljon meg itt. Egy kompatibilitási burkoló, amely kölcsönvette a nevet, és amelyet egy másik feloldókezelő szállít, nem tulajdonosa ennek az adatbázisnak.
Az adatbázis bemeneteket tartalmaz, nem a választ
Az adatbázis bemeneteket tartalmaz, a fájl pedig kimenet, ezért a bemenetek felsorolása az egyetlen módja annak, hogy lássa, melyik program telepítette a törölni kívánt bejegyzést. A rekordok rövidek, kulcsaik pedig azok a fogantyúk, amelyekre később szüksége lesz. Olvassa el őket, mielőtt eldönti, melyik elavult, mert egy VPN-interfésznek látszó név egy másik klienshez is tartozhat. A privát címeket és a belső keresési tartományokat tartsa távol a megosztott diagnosztikától; a kulcs önmagában általában azonosítja a rekordot.
sudo resolvconf --list
sudo resolvconf -i
Az első parancs feldolgozás nélkül írja ki a szállított rekordokat, a második pedig felsorolja azokat az interfészeket, amelyek jelenleg DNS-konfigurációt biztosítanak. A kulcsok hagyományosan egy interfésznévből és a szállító programból épülnek fel. A resolvconf kézikönyv ismerteti azt az adatbázist, amelyre ezek a kulcsok hivatkoznak.
Másolja ki a kulcsot a kimenetből ahelyett, hogy újraépítené. Egy bejegyzést nem azért hívnak tun0-nek, mert egy régi szkript ezt a nevet használta.
Bizonyítsa, hogy a rekordnak nincs gazdája
Egy rekord akkor törölhető biztonságosan, ha nem élő kapcsolat telepítette. Rendelje a kulcsot ahhoz a kapcsolathoz, amely létrehozta, majd erősítse meg, hogy az a kapcsolat már nincs meg. Ez az összerendelés maga a kapu, és ezt a lépést hagyják ki leggyakrabban a törlési parancs felé vezető úton. Ha a bizonyíték kétértelmű, tekintse a rekordot élőnek, és álljon meg.
A folyamatnevek gyenge bizonyítékok. Az OpenConnect az vpnc-script-ot hívja, ezért az vpnc folyamat ellenőrzése semmit sem mond arról, melyik rekord az aktuális. Egy friss kapcsolat újra használhat egy interfésznevet, amelyet egy régi hagyott hátra, amitől a kulcs régebbinek látszik a valós koránál. Hasonlítsa össze a rekordban lévő kiszolgálócímet a még aktív alagutak címeivel, és álljon meg, ha egyeznek.
A tulajdonos kezelőn keresztüli normál bontás az első megoldás. Az visszavonja azt, amit az a kapcsolat telepített, és érintetlenül hagyja a többi szállítót.
Ellenőrizze az eltávolítást és az újraírást
Miután a rekord elavultnak bizonyult, törölje a pontos kulccsal, majd olvassa el az eredményt ahelyett, hogy feltételezné. A parancs a gazdagép minden alkalmazása számára megváltoztatja a feloldó állapotát, ezért egy Ön által ellenőrzött ablakban futtassa. Tegye idézőjelbe a kulcsot, mert olyan karaktereket tartalmaz, amelyeket a shell egyébként kiterjesztene. A blokkban lévő helyőrző azt a kulcsot jelöli, amelyet a listából kimásolt, nem egy szó szerinti karakterláncot.
sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example
A törlés az engedélyezett frissítés esetén lefuttatja a frissítő szkripteket; letiltott frissítés esetén elhalasztja a frissítést, így az eltávolított rekord és az újraírt fájl két külön esemény. A fájl megtekintése előtt olvassa újra a listát, és erősítse meg, hogy a kulcs eltűnt. Ezután kérdezzen le egy nevet, amelynek még fel kell oldódnia a megmaradt szállítókon keresztül, és egy nyilvános nevet, majd hasonlítsa össze mindkettőt azzal, amit a változtatás előtt látott. Ha egy privát név teljesen megszűnik feloldódni, azt a rekord még mindig hordozta.
resolvconf -u csak azokat a frissítő szkripteket futtatja. Soha nem azonosít vagy töröl elavult rekordot, és az elavult bemenetekből való újraépítés ugyanazt a nem kívánt fájlt állítja elő.
Egy megölt bontási horog hátrahagyja a rekordot
Az egyszeri tisztítás helyreállítja a mai állapotot, a következő megszakadt leállítás pedig visszateszi a rekordot. Járja végig a bontási útvonalat: az ügyfél bontási horgát, a horgot meghívó segédet, és azt, hogy mi történik, ha bármelyiket megölik. A megszakadt leállítás a szokásos eredet, mert a horog egyáltalán nem futott le. Naplózza a horog kilépési állapotát egyszer, és tudni fogja, hogy csendben hibázik-e.
Tartsa a beállítást és a tisztítást egyetlen tulajdonos alatt. Egy második szkript, amely interfészneveket találgat, előbb-utóbb törölni fogja egy másik kapcsolat rekordját, ami rosszabb, mint az elavult bejegyzés, amellyel kezdte. A tulajdonosnak kell eldöntenie azt is, mikor elavult egy rekord, mert tudja, melyik kapcsolat telepítette.
Ezután gyakorolja az életciklust: csatlakozzon, bontsa a kapcsolatot, listázza újra a rekordokat. A bejegyzés magától való eltűnése az egyetlen bizonyíték arra, hogy a javítás tartós.