Handshake ya WireGuard inafanya kazi lakini hakuna intaneti: fuata pakiti
Handshake inathibitisha funguo na ufikivu pekee. Fuata pakiti moja kutoka AllowedIPs kupitia upelekaji, NAT na njia ya kurudi ili kuona inakokwama.
Handaki imewaka, wg show inaripoti handshake ya hivi karibuni, unaweza kupinga anwani ya handaki ya seva, na hakuna kitu zaidi kinachojibu. Wazo la kwanza ni kuzalisha funguo upya au kushiriki usanidi tena. Hiyo inabadilisha sehemu ya njia ambayo tayari imethibitishwa kufanya kazi.
Handshake iliyokamilika inasema pande mbili zinakubaliana juu ya funguo, kwamba UDP inafikia mwisho, na kwamba routing ya crypto inakubali pakiti. Haisemi chochote kuhusu kama pakiti inaweza kuondoka kwenye seva baada ya hapo.
Kwa hiyo fuata pakiti moja badala ya kukisia. Kuna maeneo manne ambako inaweza kufa, na kila moja inaacha alama tofauti.
Handshake inathibitisha nini kwa kweli
WireGuard ni itifaki ya UDP inayoanzisha kikao kwa handshake ya Noise kisha kusimba pakiti kwa mwenzake. wg show inapoonyesha handshake ya sekunde chache na kihesabu cha uhamishaji kinachoongezeka, mwisho, funguo na ufunguo wa umma wa mwenzake zote ni sahihi.
Isichothibitisha ni kwamba mteja wako anapeleka trafiki ya kuelekea intaneti kwenye kiolesura hata kidogo, kwamba seva iko tayari kuipitisha, au kwamba jibu linaweza kupata njia ya kurudi. Hizo ni maamuzi ya routing ya kernel na firewall, na hufanywa nje ya handaki.
Ndiyo sababu kupinga anwani ya handaki ya seva ni jaribio la kupotosha kiasi hicho. Pakiti hiyo imeelekezwa kwa seva yenyewe, kwa hiyo inaishia ndani. Haihitaji kamwe upelekaji, kamwe tafsiri, na kamwe njia ya kurudi kutoka intaneti.
AllowedIPs ni uamuzi wa routing
Kwenye mteja, AllowedIPs hufanya kazi mbili. Ni jedwali la routing ya ufunguo wa crypto linaloamua anwani zipi za marudio zinaingia kwenye handaki ya mwenza huyu, na ni orodha ya anwani za chanzo ambazo mwenza atakubali kutoka kwako. Ikiwa usanidi wa mteja unaorodhesha 10.8.0.0/24 pekee, marudio ya umma hayaingii kwenye kiolesura na njia yako ya kawaida ya default inawapeleka nje ya handaki. Wakati huo handaki inafanya kazi kikamilifu na haifanyi chochote ulichotaka.
Angalia kile mteja alichosakinisha kwa kweli badala ya kile faili ya usanidi inasema:
wg show wg0 allowed-ipsip route get 1.1.1.1
Amri ya pili ndiyo yenye uamuzi. Ikiwa jibu linataja kiolesura chako halisi na lango la kawaida, pakiti haipitishwi kwenye handaki na hakuna mabadiliko ya upande wa seva yatakayoirekebisha. Ongeza 0.0.0.0/0 kwa IPv4 na ::/0 kwa IPv6 kando; sheria inayonasa kila kitu kwa familia moja inaiacha nyingine kwenye njia yake ya awali, na hiyo ni sababu ya kawaida ya handaki la IPv4 linalofanya kazi na utafutaji wa IPv6 uliokwama.
Pakiti inakokufa kwenye lango
Ikiwa njia ni sahihi na pakiti bado haiendi popote, inafikia seva na kusimama hapo. Ukaguzi manne hugharamia lango nyingi.
Upelekaji. sysctl net.ipv4.ip_forward inayorudisha 0 ni jibu la kawaida, na usambazaji mwingi bado uko kwenye 0 kama chaguo-msingi. Lazima iwe 1, na iwekwe kwa kudumu katika faili ya sysctl badala ya amri inayotoweka unapowasha upya. Upelekaji wa IPv6 ni swichi tofauti.
Sera ya kuchuja. Mnyororo FORWARD wenye sera ya drop ya chaguo-msingi utatupa trafiki ya handaki huku ukiruhusu trafiki kwa host yenyewe, jambo linaloendana hasa na dalili. Soma seti ya sheria inayotumika, si faili iliyohifadhiwa: nft list ruleset au iptables -S.
Tafsiri au routing. Wateja wanaotumia anwani za handaki za kibinafsi wanahitaji ama NAT ya chanzo kwenye kiolesura cha kutoka cha seva, au kiambishi kilichopitishwa kwa njia ambacho mtandao wa juu unajua kukirudisha. Uchaguzi kati yao unafuata mpango wa anwani. Kuongeza MASQUERADE kwenye mtandao ambao tayari unapitisha kiambishi chako kurudi ni hatari lakini haina maana, na kuiacha mahali pasipo njia kunaacha majibu yakiwa yameelekezwa kwa kipimo cha kibinafsi kisichoweza kupitishwa.
Njia ya kurudi. Katika miundo iliyopitishwa kwa njia, router ya juu inahitaji njia inayoelekea seva yako. Mtandao wa mtoa huduma unaweza pia kuizuia: wingu kadhaa huwezesha ukaguzi wa chanzo na marudio kwenye instance, ambao hutupa kimya pakiti ambazo chanzo chake si anwani ya instance yenyewe, hadi ukaguzi huo uzimwe.
DNS inashindwa tofauti na routing
Pakiti kwa anwani inayojulikana na utafutaji wa jina ni mitindo miwili tofauti ya kushindwa, na jumbe za makosa zinapotosha kwa mielekeo tofauti. Ikiwa ping 1.1.1.1 inafanya kazi na kivinjari hakiwezi kupakia chochote, njia ni nzuri na utatuzi wa majina siyo. Ikiwa ping yenyewe inashindwa, DNS haina umuhimu na umerudi kwenye sehemu iliyopita.
wg-quick inaweza kuweka resolver kutoka mstari wa DNS = kwenye usanidi, na systemd-resolved ina tabia yake kwa kila kiungo. VPN inayobadilisha resolver na anwani inayofikika tu ndani ya handaki itashindwa kila utafutaji pale handaki linapoanguka, jambo linaloonekana kama handaki linavunja intaneti.
| Symptom | Layer to inspect |
|---|---|
| Tunnel address pings, nothing else does | Client route, then gateway forwarding |
| Public IP pings, hostnames fail | Resolver selection and reachability |
| Handshake completes, no reply ever | FORWARD policy or missing NAT on the server |
| Small requests work, large transfers stall | MTU and TCP MSS clamping |
Mpangilio unaozalisha ushahidi
Kwanza endesha ukaguzi wa upande wa mteja, kwa sababu ni amri moja na huondoa nusu ya uwezekano. Kisha thibitisha kama seva imekusudiwa kuwa njia ya kutoka intaneti; lango lililojengwa kwa ufikivu wa kibinafsi haliwezi kuwa limevunjika wakati marudio ya umma yanashindwa.
Kwenye seva, angalia kiolesura unapotuma ping kutoka kwa mteja: tcpdump -ni wg0 icmp inapaswa kuonyesha ombi, na tcpdump -ni eth0 icmp inapaswa kuonyesha linatoka, limetafsiriwa au la. Ikiwa linaonekana kwenye la kwanza na kamwe kwenye la pili, kusimama ni kwa ndani kwenye seva. Ikiwa linatoka na hakuna jibu linalorudi, tatizo liko juu, na hayo ni mazungumzo mengine.
Hatimaye fanya marekebisho yastahimili kuwasha upya. Upelekaji ni wa faili ya sysctl, sheria za firewall ni za huduma inayozipakia, na njia za mteja ni za usanidi unaoinua kiolesura badala ya shell utakayosahau. Ungana tena, rudia majaribio yale yale mawili na uthibitishe kwamba vihesabu vinasonga.