Odstránenie zastaranej VPN položky z databázy resolvconf
Na hostiteľovi, kde stav vlastní Debian resolvconf, je vymazanie záznamu jednoduché. Najprv dokážte, že záznam je zastaraný a bez vlastníka, potom skontrolujte prepis.
Interné meno sa stále prekladá na server VPN deň po zatvorení tunela a súbor resolvera sa stále vracia s týmto záznamom. Tam, kde stav vlastní Debian resolvconf, je ten súbor zostavený zo záznamov dodávateľov a jeden z nich je zvyšok. Vymazanie záznamu trvá minútu; dokázať, že je bezpečné ho vymazať, je skutočná práca. Tieto brány sa spúšťajú v poradí a neúspešná brána procedúru ukončí, namiesto toho, aby vás poslala na ďalší krok.
Potvrďte, že resolvconf vlastní stav
Najprv identifikujte vlastníka, pretože rovnaký príznak pod systemd-resolved vyžaduje iné príkazy a inú opravu. Balík resolvconf drží databázu v /run/resolvconf a smeruje /etc/resolv.conf na súbor, ktorý z nej zostavuje. Dve čítania rozhodnú otázku: cieľ symbolického odkazu a to, či je balík nainštalovaný a aktívny. Cieľ v /run/systemd/resolve znamená inú konštrukciu, kde nič nižšie neplatí.
dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service
Ak odkaz ukazuje inam alebo balík chýba, zastavte sa tu. Obal kompatibility, ktorý si požičal názov a dodáva ho iný správca resolvera, nevlastní túto databázu.
Databáza obsahuje vstupy, nie odpoveď
Databáza obsahuje vstupy a súbor je výstup, takže vypísanie vstupov je jediný spôsob, ako zistiť, ktorý program nainštaloval záznam, ktorého sa chcete zbaviť. Záznamy sú krátke a ich kľúče sú úchytky, ktoré budete potrebovať neskôr. Prečítajte si ich, kým sa rozhodnete, ktorý je zastaraný, pretože názov, ktorý vyzerá ako rozhranie VPN, môže patriť inému klientovi. Držte súkromné adresy a interné domény vyhľadávania mimo zdieľanej diagnostiky; samotný kľúč zvyčajne záznam identifikuje.
sudo resolvconf --list
sudo resolvconf -i
Prvý príkaz vypíše dodané záznamy bez ich spracovania a druhý vymenuje rozhrania, ktoré práve poskytujú konfiguráciu DNS. Kľúče sa zvyčajne zostavujú z názvu rozhrania a dodávajúceho programu. Príručka resolvconf opisuje databázu, na ktorú sa tie kľúče vzťahujú.
Skopírujte kľúč z výstupu, namiesto toho, aby ste ho zostavovali znova. Záznam sa nenazýva tun0 len preto, že starý skript použil ten názov.
Dokážte, že záznam nemá vlastníka
Záznam je bezpečné vymazať, keď ho nenainštalovalo žiadne živé spojenie. Spárujte kľúč so spojením, ktoré ho vytvorilo, a potom potvrďte, že to spojenie zmizlo. Táto korelácia je celá brána a je to krok, ktorý sa na ceste k príkazu vymazania najčastejšie vynecháva. Ak sú dôkazy nejednoznačné, považujte záznam za živý a zastavte sa.
Názvy procesov sú slabý dôkaz. OpenConnect volá vpnc-script, takže kontrola procesu vpnc nič nehovorí o tom, ktorý záznam je aktuálny. Nové spojenie môže tiež znova použiť názov rozhrania, ktorý nechalo staré, čo spôsobí, že kľúč vyzerá starší, než je. Porovnajte adresu servera v zázname s adresami tunelov, ktoré ešte bežia, a ak sa zhodujú, zastavte sa.
Bežné odpojenie cez správcu, ktorý spojenie vlastní, je prvý liek. Odvolá to, čo to spojenie nainštalovalo, a ostatných dodávateľov nechá nedotknutých.
Skontrolujte odstránenie a prepis
Keď je záznam potvrdený ako zastaraný, vymažte ho presným kľúčom a potom prečítajte výsledok, namiesto toho, aby ste ho predpokladali. Príkaz mení stav resolvera pre každú aplikáciu na hostiteľovi, preto ho spustite v okne, ktoré ovládate. Dajte kľúč do úvodzoviek, pretože obsahuje znaky, ktoré by shell inak rozvinul. Zástupný symbol v bloku predstavuje kľúč skopírovaný zo zoznamu, nie doslovný reťazec.
sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example
Vymazanie spustí aktualizačné skripty, keď je aktualizácia zapnutá; pri vypnutých aktualizáciách aktualizáciu odloží, takže odstránený záznam a prepísaný súbor sú dve oddelené udalosti. Prečítajte zoznam znova a potvrďte, že kľúč zmizol, skôr než sa pozriete na súbor. Potom sa opýtajte na jedno meno, ktoré by sa ešte malo prekladať cez zostávajúcich dodávateľov, a na jedno verejné meno, a obe porovnajte s tým, čo ste videli pred zmenou. Ak sa súkromné meno prestane úplne prekladať, ten záznam ho ešte niesol.
resolvconf -u spúšťa len tie aktualizačné skripty. Nikdy neidentifikuje ani nevymaže zastaraný záznam a opätovné zostavenie zo zastaraných vstupov reprodukuje ten istý nechcený súbor.
Zabitý háčik odpojenia nechá záznam za sebou
Jednorazové čistenie obnoví dnešný stav a ďalšie prerušené vypnutie vráti záznam späť. Prejdite cestu demontáže: háčik odpojenia klienta, pomocník, ktorý ten háčik volá, a čo sa stane, keď je ktorýkoľvek z nich zabitý. Prerušené vypnutie je obvyklý zdroj, pretože háčik vôbec nebežal. Raz zaznamenajte návratový stav háčika a budete vedieť, či zlyháva potichu.
Držte nastavenie a čistenie pod jedným vlastníkom. Druhý skript, ktorý háda názvy rozhraní, nakoniec vymaže záznam iného spojenia, čo je horšie než zastaraný záznam, s ktorým ste začali. Vlastník by mal tiež rozhodnúť, kedy je záznam zastaraný, pretože vie, ktoré spojenie ho nainštalovalo.
Potom precvičte životný cyklus: pripojte sa, odpojte sa, znova vymenujte záznamy. Samovoľné zmiznutie záznamu je jediný dôkaz, že oprava drží.