Useimmat rikkinäiset WireGuard-kokoonpanot eivät erehdy arvossa; ne laittavat oikean arvon väärälle puolelle. Yksityinen avain kuuluu tälle koneelle, peer kantaa toisen koneen julkisen avaimen ja osoite istuu interface-lohkossa, vaikka se kuvaa, missä tunneli asuu. Lue tiedosto kahtena suuntana, jotka kohtaavat, ja tarkista sitten, mitä apuskripti lisäsi päälle. Itse protokollassa on vähemmän kenttiä kuin tiedostossa, ja ylimääräiset kannattaa tuntea erikseen.

Interfacen avaimet kuvaavat tätä konetta

Interface-lohko pitää tämän päätepisteen oman identiteetin. PrivateKey on se identiteetti eikä koskaan poistu isännästä; vastaava julkinen avain johdetaan siitä, ja juuri sen muut peerit listaavat. ListenPort on paikka, jossa tämä puoli vastaanottaa kättelyt, joten kaksi asiakasta yhden osoitteen takana tarvitsevat eri portit.

Address on tunneliosoite, johon tämä isäntä vastaa, kirjoitettuna etuliitteen pituudella, koska se on myös lähde, jota se käyttää. Väärä etuliite tässä muuttaa sitä, mitkä kohteet isäntä uskoo suoraan kytketyiksi, ja se tuottaa vikoja, jotka näyttävät reititykseltä eivätkä kokoonpanolta.

Kaikki muu [Interface] lohkossa oikean asiakkaan kanssa lisää yleensä wg-quick: DNS, MTU, Table, ja koukkurivit. Ne eivät ole protokollakenttiä, ja paljas wg asennus jättää ne kokonaan huomiotta.

Jokainen peer-merkintä kuvaa yhtä toista puolta

[Peer] lohko on vastapuoli. PublicKey on kyseisen puolen johdettu avain, ei koskaan heidän yksityinen avaimensa, ja PresharedKey on valinnainen lisäsalaisuus, joka molemmilla puolilla on oltava samanlainen. Endpoint on minne lähetetään, ja PersistentKeepalive pyytää tätä isäntää lähettämään paketin välin jälkeen, kun mitään muuta ei lähde ulos.

Kaksi virhettä selittää suurimman osan tämän paikan sekaannuksesta. Oman yksityisen avaimen kopioiminen peer-lohkoon saa kaksi päätä jakamaan yhden identiteetin, ja kättely epäonnistuu tavalla, joka lokittuu huonosti. Endpoint pois jättäminen asiakkaalla on yleensä tahallista, koska palvelin oppii osoitteen saapuvasta kättelystä; sen pois jättäminen palvelimella, jonka on aloitettava, ei ole. Muista myös, että keepalive pitää NAT-mappauksen auki eikä paranna läpäisyä eikä vähennä viivettä, joten kolmekymmentä sekuntia ylimääräisiä paketteja ei osta mitään, kun liikenne jo virtaa.

AllowedIPs on reititystä, ei lupaluettelo

AllowedIPs on WireGuardin salausavainreititys. Lähtevässä suunnassa se päättää kohteen perusteella, mikä peer vastaanottaa paketin. Saapuvassa suunnassa se päättää lähteen perusteella, hyväksytäänkö kyseiseltä peeriltä saapuva paketti. Sama kenttä tekee molemmat työt, siksi se ei ole pääsynhallintaluettelo eikä luettelo sallituista verkkosivustoista.

Kapea AllowedIPs palvelimella asiakkaalle tarkoittaa, että palvelin hyväksyy vain paketit, jotka väittävät näitä lähteitä, ja lähettää vain ne kohteet kyseiselle asiakkaalle. Laajenna toinen puoli laajentamatta toista, ja saat tunnelin, joka nousee pystyyn eikä päästä mitään läpi.

Mitä wg-quick lisää protokollan ympärille

wg-quick lukee saman tiedoston ja tekee verkkotoimet, jotka protokolla jättää käyttöjärjestelmälle. Se osoittaa interfacen osoitteen, lisää AllowedIPs johdetut reitit, kirjoittaa resolverin asetukset ja suorittaa koukkukomennot järjestyksessä.

Tämä kerros selittää klassisen epäsymmetrian. Tiedosto, jossa on 0.0.0.0/0 ja DNS rivi, antaa asiakkaalle oletusreitin ja resolverin, eikä se tee yhtään mitään palvelimen edelleenlähetys- tai NAT-säännöille. Ne kuuluvat palvelimen omaan kokoonpanoon, eikä mikään asiakastiedosto voi tarjota niitä.

Pidä tiedostolle yksi omistaja. Sen muokkaaminen käsin, kun SaveConfig on käytössä, tarkoittaa, että muutoksesi katoaa seuraavan kerran, kun interface laskee, eikä interface kerro sinulle, että niin kävi.

Tarkista käytössä oleva tila, älä tiedostoa

Tiedosto on aikomus. Käytössä oleva tila on se, mitä ydin pitää, ja ne eroavat aina, kun apuri, drop-in tai koukku muokkasi jotain aktivoinnin jälkeen.

Lue elävä tila ja osoitteistus yhdessä ja vertaa sitten molempia siihen, mitä kirjoitit:

sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.conf

Jos peer-luettelo on tyhjä, interface luotiin ilman, että sen kokoonpanoa sovellettiin. Jos osoitteet ja reitit ovat olemassa mutta laskurit pysyvät nollassa, tiedosto latautui ja kättely epäonnistuu, mikä on avain- tai päätepisteongelma eikä osiojärjestyksen ongelma. Vertaa kahta näkymää ennen muokkaamista, koska niiden välinen ero on yleensä varsinainen vika.

Aiheeseen liittyvät artikkelit