Adres VPN na białej liście, a nadal blokada? Prześledź to
Reguła zezwolenia wskazuje adres pokazywany przez aplikację VPN, a żądania nadal przepadają. Przechwyć źródło, które naprawdę dociera do usługi, i napraw je.
Dodanie do białej listy adresu pokazywanego przez aplikację VPN rzadko naprawia zablokowany port, a pakiet wyjaśnia dlaczego. Zapora nie ignoruje twojej reguły; ocenia adres źródłowy, którego nic na ekranie klienta nie pokazuje. Dopóki cel nie zgłosi tej wartości, każda zmiana reguły jest zgadywaniem.
Zacznij od żądania, które dociera do usługi. Adres tunelu, adres wyjściowy i wszelkie tłumaczenie pomiędzy nimi pozostają hipotezami, dopóki cel nie potwierdzi jednego z nich.
Adres w aplikacji to nie ten, który przychodzi
Połączenie VPN niesie co najmniej cztery adresy, które warto nazwać osobno: punkt końcowy serwera, wewnętrzny adres tunelu przydzielony twojemu klientowi, lokalny adres Wi-Fi lub Ethernet oraz publiczny adres, który witryna widzi po opuszczeniu dostawcy przez ruch. Okno klienta może pokazywać tylko drugi. Nazwij wszystkie cztery, zanim nazwiesz regułę. Przy tunelu dzielonym żądania do celu publicznego mogą całkowicie ominąć tunel, więc nieudana sesja to nie ta, o której użytkownik myśli, że ją rozpoczął.
Zdecyduj, który z tych czterech ma zezwalać reguła, a potem zweryfikuj go z drugiej strony. Jeśli wymaganie naprawdę dotyczy adresu biurowego, warunkiem jest trasa plus układ wyjściowy tej witryny, a połączenie oznaczone jako Office VPN nie zapewnia żadnego z nich samo w sobie.
Prześledź jedno żądanie aż do jego granicy filtrowania
Potwierdź adres docelowy i port, których używa klient, a następnie sprawdź, czy ten cel podąża trasą, którą zakładasz. Opublikowany port kontenera, odwrotne proxy lub przekierowanie portu mogą przenieść decyzję na hosta, którego nigdy nie edytowałeś. Każdy z tych skoków może nieść własną politykę. Ustalenie trasy najpierw oszczędza ci poprawiania reguły, do której nie dociera żaden pakiet.
Na autoryzowanym hoście Linux przeczytaj aktywne reguły po kolei, zanim je zmienisz. Usługi przekazywane i kontenerowe często przeskakują do własnego łańcucha, więc sprawdź zarówno cel skoku, jak i ostateczny werdykt.
iptables -vnL INPUT --line-numbers
iptables -S INPUT | head -n 40
ss -ltnp | grep -E ':(443|9443)\b'Podaj w zgłoszeniu numer pasującej reguły. Bez tego następny czytelnik nie wie, która zmiana zmieniła wynik. Numer reguły bez znacznika czasu nadal jest niejednoznaczny.
Zweryfikuj trasę jednym ograniczonym przechwyceniem
Jedno nieszkodliwe żądanie i jedno wąskie przechwycenie rozstrzygają pytanie, które wciąż powraca. Filtruj po porcie docelowym i badanym hoście, ogranicz liczbę pakietów i zatrzymaj przechwytywanie, gdy tylko żądanie się zakończy.
tcpdump -ni any 'tcp dst port 9443' -c 20Porównaj trzy wartości obok siebie: źródło w przechwyceniu, źródło wskazane przez pasującą regułę i odrzucenie zapisane przez aplikację. Wszystkie mogą się różnić, a tylko pierwsze wyjaśnia odrzucenie rozstrzygnięte przez regułę IP. Przekazywany nagłówek HTTP należy do warstwy proxy, więc log cytujący ten nagłówek nie opisuje źródła, które oceniła zapora.
Czytaj kolejność łańcucha, nie tylko regułę
Dokumentacja iptables opisuje uporządkowane przejście, dlatego zezwolenie leżące poniżej pasującego końcowego odrzucenia nigdy nie ratuje pakietu. Połączenie zaakceptowane wcześniej może też zachowywać się inaczej niż nowe, więc dawny sukces nic nie mówi o nowej regule. Znajdź odrzucenie lub porzucenie powyżej swojego zezwolenia, zanim uznasz, że zezwolenie jest błędne. Liczniki na regułę mówią też, która reguła widziała pakiet.
Usunięcie reguły, by zobaczyć, co się stanie, jest zmianą, nie obserwacją. Odczytaj liczniki, zapisz numer reguły i zachowaj pierwotną politykę w rejestrze zmian. Jeśli test jest nieunikniony, uruchom go na kopii łańcucha.
Zmień regułę, którą kontroluje jej właściciel
Aktualizuj tylko zamierzoną politykę źródła i usługi, przez tego, kto nią zarządza. Współdzielone przetłumaczone wyjście może reprezentować wielu użytkowników naraz, więc zezwolenie na ten adres nikogo nie uwierzytelnia, a uprawnienia aplikacji za nim pozostają tam, gdzie są.
Gdy adres wciąż się przemieszcza, trwałą odpowiedzią jest stabilne wyjście lub uwierzytelniony kanał, a nie dłuższa lista wyjątków. Zapisz zaobserwowane źródło, port docelowy i numer reguły.