LINUX.ORG.RU

Netfilter


10

0

Всего сообщений: 11

Уязвимость в ядре Linux с возможностью локальной эксплуатации через nftables

Группа Безопасность

Обнаружена уязвимость в подсистеме Netfilter (CVE-2023-6817), которая, в теории, может быть использована локальным пользователем для повышения своих привилегий в системе. Корень проблемы кроется в использовании освобожденной памяти (use-after-free) в модуле nf_tables, ответственном за функциональность пакетного фильтра nftables.

( читать дальше... )

>>> Подробности

 , ,

basilic
()

Уязвимость в Netfilter

Группа Безопасность

Netfilter — подсистема ядра, более известная по пользовательской утилите iptables, предоставляющей для неё интерфейс командной строки, и используемой для управления правилами брандмауэра.

CVE-2021-22555 при определённых условиях позволяет повышение привилегий. Уязвимость впервые появилась в Linux 2.6.19-rc1, но для её эксплуатации непривилегированному пользователю необходима функциональность user namespaces, появившаяся в 3.8 версии ядра, и которая может быть отключена в зависимости от дистрибутива.

В Arch Linux, Debian и Fedora исправления уже подготовили, а в openSUSE и Ubuntu, где user namespaces по-умолчанию включены, ещё нет.

Уязвимость связана с записью за пределы буфера (write out-of-bounds) и использованием данных в памяти после её освобождения (use-after-free). Она была использована для обхода изоляции контейнеров в kCTF demo cluster, за что Google обещала награду от $5000 до $10 000. Исследователь в сфере безопасности Andy Nguyen, обнаруживший уязвимость, собирается потратить выигранные $10 000 на благотворительность, в этом случае Google удвоит пожертвование.

>>> Подробности

 , , , ,

WitcherGeralt
()

Семейство утилит iptables переведут с ip_tables на BPF

Группа Linux General

На конференции Netfilter Workshop разработчики сетевой подсистемы ядра Linux объявили о скором переходе ставших традиционными утилит конфигурирования netfilter (iptables, ebtables, arptables) с ядерной подсистемы ip_tables на Berkeley Packet Filter/x_tables, предоставляющей более гибкие возможности по управлению обработкой проходящих через Linux сетевых пакетов и возможно большей производительностью обработки за счёт использования JIT-компилятора.

Устаревшим утилитам будет присвоен постфикс "-legacy".

Также доступен транслятор для перевода правил iptables в синтаксис «родной» утилиты новой подсистемы ядра (nft): iptables-translate.

>>> Подробности

 , , ,

L29Ah
()

OpenSnitch — интерактивный сетевой экран

Группа Linux General

Представлен проект OpenSnitch, в рамках которого подготовлен свободный аналог проприетарного сетевого экрана Little Snitch.

( читать дальше... )

>>> Подробности

 , , ,

Sunderland93
()

Вышел iptables 1.6.0

Группа Linux General

Предыдущая значительная ветка 1.4 вышла 8 лет назад, в декабре 2007.

Введён слой совместимости iptables-compat (утилиты iptables-compat, iptables-compat-save, ...), позволяющий мигрировать на nftables, не ломая обратной совместимости. Много мелких исправлений и улучшений. Нарушения совместимости:

  • удалены targets MIRROR и SAME;
  • удалён match «unclean».

Nftables — замена для {ip | ip6 | arp | eb}tables, доступна начиная с ядра 3.13.

( Основные отличия от iptables )

>>> Анонс в рассылке на netfilter.org

 , ,

selivan
()

Релиз ipset 5.0

Группа Безопасность

Ipset — компонент универсального фреймворка фильтрации и преобразования пакетов netfilter, предназначенный для хранения больших списков IP-адресов и подсетей, MAC-адресов, TCP/UDP-портов с возможностью быстрого поиска по ним.

Основные новшества:

  • Полная поддержка IPv6
  • Устранено ограничение для списков типа ipporthash, ipportiphash и ipportnethash, предписывавшее, что адреса в пределах одного списка должны принадлежать одному блоку /16, также устранено ограничение для списков типа ipporthash и ipportnethash, запрещавшее сохранять в них адреса хоста, на котором работает ipset
  • Для всех типов списков, сохраняющих номера портов, теперь поддерживается сохранение протокола (TCP/UDP/ICMP, в последнем случае вместо номера порта сохраняется пара значений тип/код ICMP), а также реализована поддержка таймаутов
  • Добавление/удаление нескольких записей в рамках одной транзакции
  • Для связи ядро-userspace теперь используется протокол Netlink
  • Оптимизировано потребление памяти алгоритмом хэширования hash-типов
  • Улучшен синтаксис
  • Добавлен слой совместимости синтаксиса с веткой 4.х

Прежние версии ipset (ветка 4.х) не включались в основную ветку ядра в силу множества замечаний разработчиков Linux в адрес ipset, однако могли быть собраны в виде отдельных модулей. Версия 5, из-за использования Netlink, требует более жёсткой связи с ядром, поэтому для её работы необходима модификация заголовков ядра с последующей пересборкой. Однако устранение вышеупомянутых замечаний разработчиков ядра даёт надежду на скорое включение ipset в основную ветку разработки.

>>> Подробности

 , , , , ,

Savonarola
()

Выход ferm - инструмента для работы с netfilter

Группа Open Source

ferm - это инструмент для управления файерволлом в Linux , который облегчает работу с ним путём создания правил на специальном языке, с последующей трансляцией в обычный для netfilter формат. Специальный язык, используемый в нём, имеет интуитивно понятный синтаксис, легко читаем и достаточно прост, с его помощью можно формировать как уровни, так и списки в правилах.

>>> Подробности

 , , ,

Voviandr
()

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

Группа Ядро Linux

Вышел релиз 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

 , , ,

nnz
()

iptables 1.4.6 с поддержкой критерия OS Fingerprinting

Группа Ядро Linux

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

Основным новшеством данного релиза является поддержка критерия osf (passive OS fingerprinting), аналогичного критерию os OpenBSD-фаервола pf. Оба этих критерия позволяют по TCP SYN-пакету определить семейство и, в некоторых случаях, даже примерную версию операционной системы, отправившей этот пакет. Детекция производится на основании анализа ряда характеристик пакета, таких как размер TCP-окна, максимальный размер сегмента (MSS), опции TCP, бит DF и т.п. Совокупность значений этих параметров, позволяющая однозначно идентифицировать систему-отправителя, называет сигнатурой. Существующий на настоящий момент список сигнатур, сопровождаемый сообществом OpenBSD, весьма обширен.

Пример использования:

iptables -I INPUT -p tcp -m osf --genre Windows --ttl 2 -j DROP 
позволит заблокировать соединения, инициируемые операционными системами семейства Windows (опция --ttl 2 предписывает не учитывать TTL при детекции).

Критерий osf был реализован Евгением Поляковым (разработчиком POHMELFS и автором порта CARP под Linux) еще в 2003 году. Однако соответствующий модуль netfilter был принят в ядро лишь в июне текущего года, а интерфейс к нему на уровне iptables появился только сейчас.

Заметим, что для использования данного критерия необходима утилита nfnl_osf, обеспечивающая подгрузку базы сигнатур для модуля детекции через интерфейс nfnetlink. Будем надеяться, что мейнтейнеры соответствующих пакетов в наших любимых дистрибутивах вскоре обратят свое внимание на эту проблему. Пока же самые нетерпеливые могут собрать эту утилиту по старинке, через make bin (для сборки нужны заголовки библиотеки nfnetlink).

Среди других изменений в данном релизе iptables можно отметить поддержку ядра 2.6.32, исправление ряда мелких проблем в отдельных модулях (xt_iprange, xt_conntrack), поправки в man-страницах.

>>> ChangeLog

 , , , ,

nnz
()

iptables 1.4.5

Группа Ядро Linux

В минувший понедельник вышла новая версия iptables — интерфейса к Linux-файрволу netfilter.

В числе новшеств:

  • Поддержка новых возможностей ядра 2.6.31.
  • Возможность указания нескольких IP-адресов или подсетей в параметрах -s и -d.
  • Поддержка опции queue-balance для действия NFQUEUE.
  • Ряд исправлений в man-страницах.

Скачать

>>> ChangeLog

 , , ,

nnz
()

Настройка «проброса» порта через IPtables

Группа Документация

Вам хотелось бы иметь доступ к своему домашнему файловому серверу, при этом не открывая широко ваш пакетный фильтр для атак? Проще всего это сделать в Linux. В статье М.Вальдо рассказано как "запереть" ваш пакетный фильтр и реализовать проброс портов, который позволит вам проникать в защищаемую зону.

>>> Подробности

 , , ,

vikos
()