Туннель жоқ, желі белгішесі қалыпты көрінеді, бірақ ештеңе жүктелмейді. Сіз 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) нұсқаулық бетінде тазартуды скрипт етсеңіз, нақты жою және саясат синтаксисі бар.

Қатысты мақалалар