Plný tunel zabil vaši SSH relaci: připněte zpáteční trasu
Plný tunel zachytí i odpovědi na vaši vlastní SSH relaci. Připněte hostitelskou trasu pro svou administrativní adresu přes starou bránu a při opětovném připojení ji znovu nainstalujte.
Spusťte OpenVPN klienta na stroji, na kterém pracujete přes SSH, a uprostřed příkazu relace zamrzne. Tunel hlásí, že je připojen, hostitel se přes něj dostane na internet a vaše stisky kláves stále přicházejí, zatímco nic neodchází zpět. Nezměnil se tunel: změnila se zpáteční cesta pro pakety adresované vám, která teď odpovídá nové výchozí trase a vstupuje do tunelu, který vzdálená brána k dosažení vašeho stolu nepoužije.
Co redirect-gateway skutečně instaluje
Ve své def1 podobě redirect-gateway přidává 0.0.0.0/1 a 128.0.0.0/1 místo přepsání výchozí trasy. Tyto dvě poloviny pokrývají celý adresní prostor a obě zůstávají delšími prefixy než 0.0.0.0/0, takže každé cílové umístění bez konkrétnější shody teď jde do tunelu. To je mechanismus, který je třeba si zapamatovat, protože každá oprava níže funguje instalací konkrétnější shody.
Vaše administrativní adresa je jedno z těch cílových umístění.
Server VPN přeposílá provoz svých klientů směrem k internetu. Nemá trasu pro veřejnou adresu, ze které se připojujete, a nemá důvod s těmi pakety zacházet jinak než jako s provozem přicházejícím od klienta, takže je zahodí. Mezitím požadavek, který jste odeslali, hostitele přesto dosáhl, a proto relace vypadá živě jen z jedné strany.
ip route show table main | head -n 20
ip route get 198.51.100.23Najděte svou zdrojovou adresu a cestu před tunelem
Na serveru vypište navázané SSH spojení a poznamenejte si adresu protistrany, ze které přišlo. Právě tuto adresu musí vaše zpáteční trasa pokrýt, a ne vždy je to ta, kterou si myslíte: přeskakovací hostitel, brána NAT nebo překladač operátora mohou podstrčit jiný zdroj.
Pak najděte fyzickou bránu a rozhraní, které přenášely provoz před spuštěním tunelu. V def1 uspořádání je výchozí trasa stále přítomná pod polovinami výchozí trasy, takže informace je k dispozici, i když čtení dlouhé tabulky tras od oka vybízí k chybám.
Poznamenejte obě hodnoty a název rozhraní společně, protože trasa, kterou se chystáte přidat, potřebuje všechny tři. Pokud hostitel používal pravidlo politického směrování k volbě svého uplinku, obyčejná trasa nemusí být vůbec zohledněna, a tato možnost mění opravu.
Připněte hostitelskou trasu, která předčí poloviny výchozí trasy
Trasa /32 je delší než kterákoli z obou polovin výchozí trasy, takže odpovědi na vaši adresu ji berou před tunelem. Další skok je brána před tunelem a zařízení je fyzické rozhraní, což drží paket na cestě, kterou používal před existencí tunelu.
ip route add 198.51.100.23/32 via 203.0.113.1 dev eth0Ověřte vyhledáním místo prohlížení tabulky: odpověď musí jmenovat eth0 a bránu, nikdy tun0.
OpenVPN už přidává hostitelskou trasu k vlastní adrese serveru VPN ze stejného důvodu, takže vzor je známý a administrativní adresa je prostě další výjimkou. Nesahejte po route-nopull na opravu, protože zahazuje protlačené trasy, které tunel potřebuje, včetně vzdálené sítě a voleb DNS.
Zařiďte, aby přežila opětovné připojení
Trasa přidaná ručně zmizí, když se klient znovu připojí a nainstaluje svou, což z opravy dělá opakovaný výpadek. Připojte příkaz k něčemu, co se spustí po instalaci tras.
Skript route-up i háček pre-up správce sítě fungují, a spolehlivou kontrolou je opětovné připojení následované stejným vyhledáním.
Ve Windows je ekvivalentem trvalá trasa přidaná pomocí -p, která přežije restartování, ale po změně sítě musí stále ukazovat na správnou bránu. Ať je platforma jakákoli, napište důvod vedle trasy: příští administrátor musí vědět, že existuje kvůli ochraně relace správy, ne proto, že to vyžadoval návrh sítě.
Když připnutá trasa stále nestačí
Filtrování zpětné cesty může zahodit paket, který přichází na jednom rozhraní a odchází jiným, a přesně to připnutá trasa vytváří. Zkontrolujte efektivní hodnotu rp_filter předtím, než cokoli globálně vypnete, a dejte přednost opravě asymetrie před vypnutím kontroly. Platí nastavení pro jednotlivé rozhraní a režim loose často jen zaznamená asymetrii, místo aby paket zahodil. Přečtěte si obojí, než usoudíte, že filtr je vaše vina.
Hostitelé s politickým směrováním potřebují pravidlo stejně jako trasu, protože báze pravidel vybírá tabulku dřív, než se trasa v ní zohlední. Trasa v tabulce main je neviditelná pro tok, který odpovídá pravidlu ukazujícímu na jinou tabulku. Přečtěte si pravidla, než do main cokoli přidáte. Pokud pravidlo už pokrývá provoz správy, výjimka patří do tabulky toho pravidla.
Nechte si otevřenou nezávislou konzoli, dokud testujete, a před odpojením té, kterou používáte, to znovu ověřte z druhého přihlášení. Trasa, která pošle váš vlastní provoz správy do tunelu, přeruší spojení, přes které ji opravujete. Dostal byste se zpět jen sériovou konzolí nebo záchranným bootem, což je špatná výměna za přeskočení jednoho ověřovacího kroku.