Prepínač zabezpečenia stále blokuje prevádzku po odpojení VPN
Filtre prepínača zabezpečenia a pravidlá drop žijú dlhšie ako klient. Prečítajte stav WFP vo Windows a pravidlá iptables v Linuxe, odstráňte najužší objekt a potom nájdite vlastníka.
Tunel je preč, ikona siete vyzerá normálne a nič sa nenačítava. Odpojili ste VPN, odinštalovali ho alebo reštartovali, a blokáda, ktorá vás mala chrániť pri výpadku, stále stojí. Okno klienta to nevie vysvetliť, pretože neblokuje klient: rozhodnutie bolo zapísané do jadra vo vašom mene a nič neostalo, aby ho odstránilo. Vo Windows tento stav sídli vo Windows Filtering Platform; v Linuxe je to sada pravidiel v iptables alebo nftables, často so snímkou, ktorá sa pri štarte znova aplikuje. Nasleduje poradie, ktoré používam: prečítajte stav, odstráňte najužší objekt, ktorý vysvetľuje zlyhanie, a potom nájdite to, čo ho stále vracia.
Prepínač zabezpečenia je stav jadra, nie nastavenie
Desktopoví klienti realizujú blokovanie pridaním filtrov, ktoré odmietajú prevádzku mimo tunela. Vo Windows sú to filtre WFP na vrstvách connect-redirect a transport a niektoré sú trvalé: zapisujú sa do úložiska politík Base Filtering Engine a obnovujú sa pri štarte stroja, pred spustením akéhokoľvek VPN softvéru. Klienti sa líšia v tom, kedy upratujú. Jedny odstraňujú filtre pri odpojení, iné len pri čistom ukončení a ďalšie len vtedy, keď sa najprv vypne prepínač. Odinštalujte, kým je blokáda aktívna, alebo zabite proces a filtre ostanú.
Ekvivalentom v Linuxe je pravidlo drop alebo reject vo výstupnej ceste, niekedy pravidlo forwarding, niekedy zmenená politika reťazca. Tie pravidlá žijú dlhšie ako proces, ktorý ich pridal, pretože sú stavom jadra: zabite klienta, zrazte ho alebo odpojte napájanie a jadro ďalej zahadzuje pakety a nič neostáva, aby to zrušilo. Balík trvácnosti pridáva druhú vrstvu trvácnosti tým, že uloží snímku aktuálnej sady pravidiel a obnoví ju pri štarte, takže ďalší štart začína s už nainštalovanou blokádou.
Prečítajte stav WFP, skôr než čokoľvek odstránite
Windows dodáva potrebné nástroje. Spustite prompt s právami správcu a vyexportujte stav platformy; výpis sa objaví ako wfpstate.xml v pracovnom adresári.
netsh wfp show state
netsh wfp show filters
Get-Service bfe
V XML hľadajte názov odídeného dodávateľa, akciu Block a vrstvu. Filtre na connect-redirect a transport sú tie, ktoré lámu bežnú prevádzku; filter na vrstve receive-accept zvyčajne nie je vaša príčina. Ak Base Filtering Engine vôbec nebeží, hľadajte inde, pretože nič iné nedokáže tieto filtre presadiť.
Skontrolujte aj bežný pohľad na firewall, pretože väčšina ľudí si prezrie len jeden z dvoch:
netsh advfirewall show allprofiles
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultInboundAction
Keď sú vstavané profily zapnuté a žiadne pravidlo nezodpovedá zlyhávajúcej prevádzke, blokáda prichádza od tretej strany, nie od Windows Firewall. Tento rozdiel rozhoduje, ktorý nástroj použijete na opravu.
Čítajte pravidlá Linuxu v syntaxi, ktorou budete mazať
iptables -S vypisuje pravidlá v rovnakom tvare, v akom boli pridané, takže výstup sa dá priamo znova použiť na odstránenie. iptables -L -v -n pridáva počítadlá paketov a tie počítadlá hovoria, či pravidlo skutočne zodpovedá vašim neúspešným požiadavkám, alebo len sedí v reťazci.
sudo iptables -S
sudo ip6tables -S
sudo iptables -t nat -S
Čítajte politiky reťazcov, nielen pravidlá: -P OUTPUT DROP blokuje prevádzku aj vtedy, keď žiadne pravidlo nezodpovedá. Prezrite IPv6 oddelene, pretože klient, ktorý nainštaluje obe rodiny, môže nechať blokádu IPv6 na mieste po tom, čo pravidlá IPv4 zmiznú, a symptóm potom závisí od toho, ktorej rodine aplikácia dáva prednosť. Kde sa používa nftables, spustite aj nft list ruleset; oba nástroje koexistujú cez vrstvu kompatibility a jeden výpis nemusí ukázať každé pravidlo, ktoré dokáže paket zahodiť.
Odstráňte najužší objekt, ktorý vysvetľuje zlyhanie
Vo Windows je prvým krokom stále cesta odstránenia od dodávateľa: spustite inštalátor znova a použite repair alebo uninstall, alebo spustite čistiaci nástroj, ak ho dodávateľ zverejňuje. Zvyšné služby a naplánované úlohy sú bežné a úloha, ktorá spúšťa klienta pri prihlásení, preinštaluje jeho filtre pri ďalšom štarte. Odinštalácia, ktorá zlyhá pri čítaní kľúča registra klienta, zvyčajne znamená, že ho ešte drží služba alebo úloha, nie že je register poškodený.
Get-ScheduledTask | Where-Object TaskName -like '*vpn*'
Get-Service | Where-Object DisplayName -like '*vpn*'
Trvalé filtre sú posledná možnosť. Sú pod HKLM\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Persistent\Filter, jedna hodnota na filter s kľúčom GUID. Najprv exportujte kľúč, zapíšte GUID, ktoré odstraňujete, mažte len hodnoty patriace odídenému klientovi, potom reštartujte, aby engine znova postavil stav. Nemažte celý kľúč a nevypínajte Base Filtering Engine: Windows Firewall a Defender na ňom závisia a jednu poruchu by ste vymenili za horšiu.
reg export "HKLM\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Persistent" C:\temp\bfe-backup.reg
V Linuxe vezmite riadok, ktorý vypísal iptables -S, a nahraďte -A za -D. Odstrániť jedno pravidlo, ktoré ste identifikovali, je lepšie než vyprázdniť reťazec, pretože vaša vlastná politika zostane nedotknutá.
sudo iptables -D OUTPUT -p udp -j REJECT
Ak drop sídli v používateľom definovanom reťazci, najprv odstráňte skok do tohto reťazca a potom reťazec odstráňte pomocou -X. Nastavenie politiky reťazca na ACCEPT, kým pravidlá drop ešte existujú, pomáha len paketom, ktoré vôbec dosiahnu rozhodnutie o politike. Vyprázdnenie všetkých tabuliek je posledná možnosť: odstráni aj pravidlá, ktoré ste pridali z iných dôvodov, a s aktívnym ufw nechá službu v presvedčení, že vlastní reťazce, ktoré už neexistujú.
Nájdite vlastníka, ktorý to vracia
Po bezprostrednej oprave hľadajte to, čo by obnovilo stav. V Linuxe skontrolujte, či je jednotka trvácnosti povolená, či má klient nastavenie obnovy firewallu pri prihlásení a či pod /etc existuje uložený súbor pravidiel. Vo Windows znova skontrolujte položky spustenia, služby a naplánované úlohy, potom reštartujte a prečítajte stav tými istými príkazmi ako predtým.
Ak sa blokáda vráti, odstránenie nebolo riešením; riešením bol vlastník. Zapíšte, ktorý klient alebo služba ju inštaluje, a vypnite funkciu tam, namiesto boja s ňou na úrovni firewallu po každom odpojení.
Overujte skutočnou prevádzkou, nie jedným pingom
Otestujte preklad názvu, TCP spojenie a novú reláciu prehliadača, potom reštartujte a zopakujte tie isté tri kontroly. Ping, ktorý funguje, kým HTTPS zlyháva, ukazuje na filter transportnej vrstvy, nie na sieť, a blokáda, ktorá sa vráti len po reštarte, ukazuje na vlastníka, ktorého ste ešte nenašli.
Uložte dôkazy: exportovaný kľúč BFE alebo výstup iptables -S zachytený pred zmenou. Skôr než to nazvete opraveným, potvrďte vrstvu, z ktorej ste objekt odstránili, vlastníka, ktorý by ho mohol preinštalovať, stav po jednom čistom reštarte a že bežné prehliadanie funguje bez spusteného VPN procesu. Stránka manuálu iptables(8) má presnú syntax mazania a politiky, ak čistenie píšete ako skript.