Kill switch күтүлбөгөн багытта иштей албай калат: алар туннель өчүк турганда трафикти бөгөттөө үчүн курулган, ал эми туннелди курган пакеттер өзү трафик. Бул — бүткүл ката. Туннелден чыкпагандын баарын таштаган эрежелер топтому туннелди көтөрө турган кол алышууну да таштайт, ошондуктан кардар циклде кайра аракет кылат, ал эми ката биринчи текшерилген баскычка жазылат. Файрволду кеңейтүүдөн мурун үч баскычтын кайсынысы четке кагылып жатканын аныктаңыз: атты издөө, өнөктөшкө барган сырткы пакет же кайтып келген жооп.

Туннель жана анын өз транспорту бири-бирине кантип көз каранды

VPN кардарын бир сокет жолун бөлүшкөн эки тармактык абал катары окуңуз. Туннель пайда боло электе кардар физикалык адаптерде сокет ачып, шифрленген фреймдерди өнөктөштүн дареги менен портуна жөнөтөт. Ушул алмашуу ийгиликтүү болгондон кийин гана ал туннель түзмөгүн түзүп, маршруттарды орнотот. Kill switch — экинчи абал жөнүндө саясат, экөөнө тең колдонула тургандай кенен жазылган.

Интерфейске негизделген эрежелер — кадимки форма: мына жерден чыкканды кабыл алыңыз: tun0 же wg0, чыгуу жолунун калганын таштаңыз. Бул туюнтма кардардын серверге өз байланышын өзгөчөлөй албайт, ошондуктан туура ишке ашыруу бул өзгөчөлүктү ачык кошот, эрежелерди кол менен жазганда сиз да ошентетсиз. Windows жана macOS'то колдонмо боюнча эрежелер интерфейстин ордуна процессти дал келтирип, мунун бир бөлүгүн айланып өтөт, бирок процесс баары бир туннель пайда боло электе сыртка чыгышы керек.

Үч баскыч, аткарылуу тартибинде

Биринчи баскыч — чечүү. Профиль сөзмө-сөз даректин ордуна хост атын сактаса, кардар бир нерсе жөнөтүүдөн мурун DNS жообун талап кылат. DNS'ти туннелдин чечүүчүсүнө багыттаган профиль туңгуюкка алып келет: чечүүчүгө издөө иштетүүгө тийиш болгон туннель аркылуу гана жетүүгө болот. Туннелден тышкары чечүү же акыркы чекитти дарекке бекитүү бул эки ачалыкты жок кылат.

Экинчи баскыч — сырткы пакет, ал ушул тартипте адегенде маршруттоодон, анан файрволдон өтүшү керек. wireguard-tools WireGuard үчүн бул маршруттоонун жарымын өзү аткарат: өз пакеттерин белгилеп, жаңы орноткон демейки маршрутту аттап өтүү үчүн саясат эрежесин кошот; wg-quick колдонмосунун бети ошол эрежени жана ал колдонгон таблицаны сүрөттөйт. Бул маршруттоону кол менен кайра куруңуз, же эрежелерди экинчи куралга кайра жаздырыңыз, ошондо белгиленген пакеттер түзүүгө тийиш болгон туннелге кайра жөнөтүлүшү мүмкүн.

Үчүнчү баскыч — кайтуу жолу. Жоопсуз кол алышуу сыртка таштоонун далили эмес; ал сервердин кирүү эрежесине же байланышты унуткан NAT түзмөгүнө да бирдей туура келет. Кардарга тийүүдөн мурун буларды ажыратыңыз.

What you seeStageWhere to look
The client log repeats a resolve step and no packets appear on the wire1, name lookupResolver path while the tunnel is down
The send counter on the physical adapter stays flat2, routingPeer route and policy rules
The send counter rises and a firewall drop counter rises2, firewallRule order, mark, and interface match
Packets leave and nothing comes back3, return pathServer input rules, NAT, listening port

Кардарлар аныктаган симптомду жазышат, ийгиликсиз баскычты эмес, ошондуктан таблица адатта журналдан тез.

Эсептегичтер журналдардан тез чечет

Linux'то, nft list ruleset же iptables -vnL OUTPUT ар бир эреже үчүн пакет эсептегичин чыгарат. Бир жолу туташыңыз, ийгиликсиз болушуна жол бериңиз, анан эсептегичтерди кайра окуңуз. Эсептегичи жылган эреже — кол алышуу тийген эреже; эч жерде эч нерсе жылбаса, пакет файрволго эч качан жетпеген. Мен эрежелер топтому өз кол алышуусун таштаганын көрдүм, муну эсептегичтер гана айтты.

Файрволго эч качан жетпегенин хосттон эч качан чыкпаганынан ажыратуу үчүн интерфейстин өзүн байкаңыз. ip -s link show dev wlan0 жөнөтүлгөн пакеттерди билдирет, ал эми tcpdump -ni wlan0 udp port 51820 фреймдерди көрсөтөт. Кардар кайра аракет кылып жатканда ал тегиз турса, бузулуу netfilterден жогору: жетишпеген өнөктөш маршруту, али жок түзмөккө көрсөткөн саясат эрежеси же кардар жутуп койгон сокет катасы.

Өзгөчөлүктөрдү мындай документтик даректер менен текшериңиз: 203.0.113.10, ката кетирип башканын хостун текшербеши үчүн.

Эскирген акыркы чекит өзгөчөлүгү сервердин токтоп калышы деп окулат

Эң адаштырган версия өнөктөштүн дареги өзгөргөндөн кийин пайда болот: динамикалык дарек кызматы аны жылдырды, хост кайра курулду же тармагыңыздын чыгуу дареги башка. Өзгөчөлүк али эски даректи атайт, ошондуктан жаңысына барган пакеттер таштоо эрежесине түшөт. Ошол эле конфигурация кечээ иштеп турган, ошондуктан адамдар серверди текшерүүдөн башташат.

Файрвол эрежесинин ичиндеги хост аты сизди куткарбайт. nftables'те ат эрежелер топтому жүктөлгөндө чечилет, ошондуктан ал ошол учурда болгон даректи бекитип, сөзмө-сөз дарек сыяктуу эскирет. Туруктуу чечим — акыркы чекит өзгөргөндө өзгөчөлүктү жаңыртуу жана аны тар кармоо: бир өнөктөш дареги, бир транспорт порту. Дарек өзгөрүүсүн көтөрө алгандай кенен диапазон байланышы жок трафикти да чыгарууга жетиштүү кенен.

Kill switch сервер хостунда иштегенде

Ошол эле көз карандылык экинчи жакта да бар, ал жакта аны байкабай калуу жеңил. Эгер VPN сервериңиз болгон машина kill switch'и бар иш такта кардарын же ноутбуктан көчүрүлгөн файрвол профилин да иштетсе, анын таштоо эрежелери туннелдерди бүтүргөн кызматка колдонулат. Кардардын кол алышуусуна жооптор ташталат, ошондуктан сервер соо көрүнүп, туннель интерфейси пайдаланылбай турса да, ар бир кардар туташа албайт.

Бул хостко таштоодон мурун үч тар уруксат керек: физикалык интерфейстеги угуу порту, шифри ачылган трафик үчүн туннель интерфейси жана туннелден кардарлар жетиши керек болгон жакка өткөрүү. Орнотулган топтомду мына менен окуңуз: nft list ruleset, iptables -S, же pfctl -sr , бир нерсени өзгөртүүдөн мурун, жана сакталган эрежелер топтому кайра жүктөөдөн кийин да калаарын унутпаңыз, ошондуктан ал жердеги ката аны жасаган процесстен узак жашайт.

Машинаны жабык кармаган калыбына келтирүү тартиби

Профилден сыртка карай иштеңиз. Кардар колдонгон өнөктөш дареги менен портун окуңуз, хост аты туннелсиз чечилерин ырастаңыз, анан физикалык адаптерде гана ошол дарек жана порт үчүн бир өзгөчөлүк кошуңуз. Кайра туташып, жөнөтүү эсептегичин байкаңыз; бүткөн кол алышуу экинчи баскыч оңдолгонунун белгиси.

Сыноо учурунда таштоо саясатынын калганын ордунда калтырыңыз. Зыянсыз текшерүү — байланышы жок документтик дарекке туташууга аракет кылып, анын дагы эле убакыт боюнча бүтөрүн ырастоо, бул kill switch өчүрүлгөнүн эмес, иштеп турганын көрсөтөт. Туннель турукташкандан кийин өзгөчөлүктү катуулатыңыз жана ыңгайлуу деп кардар программасына түбөлүк баарына уруксат калтырбаңыз.

Туннель көтөрүлүп, колдонмо дагы эле ийгиликсиз болсо, калган баскычтар бул эмес: бөлүнгөн DNS, MTU жана колдонмо боюнча маршруттоо — ар бири туташкан туннель жана бузулган трафик берет, ар биринин биринчи текшерүүсү өзгөчө.

Тектеш макалалар