FORWARD, OUTPUT va IPv6 ni qamrab oluvchi router kill switch
Faqat FORWARD dagi kill switch routerni erkin oqib ketishga qoldiradi, faqat IPv4 qoidalari esa IPv6 ni ochiq qoldiradi. Zanjirlarni tartibga soling va tunnel o’chirilganda sinab ko’ring.
Routerga kirib, forum postidan kill switch qoidalari to’plamini qo’yasiz va tunnel yiqilgan zahoti LAN ko’rishni to’xtatadi. Ikki kundan keyin router hali ham dinamik DNS yozuvini oddiy WAN orqali yangilab turadi, mehmon laptopi esa hali ham IPv6 saytlarga yetib boradi. Ikkala xatti-harakat ham normal, chunki qo’yilgan qoidalar bitta zanjir va bitta manzil oilasini qamrab olgan, va ularning hech biri butun router emas. Paket yo’llarini tartib bilan ko’rib chiqish aynan nima o’tkazib yuborilganini ko’rsatadi.
Laptopdan emas, routerdan boshlang
Router darajasidagi siyosat kichik ofis uchun jozibador, chunki uning orqasidagi har bir qurilma bir xil xatti-harakatni meros qilib oladi va hech kim mijoz kalitini yoqishni unutolmaydi. Shuningdek, har bir firmware yangilanishidan keyin sinash uchun bitta joy beradi. Bermaydigan narsa — routerning o’z trafigini yoki ikkinchi manzil oilasini avtomatik qamrab olish, va muvaffaqiyatsiz joylashtirishlarning ko’pchiligi ortidagi ikkita bo’shliq aynan shu.
Biror narsani o’zgartirishdan oldin qog’ozga uchta faktni yozib qo’ying: WAN interfeysining nomi, LAN ko’prigining nomi hamda VPN oxirgi nuqtasining manzili va porti. Uchtasi ham qoidalarda kerak bo’ladi, va interfeys nomlarini taxmin qilish to’g’ri ko’rinadigan qoidalar to’plamining hech narsa qilmasligining eng keng tarqalgan sababidir.
Paket bosib o’tishi mumkin bo’lgan uchta yo’lni ko’rib chiqing
Laptopdan internetga trafik uzatiladi, shuning uchun u FORWARD zanjiridan o’tadi. Routerning o’zi ishlab chiqaradigan trafik, masalan, DNS uzatish, NTP so’rovlari, DDNS yangilanishlari va VPN boshqaruv kanali, OUTPUT orqali o’tadi. Routerga yo’naltirilgan boshqaruv trafigi INPUT orqali keladi.
Shuning uchun faqat FORWARD da qurilgan kill switch mijozlarni himoya qiladi, boshqa hech narsani emas. Jadval ochilish sahmasidagi oqishning sirli emas, oldindan aytib bo’ladigan ekanini ko’rsatadi.
| Packet path | Example | Chain that sees it |
|---|---|---|
| LAN client to WAN or tunnel | Browser request | FORWARD |
| Router-originated | DDNS update, NTP | OUTPUT |
| Addressed to the router | SSH from the LAN | INPUT |
Ko’pchilik dizaynlarda INPUT da kill switch kerak emas, lekin tunnel o’chirilganda boshqaruv kirishini ishlab turish kerak. Aks holda VPN birinchi marta ishlamay qolganda konsol kabeli bilan ofisga borasiz.
Qoidalarni tunnel hali ham ko’tarila oladigan qilib tartibga soling
Ishlaydigan kill switch rad etish bilan tugaydigan ruxsat ro’yxatidir va uni g’ishtdan ajratib turadigan narsa tartibdir. Avval loopback, VPN oxirgi nuqtasi, o’rnatilgan oqimlar uchun javoblar va tunnel interfeysiga ruxsat bering; qolganini oxirida rad eting.
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 198.51.100.7 -p udp --dport 51820 -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o wg0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j REJECT
Bu nuqtada oxirgi nuqta manzil bo’lishi kerak, xost nomi emas. Oxirgi rad etish DNS ni bloklagandan so’ng, provayderning xost nomini ko’rsatuvchi qoidani endi hal qilib bo’lmaydi va tunnel qayta yuklangandan keyin hech qachon ishga tushmaydi. Agar provayder oxirgi nuqtalarni almashtirsa, siyosat qo’llanilishidan oldin nomni hal qiling va o’sha qoidani xuddi shu skriptdan yangilang.
Mijoz trafigi uchun shaklni FORWARD da takrorlang va rad etish ustiga aniq boshqaruv qoidasini qo’ying. Bu boshqaruv qoidasini tor, lekin yetib boradigan qilib saqlang va birinchi SSH seansini yopishdan oldin ikkinchisini ochib tasdiqlang. Kill switch o’zgarishi paytida o’zingizni qulflab qo’yish rejalashtirishga arziydigan darajada keng tarqalgan. WireGuard ishlaydigan routerda tengdoshning allowed-ips qiymatlari tunnelga nima kirishini, bu qoidalar esa usiz nima chiqishi mumkinligini hal qiladi.
IPv6 ga o’z eshigi kerak
Yuqoridagilarning barchasi IPv4. Agar LAN ingizda ishlaydigan IPv6 bo’lsa va tunnel faqat IPv4 tashisa, qamrab olingan har bir qurilma yangi qoidalaringiz hech qachon ko’rmaydigan to’g’ridan-to’g’ri internet yo’liga ega bo’lib qoladi. Ikki stekli laptop uni mamnuniyat bilan afzal ko’radi va kill switch faqat IPv4 bilan sinovdan o’tkazayotgan odamga buzuq ko’rinadi.
ip6tables -A FORWARD -i br-lan -j REJECT
ip6tables -A OUTPUT -o eth0 -j REJECT
ip6tables -A OUTPUT -o lo -j ACCEPT
Bu yerda ham tartib muhim: loopback ruxsati WAN rad etishidan oldin kelishi kerak, aks holda routerdagi mahalliy xizmatlar g’alati tarzda ishlamay boshlaydi. Agar tarmoq IPv6 dan umuman foydalanmasa, uni WAN va LAN da o’chirish soddaroq va unutiladigan hech narsa qolmaydi.
Ba’zi VPN mijozlari faqat IPv4 uchun standart marshrut o’rnatadi va mavjud IPv6 standart marshrutini tegmasdan qoldiradi. Tunnel ulangandan keyin marshrut jadvalini tekshiring, mijoz hal qilgan deb o’ylamang.
Tunnel o’chirilganda buni isbotlang
Tunnelni routerdan to’xtating va uchta joydan shu tartibda sinab ko’ring:
# systemctl stop wg-quick@wg0
# ip route get 203.0.113.1
# curl -m 5 -sS http://example.com || echo blocked
# iptables -vnL OUTPUT | head
# ip6tables -vnL OUTPUT | head
Marshrut qidiruvi paket qayerga ketishini, hisoblagichlar esa qoidalaringiz hech qachon mos kelgan-kelmaganini aytadi. Muvaffaqiyatsiz sinovdan keyin nol paketli qoida hech narsani himoya qilmaydi va odatiy sabab siz yozganidan farq qiladigan interfeys nomidir. Router tomonidan ishlab chiqarilgan trafikni aniq sinab ko’ring, chunki LAN tomonidan sinov OUTPUT ni ishga sola olmaydi.
Muvaffaqiyatsizlik rejimini kerak bo’lishidan oldin hal qiling. Fail-closed tunnel qaytmaguncha mijozlarni oflayn ushlab turadi; fail-open oddiy WAN kirishini tiklaydi va sizga muhim bo’lgan trafik uchun maqsadni yo’q qiladi. Yuqori metrikali VPN puliga blackhole marshrut fail-closed dizaynlar uchun foydali ikkinchi qatlamdir, chunki u standart marshrutga qaytish o’rniga tunnel marshruti yo’qolganda ham saqlanib qoladi.
Sozlamani faqat LAN mijozi, router ishlab chiqargan so’rov va IPv6 so’rovi tunnel o’chirilganda muvaffaqiyatsiz bo’lganda va tunnel ko’tarilganda uchtasi ham qayta ishlaganda qabul qiling.