VPN ажыратылгандан кийин да коргоочу өчүргүч трафикти тосууну улантат
Коргоочу өчүргүчтүн чыпкалары жана drop эрежелери кардардан узак жашайт. Windows WFP абалын жана Linux iptables эрежелерин окуп, эң тар объектини жок кылып, анан аны кайра орнотуучу ээсин табыңыз.
Туннель жок, тармак белгиси кадимкидей көрүнөт, бирок эч нерсе жүктөлбөйт. Сиз VPNды ажыраттыңыз, аны жок кылдыңыз же кайра жүктөдүңүз, ал эми үзүлүү учурунда сизди коргошу керек болгон бөгөт дагы эле турат. Кардар терезеси муну түшүндүрө албайт, анткени сизди тоскон кардар эмес: чечим сиздин атыңыздан өзөккө жазылган, аны жок кылуу үчүн эч нерсе калган эмес. Windowsта бул абал Windows Filtering Platform ичинде; Linuxта бул iptables же nftables ичиндеги эрежелер жыйындысы, көбүнчө жүктөөдө кайра колдонулуучу сүрөт менен. Төмөнкү — мен колдонгон тартип: абалды оку, катаны түшүндүргөн эң тар объектини жок кыл, анан аны кайра-кайра орноткон нерсени тап.
Коргоочу өчүргүч — жөндөө эмес, өзөк абалы
Десктоп кардарлар бөгөттөөнү туннелден сырттагы трафикти четке каккан чыпкаларды кошуу менен ишке ашырат. Windowsта бул connect-redirect жана transport катмарларындагы WFP чыпкалары, айрымдары туруктуу: алар Base Filtering Engine саясат кампасына жазылат жана машина жүктөлгөндө, кандайдыр бир VPN программасы иштегенге чейин калыбына келтирилет. Кардарлар тазалоо убактысы менен айырмаланат. Кээ бири чыпкаларды ажыратууда алат, кээ бири таза чыгууда гана, кээ бири өчүргүчтү алдын ала өчүргөндө гана. Бөгөт активдүү кезде программаны жок кыл, же процессти өлтүр, чыпкалар калат.
Linuxтагы балама — чыгуу жолундагы drop же reject эрежеси, кээде forwarding эрежеси, кээде өзгөртүлгөн chain саясаты. Бул эрежелер аларды кошкон процесстен узак жашайт, анткени алар өзөк абалы: кардарды өлтүр, кулат же токту өчүр — өзөк пакеттерди таштоону улантат, аны кайтаруу үчүн эч нерсе калбайт. Туруктуулук пакети учурдагы эрежелер жыйындысынын сүрөтүн алып, жүктөөдө калыбына келтирүү менен экинчи туруктуулук катмарын кошот, ошондуктан кийинки баштоо бөгөт орнотулган абалда башталат.
Бир нерсени жок кылуудан мурун WFP абалын оку
Windows керектүү куралдар менен келет. Администратордук терминал ачып, платформанын абалын түшүр; дамп жумуш каталогунда wfpstate.xml болуп пайда болот.
netsh wfp show state
netsh wfp show filters
Get-Service bfe
XML ичинен кеткен өндүрүүчүнүн атын, Block аракетин жана катмарды изде. Кадимки трафикти бузган — connect-redirect жана transport чыпкалары; receive-accept катмарындагы чыпка адатта сенин себебиң эмес. Эгер Base Filtering Engine такыр иштебесе, башка жерден изде, анткени бул чыпкаларды башка эч нерсе аткара албайт.
Кадимки firewall көрүнүшүн да салыштыр, анткени көпчүлүк экөөнүн бирин гана текшерет:
netsh advfirewall show allprofiles
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultInboundAction
Киргизилген профилдер күйүп турса жана ийгиликсиз трафикке эч бир эреже туура келбесе, бөгөт Windows Firewallдан эмес, үчүнчү тараптын провайдеринен келет. Бул айырма оңдоо үчүн кайсы куралды колдоноруңду чечет.
Linux эрежелерин жок кыла турган синтаксисте оку
iptables -S эрежелерди кошуудагы форма менен басып чыгарат, ошондуктан чыккан нерсени жок кылууга түздөн-түз кайра колдонсо болот. iptables -L -v -n пакет эсептегичтерин кошот, ал эсептегичтер эреженин ийгиликсиз суроолоруңа чын эле туура келеби же жөн гана chain ичинде отурабы — аны айтат.
sudo iptables -S
sudo ip6tables -S
sudo iptables -t nat -S
Эрежелерди гана эмес, chain саясаттарын да оку: -P OUTPUT DROP эч бир эреже туура келбесе да трафикти тосот. IPv6ны өзүнчө текшер, анткени эки үй-бүлөнү тең орноткон кардар IPv4 эрежелери жок болгондон кийин IPv6 бөгөтүн калтырышы мүмкүн, ошондо симптом колдонмо кайсы үй-бүлөнү артык көрөрүнө жараша болот. nftables колдонулган жерде nft list ruleset да иштет; эки курал шайкештик катмары аркылуу жашайт, ал эми бир тизме пакетти таштай алган бардык эрежени сөзсүз көрсөтпөйт.
Катаны түшүндүргөн эң тар объектини жок кыл
Windowsта биринчи кадам дагы эле өндүрүүчүнүн өзүнүн жок кылуу жолу: орноткучту кайра иштетип, repair же uninstall колдон, же өндүрүүчү жарыялаган болсо, тазалоо куралын иштет. Калган кызматтар жана пландалган тапшырмалар кеңири таралган, ал эми кирүү учурунда кардарды иштеткен тапшырма кийинки жүктөөдө анын чыпкаларын кайра орнотот. Кардардын реестр ачкычын окууда ийгиликсиз болгон жок кылуу адатта кызмат же тапшырма аны дагы эле кармап турганын билдирет, реестр бузулганын эмес.
Get-ScheduledTask | Where-Object TaskName -like '*vpn*'
Get-Service | Where-Object DisplayName -like '*vpn*'
Туруктуу чыпкалар — акыркы чара. Алар HKLM\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Persistent\Filter астында, ар бир чыпкага GUID менен ачкычталган бир маани. Ачкычты алгач экспортто, жок кыла турган GUIDдерди жаз, кеткен кардарга таандык маанилерди гана жок кыл, анан кыймылдаткыч абалын кайра курушу үчүн кайра жүктө. Бүт ачкычты жок кылба жана Base Filtering Engineди өчүрбө: Windows Firewall жана Defender ага көз каранды, бир бузулууну андан жаманыраак менен алмаштырасың.
reg export "HKLM\SYSTEM\CurrentControlSet\Services\BFE\Parameters\Policy\Persistent" C:\temp\bfe-backup.reg
Linuxта iptables -S чыгарган сапты алып, -A ордуна -D кой. Аныктаган бир эрежени жок кылуу chainди толук тазалоодон артык, анткени өз саясатың бузулбай калат.
sudo iptables -D OUTPUT -p udp -j REJECT
Эгер drop колдонуучу аныктаган chain ичинде болсо, адегенде ошол chainге секирүүнү жок кылып, кийин chainди -X аркылуу алып сал. drop эрежелери дагы бар кезде chain саясатын ACCEPT кылуу саясат чечимине жеткен пакеттерге гана жардам берет. Бардык таблицаларды тазалоо — акыркы чара: ал башка себептер менен кошкон эрежелериңди да алат, ал эми ufw күйүп турса, кызматты эми жок chainдерге ээ деп ойлоого калтырат.
Аны кайра орнотуучу ээсин тап
Ыкчам оңдоодон кийин абалды калыбына келтире турган нерсени изде. Linuxта туруктуулук бирдиги күйүп турабы, кардарда кирүүдө firewallды калыбына келтирүү жөндөөсү барбы жана /etc астында сакталган эреже файлы барбы — текшер. Windowsта баштоо жазууларын, кызматтарды жана пландалган тапшырмаларды кайра текшерип, кайра жүктөп, мурункудай эле буйруктар менен абалды кайра оку.
Эгер бөгөт кайра келсе, жок кылуу чечим эмес болчу; чечим — ээси. Кайсы кардар же кызмат аны орноторун жаз да, функцияны ошол жерден өчүр, ар бир ажыратуудан кийин firewall катмарында күрөшүүнүн ордуна.
Бир ping эмес, чыныгы трафик менен текшер
Ат чечүүнү, TCP байланышын жана жаңы браузер сессиясын сынап көр, анан кайра жүктөп, ошол эле үч текшерүүнү кайтала. HTTPS ийгиликсиз болуп жатканда ping иштесе, бул тармакка эмес, transport катмарындагы чыпкага көрсөтөт; ал эми кайра жүктөөдөн кийин гана кайталанган бөгөт али табыла элек ээге көрсөтөт.
Далилди сакта: экспорттолгон BFE ачкычы же өзгөртүүгө чейин алынган iptables -S чыгышы. Оңдолду деп атаардан мурун объектини кайсы катмардан алып салганыңды, аны кайра орното алган ээсин, бир таза кайра жүктөөдөн кийинки абалды жана VPN процесси жок кезде кадимки серептөө иштээрин ыраста. iptables(8) колдонмо баракчасында тазалоону скрипт кылсаң, так жок кылуу жана саясат синтаксиси бар.