Į tunelį nukreipkite tik 25 prievadą, ne hostą
Prievado pagrindu parinkta taisyklė per tunelį siunčia tik išeinantį SMTP. Lentelė, šaltinio adresas ir grįžtamasis kelias turi sutapti, kitaip niekas neveiks.
Keturi dalykai turi sutapti, kol Linux hostas per tunelį siųs tik savo SMTP: maršrutas dedikuotoje lentelėje, politikos taisyklė, kuri parenka srautą, šaltinio adresas, kurį priims peer, ir grįžtamasis kelias, kuris atlaiko asimetriją. Kiekvienas jų yra atskira konfigūracija su savo gedimo režimu. Žemiau pateikta tvarka leidžia gedimui nurodyti į dalį, kuri iš tikrųjų neteisinga. Tai prievadui būdingas maršrutizavimo darbas, o ne VPN numatytojo maršruto prašymas.
Prievado taisyklė nėra numatytasis maršrutas
Taisyklė, kuri lokalų TCP sugretina su paskirties prievadu 25, siunčia tą srautą į lentelę, kurią pavadinate. Taisyklė pati nieko nesukuria: ji parenka, o lentelėje turi būti maršrutas, galintis pernešti paketą. Abu kartu apima tik vieno protokolo siuntimo kryptį, todėl persiuntimas kitiems hostams, gaunamos pašto jungtys ir IPv6 lieka už šios tvarkos ribų. Pavadinus tai prievadui būdinga politika, o ne VPN numatytuoju, ta riba išlieka sąžininga.
Du wg-quick nustatymai yra būtinos sąlygos, o ne politikos dalis. AllowedIPs = 0.0.0.0/0 leidžia peerui pernešti savavališkus IPv4 paskirties taškus, o Table = off neleidžia wg-quick įdiegti savo numatytojo maršruto tam prefiksui. Nemaišykite šių instrukcijų su tvarkykle, kuri taiko savo maršrutų politiką, nes jiedu nesutars, kam priklauso pagrindinė lentelė.
Rašykite maršrutą, selektorių ir apsaugą
Pasirinkite lentelės numerį ir prioritetų porą, kurių niekas kitas nenaudoja, tada šia tvarka pritaikykite maršrutą, selektorių ir apsaugą. Žemiau esantys skaičiai yra pavyzdžiai, o ne rezervuotos reikšmės:
ip -4 route add default dev wg0 src 10.77.0.2 table 51825
ip -4 rule add priority 10000 iif lo ipproto tcp dport 25 lookup 51825
ip -4 rule add priority 10001 iif lo ipproto tcp dport 25 unreachableiif lo apriboja taisyklę vietinės kilmės srautui, o ipproto tcp dport 25 nurodo jungties kryptį; ip-rule žinynas dokumentuoja abu selektorius. Jie egzistuoja dabartinėse branduoliuose ir iproute2 leidimuose, o senesnėje sistemoje taisyklė tiesiog atmetama, o tai yra aiškesnis gedimas nei taisyklė, kuri įkeliama ir nieko neatitinka.
Kito prioriteto unreachable taisyklė yra apsauga. Be jos lentelėje 51825 trūkstamas maršrutas nukrenta į įprastą numatytąjį, ir tunelio sutrikimo metu paštas išeina fizine jungtimi, o tai yra būtent tas atvejis, kuriam prevencijai politika buvo sukurta.
Šaltinio adresas turi sutapti
Maršruto src nuostata tik užpildo šaltinį toms jungtims, kurios neprisirišo savo. Tai nėra vertimas ir nepanaikina aiškaus prisirišimo, todėl prie fizinio adreso prisirišęs demonas toliau siunčia iš to adreso. Jei randate būtent tai, pakeiskite paties demono nustatymą arba suprojektuokite sąmoningą vertimo politiką, nes vėlyvas visuotinis masquerade yra kitas sprendimas su kitomis pasekmėmis.
Šliuze kliento peeras turi autorizuoti šaltinį, kurį iš tikrųjų gauna, tai yra 10.77.0.2/32, o ne platus paskirties prefiksas. Kliento 0.0.0.0/0 kopijavimas į kiekvieną šliuzo peerą supainioja, kuris peeras valdo kurį srautą. Šliuzui taip pat reikia persiuntimo, ugniasienės politikos, leidžiančios srautą, ir grįžtamojo kelio, įskaitant išėjimo vertimą, kai aukštesnis lygis negali maršrutizuoti privataus tunelio adreso.
Patikrinkite grįžtamąjį kelią, tada patvarumą
Prieš kuo nors pasitikėdami perskaitykite užklausas, nes jos rodo, kurią lentelę ir kurį šaltinį gauna kiekviena kryptis. Vieno paskirties taško prievade 25 ir to paties paskirties taško prievade 443 pakanka:
ip -4 route get 198.51.100.25 ipproto tcp dport 25
ip -4 route get 198.51.100.25 ipproto tcp dport 443Pirmoji užklausa turėtų nurodyti wg0 ir numatomą šaltinį, o antroji turėtų išlaikyti įprastą viršutinę jungtį. Kai programa prisiriša savo adresą, pridėkite from su tuo adresu prie užklausos. Atsakymo kryptis, kuri pasiekia wg0 ir tada atmetama lokaliai, rodo IPv4 atvirkštinio kelio filtravimą, nes tik išėjimo prievadui skirta taisyklė nepriverčia atvirkštinės užklausos pasirinkti tunelio.
Kur leidžiamas asimetrinis maršrutizavimas, sąsaja apribotas laisvas režimas per net.ipv4.conf.wg0.rp_filter=2 gali būti tinkamas, ir verta pirmiausia patikrinti efektyvų all ir sąsajos reikšmių maksimumą. Neišjunkite validavimo globaliai kaip trumpinio. Tada perduokite lentelę, prioritetus ir apsaugą tam, kas valdo konfigūraciją, ir po pakartotinio prisijungimo atidarykite naujas jungtis, kad patvirtintumėte, jog pasirinkimas vis dar galioja. Atminkite, kad vietinio SMTP klausytojo atsakymai turi šaltinio prievadą 25, o ne paskirties prievadą 25, ir tai yra atskiras politikos klausimas.