Sophos Firewall: Invalid TCP reserved bit spowodowany przez Accurate ECN
Jeśli Sophos Firewall odrzuca prawidłowy ruch TCP z powodem Invalid TCP reserved bit, przyczyną może być Accurate ECN. Dodatkowa reguła zezwalająca ani wyjątek w filtrze WWW wtedy nie pomogą, ponieważ odrzucenie następuje już podczas ścisłej kontroli TCP.
Sophos wskazuje globalne wyłączenie strict-policy jako obejście. Tę zmianę należy wprowadzić dopiero po uzyskaniu jednoznacznego potwierdzenia: dotyczy ona całej zapory, a nie tylko analizowanego przepływu danych.
Jednoznaczne rozpoznanie błędu
Obejście jest właściwe tylko wtedy, gdy spełnione są wszystkie poniższe warunki:
- Określone połączenie TCP zrywa się w sposób powtarzalny lub w ogóle nie jest nawiązywane.
- Log Viewer lub Packet Capture pokazuje Invalid TCP reserved bit jako przyczynę odrzucenia.
- Reguła zapory, NAT i routing odpowiadają oczekiwanej ścieżce danych.
- Szeroka reguła zezwalająca nie zmienia tego zachowania.
- Przechwycone pakiety pokazują ponownie użyty zarezerwowany bit TCP, który Sophos określa jako
NS. Bity ECE i CWR mogą być ustawione dodatkowo, ale same nie stanowią jeszcze jednoznacznego potwierdzenia Accurate ECN.
W pierwszym teście w Log viewer > Firewall należy ustawić filtr według źródłowego adresu IP, docelowego adresu IP i czasu oraz uwzględnić także Invalid Traffic. Następnie w Diagnostics > Packet capture trzeba zarejestrować dokładnie jedną próbę połączenia. Ogólną procedurę opisuje artykuł Analizowanie odrzuconych pakietów na Sophos Firewall.
Jeśli nie ma konkretnej przyczyny odrzucenia, nie należy wyłączać strict-policy na podstawie przypuszczenia. Najpierw trzeba sprawdzić regułę zapory, NAT i przepływ pakietów.
Dlaczego Accurate ECN jest uznawane za nieprawidłowe
Explicit Congestion Notification, w skrócie ECN, sygnalizuje przeciążenie bez odrzucania pakietu wyłącznie w tym celu. Accurate ECN rozszerza ten mechanizm, ponownie wykorzystuje zarezerwowany bit NS i łączy go z ECE oraz CWR, aby przekazywać dokładniejsze informacje zwrotne.
Sophos opisuje w zgłoszeniu NC-169842, że ścisła kontrola pakietów może zinterpretować używany bit NS jako ustawiony zarezerwowany bit TCP i odrzucić ruch. Dlatego w dzienniku pojawia się Invalid TCP reserved bit, mimo że nadawca używa tych bitów na potrzeby Accurate ECN.
Aktualna Sophos Known Issues List wymienia SFOS 21.5.0 GA Build 171 jako wersję, której dotyczy problem, i nie podaje jeszcze wersji z poprawką. Jeśli takie samo zachowanie występuje w innej wersji SFOS, należy otworzyć Support Case z przechwyconymi pakietami i wyciągiem z dziennika, zamiast zakładać przypisanie problemu do tej wersji.
Sprawdzanie Strict Policy
Polecenia wykonuje się w wierszu console> konsoli Device Console, a nie w Advanced Shell:
- Zalogować się do zapory przez SSH lub konsolę lokalną.
- W menu głównym wybrać 4. Device Console.
- Wyświetlić aktualny stan:
show advanced-firewall
W danych wyjściowych odszukać następujący wiersz:
Strict Policy : on
Pełne dane wyjściowe zawierają inne globalne parametry zapory. Nie należy ich zmieniać na potrzeby tego testu. Jeśli dostęp nie został jeszcze skonfigurowany, pomocny jest artykuł Łączenie się z Sophos Firewall przez SSH.
Kontrolowany test obejścia
⚠️ Wpływ na bezpieczeństwo:
strict-policy offglobalnie wyłącza ścisłą kontrolę pakietów. Sophos Firewall nie odrzuca wtedy za pomocą tej kontroli niektórych nietypowych lub potencjalnie szkodliwych wzorców pakietów. To polecenie nie tworzy wyjątku dla pojedynczego adresu IP, domeny ani reguły zapory.
Przed zmianą należy zapisać aktualny stan konfiguracji, udokumentować analizowany przypadek testowy i zaplanować okno serwisowe. Następnie wykonać:
set advanced-firewall strict-policy off
Sprawdzić nowy stan:
show advanced-firewall
Oczekiwany wiersz:
Strict Policy : off
Teraz należy ponownie przetestować wyłącznie wcześniej udokumentowany przepływ danych. Jeśli zacznie działać natychmiast, a przyczyna odrzucenia Invalid TCP reserved bit zniknie, związek ze Strict Policy został potwierdzony.
Jeśli błąd pozostanie bez zmian, należy natychmiast ponownie włączyć strict-policy. Przyczyna leży wtedy prawdopodobnie w innym miejscu przepływu pakietów.
Ponowne włączanie Strict Policy
Polecenie przywracające ma postać:
set advanced-firewall strict-policy on
Następnie trzeba ponownie sprawdzić za pomocą show advanced-firewall, czy wyświetlany jest stan Strict Policy : on, oraz skontrolować normalny ruch.
Nawet jeśli obejście działa, strict-policy off nie powinno bez oceny stać się stanem trwałym. Zalecana kolejność działań jest następująca:
- Sprawdzić, czy nadawca, system operacyjny, aplikacja lub usługa pośrednia pozwala wyłączyć Accurate ECN albo negocjować je w inny sposób.
- Sprawdzić aktualne wydania SFOS Maintenance Release i Sophos Known Issues List pod kątem wersji zawierającej poprawkę.
- Przekazać do Sophos Support wersję SFOS, znacznik czasu, Source i Destination, przyczynę odrzucenia oraz Packet Capture.
- Tylko jeśli nie jest dostępne bardziej precyzyjne rozwiązanie, pozostawić globalną zmianę wraz z akceptacją ryzyka, monitoringiem i udokumentowaną procedurą powrotu.
Potrzebne materiały można zebrać przy użyciu instrukcji Zapisywanie dzienników Sophos Firewall dla Support Case.
Co nie pomaga
- Szersza reguła zapory: Ścisła kontrola TCP nie jest standardowym dopasowaniem reguły.
- Wyjątki Web lub TLS: Odrzucenie może nastąpić przed przetworzeniem ruchu przez te polityki.
- Wyjątek IPS dodany na podstawie przypuszczenia: W przypadku
NC-169842Sophos wyraźnie wskazuje Strict Policy jako przyczynę i obejście. - Globalne wyłączenie bez wartości bazowej: Bez powtarzalnego testu przed zmianą i po niej nie ma potwierdzenia, że przyczyną było Accurate ECN.