LINUX.ORG.RU

iptables 1.4.8 с поддержкой conntrack zones

 , , ,


0

0

Вышел релиз iptables 1.4.8 — интерфейса к Linux-фаерволу netfilter.

Наиболее интересным новшеством данного релиза является поддержка conntrack zones — механизма, позволяющего корректно отслеживать соединения в случае подключения хоста к двум или более сетям с одинаковыми адресными пространствами через разные сетевые интерфейсы. Такая ситуация является достаточно редкой, но тем не менее довольно неприятной, особенно в том случае, если вы не можете ничего изменить.

Стандартный Linux-фаервол netfilter использует для отслеживания соединений интегрированную в ядро подсистему conntrack. Полученная информация затем может использоваться при фильтрации и преобразовании пакетов. Например, именно на базе этой информации работают критерии conntrack (проверка состояния соединения, его устаревшая версия известна как state), connlimit (ограничение количества одновременных соединений с одного адреса или подсети), connbytes (ограничение соединений по количеству пакетов или байт, переданных в одном или в обоих направлениях), connmark (работает с маркировкой ctmark, общей для всех пакетов в соединении). Также информация conntrack автоматически используется всеми операциями преобразования адресов и портов (SNAT, MASQUERADE, DNAT, REDIRECT, SAME, NETMAP).

Эта информация хранится в специальной таблице (просмотреть ее можно, например, выполнив cat /proc/net/nf_conntrack). Каждое соединение описывается так называемым кортежем (tuple) — набором значений, в который входят адреса и порты (в случае ICMP — типы и коды ICMP) источника и назначения при передаче данных в прямом и обратном направлении. Очевидно, что при наличии нескольких подсетей с одинаковыми адресными пространствами, возможно возникновение путаницы, когда сразу нескольким соединениям ставится в соответствие одна и та же запись в таблице соединений. Чтобы избежать такой ситуации, в кортеж был добавлен идентификатор зоны conntrack — целое число, которое можно устанавливать через специальное правило в таблице raw в зависимости от входящего интерфейса (цепочку PREROUTING таблицы raw пакеты проходят еще до обработки их conntrack'ом). Кроме того, это значение можно задать для каждого интерфейса через sysfs, минуя iptables (псевдофайл /sys/class/net/имя_интерфейса/nf_ct_zone). Таким образом, сетевые администраторы получили эффективный инструмент, позволяющей изящно решить даже такую сложную задачу.

Стоит отметить, что большинство вопросов маршрутизации в описанных условиях уже давно решено средствами iproute2 (используя ip rule, можно направить пакеты с определенного интерфейса в соответствующую таблицу маршрутизации).

Операция установки значения conntrack zone реализуется в netfilter/iptables новым действием CT. Это действие используется в таблице raw и позволяет задать настройки conntrack для новых соединений. В частности, с его помощью можно:

  • Отключить отслеживание соединений для данного класса пакетов (опция --notrack). Ранее это выполнялось отдельным действием NOTRACK, которое теперь, видимо, будет объявлено устаревшим.

    Отслеживание отдельных соединений имеет смысл отключать, например, в том случае, если вы находитесь под (D)DoS-атакой, локализовали ее источники и используете средства активного противодействия, такие, как TARPIT. Если вы не отключите трекинг для таких соединений, это оружие может больно ударить и вас самих.

  • Установить для конкретного соединения нужный вспомогательный модуль (conntrack helper). Вспомогательные модули используются системой conntrack для отслеживания сложных протоколов, использующих несколько соединений в рамках одного сеанса (например, FTP, SIP, IRC, H.323 и т.п.). Теперь, если вы используете нестандартный порт для FTP, совсем не обязательно править конфигурацию modprobe.conf, чтобы прописать нужный параметр для соответствующего модуля ядра — достаточно выполнить привязку хелпера к порту через правило netfilter'а.
  • Ограничить список событий conntrack, генерируемых для данного соединения (например, реагировать только на открытие и закрытие соединения, игнорируя изменения его состояния).

Надо заметить, что поддержка действия CT и conntrack zones была добавлена в netfilter (т.е. в ядро) еще в начале февраля, поэтому присутствовала уже в релизе 2.6.33. Однако модули netfilter сами по себе не могут быть использованы без соответствующих управляющих команд из userspace, которые обычно отдаются через утилиту iptables.

Помимо добавления поддержки действия CT, в код iptables также было внесено несколько менее значительных изменений:

  • Полная поддержка ядра 2.6.34.
  • Исправлена ошибка парсинга диапазона адресов в критерии iprange.
  • Улучшен парсинг номеров портов для действий MASQUERADE и REDIRECT.
  • В проект импортирована утилита nfnl_osf, обеспечивающая подгрузку базы сигнатур для критерия osf.
  • Улучшена документация.

>>> ChangeLog

★★★★

Проверено: catap ()

Ответ на: комментарий от anonymous

что-то поголовье умных анонимусов резко сократилось =(

ну тогда и ты расскажи, зачем _мне_ фаервол на десктопе.

//про то что он нинужен никому - твоя личная фантазия.

F457 ★★★ ()
Ответ на: комментарий от F457

>ну тогда и ты расскажи, зачем _мне_ фаервол на десктопе

По-моему вопрос стоит ставить наоборот. Почему он тебе не нужен.

anonymous ()
Ответ на: комментарий от anonymous

не-не-не... так не пойдет, мну хочет посмияццо.

F457 ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.