VPN pristupnik na Raspberry Pi: jedna mrežna kartica ili namjenski klijentski port
Jedan Pi port može posluživati odabrane klijente, ili drugi port može zatvoriti uređaje unutra. Odaberite raspored prema izolaciji, politici pada i tome kome pripada DNS.
Imate jedan Pi, jedan radni izlazni VPN profil i dva uređaja koji bi trebali doći na internet kroz njega. Pitanje koje odlučuje cijelu gradnju nije koji vodič slijediti, nego koliko vam izolacije treba. Jedan port pušta Pi da stoji uz te uređaje na routerovom LAN-u i djeluje kao dodatni pristupnik; drugi port pušta vas da ih stavite u segment u kojem je Pi jedini izlaz. Sve nakon tog izbora — DHCP, opseg vatrozida, DNS, slučaj ispada — slijedi iz njega.
Po čemu se dva rasporeda doista razlikuju
Oba nacrta usmjeravaju. Razlika je tko još stoji na kabelu i što se događa kad je vaša politika pogrešna.
| Layout A: Pi on the ISP LAN | Layout B: dedicated client port | |
|---|---|---|
| Cabling | One Ethernet port, existing switch port | Two interfaces: uplink plus a separate LAN port |
| Can a client bypass the Pi? | Yes, by using the ISP router as its gateway | No, unless the device has another radio or link |
| Who hands out addresses | The ISP router, with a per-client setting or a DHCP option | The Pi, on its own LAN interface only |
| Blast radius of a mistake | Any LAN host, if a rule is too broad | The attached segment |
| Good fit for | One laptop, a console, a temporary test client | Appliances, always-on boxes, untrusted devices |
Izolacija je prava os. Raspored A je savjetodavan: uređaj koji ignorira pristupnik dobiven putem DHCP-a i odabere router još uvijek radi, ali bez šifriranja. Raspored B nameće se topologijom, jer nema drugog sljedećeg skoka za odabir.
Raspored A: Pi kao dodatni pristupnik na postojećem LAN-u
Pretpostavite da je ISP router 192.168.50.1, Pi je 192.168.50.2, a odabrani klijenti pokazuju na Pi. Važno je da dva različita toka paketa dijele jedan kabel. Unutarnji paket klijenta dolazi na Pi i mora izaći kroz tunel; vlastiti šifrirani paket Pi prema VPN partneru mora izaći istim kabelom prema routeru. Putuju u suprotnim smjerovima po istom sučelju i trebaju različito postupanje.
Dajte Pi njegovu adresu kroz instalirani mrežni upravitelj, a ne kroz stari recept datoteke sučelja koji se s njim bori za uređaj. Zatim postavite klijente: statični pristupnik na jednom uređaju ili DHCP rezervacija koja daje 192.168.50.2 kao router. Ne mijenjajte cijeli DHCP raspon routera zbog dva uređaja i ne pretpostavljajte da klijent poštuje tu opciju — provjerite to.
Slabost je strukturna, a ne popravljiva. Svaki klijent u tom segmentu može pokazati na 192.168.50.1 i izaći bez šifriranja, a uređaj s drugim sučeljem ili mobilnim radiom potpuno napušta vaš put prisile. Ako je ta rečenica neprihvatljiva za dotični uređaj, odgovor već imate: upotrijebite raspored B.
Raspored B: namjenski port zatvara uređaje unutra
Ovdje Pi zadržava 192.168.50.2 na uzlaznoj vezi s pristupnikom 192.168.50.1 i uzima 10.20.0.1/24 na drugom sučelju za priključene uređaje. Pi je sada router s dvije mreže, a priključeni segment ima točno jedan izlaz.
Provjerite raspon protiv svega ostaloga prije nego se obvežete: vlastita podmreža tunela, drugi prefiksi između lokacija i sve što je dostupno kroz VPN. 10.20.0.0/24 koja se sudara s udaljenim LAN-om daje onaj napola radni rezultat čija dijagnostika traje cijelu večer. Ako je drugi port USB adapter, potvrdite da je podržan i pričvrstite njegovo ime u mrežnom upravitelju da premještanje nakon ponovnog pokretanja ne pomakne vašu LAN adresu.
Pokrenite DHCP slušatelj samo na tom sučelju. Poslužitelj koji odgovara na uzlaznoj vezi natječe se s ISP routerom i daje adrese vašeg segmenta ostatku kuće. Zavežite ga na LAN sučelje, ograničite ga na objavljeni raspon i držite vlastitu adresu Pi izvan skupa.
Prosljeđivanje, prijevod i pravilo zatvaranja pri ispadu
Četiri stvari često se opisuju kao jedna i nisu. Uključivanje prosljeđivanja (net.ipv4.ip_forward=1) samo govori jezgri da smije premještati pakete između sučelja; samo po sebi ništa ne dopušta i ne jamči nikakav put. Odabir izlaza odluka je o usmjeravanju. Dopuštanje paketa odluka je o politici u forward lancu. Prepisivanje njegova izvora odluka je o postroutingu. Gradnja koja čini samo prvo daje Pi koji veselo prosljeđuje klijentski promet van uzlaznom vezom.
Ograničite dopuštenje na izvore koje ste mislili i na sučelje koje promet treba koristiti, i uključite povratni put i vlastita potrebna odredišta Pi. Zatim prevodite na izlazu tunela ako davatelj ne usmjerava vaš LAN prefiks natrag prema vama. priručnik nftablesa tretira prosljeđivanje, lokalni izlaz i prijevod izvora kao odvojene operacije, što je ovdje ispravan misaoni model.
Uobičajeni kvar je široko masquerade pravilo na fizičkom sučelju. Tada promet dolazi na internet ISP putem, dok s klijentske strane izgleda točno kao VPN koji radi. To ništa ne dokazuje. Držite prijevod vezan uz objavljeni izlaz i držite svoja pravila u vatrozidu koji host već koristi, umjesto da dodate konkurentan skup pravila koji prazni zajednički postrouting lanac.
Zatim se pozabavite odsutnošću tunela. Klijentski profil koji instalira široku zadanu rutu znači i to da, kad tunel padne, uobičajena zadana ruta može se vratiti i klijentski promet tiho se vraća na uzlaznu vezu. Tamo gdje povratak na čisti tekst nije prihvatljiv, forward politika mora izričito odbiti promet od klijenta prema uzlaznoj vezi, u stanju u kojem je VPN ruta nestala. Napišite to kao pravilo odbijanja, ne kao pretpostavku. Vlastiti šifrirani prijevoz Pi prema VPN partneru odvojen je local-output tok i mora ostati dopušten, inače se tunel nikada ne može vratiti.
DNS i IPv6 trebaju vlastiti odgovor
Ako klijenti koriste Pi kao razrješavač, dolaze na lokalni slušatelj i Pi pokreće novi upit. Taj uzlazni upit slijedi vlastitu rutu Pi, a ne forward pravilo koje ste napisali za klijente, pa je klijentski put samo kroz tunel plus razrješavač koji izlazi izravno curenje bez ikakve poruke o pogrešci. Odlučite namjerno: razrješavač dostupan kroz tunel ili lokalni koji prihvaćate kao izravan, i uskladite vlastitu izlaznu politiku Pi s tom odlukom.
IPv6 je opet zaseban slučaj. Forward pravilo za IPv4 ništa ne ograničava u vezi s IPv6, a routerova oglasa na uzlaznoj vezi mogu dati Pi, i kroz njega priključenom segmentu, drugu zadanu rutu koja zaobilazi vašu politiku. Ili dajte IPv6 vlastiti zaštićeni put po istom načelu, ili ga izričito ograničite na klijentskom segmentu i recite to.
Testirajte granicu prije nego joj vjerujete
Prihvatite nacrt tek nakon četiri odvojene provjere, jer zavodljiv pojedinačni test — otvoriti preglednik na jednom klijentu — prolazi u nekoliko pokvarenih stanja.
Potvrdite da jedan stvarni klijent dolazi na internet kroz tunel, zatim potvrdite da isti klijent ne može doći na internet dok je tunel pao. Potvrdite da DNS razrješavanje radi i da upit izlazi onamo kamo ste namjeravali. Potvrdite da vlastiti prijevoz Pi još radi nakon ponovnog pokretanja tunela i da oporavak ne zahtijeva ponovno pokretanje stroja. Na kraju provjerite uređaj koji niste odabrali: u rasporedu A trebao bi nastaviti normalno raditi, a u rasporedu B ne bi smio uopće postojati u tom segmentu.
- Dva porta i pravilo odbijanja daju prisilu; jedan port i DHCP opcija daju savjet.
- Prijevod na pogrešnom sučelju izgleda kao uspjeh i nije.
- Vlastiti promet Pi, DNS i IPv6 svaki treba odluku, a ne zaključak.