Čtyři věci musí do sebe zapadnout, než linuxový host začne posílat přes tunel jen svůj vlastní SMTP: trasa ve vyhrazené tabulce, pravidlo politiky, které provoz vybírá, zdrojová adresa, kterou peer přijme, a zpáteční cesta, která přežije asymetrii. Každá je samostatná konfigurace s vlastním režimem selhání. Pořadí níže je to, které způsobí, že selhání ukazuje na část, která je skutečně špatně. Je to práce se směrováním specifická pro port, nikoli požadavek na výchozí trasu VPN.

Pravidlo portu není výchozí trasa

Pravidlo, které páruje lokálně vytvořené TCP s cílovým portem 25, posílá tento provoz do tabulky, kterou pojmenujete. Pravidlo samo o sobě nic nevytváří: vybírá, a tabulka musí obsahovat trasu, která paket unese. Kombinace obou pokrývá jen odchozí směr jednoho protokolu, takže předávání pro jiné hosty, příchozí poštovní spojení a IPv6 zůstávají mimo uspořádání. Nazvat to politikou specifickou pro port místo výchozího nastavení VPN udržuje tuto hranici poctivou.

Dvě nastavení wg-quick jsou předpoklady, ne součást politiky. AllowedIPs = 0.0.0.0/0 umožňuje peerovi nést libovolné cíle IPv4 a Table = off brání wg-quick nainstalovat vlastní výchozí trasu pro tento prefix. Nemíchejte tyto pokyny se správcem, který uplatňuje vlastní politiku tras, protože se oba neshodnou na tom, komu patří hlavní tabulka.

Napište trasu, selektor a stráž

Vyberte číslo tabulky a dvojici priorit, které nic jiného nepoužívá, a potom v tomto pořadí použijte trasu, selektor a stráž. Čísla níže jsou příklady, nikoli rezervované hodnoty:

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 omezuje pravidlo na provoz lokálního původu a ipproto tcp dport 25 určuje směr spojení; referenční stránka ip-rule dokumentuje oba selektory. Existují v současných jádrech a vydáních iproute2, a na starším systému je pravidlo rovnou odmítnuto, což je jasnější selhání než pravidlo, které se načte a na nic nepasuje.

Pravidlo unreachable na další prioritě je stráž. Bez něj chybějící trasa v tabulce 51825 propadne na běžnou výchozí trasu a pošta během výpadku tunelu odejde přes fyzické rozhraní, což je přesně případ, kvůli kterému politika vznikla.

Zdrojová adresa se musí shodovat

Předvolba src v trase jen doplní zdroj pro spojení, která si žádný neuvázala. Není to překlad a nepřepisuje výslovné navázání, takže démon navázaný na fyzickou adresu dál odesílá z této adresy. Pokud najdete právě tohle, změňte nastavení samotného démona nebo navrhněte záměrnou politiku překladu, protože pozdní plošný masquerade je jiné řešení s jinými důsledky.

Na bráně musí peer klienta autorizovat zdroj, který skutečně přijímá, tedy 10.77.0.2/32, nikoli široký cílový prefix. Kopírování klientského 0.0.0.0/0 do každého peeru brány mate, který peer vlastní který provoz. Brána také potřebuje předávání, politiku firewallu, která tok povolí, a zpáteční cestu včetně výstupního překladu, když nadřazená strana nedokáže směrovat privátní adresu tunelu.

Zkontrolujte zpáteční cestu a pak trvalost

Přečtěte si vyhledání, než čemukoli uvěříte, protože ukazují, kterou tabulku a který zdroj každý směr dostane. Jeden cíl na portu 25 a stejný cíl na portu 443 stačí:

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

První vyhledání by mělo uvést wg0 a zamýšlený zdroj a druhé by mělo zachovat běžné odchozí připojení. Když aplikace naváže vlastní adresu, přidejte do vyhledání from s touto adresou. Směr odpovědi, který dorazí na wg0 a pak je lokálně zahozen, ukazuje na filtrování zpětné cesty IPv4, protože pravidlo jen pro odchozí port nezpůsobí, že zpětné vyhledání zvolí tunel.

Tam, kde je asymetrické směrování povoleno, může být vhodný volný režim omezený na rozhraní přes net.ipv4.conf.wg0.rp_filter=2 a nejprve stojí za to zkontrolovat efektivní maximum hodnot all a rozhraní. Nevypínejte validaci globálně jako zkratku. Potom předejte tabulku, priority a stráž tomu, kdo vlastní konfiguraci, a po opětovném připojení otevřete nová spojení, abyste potvrdili, že volba stále drží. Mějte na paměti, že odpovědi z lokálního posluchače SMTP nesou zdrojový port 25, nikoli cílový port 25, což je samostatná otázka politiky.

Související články