Сервер солих үед kill switch яагаад урсгалыг хаядаг вэ
Сервер солих үед kill switch яагаад урсгалыг хаадаг, тэр агшинд клиент юу хийдэг, хэвийн завсарлагыг гацсан блокоос хэрхэн ялгах вэ.
Та ойрхон харагдах серверийг сонгоод холбогдох товчийг дартал шинэ туннель босохоос өмнө хөтөч ачааллахаа зогсооно. Дүрс холбогдож буй төлөвт шилжиж, таб бүр хугацаа хэтрэх хүртэл тэндээ үлдэнэ. Энэ завсарлага нь ихэвчлэн kill switch-ийн төлөвлөгөөний дагуу ажиллаж байгаа хэрэг: клиентэд урсгалыг илгээх туннель байхгүй үед түүнийг хаадаг. Завсарлага хүлээн зөвшөөрөхүйц эсэх нь клиент тэр секундүүдэд юу хийдэг, мөн хаалт нээгдсэн гэж хэлэх үед үнэхээр нээгддэг эсэхээс хамаарна.
Клиент хоёр серверийн хооронд юу хийдэг вэ
Төгсгөлийн цэг солих нь нэг унтраалга биш, хэд хэдэн алхам. Клиент одоогийн туннелийг буулгаж, хаах дүрмээ шинэчилж, шинэ төгсгөлийн цэгийг шийдэж туннелийн гаднаас түүнд хүрч, дараа нь шинэ маршрутуудыг суулгаж, хаалтыг өргөнө. Таны мэдрэх завсарлага эхний болон сүүлийн алхмын хооронд байна.
Энд дараалал хурдаас илүү чухал. Хэрэв хаах дүрмүүд шинэ төгсгөлийн цэгийн үл хамаарах зүйлээс өмнө хүчин төгөлдөр болвол клиент гар барилтыг дуусгаж чадахгүй, хугацаа дуустал холбогдож буй төлөвт үлдэнэ. Хэрэв үл хамаарах зүйл нь хуучин серверийн хаягийн хуулбар бол шинэ гар барилт бусад гадагш пакет шиг харагдаж, хаягдана. Хоёр тохиолдол хөтчөөс ижил харагддаг тул зургаан секундын дараа сэргэдэг солилт болон хэзээ ч сэргэдэггүй солилт нэг шалтгаантай байж болно.
Шинэ төгсгөлийн цэгт хаалтанд нүх хэрэгтэй
Туннель барихын тулд клиент физик интерфейсээр шинэ серверийн хаяг, порт руу пакет илгээх ёстой, жишээлбэл ердийн WireGuard профайлд UDP 51820 эсвэл OpenVPN-д 1194 ба 443, таны профайл юу зааж байгаагаас үл хамааран. Энэ урсгал одоо үүсэх туннелийн дотор биш тул тохирох зөвшөөрлийн дүрэм байхгүй бол бүх төхөөрөмжийн хаалт түүнийг залгина.
Хост нэрэнд суурилсан профайлууд хоёр дахь шаардлагыг нэмдэг: хайлт өөрөө. Хэрэв клиент хаалт өргөгдөхөөс өмнө төгсгөлийн цэгийг шийдвэл кэшлэсэн хаягийг ашиглаж болно, гэхдээ профайл хаягуудыг эргүүлэх эсвэл кэшийн бичлэг хуучирвал гар барилт зөвшөөрлийн дүрэм хамардаггүй хаяг руу явна. IPv6 үүнийг харагдуулна, учир нь хос стект төгсгөлийн цэг A болон AAAA бичлэгийг хоёуланг нь нийтэлж чадах бөгөөд зөвхөн v4 хаягийг хамарсан зөвшөөрлийн дүрэм клиентийг хаагдсан v6 хаягийн эсрэг дахин оролдоход үлдээнэ.
Сонголтын нэрс болон өгөгдмөл утгууд клиент, хувилбараас хамаарч өөр өөр байдаг тул дэлгэцийн зурагнаас таамаглахгүйгээр өөрийн клиентэд зориулсан баримтжуулсан жагсаалтыг уншина уу. OpenVPN Connect-ийн тохиргооны лавлагаа openvpn.net/connect-docs/app-settings-windows хаяг дээр клиент хаах болон хуваагдсан туннелийн сонголтоо хэрхэн тайлбарлаж байгаагийн нэг жишээ.
Fail-closed бол төлөвийн машин, унтраалга биш
Ихэнх клиент хаалтыг галт ханын бодлого хэлбэрээр гурван төлөвт илэрхийлдэг: туннель дээшээ, урсгал туннелээр явж, хаалтгүй; туннель доошоо, хаалт идэвхтэй; ба шилжилт, хаалт идэвхтэй бөгөөд төгсгөлийн цэгт түр зуурын үл хамаарах зүйлс. Алдаа нь гурав дахь төлөвт амьдардаг, учир нь энэ нь хэдхэн секундын дотор хоёр удаа өөрчлөгдөх ёстой бөгөөд үүнээс гарч чадахгүй байх нь байнгын хаалттай яг адил харагдана.
Механизм платформоос хамаарч өөр өөр, бүтэлгүйтэл ч мөн адил. Windows Filtering Platform-ийн шүүлтүүрүүд жинтэй байдаг тул таны зөвшөөрлөөс давсан хаах шүүлтүүр зөвшөөрөл байсаар ч пакетуудыг хаясаар байна, мөн аллагдсан клиент процессын үлдээсэн шүүлтүүрүүд програмыг орхисны дараа ч машиныг офлайнд байлгаж чадна. macOS клиентүүд ихэвчлэн pf дүрмүүдийг зангуунд бичдэг бөгөөд тэнд дүрмийн дараалал болон хурдан шийдвэрүүд аль дүрэм үйлчлэхийг тодорхойлно. Linux клиентүүд ихэвчлэн drop бодлоготой nftables эсвэл iptables гинжийг удирдаж, төгсгөлийн цэг, туннелийн интерфейс, loopback-д тодорхой зөвшөөрөл өгдөг. Android-ийн always-on VPN, VPN-гүй холболтыг хаах сонголттойгоор, бүлэгт хамгийн хатуу нь, учир нь үйлдлийн систем хаалтыг програмаар биш бүх төхөөрөмжид хэрэглэдэг.
WireGuard-д өөрийн тэмдэглэл хэрэгтэй, учир нь AllowedIPs нь маршрутын сонгогч, хаагч биш. Аль очих газрууд туннельд орохыг тодорхойлдог; туннельгүй пакетыг Wi-Fi-аар гарч ирэхээс сэргийлэх юу ч хийдэггүй. Зөвхөн WireGuard, галт ханын дүрэмгүй тохиргоонд kill switch нь үнэндээ маршрут байхгүй байх явдал бөгөөд хаягдсан гар барилтын дараа физик интерфейсээр бодит пакет гарч болно.
Дүрс рүү харахын оронд завсарлагыг хэмж
Төлөвийн гэрэл биш, пакетуудыг ажиглаарай. Linux-д нэг терминалд нийтийн хаяг руу удаан ping эхлүүлж, нөгөөд физик интерфейс дээр туннелийн тээврийн портыг барьж ав:
ping -i 0.2 -c 100 1.1.1.1 | tail -5
sudo tcpdump -ni eth0 'udp port 51820'
Хоёулаа ажиллаж байхад клиент дээр серверийг соль. Гурван зүйл чухал: ping хэр удаан зогсох, барилт нь гар барилт шинэ төгсгөлийн цэгт хүрч байгааг харуулж байгаа эсэх, урсгал клиентийн төлөв холбогдсон болохоос өмнө эсвэл дараа буцаж байгаа эсэх. Хэрэв ping-ийн завсарлага эхэлж дуусвал хаалт эрт өргөгдсөн эсвэл индикатор хүлээн зөвшөөрөхөөс өмнө туннель боссон байна. Хэрэв завсарлага дараа дуусвал индикатор хэт өөдрөг байна.
Windows-д netsh wfp show state агшны зураг бичдэг бөгөөд клиент өөрийгөө салсан гэж мэдэгдэж байх үед ч байсаар байгаа хаах шүүлтүүрүүдийг тэндээс хайж болно. macOS-д sudo pfctl -sr ачаалсан дүрмүүд болон тэдгээрийн дарааллыг жагсаана. Аль ч зургийг клиентийн өөрийн логтой хослуул; ping-ээс гарсан хугацааны шугам хаалт оройтож дууссан эсвэл хэзээ ч дуусаагүй гэдгийг хэлнэ.
Хэвийн харанхуйлалт гацсан хаалттай харьцуулахад
Бага зэргийн тасалдал энэ функцийн утга учир тул ямар ч тохиргоог өөрчлөхөөс өмнө ангил:
| What you see | Usually means | Next check |
|---|---|---|
| Two or three seconds of timeouts, then normal browsing | Expected fail-closed gap | Nothing to fix |
| State says connected, traffic stays dead | Block filter or route left behind | Firewall snapshot, client log |
| One app dead while others work | TCP session bound to the old exit address | Restart the app |
| LAN devices unreachable after the switch | LAN exception not reapplied | Allow-LAN or split-tunnel setting |
| New server hangs, the old one reconnects | Permit covers only the old address | Resolved address of the new host, including AAAA |
Хоёр эсвэл тав дахь мөрөнд орвол шалгахын тулд kill switch-ийг унтрааж болохгүй, учир нь энэ нь маршрутын алдааг гоожилт болгоно. Клиентийн үйлчилгээг дахин эхлүүлэх, эсвэл процесс аллагдсаны дараа шүүлтүүр үлддэг газарт төхөөрөмжийг дахин ачаалж, дараа нь хаалт арилах эсэхийг хар. Хэрэв арилвал алдаа нь хаалтанд биш, солилтын үеийн цэвэрлэгээнд байна.
Дараагийн солилтоос өмнө дөрвөн зүйлийг баталгаажуул: төгсгөлийн цэгийн зөвшөөрөл таны профайлын шийддэг бүх хаягийн гэр бүлийг хамарч байгаа, клиентийн лог шилжилт дууссныг харуулж байгаа, ping тест чинь дүрс биш завсарлагыг хэмжиж байгаа, клиентийг хаахад хэвийн холболт сэргэж байгаа. Солилтын үед тэсвэрлэж, дараа нь тавьдаг kill switch ажлаа хийдэг. Эрт эсвэл хэзээ ч тавьдаггүйг засах хэрэгтэй.