Mpangilio unaonekana kama swichi kwa kila programu, kwa hiyo watu hufunga mteja kwenye kiolesura cha WireGuard na kutarajia mteja huyo pekee atumie handaki. Kile kufunga hufanya kwa kweli ni kuchagua anwani ya chanzo. Kisha kernel hutafuta njia ya kwenda lengwa, hupata njia ya kawaida ya chaguo-msingi na hutuma pakiti kupitia kiungo halisi ikiwa na anwani ya handaki iliyoambatishwa. Njia iliyochaguliwa kwa anwani hiyo ya chanzo pekee ndiyo inayotimiza azma.

Utaratibu una nusu mbili: jedwali la uelekezaji ambalo trafiki ya handaki pekee inapaswa kutumia, na kanuni inayotuma chanzo kinacholingana huko.

Kufunga huweka anwani ya chanzo, hakuna zaidi

Linux huchagua kiolesura cha kutoka kwa kutafuta lengwa katika jedwali la uelekezaji, baada ya kanuni za sera kupata nafasi ya kuelekeza utafutaji huo mahali pengine. Kanuni zinaweza kuchagua kwa anwani ya chanzo, alama ya firewall, kiolesura kinachoingia, UID au hata bandari; kila moja ni njia nyingine ya kusema trafiki hii badala ya yote. Mpangilio wa mteja wa VPN huchagua jedwali lenye njia za handaki; kanuni huchagua trafiki ipi inaruhusiwa kuliangalia. Kufunga peke yake hakutoa kimoja wapo.

Ndiyo sababu kushindwa huku kunaonekana ajabu sana. Programu bila shaka inatumia anwani ya handaki, handaki bila shaka linafanya kazi, na trafiki bila shaka inatoka kupitia kiolesura kisicho sahihi. Kila kauli ni kweli, na kwa pamoja zinaelezea mfumo ambao hakuna kilichounganisha anwani na njia.

Ipe handaki jedwali lake mwenyewe

wg-quick husakinisha njia mahali ambapo wasifu unaeleza. Kuongeza Table = 40 chini ya [Interface] huzihamisha kwenda jedwali 40 badala ya jedwali kuu. Inua kiolesura na uthibitishie kwamba zimefika: ip -4 route ls table 40 inapaswa kuonyesha njia za handaki, na ip -4 route get 10.66.127.142 inaonyesha jinsi kernel inavyotatua moja yao sasa. Njia zikiwa katika jedwali lao, jedwali kuu linaendelea kufanya kazi kwa kila kitu kingine.

Fanya vivyo hivyo kwa IPv6 badala ya kulinganisha kiambishi pana. ip -6 rule add from fd00::2/128 lookup 40 hubana anwani moja; fc00::/8 inaweza kugongana na violesura vingine kwenye mwenyeji na kutoa kanuni inayolingana zaidi ya ilivyokusudiwa.

Ongeza kanuni ya chanzo na uangalie vihesabu

Kisha unganisha nusu hizo mbili: ip -4 rule add from 10.66.127.142/32 lookup 40, huku anwani hiyo hiyo ikiwa imeambatishwa kwenye kiolesura cha WireGuard. Weka kanuni zote mbili katika PostUp ili muunganisho mpya uzirejeshe. Thibitisha kwa ombi halisi na si kwa mpangilio: ip route get 1.1.1.1 from 10.66.127.142 inapaswa kutaja kifaa cha handaki, na curl --interface wg0 ifconfig.me inapaswa kuripoti anwani ya handaki badala ya ile ya nyumbani.

Ikishindwa bado, soma ip -s rule. Kanuni iliyopo lakini ambayo haijawahi kulingana huonyesha vihesabu sifuri, na hiyo hutofautisha kanuni isiyo sahihi na kutokuwa na kanuni kabisa. Amri hiyo moja huokoa ubashiri mwingi kuhusu kama programu ilipuuza mpangilio wake wa kiolesura.

Kesi iliyo kinyume: weka SSH nje ya handaki

Tatizo kinyume ni la kawaida vilevile: wg-quick inamiliki njia ya chaguo-msingi na kipindi cha SSH kwa seva hufa katikati. Kanuni zake hukaa kwenye namba ya kipaumbele ya chini, kwa hiyo ubaguzi lazima utathminiwe kabla yao. ip rule add dport 22 ipproto tcp table main priority 123 hufanya hivyo kwenye iproute2 mpya; pale kichaguzi hakipatikani, weka alama kwenye mtiririko katika nftables na ulinganishe alama badala yake.

Angalia pia njia ya jibu. Kipindi cha SSH kinachoanzishwa kisha kunyamaza kawaida huwa na uelekezaji usio sawa: mwelekeo mmoja hutoka kupitia handaki na mwingine kupitia kiolesura halisi. ip route get kwa anwani ya seva hukuambia jibu litaenda upande gani.

Andika namba ya jedwali, kanuni ya chanzo na ubaguzi katika wasifu wenyewe. Zote tatu ni za muundo mmoja na zitahaririwa pamoja.

Makala zinazohusiana