В официальное ядро версии 2.6.10
была включена поддержка в правилах iptables
условий hashlimit, позволяющих задавать пороги
соответствия для квартетов (srcaddr, srcport, dstaddr,
dstport) подобно тому, как условие limit позволяло
задавать пороги для всех адресов сразу. К
сожалению, модуль libipt_hashlimit.c (iptables) для
работы с этим условием содержит целый ряд
ошибок при обработке параметров и эти
ошибки просто не позволяют использовать
модуль. После обнаружения ошибок был
незамедлительно (22 января 2005 года)
проинформирован разработчик модуля Harald Welte
и открыт Bug
Track
. В исходный код данного модуля были
внесены изменения и корректный файл можно
загрузить с сайта, воспользовавшись
приведенной ссылкой.

После устранения ошибок в модуле
iptables было проведено тщательное
тестирование модуля netfilter (ipt_hashlimit.c),
обеспечивающего поддержку соответствия
hashlimit в ядре Linux. В модуле также были
обнаружены две ошибки, которые, к счастью,
не оказывают критического воздействия на
работу системы и не снижают уровня
безопасности, однако существенно
затрудняют использование соответствия
hashlimit. По результатам проверки 26 января
также были направлены сообщения
разработчикам и открыт Bug
Track
.

  1. Ошибка при обработке номеров порта
    отправителя и получателя приводит к тому,
    что номера портов не принимаются во
    внимание и операции хэширования
    выполняются только по отношению к параме
    srcaddr, dstaddr вместо квартетов (srcaddr, srcport, dstaddr,
    dstport).

  2. Ошибка в функции hashlimit_match приводит к
    тому, что заданные правилом iptables условия
    выполняются не для burst пакетов (параметр
    условия), а для burst +1. Эта ошибка также не
    имеет критического значения, но в
    некоторых случаях может существенно
    искажать результаты фильтрации пакетов.



Оставить мнение