Kā izveidot WireGuard testu ar diviem vienaudžiem, kas pierāda vienu ceļu
Viens tunelis, viens adrešu pāris, viens atļauts resurss. Minimāla WireGuard bāze padara redzamu katru vēlāko pāradresācijas, NAT vai DNS izmaiņu.
WireGuard tests, kas nes noklusējuma maršrutu, LAN prefiksu, DNS un ugunsmūra izņēmumu, nevar pateikt, kura no tām salūza. Samaziniet to līdz diviem vienaudžiem, vienam adrešu pārim un vienam atļautam servisam, un kļūdai nav kur paslēpties. Garlaicīgā bāze ir diagnostika. Izveidojiet to vispirms; tas aizņem piecpadsmit minūtes un ietaupa pēcpusdienu, ko citādi pavadītu minot.
Tas, ko bāze pierāda, ir šaurāks, nekā vairums sagaida. Tā pierāda, ka divas identitātes saskan, ka UDP sasniedz klausīšanās portu un ka viens atļauts galamērķis nes pieprasījumu. Pāradresācija, NAT, LAN maršruti un DNS ir atsevišķas funkcijas, kas tiek pievienotas vēlāk, pa vienai.
Atslēgas, adreses un vienīgais endpoint
Ģenerējiet atslēgu pāri katrā sistēmā un pārvietojiet starp tām tikai publiskās puses. wg genkey | tee privatekey | wg pubkey > publickey ir dokumentētā vienas rindas komanda, un tā atstāj privāto atslēgu failā, ko pēc tam varat aizsargāt. Izvēlieties tuneļa adreses no diapazona, kas neparādās nevienā citā jūsu konfigurācijā, piemēram, 10.99.0.1/24 un 10.99.0.2/24. Pierakstiet, kura adrese pieder kurai mašīnai, jo katra vēlākā pārbaude ir atkarīga no šīs atbilstības.
Privātās atslēgas nekad neceļo. Ja testam vajag vienu, kas nokopēts uz otru pusi, tests jau ir nogājis greizi. Kad abas sistēmas atrodas aiz NAT, vismaz vienai vajag sasniedzamu UDP portu, kamēr otra nes Endpoint, kas uz to norāda, un publiskā adrese un ports pieder jūsu piezīmēm, nevis pieņēmumiem par 51820.
Porta pāradresācija, kas kartē citu ārējo portu, darbojas labi, kamēr Endpoint tam atbilst. Neatbilstības šeit rada klusumu, nevis kļūdas, tāpēc ir vērts tās pārbaudīt uz papīra pirms atkļūdošanas uz vada.
Lauki, kas pieder wg, un tie, kas nepieder
Pamata lauku kopa ir maza: PrivateKey un ListenPort zem Interface, PublicKey, AllowedIPs un Endpoint zem Peer. Address un DNS pieder wg-quick, nevis pašam wg, un šī atšķirība iekodās tajā mirklī, kad tā pati konfigurācija pārvietojas uz citu rīku.
[Interface]
PrivateKey = <peer-a-private>
Address = 10.99.0.1/24
ListenPort = 51820
[Peer]
PublicKey = <peer-b-public>
AllowedIPs = 10.99.0.2/32
Endpoint = 203.0.113.10:51820
AllowedIPs veic divus darbus vienlaikus. Tas izvēlas, kuri galamērķi nonāk tunelī, un tas pilnvaro vienaudzi izmantot šīs avota adreses ierašanās brīdī. Tāpēc spoguļa ierakstam otrā pusē ir precīzi jānosauc jūsu tuneļa adrese; /32 nepareizajam vienaudzim lasās kā maršrutēšanas problēma un uzvedas kā autorizācijas problēma. WireGuard ātrā palaišana parāda to pašu divu vienaudžu formu ar kanonisko formulējumu, ja vēlaties salīdzināt lauku nosaukumus.
Rokasspiediena lasīšana ikonas vietā
Paceliet saskarni ar to, kam tā pieder, tad lasiet stāvokli, nevis statusa gaismu. wg show izdrukā jaunāko rokasspiedienu katram vienaudzim kopā ar baitu skaitītājiem, un rokasspiediens pēdējo dažu minūšu laikā nozīmē, ka atslēgas, endpoint un UDP ceļš visi darbojas. Skaitītājs, kas pieaug tikai vienā virzienā, ir pats savs atbilde, un tas nav tas pats bojājums kā rokasspiediens, kas nekad nenotiek.
Abi bojājumi nozīmē dažādus izmeklējumus. Pilnīgs rokasspiediena trūkums norāda uz atslēgu nesakritību, nepareizu Endpoint, bloķētu UDP vai ugunsmūri, kas nomet pašu rokasspiedienu. Rokasspiediens, kas izdodas, kamēr dati nekur neiet, norāda uz AllowedIPs, servisu, kas neklausās tuneļa adresē, vai resursdatora ugunsmūri, kas pieņem portu LAN tīklam, bet ne tuneļa saskarnei. Tās ir dažādas sistēmas puses, un bāze tās šķir pirms sākat mainīt noteikumus.
Pierādīt vienu atļautu servisu, tad otrādi
Nosūtiet pieprasījumu uz otra vienaudža tuneļa adresi servisam, kuram vajadzētu atbildēt, un izvēlieties ko labāku par ping. Trūkstoša ICMP atbilde var būt resursdatora filtrēšana, nevis tuneļa bojājums, tāpēc kluss ping nepierāda nevienu virzienu. TCP savienojums ar portu, par kuru zināt, ka tas ir atvērts, vai pieprasījums, kas atgriež datus, dod atbildi, ko varat interpretēt.
Palaidiet pretējo virzienu kā atsevišķu testu ar savu rezultātu, jo abiem virzieniem ir atsevišķi ugunsmūra un AllowedIPs ieraksti, un tie var neizdoties neatkarīgi. Ja rokasspiediens darbojas un pieprasījums ne, problēma ir datu ceļā, nevis tunelī: AllowedIPs, klausīšanās serviss vai resursdatora ugunsmūris. Salabojiet to pirms pāradresācijas, NAT vai DNS pievienošanas, citādi pavadīsiet pēcpusdienu atkļūdojot funkciju, kas nekad nebija vainīga.
Bāzes kā atskaites saglabāšana
Saglabājiet strādājošo topoloģiju un profila avotu vietā, no kurienes varat atjaunot, un turiet tos ārpus katras mapes, kas sinhronizējas ar publisku servisu. Pēc tam pievienojiet vienu funkciju pēc otras, pēc katras atkārtojot sākotnējo pieprasījumu: pāradresācija, NAT, LAN maršruts un tikai tad DNS. Katrs papildinājums, kas salauž testu, tagad ir identificējams, jo nekas cits neizkustējās.
Bāze, kas tikai nokrāso ikonu zaļu, jums neko nav teikusi par to, kurš papildinājums izraisīja nākamo bojājumu. Turiet vienīgo atļauto ceļu darbojamies kā atskaiti, un katra vēlākā izmaiņa tiek mērīta pret to.