AllowedIPs je zoznam smerovania, nie pravidlo firewallu
Vyberá partnera pre odchádzajúcu prevádzku a overuje prichádzajúce zdroje. Nie je to zoznam prístupov a vypnutie správy trás neopraví rozdelený tunel.
Väčšina ľudí číta AllowedIPs ako zoznam povolení, množinu adries, ktoré sa môžu pripojiť k partnerovi, približne ako pravidlo firewallu napísané pre tunel. Nie je to tak. Pole je smerovacia tabuľka pracujúca oboma smermi: vyberá partnera pre odchádzajúci paket a overuje zdroj prichádzajúceho. Čítanie ako zoznamu prístupov vytvára konfigurácie, ktoré smerujú prevádzku, o ktorú nikto nežiadal.
Jedno pole, dvaja čitatelia: voľba odchádzajúceho a kontrola zdroja
U klienta prefixy rozhodujú, ktoré ciele cestujú k tomuto partnerovi a ktoré zostávajú v bežnej sieti. Preto záznam pre 0.0.0.0/0 zachytí každý cieľ IPv4, a preto import profilu plného tunela posiela bežné prehliadanie cez vzdialený stroj. Úzke záznamy robia opak: smerujú iba uvedené siete a všetko ostatné nechávajú tam, kde bolo. Sekcia o smerovaní kryptokľúčov v dokumentácii WireGuard uvádza obe úlohy na jednom mieste: voľbu odchádzajúceho partnera a overenie prichádzajúceho zdroja.
Na serveri to isté pole opisuje, ktoré zdrojové adresy smie každý partner používať. Je to kryptografická kontrola, nie filter paketov: paket, ktorého vnútorný zdroj nezodpovedá zoznamu partnera, je zahodený vnútri WireGuardu skôr, než ho uvidí akýkoľvek firewall hostiteľa. Obe úlohy zdieľajú jeden zoznam, a práve preto sa zoznam skopírovaný odinakiaľ správa nesprávne na mieste, ktoré ste nezvážili.
Klientsky blok je miesto, kde začína väčšina tohto zmätku. Rozdelený tunel uvádza vzdialené siete a plný tunel je to isté pole s predvoleným prefixom:
[Peer]
# split tunnel: only these networks
AllowedIPs = 10.77.0.0/24, 192.168.30.0/24
[Peer]
# full tunnel: everything, both families
AllowedIPs = 0.0.0.0/0, ::/0
Obe formy sú samy osebe úplné a sú to alternatívy, nie kroky. Prvá posiela tunelom iba tie dve siete; druhá posiela každý cieľ, pričom záznam ::/0 pridáva IPv6 k predvolenému IPv4. Čokoľvek si vyberiete, tieto prefixy sú celé rozhodnutie o smerovaní pre tohto partnera, keď wg-quick začne inštalovať trasy.
Rozbočovač potrebuje iný zoznam
Rozbočovač uvádza adresu tunela každého klienta ako prefix hostiteľa a k tomu každú sieť, ktorá za týmto klientom skutočne stojí. Kopírovanie širokého zoznamu klienta na každého partnera rozbočovača hovorí rozbočovaču, že mnohí partneri môžu mať rovnaké adresy ako zdroj, a to nie je plán adries. Pole Endpoint patrí úplne inej vrstve: uvádza vonkajšiu adresu a port partnera, nikdy cieľ vnútri tunela.
[Peer]
# laptop: tunnel address 10.77.0.2, office LAN behind it
AllowedIPs = 10.77.0.2/32, 192.168.30.0/24
Prefix hostiteľa nesie adresu tunela a sieťový prefix nesie to, čo stojí za klientom, a oba sú potrebné. Bez prefixu hostiteľa nemôže rozbočovač vrátiť vlastnú prevádzku klienta a bez sieťového prefixu zostáva LAN za ním nedostupná; partner, za ktorým nič nie je, dostane iba prefix hostiteľa.
Preskočenie inštalácie trás zanecháva medzeru
wg-quick, pomocník, ktorý dvíha rozhranie z konfiguračného súboru, inštaluje adresy rozhrania a trasy ako súčasť tejto práce. Nastavenie Table = off hovorí pomocníkovi preskočiť prácu s trasami, čo neinštaluje náhrady a nespôsobí dostupnosť súkromnej siete. Keď automatické trasy už prácu robia, uvedenie potrebných prefixov je jasnejšia konfigurácia. Vypnúť správu trás a nechať náhradu nenapísanú nie je návrh, je to opomenutie.
Základný nástroj wg sa správa inak: konfiguruje rozhranie a trás sa nikdy nedotkne, takže nastavenie postavené priamo na ňom potrebuje vlastné príkazy pre trasy. Pokyny napísané pre jeden nástroj môžu vyzerať nesprávne, keď sa dodržiavajú pri druhom. Úspešný ping je tiež slabý dôkaz, pretože preveruje jednu cestu, a nie každú cestu aplikácie, ktorú potrebujete.
DNS a IPv6 sa rozhodujú oddelene
Skontrolujte adresu servera DNS, ktorú tunel inzeruje, a potvrďte, že cez zvolené prefixy existuje trasa k tejto adrese. Nastavenie prekladača nerobí prekladač dostupným a zúženie tunela môže ticho odstrániť trasu, ktorá tam viedla. Preskúmajte aj IPv6 samostatne, pretože správne rozdelenie IPv4 nič nehovorí o predvolenej trase IPv6, ktorá stále smeruje na fyzické spojenie. Tri samostatné rozhodnutia sa môžu zmeniť naraz, keď upravíte jeden blok partnera.
Potom otvorte jeden súkromný zdroj a jednu bežnú webovú stránku z známej počiatočnej konfigurácie. Ak zdroj odpovie a prehliadanie stále vychádza cez miestne pripojenie, rozdelenie robí to, o čo ste požiadali. Ak sa prehliadanie v tej istej chvíli pokazí, tunel prevzal predvolenú trasu a zoznam prefixov je miesto, kde treba hľadať.