Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Контролна тачка: оптимизација ЦПУ-а и РАМ-а
Здравствуйте, коллеги! Сегодня я хотел бы обсудить очень актуальную для многих администраторов Check Point тему «Оптимизация CPU и RAM». Нередки случаи, когда шлюз и/или менеджмент сервер потребляют неожиданно много этих ресурсов, и хотелось бы понять, куда они “утекают”, и по возможности грамотнее использовать их.

1. Анализ

Для анализа загрузки процессора полезно использовать следующие команды, которые вводятся в экспертном режиме:

врх показывает все процессы, количество потребляемых ресурсов CPU и RAM в процентах, uptime, приоритет процесса и други в реальном времени

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

cpwd_admin list Check Point WatchDog Daemon, который показывает все модули апплайнса, их PID, состояние и количество запусков

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

cpstat -f cpu os использование CPU, их количество и распределение процессорного времени в процентах

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

cpstat -f memory os использование виртуальной RAM, сколько всего активной, свободной RAM и другое

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Правильным замечанием будет то, что все команды cpstat можно посмотреть с помощью утилиты cpview. Для этого просто нужно ввести команду cpview из любого режима в SSH-сессии.

Контролна тачка: оптимизација ЦПУ-а и РАМ-а
Контролна тачка: оптимизација ЦПУ-а и РАМ-а

ps auxwf длинный список всех процессов, их ID, занимаемую виртуальную память и память в RAM, CPU

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Другая вариации команды:

ps -aF покажет самый затратный процесс

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

fw ctl affinity -l -a распределение ядер под разные инстанции фаервола, то есть технология CoreXL

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

fw ctl pstat анализ RAM и общие показатели соединений, cookies, NAT

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

фрее -м буфер RAM

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Отдельного внимания стоит команда netsat и ее вариации. Например, нетстат -и может помочь решить задачу мониторинга буферов обмена. Параметр, RX dropped packets (RX-DRP) в выводе этой команды, как правило, растет сам по себе из-за дропов нелегитимных протоколов (IPv6, Bad / Unintended VLAN tags и другие). Однако если дропы случаются по другой причине, то стоит воспользоваться данной чланак, чтобы начать расследование и понять, почему данный сетевой интерфейс сбрасывает пакеты. Узнав причину, работу апплайнса также можно оптимизировать.

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Если включен блейд Monitoring, то можно смотреть данные показатели графически в SmartConsole, нажав на объект и выбрав пункт «Device & License Information».

На постоянное основе блейд Monitoring включать не рекомендуется, но на день для теста вполне можно.

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Более того, можно добавлять больше параметров для мониторинга, один из них очень полезный — Bytes Throughput (пропускная способность апплайнса).

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Если есть какая-то другая система мониторинга, например, бесплатный Заббик, основанная на SNMP, она тоже подойдет для выявления данных проблем.

2. “Утечка” RAM со временем

Часто встает вопрос, что со временем шлюз или менеджмент сервер начинает все больше и больше потреблять RAM. Хочу успокоить: это нормальная история для Linux подобных систем.

Посмотрев вывод команд фрее -м и cpstat -f memory os на апплайнсе из экспертного режима, можно посчитать и посмотреть все параметры, относящиеся к RAM.

По факту доступной памяти на шлюзе на данный момент Фрее Мемори + Buffers Memory + Cached Memory = +-1.5 Гб, как правило.

Как говорит СР, со временем шлюз/менеджмент сервер оптимизируется и использует все больше памяти, доходя до примерно 80% использования, и останавливается. Вы можете перезагрузить устройство, и тогда показатель сбросится. 1.5 Гб свободной ОЗУ шлюзу точно хватает на выполнение всех задач, а менеджмент редко доходит до таких пороговых значений.

Также выводы упомянутых команд покажут, сколько у вас Мало меморије (оперативная память в user space) и High memory (оперативная память в kernel space) использовано.

Процессы kernel (включая active modules, такие как Check Point kernel modules) используют только Low memory. Однако пользовательские процессы могут использовать как Low, так и High memory. Более того, Low memory примерно равна Укупна меморија.

Беспокоиться следует, только если в логах будут сыпаться ошибки «modules reboot or processes being killed to reclaim memory due to OOM (Out of memory)». Тогда следует перезагрузить шлюз и обратиться в поддержку, если перезагрузка не поможет.

Полное описание можно найти в скКСНУМКС и скКСНУМКС.

3. Оптимизација

Ниже приведены вопросы и ответы по оптимизации CPU и RAM. На них стоит честно ответить самому себе и прислушаться к рекомендациям.

3.1. Правильно ли апллайнс был подобран? Был ли пилотный проект?

Несмотря на грамотный сайзинг, сеть могла банально разрастись, и данное оборудование просто не справляется с нагрузкой. Второй вариант, если сайзинга как такового не было.

3.2. Включена ли HTTPS инспекция? Если да, то настроена ли технология по Best Practice?

Обратиться к статьe, если вы наш клиент, или к скКСНУМКС.

Порядок расположения правил в политике HTTPS инспекции играет большое значение в оптимизации открытия HTTPS сайтов.

Рекомендуемый порядок расположения правил:

  1. Правила bypass с категориями/URL
  2. Правила inspect с категориями/URL
  3. Правила inspect для всех остальных категорий

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

По аналогии с фаервольной политикой, Check Point ищет совпадение по пакетам сверху вниз, поэтому bypass правила лучше расположить вверху, так как шлюз не будет тратить ресурсы на прогонку по всем правилам, если этот пакет надо пропустить.

3.3 Используются ли address-range объекты?

Объекты с диапазоном адресом, например, сеть 192.168.0.0-192.168.5.0, отнимают существенно больше RAM, чем 5 network объектов. В общем и целом, считается хорошей практикой удалять неиспользуемые объекты в SmartConsole, так как каждый раз во время установки политики шлюз и менеджмент сервер тратят ресурсы и, главное, время, на то, чтобы верифицировать и применить политику.

3.4. Как настроена политика Threat Prevention?

В первую очередь, Check Point рекомендует выносить IPS в отдельный профиль и создавать отдельные правила под этот блейд.

Например, администратор считает, что сегмент DMZ необходимо защищать только с помощью IPS. Поэтому, чтобы шлюз не тратил ресурсы на обработку пакетов другими блейдами, необходимо создать правило конкретно под данный сегмент с профилем, в котором включен только IPS.

По поводу настройки профилей, то рекомендуется настраивать его по лучшим практикам в этом документ(страницы 17-20).

3.5. В настройках IPS как много сигнатур в режиме Detect?

Рекомендуется усиленно проработать сигнатуры в том плане, что следует отключить неиспользуемые (например, сигнатуры на эксплуатацию продуктов Adobe требуют много вычислительной мощности, и если у заказчика таких продуктов нет, сигнатуры имеет смысл отключить). Далее поставить Prevent вместо Detect там, где возможно, потому что шлюз тратит ресурсы на обработку всего соединения в режиме Detect, в режиме Prevent он сразу отбрасывает соединение и не тратит ресурсы на полную обработку пакета.

3.6. Какие файлы обрабатываются блейдами Threat Emulation, Threat Extraction, Anti-Virus?

Не имеет смысла эмулировать и анализировать файлы расширений, которые ваши пользователи не скачивают, или вы считаете ненужными в вашей сети (например, bat, exe файлы легко заблокировать с помощью блейда Content Awareness на уровне фаервола, поэтому ресурсы шлюза будут тратиться меньше). Более того, в настройках Threat Emulation можно выбирать Environment (операционную систему) для эмуляции угроз в песочнице и ставить Environment Windows 7, когда все пользователи работают с 10-ой версией, тоже не имеет смысла.

3.7. Расположены ли фаервольные правила и правила уровня Application в соответствии с best practice?

Если у правила много хитов (совпадений), то их рекомендуется ставить в самый верх, а правила с малым количеством хитов — в самый низ. Главное — это следить за тем, чтобы они не пересекались и не перекрывали друг друга. Рекомендуемая архитектура фаервольной политики:

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Објашњење:

First Rules — сюда помещаются правила с самым большим количеством совпадений
Noise Rule — правило для отбрасывания паразитного трафика, такого как NetBIOS
Stealth Rule — запрет обращений к шлюзам и менеджментам всем, кроме тех источников, которые были указаны в правилах Authentication to Gateway Rules
Clean-Up, Last и Drop Rules, как правило, объединяются в одно правило для запрета всего, что не разрешено было ранее

Данные Best practice описаны в скКСНУМКС.

3.8. Какие настройки стоят у созданных администраторами сервисов?

Например, создается какой-то сервис TCP по определенному порту, и имеет смысл в Advanced настройках сервиса снять галочку “Match for Any”. В этом случае данный сервис будет попадать конкретно под правило, в котором он фигурирует, и не участвовать в правилах, где в колонке Services стоит Any.

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Говоря о сервисах, стоит упомянуть то, что иногда бывает необходимым подтюнить тайм-ауты. Эта настройка позволит грамотнее расходовать ресурсы шлюза, чтобы не держать лишнее время TCP/UDP сессии протоколов, которым не нужен большой тайм-аут. Например, на скриншоте ниже, я переставил тайм-аут domain-udp сервиса с 40 секунд на 30 секунд.

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

3.9. Используется ли SecureXL и каков процент ускорения?

Проверить качество работы SecureXL можно основными командами в экспертном режиме на шлюзе fwaccel stat и fw accel stats -s. Далее нужно разбираться, что за трафик ускоряется, какие templates (шаблоны) можно создать еще.

По умолчанию Drop Templates не включены, их включение благоприятно скажется на работе SecureXL. Для этого зайдите в настройки шлюза и во вкладку Optimizations:

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Также при работе с кластером для оптимизации CPU можно отключить синхронизацию некритичных сервисов, таких как UDP DNS, ICMP и другие. Для этого стоит зайти в настройки сервиса → Advanced → Synchronize connections of State Synchronization is enabled on the cluster.

Контролна тачка: оптимизација ЦПУ-а и РАМ-а

Все Best Practice описаны в скКСНУМКС.

3.10. Как используется CoreXl?

Технология CoreXL, позволяющая использовать множество CPU для firewall instances (модули фаервола), однозначно помогает оптимизировать работу устройства. Сперва команда fw ctl affinity -l -a покажет используемые firewall instances и процессоры, отданные под нужны SND (модуля, который распределяет трафик на фаервольные сущности). Если задействованы не все процессоры, их можно добавить командой cpconfig на шлюзе.
Также хорошая история — это поставить хотфикс на включение Multi-Queue. Multi-Queue решает проблему, когда процессор с SND используется на много процентов, а firewall instances на других процессорах простаивают. Тогда у SND появилась бы возможность создавать много очередей для одной NIC и ставить разные приоритеты для разного трафика на уровне ядра. Следовательно, ядра CPU станут использоваться грамотнее. Методики описаны также в скКСНУМКС.

В заключение хотелось бы сказать, что это далеко не все Best Practices по оптимизации работы Check Point, однако самые популярные. Если вы хотите заказать аудит вашей политики безопасности или решить проблему, связанную с Check Point, то обращайтесь, пожалуйста, на [емаил заштићен].

Спасибо за внимание!

Извор: ввв.хабр.цом

Додај коментар