
Cześć, koledzy! Dziś chciałbym omówić bardzo aktualny temat dla wielu administratorów Check Point, jakim jest „Optymalizacja CPU i RAM”. Zdarza się, że brama i/lub serwer zarządzający niespodziewanie zużywają dużo zasobów, i chciałbym zrozumieć, dokąd one „uciekają” oraz jak je optymalniej wykorzystać.
1. Analiza
Do analizy obciążenia procesora przydatne są następujące polecenia, które wprowadza się w trybie eksperta:
top wyświetla wszystkie procesy, ilość zużywanych zasobów CPU i RAM w procentach, uptime, priorytet procesu oraz w czasie rzeczywistymi

cpwd_admin list Check Point WatchDog Daemon, który pokazuje wszystkie moduły urządzenia, ich PID, stan oraz liczbę uruchomień

cpstat -f cpu os zużycie CPU, ich ilość i rozkład czasu procesora w procentach

cpstat -f memory os zużycie wirtualnej RAM, całkowita aktywna, wolna RAM i inne

Poprawnym spostrzeżeniem jest to, że wszystkie komendy cpstat można sprawdzić za pomocą narzędzia cpview. Wystarczy wprowadzić polecenie cpview w dowolnym trybie w sesji SSH.


ps auxwf długi wykaz wszystkich procesów, ich ID, wykorzystywanej pamięci wirtualnej oraz pamięci RAM, CPU

Inna wariacja polecenia:
ps -aF pokaże najbardziej zasobochłonny proces

fw ctl affinity -l -a rozdział rdzeni między różne instancje zapory, co oznacza technologię CoreXL

fw ctl pstat analiza RAM oraz podstawowe wskaźniki połączeń, cookies, NAT

free -m bufor RAM

Osobną uwagę zasługuje polecenie netsat i jego wariacje. Na przykład, netstat -i może pomóc w monitorowaniu buforów wymiany. Parametr RX dropped packets (RX-DRP) w wynikach tego polecenia zazwyczaj sam rośnie z powodu zrzucania nielegalnych protokołów (IPv6, złe/niezamierzone VLAN tagi itp.). Jeśli jednak zrzuty występują z innego powodu, warto wykorzystać to polecenie, aby rozpocząć śledztwo i zrozumieć, dlaczego ten interfejs sieciowy zrzuca pakiety. Poznawszy przyczynę, można również optymalizować działanie urządzenia. Jeśli włączony jest blade Monitoring, można oglądać te wskaźniki graficznie w SmartConsole, klikając na obiekt i wybierając opcję „Informacje o urządzeniu i licencji”.

Na stałe włączanie blade Monitoring nie jest zalecane, ale na jeden dzień do testów jak najbardziej można.
Co więcej, można dodawać więcej parametrów do monitorowania, jednym z bardzo przydatnych jest — Bytes Throughput (przepustowość urządzenia).

Co więcej, można dodawać więcej parametrów do monitorowania, jednym z nich jest bardzo przydatny — Bytes Throughput (przepustowość appliance'a).

Jeśli istnieje inny system monitorowania, na przykład bezpłatny , oparty na SNMP, będzie on również odpowiedni do identyfikacji tych problemów.
2. "Wyciekanie" RAM z czasem
Często pojawia się pytanie, że z czasem brama lub serwer zarządzający zaczyna coraz więcej zużywać RAM. Chcę uspokoić: to normalna historia dla systemów podobnych do Linux.
Patrząc na wyniki komend free -m i cpstat -f memory os na urządzeniu w trybie eksperckim, można obliczyć i zobaczyć wszystkie parametry związane z RAM.
Faktycznie dostępnej pamięci na bramie w tej chwili Wolna pamięć + Pamięć buforowa + Pamięć podręczna = +-1.5 GB, zazwyczaj.
Jak mówi SR, z czasem brama/serwer zarządzający optymalizuje się i zużywa coraz więcej pamięci, dochodząc do około 80% wykorzystania, i przestaje. Możesz zrestartować urządzenie, a wtedy wskaźnik się zresetuje. 1.5 GB wolnej RAM na pewno wystarcza bramie na realizację wszystkich zadań, a serwer zarządzający rzadko osiąga takie wartości progowe.
Również wyniki wspomnianych komend pokażą, ile masz Niska pamięć (pamięć operacyjna w user space) i Wysoka pamięć (pamięć operacyjna w kernel space) używane.
Procesy jądra (w tym aktywne moduły, takie jak moduły jądra Check Point) używają tylko niskiej pamięci. Jednak procesy użytkownika mogą używać zarówno niskiej, jak i wysokiej pamięci. Co więcej, niska pamięć wynosi około Całkowita pamięć.
Martwić się należy tylko, jeśli w logach będą się pojawiać błędy "moduły restartują się lub procesy są zabijane, aby odzyskać pamięć z powodu OOM (Out of memory)". Wtedy należy zrestartować bramę i skontaktować się z wsparciem, jeśli restart nie pomoże.
Pełny opis można znaleźć w i .
3. Optymalizacja
Poniżej znajdują się pytania i odpowiedzi dotyczące optymalizacji CPU i RAM. Warto szczerze odpowiedzieć sobie na te pytania i zwrócić uwagę na zalecenia.
3.1. Czy poprawnie dobrano urządzenie? Czy był projekt pilotażowy?
Pomimo właściwego doboru rozmiaru, sieć mogła się po prostu rozrosnąć, a to urządzenie po prostu nie radzi sobie z obciążeniem. Drugą opcją jest to, że nie było żadnego doboru rozmiaru.
3.2. Czy włączona jest inspekcja HTTPS? Jeśli tak, czy technologia została skonfigurowana zgodnie z najlepszymi praktykami?
Skontaktuj się z , jeśli jesteś naszym klientem, lub z .
Kolejność umiejscowienia reguł w polityce inspekcji HTTPS ma duże znaczenie dla optymalizacji otwierania stron HTTPS.
Zalecana kolejność umiejscowienia reguł:
- Reguły bypass z kategorii/URL
- Zasady inspekcji z kategoriami/URL
- Zasady inspekcji dla wszystkich innych kategorii

Podobnie jak w polityce zapory sieciowej, Check Point szuka zgodności z pakietami od góry do dołu, dlatego zasady omijania powinny znajdować się na górze, aby brama nie marnowała zasobów na przeszukiwanie wszystkich zasad, jeśli dany pakiet ma być pominięty.
3.3 Czy używane są obiekty address-range?
Obiekty z zakresem adresów, na przykład sieć 192.168.0.0-192.168.5.0, zajmują znacznie więcej pamięci RAM niż 5 obiektów sieciowych. Ogólnie rzecz biorąc, uważane jest za dobrą praktykę usuwanie nieużywanych obiektów w SmartConsole, ponieważ za każdym razem podczas wdrażania polityki brama i serwer zarządzania marnują zasoby i, co najważniejsze, czas na weryfikowanie i stosowanie polityki.
3.4. Jak skonfigurowana jest polityka zapobiegania zagrożeniom?
Przede wszystkim Check Point zaleca wyodrębnienie IPS do osobnego profilu i tworzenie osobnych zasad dla tego modułu.
Na przykład administrator uważa, że segment DMZ należy chronić tylko przy użyciu IPS. Dlatego, aby brama nie marnowała zasobów na przetwarzanie pakietów innymi modułami, konieczne jest stworzenie zasady konkretnie dla tego segmentu z profilem, w którym włączono tylko IPS.
W kwestii konfiguracji profili zaleca się ich ustawianie zgodnie z najlepszymi praktykami w tym (strony 17-20).
3.5. Ile sygnatur w trybie Detekcji znajduje się w ustawieniach IPS?
Zaleca się staranne przemyślenie sygnatur pod kątem wyłączenia nieużywanych (na przykład sygnatury dotyczące exploitów produktów Adobe wymagają dużo mocy obliczeniowej, a jeśli klient nie korzysta z takich produktów, sygnatury warto wyłączyć). Następnie, tam gdzie to możliwe, ustawić Prevent zamiast Detect, ponieważ brama marnuje zasoby na przetwarzanie całego połączenia w trybie Detect, a w trybie Prevent natychmiast odrzuca połączenie i nie marnuje zasobów na pełne przetwarzanie pakietu.
3.6. Jakie pliki są przetwarzane przez moduły Emulacji Zagrożeń, Ekstrakcji Zagrożeń, Anti-Wirus?
Nie ma sensu emulować i analizować pliki rozszerzeń, które nie są pobierane przez użytkowników, lub które uważasz za niepotrzebne w swojej sieci (na przykład pliki bat i exe można łatwo zablokować za pomocą systemu Content Awareness na poziomie zapory, dzięki czemu zasoby bramy będą mniej obciążone). Co więcej, w ustawieniach Emulacji Zagrożeń możesz wybierać Środowisko (system operacyjny) do emulacji zagrożeń w piaskownicy, co nie ma sensu, jeśli wszystkie użytkownicy korzystają z wersji 10, a ty ustawiasz Środowisko Windows 7.
3.7. Czy zasady zapory i zasady na poziomie Aplikacji są zgodne z najlepszymi praktykami?
Jeśli zasada ma wiele trafień (zgodności), zaleca się umieszczenie jej na samym szczycie, a zasady z niewielką ilością trafień — na samym dole. Najważniejsze jest, aby unikać ich nakładania się i zakrywania się nawzajem. Zalecana architektura polityki zaporowej:

Wyjaśnienia:
Pierwsze Reguły — tutaj umieszczane są zasady z największą ilością trafień
Zasada Szum — zasada do odrzucania niepożądanego ruchu, takiego jak NetBIOS
Zasada Stealth — zakaz dostępu do bram i zarządzeń dla wszystkich, poza tymi źródłami, które zostały wskazane w zasadach Autoryzacji do Zasad Bram
Reguły Clean-Up, Last i Drop zazwyczaj łączy się w jedną zasadę, aby zakazać wszystkiego, co nie zostało wcześniej dozwolone
Dane najlepszych praktyk są opisane w .
3.8. Jakie ustawienia mają serwisy stworzone przez administratorów?
Na przykład, jeśli tworzony jest jakiś serwis TCP na określonym porcie, warto w zaawansowanych ustawieniach usunąć zaznaczenie "Match for Any". W tym przypadku dany serwis znajdzie się dokładnie pod zasadą, w której figuruje i nie będzie uczestniczył w zasadach, gdzie w kolumnie Usługi jest Any.

Mówiąc o serwisach, warto wspomnieć, że czasami konieczne jest dostrojenie czasów oczekiwania. To ustawienie pozwoli na lepsze wykorzystanie zasobów bramy, aby nie utrzymywać przez zbyt długi czas sesji TCP/UDP protokołów, które nie potrzebują dużego czasu oczekiwania. Na przykład, na poniższym zrzucie ekranu, zmieniłem czas oczekiwania dla usługi domain-udp z 40 sekund na 30 sekund.

3.9. Czy używany jest SecureXL i jaki jest procent przyspieszenia?
Jakość działania SecureXL można sprawdzić za pomocą podstawowych komend w trybie eksperta na bramie fwaccel stat i fw accel stats -s. Następnie trzeba zbadać, jaki ruch jest przyspieszany, jakie szablony można jeszcze stworzyć.
Domyślnie szablony Drop nie są włączone, ich aktywacja pozytywnie wpłynie na działanie SecureXL. Aby to zrobić, przejdź do ustawień bramy i zakładki Optymalizacje:

Podczas pracy z klastrem, aby zoptymalizować CPU, można wyłączyć synchronizację niekrytycznych usług, takich jak UDP DNS, ICMP i inne. W tym celu należy przejść do ustawień usługi → Zaawansowane → Synchronizuj połączenia, gdy synchronizacja stanu jest włączona w klastrze.

Wszystkie najlepsze praktyki są opisane w .
3.10. Jak używać CoreXl?
Technologia CoreXL, która umożliwia wykorzystanie wielu CPU dla instancji zapory (moduły zapory), zdecydowanie pomaga w optymalizacji działania urządzenia. Najpierw komenda fw ctl affinity -l -a pokaże wykorzystywane instancje zapory oraz procesory przydzielone do potrzeb SND (modułu, który rozdziela ruch do zaporowych jednostek). Jeśli nie wszystkie procesory są wykorzystane, można je dodać komendą cpconfig na bramie.
Dobrą praktyką jest również zainstalowanie w celu aktywacji Multi-Queue. Multi-Queue rozwiązuje problem, gdy procesor z SND jest wykorzystywany na dużym procencie, podczas gdy instancje zapory na innych procesorach są niewykorzystane. Wówczas SND miałby możliwość tworzenia wielu kolejek dla jednej NIC i przypisywania różnych priorytetów dla różnych rodzajów ruchu na poziomie jądra. W rezultacie rdzenie CPU byłyby wykorzystywane bardziej efektywnie. Metodyki są również opisane w .
Na zakończenie chciałbym powiedzieć, że to nie wszystkie najlepsze praktyki dotyczące optymalizacji pracy Check Point, ale najbardziej popularne. Jeśli chcesz zamówić audyt swojej polityki bezpieczeństwa lub rozwiązać problem związany z Check Point, prosimy o kontakt na sales@tssolution.ru.
Dziękuję za uwagę!
Źródło: habr.com
