Mag-log in ka sa router, i-paste ang isang set ng patakaran ng kill switch mula sa post sa forum, at huminto ang LAN sa pag-browse sa sandaling bumagsak ang tunnel. Makalipas ang dalawang araw, ina-update pa rin ng router ang dynamic na DNS record nito sa ordinaryong WAN, at naaabot pa rin ng guest laptop ang mga site na IPv6. Normal ang dalawang pag-uugali, dahil ang mga na-paste na patakaran ay sumasaklaw sa isang chain at isang pamilya ng address, at wala sa mga iyon ang buong router. Ang paglakbay sa mga landas ng packet nang sunod-sunod ay nagpapakita nang eksakto kung ano ang nakaligtaan.

Magsimula sa router, hindi sa laptop

Ang patakaran sa antas ng router ay kaakit-akit para sa maliit na opisina dahil ang bawat device sa likod nito ay nagmamana ng parehong pag-uugali at walang makakalimot na i-on ang switch sa client. Binibigyan ka rin nito ng isang lugar na pagsubukan pagkatapos ng bawat update ng firmware. Ang hindi nito binibigay ay ang awtomatikong saklaw ng trapiko ng router mismo o ng pangalawang pamilya ng address, at iyon ang dalawang puwang sa likod ng karamihan ng nabigong deployment.

Bago ka magbago ng anuman, isulat sa papel ang tatlong katotohanan: ang pangalan ng interface ng WAN, ang pangalan ng bridge ng LAN, at ang address at port ng endpoint ng VPN. Kakailanganin mo ang tatlo sa mga patakaran, at ang paghula sa mga pangalan ng interface ang pinakakaraniwang dahilan kung bakit walang ginagawa ang isang set ng patakarang mukhang tama.

Lakbayin ang tatlong landas na maaaring tahakin ng packet

Ang trapiko mula sa laptop patungo sa internet ay ipinapasa, kaya dumadaan ito sa chain na FORWARD. Ang trapikong nililikha ng router mismo, tulad ng pagpapasa ng DNS, mga query ng NTP, mga update ng DDNS at ang control channel ng VPN, ay dumadaan sa OUTPUT. Ang trapiko ng pamamahala na nakadirekta sa router ay pumapasok sa INPUT.

Kaya ang kill switch na itinayo lamang sa FORWARD ay nagpoprotekta sa mga client at wala nang iba. Ipinapakita ng talahanayan kung bakit ang tagas sa pambungad na eksena ay mahuhulaan at hindi mahiwaga.

Packet pathExampleChain that sees it
LAN client to WAN or tunnelBrowser requestFORWARD
Router-originatedDDNS update, NTPOUTPUT
Addressed to the routerSSH from the LANINPUT

Sa karamihan ng disenyo hindi mo kailangan ng kill switch sa INPUT, ngunit kailangan mong panatilihing gumagana ang access sa pamamahala habang patay ang tunnel. Kung hindi, sa unang pagpalya ng VPN ay magmamaneho ka papunta sa opisina na may console cable.

Ayusin ang mga patakaran para makabangon pa ang tunnel

Ang gumaganang kill switch ay isang listahan ng pahintulot na nagtatapos sa isang pagtanggi, at ang pagkakasunod-sunod ang gumagawa nitong kill switch sa halip na ladrilyo. Payagan muna ang loopback, ang endpoint ng VPN, ang mga sagot para sa mga matatag na flow at ang interface ng tunnel; tanggihan ang natitira sa huli.

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

Ang endpoint ay dapat na isang address sa puntong ito, hindi isang hostname. Kapag na-block ng huling pagtanggi ang DNS, ang patakarang nagbabanggit ng hostname ng provider ay hindi na malulutas, at hindi na muling magsisimula ang tunnel pagkatapos ng reboot. Kung pinapalitan ng provider ang mga endpoint, lutasin ang pangalan bago ilapat ang patakaran at i-refresh ang patakarang iyon mula sa parehong script.

I-mirror ang hugis sa FORWARD para sa trapiko ng client, at maglagay ng tahasang patakaran ng pamamahala sa itaas ng pagtanggi. Panatilihing makitid ngunit maabot ang patakarang iyon ng pamamahala, at kumpirmahin ito sa pamamagitan ng pagbubukas ng pangalawang session ng SSH bago isara ang una. Ang malock sa labas habang nagbabago ng kill switch ay karaniwan na para planuhin. Sa router na nagpapatakbo ng WireGuard, ang allowed-ips ng peer ang nagpapasya kung ano ang pumapasok sa tunnel, habang ang mga patakarang ito ang nagpapasya kung ano ang pinapayagang lumabas nang wala ito.

Kailangan ng IPv6 ang sarili nitong pinto

Ang lahat sa itaas ay IPv4. Kung ang iyong LAN ay may gumaganang IPv6 at ang tunnel ay nagdadala lamang ng IPv4, ang bawat sakop na device ay mayroon pa ring direktang ruta sa internet na hindi nakikita ng iyong mga bagong patakaran. Ang dual-stack na laptop ay mas pipiliin ito, at ang kill switch ay magmumukhang sira lamang sa taong sumusubok gamit ang IPv4.

ip6tables -A FORWARD -i br-lan -j REJECT
ip6tables -A OUTPUT -o eth0 -j REJECT
ip6tables -A OUTPUT -o lo -j ACCEPT

Mahalaga rin ang pagkakasunod-sunod dito: ang pahintulot sa loopback ay dapat mauna sa pagtanggi sa WAN, kung hindi ay magsisimulang magpalya ang mga lokal na serbisyo sa router sa kakaibang paraan. Kung hindi gumagamit ng IPv6 ang network, mas simple ang i-disable ito sa WAN at LAN at walang maiiwang makakalimutan.

Ang ilang client ng VPN ay nag-i-install ng default route para sa IPv4 lamang at iniiwan ang umiiral na default na ruta ng IPv6 na hindi ginalaw. Suriin ang routing table pagkatapos kumonekta ang tunnel sa halip na ipagpalagay na inayos ito ng client.

Patunayan ito habang patay ang tunnel

Itigil ang tunnel mula sa router at subukan mula sa tatlong lugar sa ganitong pagkakasunod-sunod:

# 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

Sinasabi ng paghahanap ng ruta kung saan pupunta ang isang packet, at sinasabi ng mga counter kung ang iyong mga patakaran ay tumugma kailanman. Ang patakarang walang packet pagkatapos ng nabigong pagsubok ay walang pinoprotektahan, at ang karaniwang dahilan ay isang pangalan ng interface na naiiba sa itinaip mo. Subukan nang tahasan ang trapikong nililikha ng router, dahil ang pagsubok mula sa panig ng LAN ay hindi makakagamit ng OUTPUT.

Magpasya sa failure mode bago mo ito kailanganin. Ang fail-closed ay nagpapanatili sa mga client na offline hanggang bumalik ang tunnel; ang fail-open ay nagbabalik ng ordinaryong access sa WAN at sinisira ang layunin para sa trapikong pinahalagahan mo. Ang blackhole route patungo sa pool ng VPN na may mataas na metric ay isang kapaki-pakinabang na pangalawang layer para sa mga disenyong fail-closed, dahil nabubuhay ito kapag naglaho ang ruta ng tunnel sa halip na bumalik sa default.

Tanggapin ang setup lamang kapag ang client sa LAN, ang request na nilikha ng router at ang request na IPv6 ay pawang nabigo habang patay ang tunnel, at ang tatlo ay gumagana muli kapag bumangon ito.

Kaugnay na mga artikulo