Kaip vienam bandymų LAN suteikti savo WireGuard išėjimą
Apribokite vieną LAN WireGuard išėjimu su skirtąja maršrutizavimo lentele ir nepasiekiamu sargiu, o šliuzas išlaiko įprastą numatytąjį WAN maršrutą.
Trys sprendimai sprendžia tą pačią laboratorijos problemą: mažas LAN turi išeiti per WireGuard partnerį, o pats šliuzas išlaiko įprastą viršutinę jungtį. Viliojantis trumpasis kelias yra perkelti maršrutizatoriaus numatytąjį maršrutą į tunelį, bet tai sulaužo pačios dėžės valdymo kelią ir visa kita, ką ji persiunčia. Įdomus variantas yra politikos pagrindu veikiantis maršrutizavimas, apribotas viena sąsaja ir vienu prefiksu. Pasirinkite tarp jų atsakydami į tris klausimus apie mašiną, kurią iš tikrųjų turite.
Nuspręskite, kur gyvena išėjimas
Pirmas klausimas: ar šis mazgas persiunčia ir kam nors kitam? Skirtoji laboratorijos šliuzė gali gyventi su persiuntimo politika, kuri pagal numatytuosius nustatymus viską atmeta. Maršrutizatorius su gamybinėmis pareigomis to negali, o konkuruojančio taisyklių rinkinio uždėjimas ant valdomos ugniasienės yra būtent tas būdas, kuriuo planuojami sutrikimai. Antra: ar galite valdyti du politikos objektus ir jų tvarką per perkrovimus? Trečia: ar jūsų partneris leidžia jūsų tunelio šaltinio adresą ir siūlo išėjimą į internetą? Partneris, kuris atskleidžia tik privatų tinklą, yra kitas produktas, ir joks vietinis maršrutizavimo pakeitimas to neištaiso. Jei kuris nors atsakymas yra ne, įdėkite išėjimą į vardų erdvę arba į vienkartinę virtualią mašiną.
Vardų erdvė arba VM kainuoja atmintį ir suteikia švarų sprogimo spindulį. Politikos pagrindu veikiantis maršrutizavimas kainuoja dvi taisykles ir palieka jums vieną dėžę derinti.
Pasirinkite išėjimą, kuris leidžia jūsų šaltinį
Dauguma šios laboratorijos gedimų įvyksta dar prieš atsirandant bent vienai ugniasienės taisyklei. Išėjimo operatorius turi priimti šaltinio adresą, kurį jūsų paketai neša po vertimo, o šiame sprendime tai tunelio adresas, o ne LAN prefiksas. Štai kodėl maskavimas priklauso sprendimui nuo pat pradžių, o ne kaip vėlyvas priedas.
Patvirtinkite tris dalykus su operatoriumi: partneris leidžia jūsų tunelio adresą, jis persiunčia IPv4, o ne baigiasi savyje, ir taiko išėjimo NAT. Be pirmojo jūsų paketai atvyksta ir pradingsta. Be trečiojo jie išeina su privačiu šaltiniu ir žūva kitame šuolyje. Tada patikrinkite, ar wg-quick neįdiegia savo numatytojo maršruto, ką neleidžia Table = off; šis nustatymas slopina maršrutų kūrimą, o ne partnerio AllowedIPs patikras ar jo DNS apdorojimą.
Du politikos objektai atlieka vairavimą
Vairavimui reikia lentelės ir taisyklės. Lentelėje yra du maršrutai: LAN prefiksas iš LAN sąsajos ir numatytasis iš tunelio. Taisyklė siunčia į lentelę srautą, kuris atvyksta į LAN sąsają ir neša šį prefiksą. Naudokite iif selektorių kartu su šaltinio atitikimu, nes šliuzės WireGuard paketai atsiranda vietiškai ir niekada neatitinka įeinančios sąsajos.
Sargis ateina prieš paiešką, o ne po jos. Būtent ši tvarka yra visa sprendimo saugumo savybė.
Sargis yra antroji taisyklė tame pačiame selektoriuje, kurios nuosprendis yra unreachable. Suteikite jai didesnį skaitinį prioritetą, kad paieška vis tiek laimėtų, kol tunelis pakeltas. Kai tunelio maršrutas išnyksta, paieška nieko negrąžina ir sargis sustabdo paiešką, o ne leidžia jai nukristi į pagrindinės lentelės WAN numatytąjį maršrutą.
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
Uždarykite atsarginę spragą prieš ją atidarydami
Pirmiausia įdiekite sargį, o po to paiešką. Darant atvirkščiai lieka kelių sekundžių langas, per kurį bandymų kliento srautas gali pasiekti viršutinę jungtį.
Filtras užbaigia vaizdą. forward kabliuke priimkite kryptį iš LAN į tunelį bandymų prefiksui ir nusistovėjusią grįžimo kryptį, tada atmeskite visa kita; to prefikso NAT į tunelio sąsają eina į postrouting. Būtent policy drop palikimas persiuntimo grandinėje paverčia dingusį maršrutą tyla, o ne nuotėkiu. Atvirkštinio kelio filtravimui tunelio sąsajoje reikia laisvo režimo, nes viešas šaltinis, atvykstantis po dekapsuliavimo, turi geriausią atvirkštinį maršrutą WAN pusėje. Linux ima didesnę iš all ir sąsajos reikšmių, todėl tunelio sąsajos nustatymas nėra tas pats, kas tikrinimo susilpninimas visur.
Įrodykite tai gedimo atveju
Užduokite branduoliui tikslų klausimą, nurodydami kliento šaltinio adresą ir sąsają, per kurią jis atvyksta. Paieška be abiejų atsako į kitą klausimą ir atrodys teisinga abiem atvejais. Tada pažiūrėkite į ugniasienės skaitiklius, partnerio perdavimo būseną ir paties kliento paslaugą.
Tinkamai išbandykite pašalinimą. Sustabdykite tunelį palikdami taisyklę ir filtrą vietoje: klientas turėtų sustoti, o šliuzės savas srautas turėtų veikti toliau. Tada sustabdykite partnerį neliesdami vietinės sąsajos, ir tai yra atvejis, kuris pagauna sprendimus, pasikliaujančius vien maršruto buvimu. Galiausiai perkraukite ir dar kartą patikrinkite taisyklių tvarką, nes išmontavimo kabliukas, pašalinantis sargį, grąžina visą sprendimą pagrindinei lentelei. Užrašykite lentelės numerį, prioritetus ir sąsajų pavadinimus pakeitimo biliete, nes kitas žmogus, pridėsiantis taisyklę, bus tas, kuris tai sulaužys.