The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

20.03.2009 15:57  Разработчики Netfilter представили замену iptables

Вниманию общественности представлен первый публичный выпуск проекта nftables, новой реализации пакетного фильтра для Linux, идущего на смену iptables, как в свое время iptables пришел на смену ipchains, а ipchains заменил собой ipfwadm. Главным отличием nftables, является не только изменившийся синтаксис задания правил, но и совершенно новый подход в их трансляции: определенные пользователем правила теперь преобразуются в специальный упрощенный псевдокод, который используется для принятия решения по дальнейшим действиям с пакетом через специальный интерфейс внутри ядра.

Nftables состоит из трех частей: кода фильтрации, работающего внутри ядра, связующей интерфейсной библиотеки libnl, работающей с ядром через netlink, и фронтэнда, работающего на уровне пользователя. Для формирования правил фильтрации в nftables представлена утилита nft , которая проверяет корректность правил и транслирует их в псевдокод. Правила теперь могут добавляться не только инкрементально, но и загружаться целиком из файла на диске, как это сделано, например, в пакетном фильтре PF.

Код фильтра, работающий на уровне ядра избавлен от блокировок и значительно сокращен, все операции по определению условий и связанных с ними действий выполняются на уровне пользователя, в ядре производится только базовый набор операций, таких как чтение данных из пакета, сравнение данных и т.п. В пакетный фильтр интегрирована поддержка словарного маппинга и поиска по наборам правил (sets), работа которых реализована через хеши и rb-деревья. При этом элементы наборов могут быть заданы в виде диапазонов значений (можно определять подсети). Фильтр более не зависит от типа протокола, поддерживая IPv4, IPv6 и бриджинг. По умолчанию не производится учет пакетов и байт трафика, подпадающих под правила, их учет нужно включать отдельно.

Новый синтаксис правил в корне не похож на то, что было раньше и больше напоминает сценарий, в котором можно задавать условия, создавать переменные, выполнять математические операции. Язык классификации правил основан на реальной грамматике, при обработке которой используется сгенерированный в bison парсер. Например, типичный набор правил:


   include "ipv4-filter"

   chain filter output {
         ct state established,related accept
         tcp dport 22 accept
         counter drop
   }

По заявлению разработчиков, код nftables еще находится на стадии альфа тестирования и не подходит для использовании в промышленной эксплуатации, тем не менее в процессе регулярного тестирования последний крах ядра из-за сбоя nftables был зафиксирован несколько месяцев назад.

  1. Главная ссылка к новости (http://marc.info/?l=linux-netd...)
Лицензия: CC-BY
Тип: Интересно / К сведению
Ключевые слова: netfilter, firewall, iptables, linux
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, chemtech, 17:00, 20/03/2009 [ответить] [смотреть все]
  • +/
    Ну сейчас начнется: PF против nftables... ))))))))
     
     
  • 2.4, aim, 17:20, 20/03/2009 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    судя по всему pf опять вырулит по-простоте синтаксиса как минимум
     
     
  • 3.28, junker, 22:42, 20/03/2009 [^] [ответить] [смотреть все]
  • +/
    кстати не факт с учётом вот этого и фронтэнда, работающего на уровне пользова... весь текст скрыт [показать]
     
     
  • 4.52, dry, 12:43, 23/03/2009 [^] [ответить] [смотреть все]  
  • +/
    не вижу прорыва заменили одну хорошую реализацию на другую надеюсь не менее хо... весь текст скрыт [показать]
     
  • 2.6, abigor, 17:31, 20/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Даешь холливар pf vs nftables А вообще, честно, я не понимаю эту разницу в ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.7, Nick, 17:34, 20/03/2009 [^] [ответить] [смотреть все]  
  • +/
    разведи-разведи особенно о психологическом аспекте договорённости об едином и... весь текст скрыт [показать]
     
  • 3.8, Andrew, 17:42, 20/03/2009 [^] [ответить] [смотреть все]  
  • +/
    IPFilter ... весь текст скрыт [показать]
     
  • 3.20, User294, 20:24, 20/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Можно продолжить идею а почему бы не сделать единую модель авто, похоронив все ... весь текст скрыт [показать]
     
     
  • 4.38, ., 04:13, 21/03/2009 [^] [ответить] [смотреть все]  
  • +/
    рули, педали и ПДД одинаковые... весь текст скрыт [показать]
     
     
  • 5.41, Michael Shigorin, 13:13, 21/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Угу --- левые и правые, две и три, теоретические и практические а так да, кон... весь текст скрыт [показать]
     
  • 5.43, User294, 13:51, 21/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Да, конечно, в какойнить тойоте руль ну совсем как у копейки, никто и не сомнева... весь текст скрыт [показать]
     
  • 1.2, User294, 17:18, 20/03/2009 [ответить] [смотреть все]  
  • +/
    >    include "ipv4-filter"

    А я думал - stdio.h =)

     
  • 1.3, User294, 17:19, 20/03/2009 [ответить] [смотреть все]  
  • +/
    > создавать переменные, выполнять математические операции

    А тормозить все это не будет?

     
     
  • 2.11, Sem, 17:53, 20/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Я думаю, что все операции будут происходить в момент загрузки правил С чего ему... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.22, User294, 20:33, 20/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Если так - было б гут А то есть области где каждый лишний такт проца-как нож в с... весь текст скрыт [показать]
     
     
  • 4.25, Knuckles, 21:23, 20/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Так написано же, что будет парситься и перемалываться в псевдокод Я так понимаю... весь текст скрыт [показать]
     
  • 1.9, Аноним, 17:44, 20/03/2009 [ответить] [смотреть все]  
  • +/
    Напоминиет миграцию от комбайнеров к шейдерам в OpenGL.
     
  • 1.10, Аноним, 17:48, 20/03/2009 [ответить] [смотреть все]  
  • +/
    Интересно, синтаксис iptables ужасен, новый nftables мне нравится, хотя лучше pf... весь текст скрыт [показать]
     
     
  • 2.49, Аноним, 19:49, 21/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Наоборот, синтаксис iptables устраивает полностью А пример из текста новости со... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.54, Осторожный, 07:28, 24/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Давай более простой вопрос Ты вообще видел и использовал pf Если нет, тогда с... весь текст скрыт [показать]
     
  • 1.12, Аноним, 18:01, 20/03/2009 [ответить] [смотреть все]  
  • +/
    Ну хоть не XML
     
     
  • 2.40, СуперАноним, 12:16, 21/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А почему бы и не на XML правила записывать Транслятор соответствующий мог бы их... весь текст скрыт [показать] [показать ветку]
     
  • 1.14, Аноним, 18:14, 20/03/2009 [ответить] [смотреть все]  
  • +/
    покороче нельзя было название придумать?
     
  • 1.17, spamtrap, 18:58, 20/03/2009 [ответить] [смотреть все]  
  • +/
    >определенные пользователем правила теперь преобразуются в специальный упрощенный псевдокод, который используется для принятия решения

    слабаки! нада было сразу в машинный код транслировать. а так придётся потом этот псевдокод интерпретировать, и получится, что файлвол - интерпретатор собственного байт-кода в режиме ядра

     
     
  • 2.27, User294, 22:22, 20/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А что с портабельностью делать Генерилка кода для всех поддерживаемых платформ -... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.44, Аноним, 16:16, 21/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Здесь может помочь llvm
     
  • 1.19, o.k., 19:59, 20/03/2009 [ответить] [смотреть все]  
  • +/
    главное, чтоб списки адресов наконец реализовали ..
     
     
  • 2.21, Аноним, 20:30, 20/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    ip daddr { 192.168.0.0/24 => drop, 192.168.0.100 => accept}
     
     
  • 3.23, bill, 20:43, 20/03/2009 [^] [ответить] [смотреть все]  
  • +/
    Эт не то, если я правильно понял В ipfw есть таблицы, очень удобная фича ... весь текст скрыт [показать]
     
     
  • 4.35, o.k., 01:20, 21/03/2009 [^] [ответить] [смотреть все]  
  • +/
    угу именно, только в ipfw ими я не пользовался, а вот в pf юзал постоянно tab... весь текст скрыт [показать]
     
  • 2.37, sky, 01:49, 21/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Реализация давно есть, но ее не включили в ядро http ipset netfilter org ... весь текст скрыт [показать] [показать ветку]
     
  • 1.24, geekkoo, 20:45, 20/03/2009 [ответить] [смотреть все]  
  • +/
    Когда ж они наконец успокоятся? Сначала был ipfwadm, потом ipchains, затем долгое время iptables, который даже при переезде на 2.6.0 не сломали. Но покой нам только снится ... Это было обманчивое затишье.
     
     
  • 2.42, Michael Shigorin, 13:16, 21/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    iptables оказался весьма good enough, чтоб мотивация по замене копилась небыстро... весь текст скрыт [показать] [показать ветку]
     
  • 1.26, СуперАноним, 21:31, 20/03/2009 [ответить] [смотреть все]  
  • +/
    Так и Layer7 фильтрацию наконец бы в него ванильно включили
    http://l7-filter.sourceforge.net/
     
  • 1.29, zed, 22:51, 20/03/2009 [ответить] [смотреть все]  
  • +/
    а разве pf не кроссплатформенный? он вроде везде работает
     
     
  • 2.36, o.k., 01:22, 21/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    в BSD только... в linux к сожалению нет.
     
     
  • 3.55, Осторожный, 07:30, 24/03/2009 [^] [ответить] [смотреть все]  
  • +/
    >в BSD только... в linux к сожалению нет.

    Вроде как есть порт pf в Windows

     
  • 1.31, Touch, 23:30, 20/03/2009 [ответить] [смотреть все]  
  • +/
    PF PF ..  Layer 2 он умеет ?.. нет .. прохождение всего списка правил снова после попадания в altq например ?.. нет .. равномерное распределение пропускной способности по типу pipe с weight ?.. нет .. вобщем ipfw+dummynet .. хоть закидайте меня помидорами по самую макушку :)
     
     
  • 2.32, Touch, 23:32, 20/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    да, забыл про forward и divert совместно с несколькими одновременно работающими ... весь текст скрыт [показать] [показать ветку]
     
  • 2.34, iZEN, 00:33, 21/03/2009 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Видимо, давно man 5 pf conf не смотрел На, почитай http www freebsd org c... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.47, Touch, 19:12, 21/03/2009 [^] [ответить] [смотреть все]  
  • +/
    man 5 pf conf 124 col -b 124 grep -i mac 124 grep -vi macro 124 gr... весь текст скрыт [показать]
     
     
  • 4.48, Touch, 19:18, 21/03/2009 [^] [ответить] [смотреть все]  
  • +/
    кстати по ссылке человек выбрал pf потому что видно не прочёл man natd, который ... весь текст скрыт [показать]
     
     
  • 5.51, o.k., 10:25, 22/03/2009 [^] [ответить] [смотреть все]  
  • +/
    ну не смешите и binat там несомненно есть ... весь текст скрыт [показать]
     
  • 1.33, nuclight, 23:47, 20/03/2009 [ответить] [смотреть все]  
  • +/
    >Для формирования правил фильтрации в nftables представлена утилита nft , которая проверяет
    >корректность правил и транслирует их в псевдокод.

    Байт-код? То есть в линуксе наконец-то изобрели ipfw2 ? Поздравляю!

     
  • 1.39, chodorenko, 11:47, 21/03/2009 [ответить] [смотреть все]  
  • +/
    вообще както странно, неужели нельзя отделить написание правил от конкретного типа фаервола ? ну не пофигу ли вам во что преобразуется iptables -s $localnet -j Accept ? главное чтобы транслятор мог правильно преобразовать и скорость работы была нормальной. A вообщето опять начинается изобретение велосипеда как и с буфером обмена
     
  • 1.50, Аноним, 05:00, 22/03/2009 [ответить] [смотреть все]  
  • +/
    Ну из плюсов очевидно подедржка обоих протоколов v4 v6 и бриджинг ну и соответст... весь текст скрыт [показать]
     
  • 1.53, Осторожный, 17:30, 23/03/2009 [ответить] [смотреть все]  
  • +/
    Похоже что разработчики iptables наконец-то прочитали faq по pf и наконец-то увидели, как они были не правы.
    Решили срочно исправиться и все переделать ...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor