Lugege WireGuardi konfiguratsiooni rida rea haaval, Interface'ist Peerini
Interface'i võtmed kuuluvad sellele otsale, peer'i võtmed teisele poolele. Lugege iga rida ühe suunana ja seejärel kontrollige, mida wg-quick protokolli ümber lisas.
Enamik katkisi WireGuardi konfiguratsioone ei eksi väärtuses; need panevad õige väärtuse valele poolele. Privaatvõti kuulub sellele masinale, peer kannab teise masina avalikku võtit ja aadress istub interface'i plokis, kuigi see kirjeldab, kus tunnel elab. Lugege faili kahe kohtuva suunana ja seejärel kontrollige, mida abiskript peale lisas. Protokollil endal on vähem välju kui failil, ja lisavälju tasub eraldi tunda.
Interface'i võtmed kirjeldavad seda masinat
Interface'i plokk hoiab selle otsa enda identiteeti. PrivateKey on see identiteet ja ei lahku kunagi hostist; vastav avalik võti tuletatakse sellest ja just seda loetlevad teised peer'id. ListenPort on koht, kus see pool kätlemisi vastu võtab, seega kaks klienti ühe aadressi taga vajavad erinevaid porte.
Address on tunneli aadress, millele see host vastab, kirjutatud prefiksi pikkusega, sest see on ka allikas, mida ta kasutab. Prefiksi vale määramine muudab siin, milliseid sihtkohti peab host otseselt ühendatuks, ja see tekitab tõrkeid, mis näevad välja nagu marsruutimine, mitte konfiguratsioon.
Kõik muu [Interface] plokis koos päris kliendiga lisab tavaliselt wg-quick: DNS, MTU, Table, ja konksuread. Need ei ole protokolli väljad ja paljas wg seadistus eirab neid täielikult.
Iga peer'i kirje kirjeldab ühte teist poolt
Üks [Peer] plokk on kaugem pool. PublicKey on selle poole tuletatud võti, mitte kunagi nende privaatvõti, ja PresharedKey on valikuline lisasala, mida mõlemad pooled peavad hoidma identselt. Endpoint on koht, kuhu saata, ja PersistentKeepalive palub sellel hostil saata pakett pärast intervalli, kui midagi muud välja ei lähe.
Kaks viga seletavad siinset segadust enamasti. Oma privaatvõtme kopeerimine peer'i plokki paneb kaks otst üht identiteeti jagama ja käepigistus ebaõnnestub viisil, mida logitakse halvasti. Endpoint kliendil välja jätmine on tavaliselt tahtlik, sest server õpib aadressi sissetulevast käepigistusest; serveril, mis peab alustama, ei ole. Pidage ka meeles, et keepalive hoiab NAT-i vastenduse lahti ega paranda läbilaskevõimet ega vähenda latentsust, seega kolmkümmend sekundit lisapakette ei osta midagi, kui liiklus juba voolab.
AllowedIPs on marsruutimine, mitte lubade loend
AllowedIPs on WireGuardi krüptovõtme-marsruutimine. Väljuvas suunas otsustab see sihtkoha järgi, milline peer paketi saab. Sissetulevas suunas otsustab see allika järgi, kas sellelt peer'ilt saabuv pakett vastu võetakse. Sama väli teeb mõlemat tööd, seepärast ei ole see juurdepääsukontrolli loend ega lubatud veebisaitide loend.
Kitsas AllowedIPs serveris kliendi jaoks tähendab, et server võtab vastu ainult pakette, mis väidavad neid allikaid, ja saadab ainult need sihtkohad sellele kliendile. Laiendage ühte poolt teist laiendamata ja saate tunnel, mis tõuseb püsti ega lase midagi läbi.
Mida wg-quick protokolli ümber lisab
wg-quick loeb sama faili ja teeb võrgusammud, mille protokoll jätab operatsioonisüsteemile. See määrab interface'i aadressi, lisab AllowedIPs-st tuletatud marsruudid, kirjutab resolveri seaded ja käivitab konksukäsud järjekorras.
See kiht seletab klassikalist asümmeetriat. Fail, milles on 0.0.0.0/0 ja DNS rida, annab kliendile vaikemarsruudi ja resolveri ning ei tee serveri edastus- ega NAT-reeglitega üldse midagi. Need kuuluvad serveri enda konfiguratsiooni ja ükski kliendifail ei saa neid pakkuda.
Hoidke failil üks omanik. Selle käsitsi muutmine, kui SaveConfig on lubatud, tähendab, et teie muudatus kaob järgmisel korral, kui interface alla läheb, ja interface ei ütle teile, et see juhtus.
Kontrollige rakendatud olekut, mitte faili
Fail on kavatsus. Rakendatud olek on see, mida kernel hoiab, ja need lähevad lahku alati, kui abiline, drop-in või konks muutis pärast aktiveerimist midagi.
Lugege reaalajas olekut ja adresseerimist koos ning võrrelge seejärel mõlemat sellega, mille kirjutasite:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confKui peer'ide loend on tühi, loodi interface ilma selle konfiguratsiooni rakendamata. Kui aadressid ja marsruudid on olemas, aga loendurid jäävad nulli, laaditi fail ja käepigistus ebaõnnestub, mis on võtme või otspunkti probleem, mitte jaotiste järjekorra probleem. Võrrelge kahte vaadet enne muutmist, sest nendevaheline lünk on tavaliselt tegelik viga.