Kako dati jednoj testnoj LAN mreži vlastiti WireGuard izlaz
Ograničite jednu LAN mrežu na WireGuard izlaz s namjenskom tablicom usmjeravanja i nedostupnim čuvarom, dok pristupnik zadržava svoju uobičajenu zadanu WAN rutu.
Tri dizajna rješavaju isti laboratorijski problem: mala LAN mreža mora izlaziti kroz WireGuard partnera, dok sam pristupnik zadržava svoj uobičajeni uzlazni kanal. Primamljiv prečac je premjestiti zadanu rutu usmjerivača u tunel, ali to lomi vlastitu putanju upravljanja kutije i sve ostalo što ona prosljeđuje. Zanimljiva opcija je usmjeravanje po politici ograničeno na jedno sučelje i jedan prefiks. Odaberite između njih odgovorivši na tri pitanja o stroju koji stvarno imate.
Odredite gdje živi izlaz
Prvo pitanje: prosljeđuje li ovaj host još nešto? Namjenski laboratorijski pristupnik može živjeti s politikom prosljeđivanja koja prema zadanom odbacuje sve. Usmjerivač s proizvodnim dužnostima ne može, a postavljanje konkurentskog skupa pravila preko upravljanog vatrozida upravo je način na koji se ispadi zakazuju. Drugo: možete li posjedovati dva objekta politike i njihov redoslijed kroz ponovna pokretanja? Treće: ovlašćuje li partner kojeg imate vašu izvornu adresu tunela i nudi li izlaz na internet? Partner koji izlaže samo privatnu mrežu drugi je proizvod i nikakva lokalna promjena usmjeravanja to ne ispravlja. Ako je bilo koji odgovor ne, smjestite izlaz umjesto toga u imenski prostor ili u jednokratni virtualni stroj.
Imenski prostor ili VM troše memoriju i daju vam čist radijus eksplozije. Usmjeravanje po politici troši dva pravila i ostavlja vam jednu kutiju za otklanjanje pogrešaka.
Odaberite izlaz koji ovlašćuje vaš izvor
Većina kvarova u ovom laboratoriju dogodi se prije nego postoji ijedno pravilo vatrozida. Operator izlaza mora prihvatiti izvornu adresu koju vaši paketi nose nakon prijevoda, a u ovom je dizajnu to adresa tunela, a ne prefiks LAN mreže. Zato maskiranje pripada dizajnu od početka, a ne kao kasni dodatak.
Potvrdite tri stvari s operatorom: partner ovlašćuje adresu vašeg tunela, prosljeđuje IPv4 umjesto da završava na sebi i primjenjuje izlazni NAT. Bez prvoga vaši paketi stižu i nestaju. Bez trećega odlaze s privatnim izvorom i ginu na sljedećem skoku. Zatim provjerite da wg-quick ne instalira vlastitu zadanu rutu, što sprječava Table = off; ta postavka potiskuje stvaranje ruta, a ne partnerove provjere AllowedIPs ni njegovo rukovanje DNS-om.
Dva objekta politike obavljaju usmjeravanje
Usmjeravanje treba tablicu i pravilo. Tablica drži dvije rute: prefiks LAN mreže izvan LAN sučelja i zadanu rutu izvan tunela. Pravilo šalje promet koji dolazi na LAN sučelje i nosi taj prefiks u tablicu. Rabite selektor iif uz podudaranje izvora, jer vlastiti WireGuard paketi pristupnika nastaju lokalno i nikada se ne podudaraju s dolaznim sučeljem.
Čuvar dolazi prije pretraživanja, a ne poslije njega. Taj je redoslijed cijelo sigurnosno svojstvo dizajna.
Čuvar je drugo pravilo na istom selektoru čija je presuda unreachable. Dajte mu viši brojčani prioritet da pretraživanje ipak pobjeđuje dok je tunel podignut. Kad ruta tunela nestane, pretraživanje ne vraća ništa i čuvar zaustavlja traženje umjesto da ga pusti da padne na zadanu WAN rutu u glavnoj tablici.
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
Zatvorite prazninu za povratak prije nego je otvorite
Instalirajte prvo čuvara, a pretraživanje drugo. Obrnuti redoslijed ostavlja prozor od nekoliko sekundi u kojem promet testnog klijenta može dosegnuti uzlazni kanal.
Filtar upotpunjuje sliku. U kuki forward prihvatite smjer od LAN mreže prema tunelu za testni prefiks i uspostavljeni povratni smjer, a zatim odbacite sve ostalo; NAT za taj prefiks na tunelsko sučelje ide u postrouting. Upravo ostavljanje policy drop na lancu prosljeđivanja pretvara rutu koja nedostaje u tišinu, a ne u curenje. Filtriranje obrnutog puta traži labav način rada na tunelskom sučelju, jer javni izvor koji stiže dekapsuliran ima svoju najbolju obrnutu rutu na strani WAN-a. Linux uzima višu od vrijednosti all i one po sučelju, pa postavljanje tunelskog sučelja nije isto što i slabljenje provjere posvuda.
Dokažite to slučajem kvara
Pitajte jezgru precizno pitanje navodeći izvornu adresu klijenta i sučelje na koje stiže. Pretraživanje bez obojega odgovara na drugo pitanje i izgledat će ispravno u oba slučaja. Zatim pogledajte brojače vatrozida, stanje prijenosa kod partnera i vlastitu uslugu klijenta.
Ispravno ispitajte uklanjanje. Zaustavite tunel ostavljajući pravilo i filtar na mjestu: klijent bi trebao zastati, a vlastiti promet pristupnika nastaviti raditi. Zatim zaustavite partnera bez diranja lokalnog sučelja, a to je slučaj koji hvata dizajne koji se oslanjaju samo na postojanje rute. Naposljetku ponovno pokrenite i provjerite redoslijed pravila, jer kuka za rastavljanje koja uklanja čuvara vraća cijeli dizajn glavnoj tablici. Zapišite broj tablice, prioritete i nazive sučelja na tiketu promjene, jer sljedeća osoba koja doda pravilo je ona koja će ovo slomiti.