Kako dati eni preskusni LAN njeno lastno izhodno točko WireGuard
Omejite eno LAN na izhod WireGuard z namensko usmerjevalno tabelo in nedosegljivim stražarjem, medtem ko prehod obdrži svojo običajno privzeto pot WAN.
Tri zasnove rešujejo isto laboratorijsko težavo: majhna LAN mora izstopiti prek partnerja WireGuard, medtem ko prehod sam obdrži običajno povezavo navzgor. Vabljiva bližnjica je premakniti privzeto pot usmerjevalnika v tunel, a to zlomi lastno pot upravljanja škatle in vse ostalo, kar posreduje. Zanimiva možnost je usmerjanje po pravilniku, omejeno na en vmesnik in eno predpono. Izberite med njima tako, da odgovorite na tri vprašanja o stroju, ki ga resnično imate.
Odločite, kje živi izhod
Prvo vprašanje: ali ta gostitelj posreduje tudi za kaj drugega? Namenski laboratorijski prehod prenese pravilnik posredovanja, ki privzeto vse zavrže. Usmerjevalnik s proizvodnimi dolžnostmi tega ne more, in polaganje konkurenčnega nabora pravil čez upravljani požarni zid je natanko način, kako se načrtujejo izpadi. Drugo: ali lahko posedujete dva objekta pravilnika in njuno zaporedje med ponovnimi zagoni? Tretje: ali partner, ki ga imate, odobri naslov vira vašega tunela in ponuja izhod v internet? Partner, ki razkrije samo zasebno omrežje, je drug izdelek, in nobena lokalna sprememba usmerjanja tega ne popravi. Če je kateri koli odgovor ne, postavite izhod v imenski prostor ali v enkratno navidezno napravo.
Imenski prostor ali VM stane pomnilnik in vam da čist polmer eksplozije. Usmerjanje po pravilniku stane dve pravili in vam pusti eno škatlo za razhroščevanje.
Izberite izhod, ki odobri vaš vir
Večina odpovedi v tem laboratoriju se zgodi, preden obstaja eno samo pravilo požarnega zidu. Upravljavec izhoda mora sprejeti naslov vira, ki ga vaši paketi nosijo po prevodu, in v tej zasnovi je to naslov tunela, ne predpona LAN. Zato maskiranje sodi v zasnovo od začetka, ne kot poznejši dodatek.
Pri upravljavcu potrdite tri stvari: partner odobri naslov vašega tunela, posreduje IPv4, namesto da bi se končal na sebi, in uporabi izhodni NAT. Brez prvega vaši paketi prispejo in izginejo. Brez tretjega odidejo z zasebnim virom in umrejo na naslednjem skoku. Nato preverite, da wg-quick ne namešča svoje privzete poti, kar preprečuje Table = off; ta nastavitev zatira ustvarjanje poti, ne preverjanj AllowedIPs pri partnerju ali njegovega ravnanja z DNS.
Dva objekta pravilnika opravita vodenje
Vodenje potrebuje tabelo in pravilo. Tabela drži dve poti: predpono LAN ven iz vmesnika LAN in privzeto pot ven iz tunela. Pravilo pošlje v tabelo promet, ki prispe na vmesnik LAN in nosi to predpono. Uporabite izbirnik iif skupaj z ujemanjem vira, ker lastni paketi WireGuard prehoda nastanejo lokalno in se nikoli ne ujemajo s prihajajočim vmesnikom.
Stražar pride pred iskanjem, ne za njim. Ta vrstni red je vsa varnostna lastnost zasnove.
Stražar je drugo pravilo na istem izbirniku, katerega razsodba je unreachable. Dajte mu višjo številčno prednost, da iskanje še vedno zmaga, dokler je tunel pokonci. Ko pot tunela izgine, iskanje ne vrne ničesar in stražar ustavi iskanje, namesto da bi mu dovolil, da pade na privzeto pot WAN v glavni tabeli.
ip rule add from 192.168.50.0/24 iif lan0 lookup 51861 pref 1000
ip rule add from 192.168.50.0/24 iif lan0 unreachable pref 1001
ip route add table 51861 default dev wg0
Zaprite vrzel za umik, preden jo odprete
Najprej namestite stražarja in nato iskanje. Če to storite obratno, ostane okno, dolgo nekaj sekund, v katerem lahko promet preskusnega odjemalca doseže povezavo navzgor.
Filter dopolni sliko. V kavlju forward sprejmite smer iz LAN v tunel za preskusno predpono in vzpostavljeno povratno smer, nato zavrzite vse ostalo; NAT za to predpono na vmesnik tunela spada v postrouting. Prav pustiti policy drop na verigi posredovanja spremeni manjkajočo pot v tišino namesto v uhajanje. Filtriranje obratne poti potrebuje ohlapen način na vmesniku tunela, ker ima javni vir, ki prispe po dekapsulaciji, najboljšo obratno pot na strani WAN. Linux vzame višjo od vrednosti all in tiste za vmesnik, zato nastavitev vmesnika tunela ni isto kot oslabitev preverjanja povsod.
Dokažite to s primerom odpovedi
Jedru postavite natančno vprašanje tako, da navedete naslov vira odjemalca in vmesnik, na katerem prispe. Iskanje brez obojega odgovori na drugo vprašanje in bo v obeh primerih videti pravilno. Nato poglejte števce požarnega zidu, stanje prenosa pri partnerju in lastno storitev odjemalca.
Odstranitev preskusite pravilno. Ustavite tunel, medtem ko pravilo in filter ostaneta na svojem mestu: odjemalec bi se moral ustaviti, lastni promet prehoda pa bi moral še naprej delovati. Nato ustavite partnerja, ne da bi se dotaknili lokalnega vmesnika, in to je primer, ki ujame zasnove, ki se zanašajo le na obstoj poti. Nazadnje znova zaženite in znova preverite vrstni red pravil, ker kavelj za razgradnjo, ki odstrani stražarja, vrne celotno zasnovo glavni tabeli. Zapišite številko tabele, prednosti in imena vmesnikov na zahtevek za spremembo, ker bo naslednja oseba, ki doda pravilo, tista, ki bo to pokvarila.