ESP dotarł, ale nic nie zostało odszyfrowane? Prześledź etapy wejściowe
Odbiór, przetwarzanie bezpieczeństwa i przekazywanie to trzy różne wyniki. Ustal, który etap odrzucił pakiet, zanim rozszerzysz jakąkolwiek regułę dostępu.
Kiedy licznik szyfrowania zapory rośnie, a tunel niczego nie dostarcza, odruch każe rozszerzyć regułę dostępu. Ten odruch pomija własną sekwencję kontroli odbiorcy. Przychodzący pakiet ESP przechodzi przez kilka etapów i każdy może zakończyć życie pakietu z innego powodu: brak pasującego skojarzenia, błąd powtórzenia lub integralności, albo pakiet wewnętrzny jest w porządku, ale nie jest dozwolony dalej. Nazwanie etapu, który zawiódł, zamienia niejasne stwierdzenie, że IPsec jest zepsuty, w konkretny licznik i konkretną poprawkę.
Przybycie to jedna obserwacja, nie trzy
Zewnętrzne przechwycenie pokazujące, że ESP dociera do bramy, dowodzi tylko, że dotarł pakiet zewnętrzny. Akceptacja oznacza, że odbiorca znalazł skojarzenie i zweryfikował pakiet. Dostarczenie oznacza, że odzyskany pakiet wewnętrzny został skierowany do celu i otrzymał odpowiedź. To odrębne wyniki, a pulpit, który je scala, ukrywa dokładnie tę informację, której potrzebujesz.
Ta sama różnica wyjaśnia częsty raport: licznik szyfrowania jednej strony rośnie, podczas gdy druga nie zgłasza żadnego użytecznego odszyfrowanego ruchu. Oba stwierdzenia mogą być prawdziwe jednocześnie, ponieważ opisują różne etapy tej samej próby.
Wyszukanie skojarzenia odbywa się przed odszyfrowaniem
Odbiorca w razie potrzeby składa fragmenty, a następnie znajduje skojarzenie bezpieczeństwa dla pakietu. W zwykłym unicast wybierają je SPI i cel. Bez ważnego skojarzenia nie ma dalszego przetwarzania, dlatego nieaktualny lub niedopasowany SPI daje ciszę zamiast błędu widocznego dla aplikacji.
Skojarzenia są kierunkowe i mogą się zmieniać podczas odświeżania kluczy, więc zapisz stronę odbierającą, SPI i znacznik czasu obok skojarzenia wejściowego, które uważasz za bieżące. Wyświetlone skojarzenie wychodzące lub zdrowa relacja IKE nie zastępuje tego, które powinno odebrać ten pakiet.
Kontrole powtórzeń i integralności odrzucają, zanim powstanie ładunek
Po znalezieniu skojarzenia odbiorca stosuje algorytmy, które ono określa. Jeśli ochrona przed powtórzeniami jest włączona, numer sekwencji spoza okna jest odrzucany. Błąd kontroli integralności również kończy przetwarzanie, ponieważ ICV nie odpowiada pakietowi w postaci, w jakiej został odebrany. Żaden z tych przypadków nie tworzy odszyfrowanego pakietu wewnętrznego, więc nic nie dociera do routingu, polityki ani aplikacji.
W tych sytuacjach używaj udokumentowanych błędów i liczników implementacji, zamiast traktować każde niepowodzenie odbioru jako odmowę listy dostępu. Wyłączenie integralności lub ochrony przed powtórzeniami, aby ruch się pojawił, nie dowodzi, że przychodzący pakiet był legalny; usuwa kontrolę, która mówiła prawdę.
Port UDP 4500 jest pojemnikiem, a nie wyrokiem
Przejście przez NAT niesie ESP wewnątrz UDP, a ten sam port niesie także komunikaty IKE i keepalive. Aktywność na 4500 mówi więc, że coś używa portu, a nie że aplikacja wytworzyła pakiet ESP. Sklasyfikuj ładunek, zanim przypiszesz go ruchowi danych.
Ma to znaczenie, gdy przechwycenie jest jedynym dostępnym dowodem. Komunikat keepalive przychodzący punktualnie może sprawić, że martwy tunel wygląda na żywy, a komunikat IKE może sprawić, że przechwycenie wygląda na bardziej zajęte, niż naprawdę jest ścieżka danych.
Dopiero po wyodrębnieniu obowiązują routing i polityka
Gdy odszyfrowanie się powiedzie, odzyskany pakiet wewnętrzny wchodzi na normalną ścieżkę: kontrole polityki, routing, reguły przekazywania i host docelowy. Pakiet może przejść wszystkie kontrole bezpieczeństwa i mimo to zostać tu odrzucony, a ścieżka odpowiedzi również musi istnieć. To niepowodzenie należy do przekazywania, nie do ESP.
Trzymaj liczniki powiązane z ich udokumentowanym etapem. Odbiór na interfejsie, zaakceptowany ESP, odszyfrowane bajty i przekazane pakiety wewnętrzne nie muszą być tą samą liczbą, zwłaszcza gdy przyspieszona ścieżka obsługuje płaszczyznę danych, a płaszczyzna sterowania raportuje osobno. Ogólna etykieta pulpitu nie jest dowodem, że dwa liczniki znaczą to samo.
Dla jednej nowej autoryzowanej operacji zachowaj ostatnią potwierdzoną granicę i pierwszy istotny błąd. Ta para mówi następnemu administratorowi, czy badać dostarczanie transportu, skojarzenie i integralność, czy zwykłe przekazywanie wewnętrzne, i pozwala uniknąć zwykłej poprawki polegającej na uczynieniu każdej reguły przepuszczającą, aby przesunąć liczbę.