Да это ясно что фаирвол нужен, что пакеты надо фильтровать. Суть вопроса была - какие именно пакеты или что они должны содержать или просто ограничение на колличество пакетов в секунду от хоста ??
Достаточно часто возникает необходимость управления трафиком на
граничных шлюзах, серверах или конечных станциях с использованием
пороговых значений скорости. В ядре ОС Linux поддерживается механизм
Token Bucket Filter (TBF)^1, который используется некоторыми
дисциплинами управления очередями (в частности, sch_tbf) и условиями
iptables. Для более наглядного представления о работе этого алгоритма
вспомним задачку из школьной арифметики о бассейне с двумя трубами.
Предположим, что у нас имеется сосуд объема V, из которого имеющаяся в
нем жидкость вытекает с постоянной скоростью p. Поток жидкости,
поступающей в бассейн, имеет переменную скорость. Очевидно, что при
такой постановке задачи через некоторое время жидкость может наполнить
сосуд и начать переливаться через край в том случае, если средняя
скорость скорость притока жидкости превышает фиксированную скорость
оттока. Ясно также, что продолжительность наполнения сосуда будет
зависеть от определенное значение, которое зависит от скорости
вытекания и объема сосуда от 3 параметров - фиксированных значений
объема и скорости оттока, а также переменной скорости притока. Момент
заполнения бассейна до краев может служить пороговым значением.
Поскольку этот момент достаточно точно фиксируется, мы можем создавать
правила управления потоком, которые определяют поведение системы до
заполнения сосуда и после его наполнения. Если вернуться к управлению
пакетами, то мы можем создавать правила, которые будут выполнять
определенные действия до тех пор, "пока сосуд не наполнится" или
наоборот, включать некий механизм (например, отбрасывание пакетов) при
"наполнении сосуда".
Как вы наверное помните, такие задачи в начальной школе решались
достаточно легко. Не составляет большого труда решить их и
программными средствами современных ОС. В широко распространенной
системе фильтрации трафика netfilter/iptables существует несколько
соответствий (match) работающих на основе этого алгоритма. К числу
таких соответствий относятся достаточно хорошо известные limit,
iplimit и недавно созданные hashlimit и tbf.
(opennet.ru)
Пример: -A INPUT -p udp -m udp --dport 27015 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp --dport 27015 -m state --state NEW -m hashlimit --hashlimit 100/s --hashlimit-burst 100 --hashlimit-mode srcip --hashlimit-name strike#1 -j ACCEPT
-A INPUT -p udp --dport 27015 -j DROP
Можно сделать логирование тех айпи, от которых идут пакеты выше числом.