blackhole маршрут ба VPN kill switch: аль нь юу хийдэг
blackhole маршрут тохирох урсгалыг хаяж, алдаа гарах үед хаалттай замд хүргэдэг. Түүний хамрах хүрээ, сохор цэгүүдийг пакет шүүлтүүрт суурилсан kill switch-тэй харьцуулна уу.
Пакет зөөврийн компьютерээс гарч, VPN гарц руу хэзээ ч хүрэхгүй, галт ханын нэг ч тоолуур хөдлөхгүй. Маршрутын хүснэгт пакетын хувь заяаг аль хэдийн шийдсэн: blackhole бичлэг түүнтэй тохирч, цөм нь ямар ч интерфэйс харахаас өмнө түүнийг хаясан. Энэ зан төлөв нь очих газар хаалттай байдлаар бүтэлгүйтэх ёстой үед ашигтай, гэхдээ энэ нь нарийн хүрээтэй маршрутжуулалтын үйлдэл юм. Үүнийг бүрэн kill switch гэж үзэх нь загварууд алдаа гардаг газар юм.
Хаях үйлдэл яг юутай тохирдог вэ
Маршрут хайлт хүснэгт сонгоод, дараа нь түүний дотор хамгийн урт тохирох угтвар сонгоно. blackhole маршрут бол үйлдэл нь хаях гэсэн энгийн бичлэг тул бүх шийдвэрийн дараа тэр бичлэгийг сонгох байсан пакетуудад л нөлөөлнө. Хүснэгтийг бодлогын дүрмээр сольж, эсвэл илүү тодорхой угтвар нэмбэл хаялт цаашид үйлчлэхгүй.
Тиймээс blackhole-ийн хамрах хүрээ нь нарийн бөгөөд хэлэхэд хялбар: энэ нь тухайн хаягийн гэр бүлд зориулж хүснэгт дэх угтварыг хамардаг. Өөр хүснэгт ялах очих газрыг хамардаггүй, зөвхөн IPv4 угтвар хаягдсан гэж IPv6-г хамардаггүй.
ip route get ямар нэг зүйлийг байрлуулахаас өмнө шийдвэрийг харуулдаг, хүснэгт болон маршрутын төрлийг оруулаад. Тэр гаралтыг унших нь бүтэлгүй хүсэлтээс аль дүрэм эсвэл угтвар үйлчилснийг таамаглахаас хурдан.
blackhole нь unreachable эсвэл prohibit-тэй ижил биш
Linux нь хаялттай төстэй гурван маршрутын төрөл санал болгодог бөгөөд тэдгээр нь илгээгчийн ажиглаж буй зүйлээр ялгаатай. blackhole нь пакетыг хариугүй хаядаг тул клиент хугацаа дуусахыг хардаг. unreachable маршрут нь ICMP unreachable мессеж буцаадаг тул холболт хост эсвэл сүлжээний алдаатай хурдан тасардаг. prohibit маршрут нь захиргааны хоригийн алдаа буцаадаг бөгөөд энэ нь бодлогыг зориуд татгалзахад илүү ойр.
Програмд харуулахыг хүссэн зан төлөвийг сонго. Бодлогыг илчлэхийг хүсэхгүй бол чимээгүй хаялт тохиромжтой, харин очих газар яагаад боломжгүйг хэрэглэгчид ойлгох шаардлагатай бол шуурхай алдаа дээр. Төрлүүдийг сүлжээнд хольсон нэг бодлогыг гурван өөр эвдрэл гэж тайлбарласан дэмжлэгийн тасалбар үүсгэдэг.
Холболтыг оношлохдоо хаях бичлэг бүр солигддог гэж бүү бод. Алдааны текст, цаг хугацаа, пакетын бичлэг өөр байдаг бөгөөд хүснэгт дэх маршрутын төрөл аль нь болохыг хэлдэг. ip-route гарын авлага төрлүүд болон алдааны үеийн зан төлөвийг жагсаадаг.
kill switch-тэй хэрхэн харьцуулагдах вэ
kill switch бол пакет шүүлтүүр: туннелиас гадагш гарах исэлдэх урсгалыг хаядаг галт ханын дүрэм. blackhole маршрут бол стек дотор эрт гаргадаг дамжуулалтын шийдвэр юм. Хоёулаа урсгалыг зогсоож чадна, гэхдээ тэд өөр зүйл харж, өөр тохиолдлыг алддаг.
| Mechanism | What it blocks | What it misses | How failure looks |
|---|---|---|---|
| Blackhole route | Destinations matching the prefix and table | Other tables, other address families, traffic with a different route | Silent timeout |
| Firewall kill switch | Egress not bound to the tunnel interface | Rules that are too broad can break the endpoint or DHCP | Dropped packets with counters |
| WireGuard AllowedIPs | Destinations not routed into the interface | Traffic that never enters the interface at all | No tunnel route, direct egress |
Харьцуулалт чухал болох газар бол хамрах хүрээ. Галт хана эзэн, порт эсвэл интерфэйстэй тохирч, төгсгөлийн цэг хүрч болохоор үлдээж програмыг блоклож чадна; маршрут үүнийг чадахгүй. Харин эсрэгээр, маршрут ямар ч пакет шүүлтүүр ачаалахгүйгээр бүх угтварыг хаялт руу илгээж чадна, энэ нь хамгийн бага системд ашигтай.
WireGuard-ын AllowedIPs нь крипто түлхүүрийн маршрутжуулалт, галт хана биш. Энэ нь ямар очих газрын угтварыг интерфэйсэд хүлээн авахыг шийдэж, зөвхөн туннелийн дэд сүлжээг жагсаасан профайл бусад очих газрыг энгийн үндсэн маршрутад үлдээдэг. Тиймээс бүрэн туннелийн профайлууд 0.0.0.0/0 ашигладаг, тиймээс wg-quick боломжтой үед галт ханын дүрмийг бас суулгадаг.
Туннелийн төгсгөлийн цэгийг хаялтаас гадуур байлга
Төгсгөлийн цэгийн гадаад хаяг нь физик интерфэйсээр хүрч болохоор үлдэх ёстой. Тэр хаягийг бас барьдаг хаялт нь гар барилт гадагш гарахад саад болж, туннель хэзээ ч босохгүй, энэ нь маршрутын бодлого биш VPN-ийн гэмтэл мэт харагдана. Өөрчлөлтийн өмнө болон дараа төгсгөлийн цэг рүү чиглэсэн маршрутыг шалга.
Удирдлагын хандалт мөн адил хяналтад хамаарна. Хэрэв чиглүүлэгч эсвэл клиент рүү гарах цорын ганц зам нь туннель бол, хэт өргөн хаялт нь үүнийг устгах боломж олгох машинаас таныг түгжиж болно. Баримтжуулсан зурвас гадуурх маршрут, консол эсвэл хугацаатай буцаалтыг хадгал.
IPv6-д өөрийн бичлэг, өөрийн хяналт хэрэгтэй. IPv4-г blackhole руу хаяж, IPv6-г үндсэн маршрутад үлдээсэн загвар нь бодлого зогсоох гэж байсан урсгалыг яг алдагдуулдаг бөгөөд алдаа нь зөвхөн IPv4-ээр шалгасан туршилтад харагдахгүй.
Үүнийг таймер болон буцаалтын хамт үе шаттайгаар нэвтрүүл
Маршрутыг богино автомат устгалын хамт хэрэглэснээр алдаа дахин ачаалсны дараа үлдэхгүй. Доорх командууд баримтжуулалтын мужийг ашигладаг; үүнийг таны загвар үнэхээр хаядаг угтвараар соль:
sudo ip route replace blackhole 10.0.0.0/8
ip route get 10.1.2.3
sudo systemd-run --on-active=60 /sbin/ip route del blackhole 10.0.0.0/8Хоёр дахь команд нь blackhole маршрут болон аль хүснэгтээс ирснийг мэдээлэх ёстой. Гурав дахь нь нэг минутын дараа устгалыг төлөвлөдөг бөгөөд энэ нь бодлогыг баталгаажуулахад хангалттай хугацаа бөгөөд алсын хост дээрх алдаанаас сэргэхэд хангалттай богино. Зан төлөв батлагдсаны дараа бичлэгийг бусад маршрутыг эзэмшдэг ижил тохиргооны удирдлагаар байнгын болго.
Өөрчлөлтийг угтвар, хүснэгт, хаягийн гэр бүл, буцаалтын аргыг тэмдэглэж хаа. Хаялт нь маршрутжуулалтын загвар дахь зориудын үл хамаарах зүйл бөгөөд дараагийн инженер үүнийг одоо ч хамаарах эсэхийг шийдэхийн өмнө ямар урсгалыг зогсоох ёстой байсныг мэдэх хэрэгтэй.