Rokovanje se zaključi, wg show poroča o nedavnem prenosu in naslov tunela strežnika se odziva na ping. Gostitelj v LAN strežnika pa ne. Trije pogoji morajo veljati hkrati: odjemalec mora usmeriti predpono LAN v tunel, strežnik mora posredovati pakete in odgovor potrebuje pot nazaj. Ko manjka eden od treh, je simptom enak.

AllowedIPs je seznam dostopa in usmerjevalna tabela hkrati

Na odjemalcu seznam AllowedIPs odloča, kaj se sme poslati temu peeru, in katere poti namesti WireGuard. Vnos peera, ki navaja samo naslov tunela strežnika, namesti eno pot gostitelja, zato cilji v LAN nikoli ne pridejo v tunel. Dodajanje predpone LAN je prva stvar, ki jo je treba preveriti, in je tudi sprememba, ki po kopirani konfiguraciji najpogosteje manjka. Peer, razširjen na privzeto pot, je drugačen načrt in bo premaknil tudi internetni promet odjemalca.

Pot gostitelja in predpono LAN imejte kot ločene vnose. Če ima pisarna dve podomrežji, obe spadata na seznam, manjkajoča druga predpona pa povzroči okvaro, ki je videti selektivna, ne popolna.

[Peer]
PublicKey = <server public key>
Endpoint = vpn.example.net:51820
AllowedIPs = 10.66.0.1/32, 192.168.50.0/24

Posredovanje in prevajanje spadata na strežnik

Strežnik potrebuje omogočeno posredovanje IP, pravilo posredovanja, ki sprejema promet iz tunela, in pravilo prevajanja proti njegovemu vmesniku LAN. Prav prevajanje omogoča, da načrt deluje brez dotika vsakega gostitelja v pisarniškem omrežju. Odgovori se nato vrnejo na strežnik in ne na naslov, o katerem LAN ni nikoli slišal. Brez tega vsak gostitelj potrebuje pot v podomrežje tunela in pravilo požarnega zidu, ki jo dovoljuje, kar je v omrežju, ki ga upravlja nekdo drug, redko sprejemljivo.

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Pravila, dodana ročno, ob ponovnem zagonu izginejo, zato jih privežite na vmesnik s hook ukazi v konfiguraciji strežnika. Nabor pravil, ki preživi svoj vmesnik, je način, kako stroj na koncu prevaja promet za tunel, ki ne obstaja več.

Ko se je LAN preselil, pravilo pa ne

Zamenjava usmerjevalnika, ki preštevilči pisarniško podomrežje, je klasična različica te okvare. Tunel ostane vzpostavljen, rokovanje ostane sveže in nič za strežnikom se ne odziva, ker pravilo prevajanja še vedno navaja stari naslov. Namestitvene skripte pogosto vgradijo naslov LAN strežnika v pravilo POSTROUTING, po preštevilčenju pa ta naslov ne obstaja na nobenem vmesniku. Paketi se nato prepišejo na cilj, ki ne more odgovoriti.

iptables -t nat -n -L POSTROUTING
ip -br addr show

Primerjajte oba izhoda. Cilj prevajanja, ki se ne pojavi na seznamu vmesnikov, je napaka, in popraviti jo je sprememba ene vrstice, ko jo enkrat vidite. Pravilo lahko živi v ustvarjeni enoti in ne v konfiguraciji WireGuard, zato po urejanju to enoto znova naložite in potrdite, da naslednji zagon ne prepiše vaše spremembe.

Dve lokaciji za NAT potrebujeta kraj srečanja

Ko nobena stran ne sprejema dohodnih povezav, je praktični odgovor majhen gostitelj z javnim naslovom in dvema vmesnikoma WireGuard. Vsaka lokacija se poveže navzven, srednji gostitelj navede LAN vsakega peera v svojem AllowedIPs, posredovanje pa prenaša pakete med obema tuneloma. Nič na požarnem zidu nobene lokacije se ne mora spremeniti, zato se ta načrt zlahka širi.

Usmerjanje med lokacijami ohrani izvorne naslove in s tem ohrani smiselno beleženje po gostitelju. Prevajanje na srednjem gostitelju je preprostejše, ko se oba LAN prekrivata, a za ceno izgube identitete vira v dnevnikih. Odločite se, katera lastnost je pomembna, preden izberete.

Ločite plasti s štirimi preverjanji

Izvajajte eno preverjanje na plast, namesto da bi spreminjali tri stvari in upali. Prvo prikazuje starost rokovanja in števce za vsakega peera. Drugo prikazuje, ali odjemalec res usmeri ta cilj v tunel. Tretje in četrto povesta, ali je zahteva prispela in ali jo je kakšna politika po prihodu zavrgla.

wg show
ip route get 192.168.50.20
tcpdump -ni wg0 icmp
iptables -vnL FORWARD --line-numbers

Zahteva, ki prispe in ne sproži odgovora, kaže na pot odgovora ali na gostitelja v LAN. Zahteva, ki nikoli ne prispe, kaže na AllowedIPs ali na pot odjemalca. Ta izida zahtevata različne popravke, in zajem je tisto, kar ju loči.

Sorodni članki