Když sdílíte jeden host mezi veřejným webem a VPN, dědíte dvě otázky, ne jednu: co kde poslouchá a kdo koho autentizuje. Odpovězte na obě dřív, než se dotknete konfiguračního souboru, protože výchozí hodnoty jsou špatné způsoby, které se projeví až pod zátěží. Stránka, která se načte přes HTTPS, dokazuje, že webový posluchač odpovídá, a nic o partnerském posluchači. Následuje pořadí rozhodnutí, které brání tomu, aby se navzájem sežraly.

Rozhodněte, co poslouchá na které adrese a transportu

Napište tabulku se třemi sloupci, adresa, transport a port, a jeden řádek na službu, včetně administrativního rozhraní. TCP 443 pro web a UDP 443 pro VPN nejsou konflikt, i když se čísla shodují, protože transport je jiný. Dvě služby na stejné adrese, transportu a portu potřebují uspořádání, které implementace dokumentuje, ne to, které vymyslíte během výpadku. Ta tabulka je také artefakt, který činí další změnu přezkoumatelnou.

Oddělené adresy nebo druhý port činí vlastnictví viditelným v zachycení paketů, což má větší cenu než elegance. Některé implementace VPN podporují sdílení portu s webovým serverem, ale mechanismus je specifický: démon zkontroluje první bajty a přeposílá provoz, který není jeho protokolem. Obecný reverzní proxy pro HTTP to nedělá a přepisování hlaviček ho nenaučí rozumět handshake šifrovaného tunelu. Přečtěte si poznámky k nasazení protokolu, například dokumentaci posluchače OpenVPN, a řiďte se uspořádáním, které popisuje.

Rozhodněte, která identita patří které službě

Certifikát prohlížeče a přihlašovací údaj VPN partnera jsou různé objekty s různými modely důvěry. Webový certifikát ověřuje veřejná autorita a pojmenovává název hostu, zatímco partnerský údaj autentizuje zařízení nebo uživatele vůči koncentrátoru a může být podepsaný sám sebou nebo vydaný interně. Opětovné použití jednoho jako druhého funguje v úzkých případech a málokdy stojí za to propojení. Vypnutí ověřování, aby se společný certifikát vešel, není plán oddělení; odstraňuje kontrolu, která údaji dávala smysl.

Udržujte oba trezory nezávislé a zapište, která autorita každý vydává. Když se jeden obmění, druhý by neměl potřebovat změnu, a pokud potřebuje, propojení je to, co je třeba opravit.

Rozhodněte, kde žije správa

Administrativní rozhraní VPN patří na cestu správy, nikdy na veřejného posluchače, i když host už obsluhuje internet. Webový server na 443 neznamená, že konzole partnerů má být dostupná odkudkoli, a konzole je obvykle cíl s vyšší hodnotou. Připoutejte ji k loopback nebo správcovské adrese, omezte ji podle zdroje a udržujte cestu obnovy, která nezávisí na tom, že tunel je nahoře. Cesta obnovy je důležitá, protože běžná porucha je zamknout se ven, když opravujete zámek.

Pište úzká pravidla firewallu, jedno na posluchače, a pojmenujte rozhraní nebo servisní účet, kde to platforma podporuje. Široká pravidla, která otevírají host, protože web potřebuje 443, jsou způsob, jak se administrativní rozhraní dostanou do indexů skenerů.

Tato pravidla revidujte proti tabulce posluchačů, kdykoli se přidá služba. Revize je levná a zachytí pravidlo, které někdo přidal ve dvě ráno.

Rozhodněte, co dělat, když se oba přou

Sdílení hostu znamená sdílení procesoru, paměti, deskriptorů souborů a šířky pásma, a sporný prostředek není vždy ten zřejmý. Zaneprázdněný web může zaplnit tabulku spojení, vyčerpat pracovní sloty nebo zatlačit frontu disku natolik, že se protokolování VPN zasekne. Sledujte využití po službách, ne součty hostu, protože průměr skrývá, který proces hladoví. Pokud jedna zátěž opakovaně narušuje druhou, izolujte je místo ladění kolem příznaku.

Izolací může být kontejner, limit cgroup, samostatná fronta nebo druhý host a správná volba závisí na tom, který prostředek se pře. Změna portu zde nic neopraví a větší instance neopraví nic, pokud je limitem jedna nasycená fronta. Rozhodněte měřením: pojmenujte prostředek, zatěžte ho a pak vyberte nejmenší izolaci, která pře odstraní.

Ověřte zvenčí, pak znovu po restartu

Testujte ze zařízení, které není v síti samotného hostu: načtěte web, zvedněte tunel a dosáhněte na jeden prostředek, který ho vyžaduje. Pak restartujte každou službu zvlášť a zopakujte druhý test, protože restart je chvíle, kdy uspořádání sdíleného posluchače ztrácí pořadí. Pokud VPN startuje dřív než webový server, který vlastní sdílený port, mechanismus sdílení se nemusí nikdy připojit a příznakem je tunel, který včera fungoval. Udělejte závislost výslovnou v pořadí jednotek.

Pak potvrďte hranice: web odpovídá na svém portu, VPN odpovídá na svém a administrativní rozhraní odpovídá jen z cesty správy. Zapište výsledek vedle tabulky posluchačů s datem. Host, který po restartu projde všemi třemi kontrolami, je host, který můžete předat někomu jinému bez briefingu.

Související články