Gdy dzielisz jeden host między publiczną stronę i VPN, dziedziczysz dwa pytania, a nie jedno: co gdzie nasłuchuje i kto kogo uwierzytelnia. Odpowiedz na oba, zanim dotkniesz pliku konfiguracji, bo wartości domyślne są błędne w sposoby widoczne dopiero pod obciążeniem. Strona ładowana przez HTTPS dowodzi, że nasłuch web odpowiada, i niczego o nasłuchu peerów. To, co następuje, to kolejność decyzji, która nie pozwala im się nawzajem pożreć.

Zdecyduj, co nasłuchuje na jakim adresie i transporcie

Napisz tabelę z trzema kolumnami, adres, transport i port, oraz jednym wierszem na usługę, w tym interfejs administracyjny. TCP 443 dla strony i UDP 443 dla VPN nie są konfliktem, nawet gdy numery się zgadzają, bo transport jest inny. Dwie usługi na tym samym adresie, transporcie i porcie wymagają ustalenia, które dokumentuje implementacja, a nie takiego, które wymyślasz podczas awarii. Ta tabela jest też artefaktem, który czyni następną zmianę weryfikowalną.

Osobne adresy albo drugi port czynią własność widoczną w przechwyceniu pakietów, a to jest warte więcej niż elegancja. Niektóre implementacje VPN obsługują współdzielenie portu z serwerem web, ale mechanizm jest konkretny: demon sprawdza pierwsze bajty i przekazuje ruch, który nie jest jego protokołem. Ogólny odwrotny proxy HTTP tego nie robi, a przepisywanie nagłówków nie sprawi, że zrozumie uścisk dłoni szyfrowanego tunelu. Przeczytaj notatki wdrożeniowe protokołu, na przykład dokumentację nasłuchu OpenVPN, i postępuj zgodnie z ustaleniem, które opisuje.

Zdecyduj, która tożsamość należy do której usługi

Certyfikat przeglądarki i poświadczenie peera VPN to różne obiekty o różnych modelach zaufania. Certyfikat web jest walidowany przez organ publiczny i podaje nazwę hosta, a poświadczenie peera uwierzytelnia urządzenie lub użytkownika wobec koncentratora i może być samopodpisane lub wystawione wewnętrznie. Używanie jednego jako drugiego działa w wąskich przypadkach i rzadko jest warte tego sprzężenia. Wyłączenie weryfikacji, aby pasował wspólny certyfikat, nie jest planem rozdzielenia; usuwa sprawdzenie, które dawało poświadczeniu sens.

Utrzymuj dwa magazyny niezależnie i zapisz, który organ wydaje każdy. Gdy jeden jest rotowany, drugi nie powinien wymagać zmiany, a jeśli wymaga, sprzężenie jest tym, co trzeba naprawić.

Zdecyduj, gdzie mieszka administracja

Interfejs administracyjny VPN należy do ścieżki zarządzania, nigdy do publicznego nasłuchu, nawet gdy host już obsługuje internet. Serwer web na 443 nie oznacza, że konsola peerów ma być dostępna zewsząd, a konsola jest zwykle celem o wyższej wartości. Przypisz ją do adresu pętli zwrotnej lub zarządzania, ogranicz według źródła i utrzymuj ścieżkę odzyskiwania, która nie zależy od tego, czy tunel jest podniesiony. Ścieżka odzyskiwania ma znaczenie, bo typową porażką jest zablokowanie sobie dostępu podczas naprawiania blokady.

Pisz wąskie reguły zapory, po jednej na nasłuch, nazywając interfejs lub konto usługi, gdzie platforma to wspiera. Szerokie reguły, które otwierają host, bo strona potrzebuje 443, to sposób, w jaki interfejsy administracyjne trafiają do indeksów skanerów.

Przeglądaj te reguły względem tabeli nasłuchów za każdym razem, gdy dodawana jest usługa. Przegląd jest tani i łapie regułę, którą ktoś dodał o drugiej w nocy.

Zdecyduj, co zrobić, gdy oba konkurują

Współdzielenie hosta oznacza współdzielenie procesora, pamięci, deskryptorów plików i przepustowości, a sporny zasób nie zawsze jest oczywisty. Zajęta strona może wypełnić tablicę połączeń, wyczerpać sloty pracy lub tak mocno docisnąć kolejkę dysku, że logowanie VPN się zatrzyma. Patrz na użycie per usługa, a nie na sumy hosta, bo średnia ukrywa, który proces głoduje. Jeśli jedno obciążenie wielokrotnie zakłóca drugie, izoluj je zamiast stroić wokół objawu.

Izolacją może być kontener, limit cgroup, osobna kolejka lub drugi host, a właściwy wybór zależy od tego, który zasób konkuruje. Zmiana portu nic tu nie naprawia, a większa instancja nic nie naprawi, jeśli limitem jest jedna nasycona kolejka. Decyduj pomiarem: nazwij zasób, obciąż go, a potem wybierz najmniejszą izolację, która usuwa konkurencję.

Zweryfikuj z zewnątrz, a potem jeszcze raz po restarcie

Testuj z urządzenia, które nie jest w sieci samego hosta: wczytaj stronę, podnieś tunel i dotrzyj do jednego zasobu, który go wymaga. Potem zrestartuj każdą usługę osobno i powtórz drugi test, bo restart to moment, w którym ustalenie współdzielonego nasłuchu traci kolejność. Jeśli VPN startuje przed serwerem web, który posiada współdzielony port, mechanizm współdzielenia może nigdy się nie podłączyć, a objawem jest tunel, który działał wczoraj. Uczyń zależność jawną w kolejności jednostek.

Potem potwierdź granice: strona odpowiada na swoim porcie, VPN odpowiada na własnym, a interfejs administracyjny odpowiada tylko ze ścieżki zarządzania. Zapisz wynik obok tabeli nasłuchów z datą. Host, który po restarcie przechodzi wszystkie trzy sprawdzenia, to host, który możesz przekazać komuś innemu bez odprawy.

Powiązane artykuły