Kill switch kwenye router inayoshughulikia FORWARD, OUTPUT na IPv6
Kill switch katika FORWARD pekee huiacha router huru kuvuja, na sheria za IPv4 pekee huiacha IPv6 wazi. Panga minyororo na ujaribu tunnel ikiwa chini.
Unaingia kwenye router, unabandika seti ya sheria za kill switch kutoka chapisho la jukwaa, na LAN inaacha kuvinjari mara moja tunnel inapoanguka. Siku mbili baadaye router bado inasasisha rekodi yake ya DNS inayobadilika kupitia WAN ya kawaida, na laptop ya wageni bado inafikia tovuti za IPv6. Tabia zote mbili ni za kawaida, kwa sababu sheria zilizobandikwa zilishughulikia mnyororo mmoja na familia moja ya anwani, na hakuna moja kati ya hizo ni router nzima. Kupitia njia za pakiti kwa mpangilio kunaonyesha hasa kilichokosekana.
Anza kwenye router, si kwenye laptop
Sera ya ngazi ya router inavutia kwa ofisi ndogo kwa sababu kila kifaa kilicho nyuma yake hurithi tabia hiyo hiyo na hakuna mtu anayeweza kusahau kuwasha swichi kwenye mteja. Pia inakupa sehemu moja ya kujaribu baada ya kila sasisho la firmware. Isichokupa ni ufunikaji wa kiotomatiki wa trafiki ya router yenyewe au familia ya pili ya anwani, na hizo ni mapengo mawili nyuma ya usambazaji mwingi ulioshindwa.
Kabla ya kubadilisha chochote, andika mambo matatu kwenye karatasi: jina la kiolesura cha WAN, jina la daraja la LAN, na anwani na bandari ya mwisho wa VPN. Utahitaji yote matatu katika sheria, na kukisia majina ya violesura ndiyo sababu ya kawaida kwa seti ya sheria inayoonekana sahihi kutofanya chochote.
Pitia njia tatu ambazo pakiti inaweza kuchukua
Trafiki kutoka laptop kwenda mtandao husafirishwa, kwa hiyo hupita kwenye mnyororo wa FORWARD. Trafiki ambayo router yenyewe huzalisha, kama vile uhamishaji wa DNS, maulizo ya NTP, masasisho ya DDNS na chaneli ya udhibiti ya VPN, hupita kwenye OUTPUT. Trafiki ya usimamizi inayoelekezwa kwenye router huja kupitia INPUT.
Kwa hiyo kill switch iliyojengwa katika FORWARD pekee hulinda wateja na hakuna kingine. Jedwali linaonyesha kwa nini uvujaji katika eneo la mwanzo unatabirika na si wa kushangaza.
| 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 |
Katika miundo mingi huhitaji kill switch kwenye INPUT, lakini lazima uendelee kufanya ufikiaji wa usimamizi ufanye kazi tunnel ikiwa chini. Vinginevyo, mara ya kwanza VPN inaposhindwa unaenda ofisini na kebo ya konsoli.
Panga sheria ili tunnel bado iweze kupanda
Kill switch inayofanya kazi ni orodha ya ruhusa inayoishia kwa kukataa, na mpangilio ndio unaoifanya kill switch badala ya tofali. Ruhusu kwanza loopback, mwisho wa VPN, majibu ya mitiririko iliyoimarishwa na kiolesura cha tunnel; kataa mengine mwisho.
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
Mwisho lazima uwe anwani katika hatua hii, si jina la mwenyeji. Pindi kukataa kwa mwisho kunapozuia DNS, sheria inayotaja jina la mwenyeji la mtoa huduma haiwezi kutatuliwa tena, na tunnel haianzi tena baada ya kuwasha upya. Ikiwa mtoa huduma anabadilisha miisho, tatua jina kabla sera haijatumika na usasishe sheria hiyo kutoka script hiyo hiyo.
Nakili umbo hilo katika FORWARD kwa trafiki ya wateja, na weka sheria ya wazi ya usimamizi juu ya kukataa. Weka sheria hiyo ya usimamizi nyembamba lakini ifikike, na ithibitishe kwa kufungua kikao cha pili cha SSH kabla ya kufunga cha kwanza. Kujifungia nje wakati wa mabadiliko ya kill switch ni jambo la kawaida vya kutosha kupanga. Kwenye router inayoendesha WireGuard, allowed-ips za mwenza huamua kinachoingia kwenye tunnel, wakati sheria hizi huamua kinachoruhusiwa kutoka bila hiyo.
IPv6 inahitaji mlango wake
Yote hapo juu ni IPv4. Ikiwa LAN yako ina IPv6 inayofanya kazi na tunnel hubeba IPv4 pekee, kila kifaa kilichofunikwa bado kina njia ya moja kwa moja kwenda mtandao ambayo sheria zako mpya hazioni kamwe. Laptop ya stack mbili itaipendelea kwa furaha, na kill switch itaonekana kuvunjika tu kwa mtu anayefanya majaribio na IPv4.
ip6tables -A FORWARD -i br-lan -j REJECT
ip6tables -A OUTPUT -o eth0 -j REJECT
ip6tables -A OUTPUT -o lo -j ACCEPT
Mpangilio pia ni muhimu hapa: ruhusa ya loopback lazima itangulie kukataa kwa WAN, vinginevyo huduma za ndani kwenye router zinaanza kushindwa kwa njia za ajabu. Ikiwa mtandao hautumii IPv6 hata kidogo, kuizima kwenye WAN na LAN ni rahisi zaidi na hakuachi kitu cha kusahau.
Baadhi ya wateja wa VPN husakinisha njia ya chaguo-msingi kwa IPv4 pekee na huacha njia ya chaguo-msingi ya IPv6 iliyopo bila kuguswa. Angalia jedwali la uelekezaji baada ya tunnel kuunganishwa badala ya kudhani mteja alishughulikia.
Thibitisha kwa tunnel ikiwa chini
Simamisha tunnel kutoka kwenye router na ujaribu kutoka sehemu tatu kwa mpangilio huu:
# 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
Utafutaji wa njia unakuambia pakiti ingeenda wapi, na vihesabio vinakuambia kama sheria zako ziliwahi kupatana. Sheria isiyo na pakiti baada ya jaribio lililoshindwa hailindi chochote, na sababu ya kawaida ni jina la kiolesura tofauti na uliloandika. Jaribu wazi trafiki inayozalishwa na router, kwa sababu jaribio kutoka upande wa LAN haliwezi kutumia OUTPUT.
Amua hali ya kushindwa kabla ya kuihitaji. Fail-closed huiweka wateja nje ya mtandao hadi tunnel irudi; fail-open hurejesha ufikiaji wa kawaida wa WAN na huharibu madhumuni kwa trafiki uliyojali. Njia ya blackhole kwenda kwenye pool ya VPN yenye kipimo cha juu ni tabaka la pili lenye manufaa kwa miundo ya fail-closed, kwa kuwa huishi ikitoweka njia ya tunnel badala ya kurudi kwenye ya chaguo-msingi.
Kubali usanidi tu wakati mteja wa LAN, ombi linalozalishwa na router na ombi la IPv6 vyote vinashindwa tunnel ikiwa chini, na vyote vitatu vinafanya kazi tena mara tunnel inapopanda.