[an error occurred while processing this directive] Безопасность сетей[an error occurred while processing this directive]

Ошибки в Netfilter/iptables

Сотрудниками компании BiLiM Systems обнаружены и устранены ошибки в исходных кодах netfilter (ядро версии 2.6.10) и iptables (модуль libipt_hashlimit).

В официальное ядро версии 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. Эта ошибка также не имеет критического значения, но в некоторых случаях может существенно искажать результаты фильтрации пакетов.

Обнаруженные ошибки были исправлены и скорректированный файл ipt_hashlimit.c доступен по приведенной ссылке.


Обсудить статью на форуме

Дата обновления 02.02.2005

[an error occurred while processing this directive] [an error occurred while processing this directive]