Četiri stvari se moraju poklopiti prije nego Linux host pošalje samo svoj SMTP kroz tunel: ruta u namjenskoj tablici, pravilo politike koje odabire promet, izvorišna adresa koju će peer prihvatiti i povratni put koji preživljava asimetriju. Svaka je zasebna konfiguracija s vlastitim načinom kvara. Redoslijed ispod je onaj koji čini da kvar pokaže na dio koji je stvarno pogrešan. To je posao usmjeravanja specifičan za port, a ne zahtjev za zadanu rutu VPN-a.

Pravilo porta nije zadana ruta

Pravilo koje spaja lokalno generirani TCP s odredišnim portom 25 šalje taj promet u tablicu koju navedete. Pravilo samo po sebi ništa ne stvara: ono odabire, a tablica mora držati rutu koja može prenijeti paket. Kombinacija dvaju pokriva samo odlazni smjer jednog protokola, pa prosljeđivanje za druge hostove, dolazne poštanske veze i IPv6 ostaju izvan dogovora. Nazvati to politikom specifičnom za port umjesto VPN zadanim stanjem održava tu granicu iskrenom.

Dvije wg-quick postavke su preduvjeti, a ne dio politike. AllowedIPs = 0.0.0.0/0 dopušta peeru da nosi proizvoljna IPv4 odredišta, a Table = off sprječava wg-quick da instalira vlastitu zadanu rutu za taj prefiks. Ne miješajte ove upute s upraviteljem koji primjenjuje vlastitu politiku ruta, jer će se njih dvoje razići oko toga kome pripada glavna tablica.

Napišite rutu, selektor i čuvar

Odaberite broj tablice i par prioriteta koje ništa drugo ne koristi, pa primijenite rutu, selektor i čuvar tim redom. Brojevi ispod su primjeri, a ne rezervirane vrijednosti:

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 unreachable

iif lo ograničava pravilo na lokalno nastali promet, a ipproto tcp dport 25 identificira smjer veze; referenca za ip-rule dokumentira oba selektora. Postoje na trenutnim kernelima i izdanjima iproute2, a na starijem sustavu pravilo se posve odbija, što je jasniji kvar od pravila koje se učita i ni s čim se ne poklopi.

Pravilo unreachable na sljedećem prioritetu je čuvar. Bez njega nedostajuća ruta u tablici 51825 propada na običnu zadanu rutu, a pošta izlazi preko fizičke veze tijekom prekida tunela, što je upravo slučaj zbog kojeg je politika napravljena.

Izvorišna adresa mora se slagati

src preferencija rute samo popunjava izvor za veze koje nisu vezale vlastiti. To nije prijevod i ne nadjačava izričito vezanje, pa daemon vezan na fizičku adresu nastavlja slati s te adrese. Ako nađete upravo to, promijenite postavku samog daemona ili osmislite namjernu politiku prijevoda, jer kasni sveobuhvatni masquerade je drugo rješenje s drugim posljedicama.

Na pristupniku peer klijenta mora odobriti izvor koji stvarno prima, a to je 10.77.0.2/32, a ne široki prefiks odredišta. Kopiranje klijentovog 0.0.0.0/0 u svakog peera pristupnika zbunjuje koji peer posjeduje koji promet. Pristupnik također treba prosljeđivanje, vatrozidnu politiku koja dopušta tok i povratni put, uključujući izlazni prijevod kada uzvodna strana ne može usmjeriti privatnu adresu tunela.

Provjerite povratni put, zatim trajnost

Pročitajte pretrage prije nego što bilo čemu vjerujete, jer pokazuju koju tablicu i koji izvor dobiva svaki smjer. Jedno odredište na portu 25 i isto odredište na portu 443 dovoljni su:

ip -4 route get 198.51.100.25 ipproto tcp dport 25
ip -4 route get 198.51.100.25 ipproto tcp dport 443

Prva pretraga treba navesti wg0 i predviđeni izvor, a druga zadržati običan uzlazni link. Kada aplikacija veže vlastitu adresu, dodajte from s tom adresom u pretragu. Smjer odgovora koji stigne do wg0 i zatim bude lokalno odbačen upućuje na IPv4 filtriranje obrnutog puta, jer pravilo samo za odlazni port ne čini da obrnuta pretraga odabere tunel.

Gdje je asimetrično usmjeravanje odobreno, labavi način ograničen na sučelje putem net.ipv4.conf.wg0.rp_filter=2 može biti prikladan, a vrijedi prvo provjeriti stvarni maksimum vrijednosti all i sučelja. Ne isključujte validaciju globalno kao prečac. Zatim predajte tablicu, prioritete i čuvara onome tko posjeduje konfiguraciju i otvorite svježe veze nakon ponovnog spajanja kako biste potvrdili da odabir još drži. Imajte na umu da odgovori lokalnog SMTP slušatelja nose izvorni port 25, a ne odredišni port 25, što je zasebno pitanje politike.

Povezani članci