Jedna prywatna usługa ładuje się przez tunel, a następna kończy się przekroczeniem czasu, i pojawia się pokusa, by odbudować cały profil klienta. Działająca usługa jest przydatniejsza jako kontrola niż jako powód, by zaczynać od nowa. Dowodzi ona, że jeden cel, jeden port i jedna ścieżka autoryzacji zostały spełnione, i nic więcej.

Do dwóch usług na tej samej bramie można dotrzeć przez różne rodziny adresów, różne podsieci i różną politykę.

Oddziel działający przepływ od zawodzącego

Traktuj każdą usługę jako jej własny przepływ, a nie jako objaw VPN. Przykładowy klient może otworzyć portal.corp.example na 172.20.4.15:443 i nadal nie dotrzeć do bazy danych na 172.20.9.40:5432, ponieważ to dwa cele z dwoma zestawami reguł. Zapisz oba wiersze, zanim cokolwiek zmienisz, łącznie z portem i protokołem, bo reguła, która zezwala na TCP 443 na jednym hoście, nic nie mówi o TCP 5432 na tym samym hoście.

Zawodzący wiersz to ten, który trzeba zbadać. Działający wiersz mówi tylko, gdzie leży linia bazowa, i będzie punktem porównania po każdej zmianie.

Porównaj adresy, zanim porównasz nazwy

Rozwiąż każdą pełną nazwę przez politykę, której aplikacja naprawdę używa, a następnie zapisz wybraną rodzinę adresów. Jedna nazwa może zwrócić adres IPv6, a inna IPv4, a stara odpowiedź z pamięci podręcznej może wysłać żądanie na adres publiczny, który nie ma nic wspólnego z usługą prywatną.

ip route get 172.20.4.15
ip route get 172.20.9.40
ip -6 route get 2001:db8:60::20

Zapytanie odpowiada na wąskie pytanie: którą trasę wybrałby ten host do tego celu, przy obecnych tabelach i regułach polityki. Trasa do 172.20.4.0/24 nie obejmuje 172.20.9.0/24, a drugi menedżer sieci lub lokalna trasa o lepszej szczegółowości mogą po cichu nadpisać tunel. Powtórz zapytanie w przestrzeni nazw lub ze znacznikiem, którego używa aplikacja, gdy różnią się od twojej powłoki. Zapisz też interfejs, którym pakiet wychodzi, bo tabela tras może wskazywać jeden interfejs, podczas gdy trasowanie polityczne wysyła przepływ przez inny.

Pasująca trasa jest warunkiem koniecznym, nie pozwoleniem. Mówi, że pakiet ma dokąd pójść, i nic o tym, czy zaakceptuje go zapora, usługa autoryzacji lub sam host.

Protokół i etap odpowiedzi mówią, gdzie się zatrzymuje

Odpowiedź ping nie dowodzi, że port bazy danych jest otwarty, a udana strona HTTPS nie autoryzuje udostępniania plików na tej samej maszynie. Zapisz, co naprawdę wróciło, zamiast spłaszczać każdą awarię do jednej kategorii. Przekroczenie czasu, reset, błąd tożsamości TLS i odmowa na poziomie aplikacji wskazują każde na inną warstwę.

Rozróżnienie ma znaczenie, bo poprawki rozchodzą się. Cisza zwykle oznacza problem z trasą, zaporą lub tłumaczeniem na ścieżce. Natychmiastowy reset sugeruje, że coś dotarło do hosta i odmówiło portu. Błąd certyfikatu oznacza, że połączenie dotarło, a nazwa nie pasowała, co jest problemem konfiguracji, a nie osiągalności. Odmowa aplikacji oznacza, że sieć wykonała swoją pracę, a tożsamość została odrzucona później.

Gdy zasób jest publikowany przez bramę, porównaj adres źródłowy, który widzi cel, ze źródłem, które twój klient uważa, że używa. Żądanie zainicjowane przez samą bramę może się udać, podczas gdy to samo żądanie od klienta zawodzi, bo oba przychodzą z różnych adresów i napotykają różne reguły.

Zmień jedną zmienną i uruchom ponownie oba żądania

Tożsamość to ostatnie miejsce, w które ludzie patrzą, i pierwsze, w którym pojawia się poprawna odmowa. Logowanie VPN, grupa katalogowa i konto aplikacji to trzy odrębne tożsamości, które mogą się rozjechać. Dostęp do portalu nigdy nie oznacza dostępu do bazy danych za nim, a nazwa w jednym katalogu nie tworzy wiersza w innym. Jeśli usługa leży poza zamierzonym zakresem użytkownika, odmowa jest systemem, który działa.

Poproś właściciela zasobu o potwierdzenie zamierzonego uprawnienia, zamiast dodawać szeroką trasę lub otwierać grupę jako test. Rozszerzanie sieci, by coś udowodnić, to droga, na której tymczasowa diagnostyka staje się trwałym wystawieniem, i niszczy kontrolę, z którą zaczęto. Jedna wykazana niezgodność na iterację wystarczy: brakująca trasa, zła rodzina adresów, zablokowany port lub brak członkostwa w grupie.

Po każdej zmianie powtórz oba żądania i trzymaj wyniki obok siebie. Dochodzenie kończy się, gdy zawodząca usługa działa zgodnie z własną polityką, a działająca usługa i odmowy, których nadal oczekujesz, zachowują się dokładnie jak wcześniej.

Powiązane artykuły