Запросите проверку правила nftables для ограничения SCTP/DIAMETER AIRs.

Вопрос или проблема

Я пытаюсь создать правило nftables, которое может ограничить трафик SCTP, содержащий DIAMETER. Далее я хотел бы только отбрасывать запросы информации для аутентификации (AIR).
В общем, все должно проходить, кроме AIR, которые превышают определенный лимит/порог.

Это моя текущая версия:

nft add rule filter input ip daddr 1.2.3.4 sctp @th,64,32 0x0000013e limit rate over 10/second drop

Идея состоит в том, что @th,64,32 сопоставляет 32-битное поле (DIAMETER код команды), начиная с байтового смещения 64 от полезной нагрузки SCTP, а 0x0000013e – это шестнадцатеричный код для 318 (запрос информации для аутентификации).

Я пытался разобрать вещи с помощью Wireshark, но не совсем уверен.
Также не уверен, как это испытать хорошим способом.

Может ли кто-нибудь подтвердить, отредактировать и/или помочь мне с тестированием этого?

Ответ или решение

Вопрос касается создания правила для nftables с целью ограничения SCTP-трафика, включающего запросы DIAMETER типа AIR. Давайте разберемся с необходимыми деталями по шагам.

Формулировка проблемы:
Вы хотите создать правило, которое будет "измерять" трафик по определенному параметру и блокировать те пакеты, которые превышают указанный лимит. В данном случае лимит устанавливается для DIAMETER-запросов AIR, которые распознаются по командному коду.

Вам предложено следующее правило:

nft add rule filter input ip daddr 1.2.3.4 sctp @th,64,32 0x0000013e limit rate over 10/second drop

Пояснение параметров:

  1. ip daddr 1.2.3.4: Указывает, что правила применяются к пакетам, направленным на IP-адрес 1.2.3.4.
  2. sctp: Применяется к SCTP-трафику.
  3. @th,64,32: Соответствует 32-битному полю, начинающемуся со смещения 64 байта от начала SCTP-пакета. Это поле предполагается содержать DIAMETER командный код.
  4. 0x0000013e: Это шестнадцатеричное представление для числа 318, что соответствует коду AIR в DIAMETER.
  5. limit rate over 10/second drop: Устанавливает ограничение на не более 10 пакетов в секунду, иначе пакеты сбрасываются.

Рекомендации и валидация:

  1. Проверка смещения и кода: Убедитесь, что смещение @th,64,32 и код 0x0000013e точно соответствуют нужному полю в SCTP пакете. Обычно это можно выяснить с помощью анализа пакетов посредством Wireshark, но будьте уверены, что смещение соответствует структуре диаграммы протокола DIAMETER.

  2. Тестирование:

    • С помощью Wireshark: Получите набор данных (трафик) и используйте Wireshark, чтобы удостовериться, что команды с кодом 318 действительно присутствуют в правильной позиции.
    • С использованием искусственно сгенерированного трафика: Используйте инструменты для создания и отправки SCTP пакетов с параметрами, соответствующими вашим DIAMETER транзакциям.
  3. Мониторинг и логирование: Настройте логирование в nftables, чтобы контролировать, сколько пакетов сбрасывается. Это можно сделать добавлением логирующего правила перед сбросом для получения более подробной информации.

Учитывайте также необходимость балансировать между строгими правилами и пропускной способностью сети, чтобы не случайно не заблокировать легитимный трафик.

Оптимизация:
Использование ключевых слов, таких как SCTP, DIAMETER, nftables, и Authentication Information Request, поможет оптимизировать содержание для поисковых систем, делая его более доступным для целевой аудитории.

Ваш подход в использовании nftables правильный, однако всегда соблюдайте осторожность при вводе фильтров на уровне пакетов, чтобы избежать перебоев в рабочих процессах.

Оцените материал
Добавить комментарий

Капча загружается...