Jedan gateway pokreće WireGuard za vaše uređaje i OpenVPN klijent prema tuđoj mreži. Prosljeđivanje između dva unutrašnja interfejsa radi, i lako je zaključiti da je donja podmreža sada dio nadređene usluge. Nije. Ruta koju klijent povuče govori vašem gatewayu kamo slati zahtjeve; ne govori ništa o tome kako udaljena mreža vraća saobraćaj uređajima za koje nikada nije čula. Odaberite model vraćanja koji nadređena usluga zaista podržava prije nego što dodate i jedno pravilo.

Odlučite model vraćanja prije nego što dirnete u rutiranje

U ovom pregledu donji klijenti koriste 10.90.0.0/24, gatewayu dodijeljena adresa nadređenog tunela je 10.80.0.6, a odobreni udaljeni resurs je 172.20.0.30. Dva modela odgovaraju tom obliku: zadržati donji izvor i natjerati suprotnu stranu da ga rutira, ili prevesti izvor u vlastitu adresu tunela gatewaya. Sve nakon te odluke je mehaničko, a sama odluka traži vlasnika usluge. Jedan red iznad je sporazum o rutiranju sa suprotnom stranom; drugi je lokalna promjena politike koju možete napraviti sami. Miješanje tih dvaju pretvara promjenu od deset minuta u pregovore.

preserved:  10.90.0.23 -> 172.20.0.30
translated: 10.80.0.6  -> 172.20.0.30

Odaberite jedan red i držite ga se. Redovi su alternative, ne koraci, a njihovo miješanje daje dizajn koji niko ne može objasniti na pregledu.

Očuvanje izvora rutiranjem

Suprotna strana prima zahtjev s donje adrese, pa joj treba podržana ruta i vlasništvo peera za tu podmrežu, uz ovlaštenje da je prihvati. To su udaljene postavke i nijedna lokalna Linux ruta ih ne stvara. Zatražite ih izričito, pismeno, s prefiksom i tunelskim peerom koji će ga nositi, i očekujte da će odgovor zavisiti od toga podržava li usluga uopće site-to-site aranžmane.

Ako je odgovor da, lokalna konfiguracija je mala: omogućeno prosljeđivanje, allowed-ips WireGuard peera koji pokrivaju donji raspon, i firewall politika koja dopušta prelazak u oba smjera.

Namjerno prevođenje izvora

Ako usluga vraća saobraćaj samo na adresu povezanog klijenta, prevedite izvor na tu adresu na izlazu i zadržite conntrack stanje koje ga okreće za odgovore. Ograničite pravilo na predviđene donje izvore, predviđene udaljene odredišta i nadređeni interfejs. Pravilo koje prevodi sve što izlazi iz svakog interfejsa mnogo je veća politika od ovog zahtjeva i iznenadit će vas kasnije.

IPv6 traži vlastiti dizajn; kopiranje IPv4 masquerade linije nije arhitektura. Testirajte prevedenu putanju novom vezom, a ne keširanom.

Lokalna putanja podataka ipak mora raditi

Prevođenje ne uklanja lokalni posao: gatewayu još treba ruta za donja odredišta, ispravno vlasništvo izvora WireGuard peera, omogućeno prosljeđivanje i uska firewall politika između interfejsa. Zahtjev nastao na samom gatewayu ne provjerava nijedno od tih dopuštenja, zato lokalni testovi na gatewayu prolaze, a donji uređaji i dalje padaju.

Testirajte sa stvarnog donjeg uređaja, ne s gatewaya. Adresa izvora je cijela poanta vježbe.

Jedan izvor znači jedan identitet sesije

Udaljena usluga vidi autentificiranu sesiju gatewaya i njegovu prevedenu adresu, a ne neovisnu autentifikaciju za svaki donji uređaj. Držite dopuštenja po uređaju i identitete aplikacija eksplicitnima i potvrdite s vlasnikom usluge da je gateway koji djeluje za nekoliko uređaja uopće dopušten. Prevođenje nije način da se zaobiđe zahtjev za registraciju svakog uređaja; ako usluga zahtijeva da se svaki uređaj registrira, koristite taj model ili pregovarajte site-to-site aranžman.

Zapišite tu potvrdu u runbook uz pravilo, jer će sljedeći pregledavatelj pitati je li dizajn odobren ili samo prikladan.

Definirajte stanje prekida, pa testirajte tri zahtjeva

Odlučite šta se događa kad nadređeni tunel padne. Ovlašteni udaljeni saobraćaj ne smije tiho slijediti obični WAN rezervni put tamo gdje je to zabranjeno, pa firewall politika koja dopušta prelazak mora također pasti zatvorena. Zatim testirajte tri slučaja sa stvarnog donjeg uređaja: dopušteni zahtjev koji radi, zabranjeni zahtjev koji pada, i kvar na nadređenoj strani koji zaustavlja dopušteni.

Zapišite vraćanje u jednom redu po pravilu, da se promjena može poništiti bez rekonstruiranja namjere.

Povezani članci