Požadavky opouštějí stroj, protějšek VPN odpovídá, a odpověď se nikdy nedostane do socketu. Tunel je navázaný, logy protějšku ukazují odeslání paketu a nic v aplikaci to ticho nevysvětluje. V Linuxu je jedním z obvyklých podezřelých filtrování zpětné cesty: příchozí paket IPv4 může být zahozen, když ověření zdroje nesouhlasí s trasou, kterou jádro pro tento zdroj očekává. Když to projdete popořadě, dozvíte se, zda je to příčina, nebo náhoda. Také vás to udrží od vypnutí bezpečnostního opatření kvůli chybějící trase.

Co ověření zdroje rozhoduje

Jádro kontroluje, zda je zdrojová adresa paketu věrohodná pro rozhraní, na kterém dorazil, tím, že ve směrovací tabulce hledá trasu zpět k tomuto zdroji. Pokud zpětná trasa ukazuje jinam, paket může být zahozen dřív, než ho uvidí jakékoli pravidlo firewallu nebo socket aplikace. Tato kontrola existuje proto, aby ztížila určité vzory podvrhování, a právě proto na ni narážejí asymetrické a politicky směrované návrhy, zatímco každý běžný klient ve stejné síti funguje bez problémů. Běžní klienti mají symetrické směrování, což je přesně to, co kontrola předpokládá.

Důležité slovo je věrohodná. Paket může být zcela legitimní a přesto kontrolou neprojít, protože se nezkoumá legitimita.

Čtěte účinný režim, ne jedno pole

Existují tři režimy: vypnutý, přísný a volný. Přísný klade jiné očekávání trasy než volný a globální nastavení se prolíná s nastavením jednotlivých rozhraní, takže čtení jediného souboru může špatně popsat, co skutečně platí. Čtěte obojí a čtěte je na rozhraní, které přijímá odpověď, ne na rozhraní výchozí trasy.

sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.<iface>.rp_filter
ip route get <source-of-the-reply>

Vyhledání trasy ve třetím řádku je část, kterou lidé přeskakují. Řekne vám, co si jádro o zdroji myslí, a to je přesně vstup kontroly.

Najděte nesoulad dřív, než změníte kontrolu

Zjistěte, proč odpověď přichází na toto rozhraní a zda se její zpětná trasa má lišit. Pravidlo politiky, které posílá požadavky jednou cestou a vrací odpovědi jinou, je legitimní návrh, a právě ten přísné ověření odmítá. Značky používané v politickém směrování tu mohou také hrát roli, protože mění, co zpětné hledání vrátí.

Pokud zpětná trasa prostě chybí, její přidání opraví příčinu místo vypnutí kontroly. Chybějící trasa, odmítnutí firewallem a špatný selektor provozu dávají stejný viditelný příznak a jen jeden z nich se týká ověření zdroje.

Nevypínejte kontroly zdroje globálně jako první reakci. Vyměníte tím konkrétní diagnózu za širokou změnu chování, kterou si budete muset později pamatovat.

Selektivní úprava, kterou můžete obhájit

Pokud je úzká úprava opravdu nutná, omezme ji na rozhraní, které ji potřebuje, zapište proč a dejte ji do konfigurace, která toto rozhraní vlastní, aby přežila restart. Pak znovu otestujte přesně ten tok, který selhal, ze stejného zdroje na stejné cílové místo, místo pingu na něco pohodlného.

Zahrňte případ, který má stále zůstat odmítnutý. Pokud teď tento případ projde, úprava oslabila víc než jednu cestu, kterou jste chtěli opravit.

Držte IPv4 a IPv6 oddělené

Známě vypadající sysctl není politikou pro každou rodinu adres. IPv6 má své vlastní chování a vlastní nastavení a stroj může být přísný v jedné rodině a povolný ve druhé, aniž si toho někdo všimne, dokud nezačne selhávat konkrétní cíl. Zkontrolujte obojí, pokud zátěž používá obojí.

Zapište režim, rozhraní, výstup vyhledání trasy a důvod změny na jedno místo. Příští člověk najde nastavení a žádné vysvětlení a buď je odstraní, nebo zkopíruje někam, kam nepatří.

Související články