LINUX.ORG.RU

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

 ,


0

0

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

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

Новый синтаксис правил, в котором можно задавать условия, создавать переменные, выполнять математические операции, выглядит так:

   include "ipv4-filter"

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

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

Взято с opennet.ru

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

★★★★★

Проверено: JB ()
что у нас там с --match-owner? зае***ся костыли городить на проверку процесса, генерящего траф...
sda00 ★★★
()
непонимаю, зачем делать замену, почему не сделать дополнение, как во FreeBSD, помоиму было бы гораздо профитнее =/
hizel ★★★★★
()
Ответ на: комментарий от hizel
Как я понял это счастье, то минимизируется ядерная часть, ядру передается уже этот псевдокод. А на userspace ложится задача прослойки между homo sapiens и kernel.
Pavval ★★★★★
() автор топика
Ответ на: комментарий от wfrr
>Не прошло и десяти лет как до разрабов iptables дошло что правила пишутся людями.
Для людёв уже хз сколько времени существует ferm.
PA
()
Ответ на: комментарий от wfrr
>Костыли для инвалидов а не для людей.
Протестую, ferm не костыль, а прослойка между iptables и прослойкой между креслом и компьютером :-).
P.S. ferm, кстати, проводит верификацию конфига и в случае ошибки не применяет изменения. Обычный такой себе скрипт на PERL, кстати.
PA
()
Ответ на: комментарий от v12aml
А нечего было ночами вместо сна компилять генту и писать конфиг к ипитаблесу, теперь ты не человек, потому разницы и не видишь.
wfrr ★★☆
()
с таким конфигом останется тока иксы ставить на сервер и гуевую конфигурилку. иптаблес рулит.
bernd ★★★★★
()
Ответ на: комментарий от wfrr
Пример конфига ferm:

table filter chain INPUT {
saddr (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8) {
proto tcp dport (http https ssh) ACCEPT;
proto udp dport domain ACCEPT;
}
}


или так:
@def $ADMIN_HOSTS = (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8);

table filter chain INPUT {
saddr $ADMIN_HOSTS {
proto tcp dport (http https ssh) ACCEPT;
proto udp dport domain ACCEPT;
}
}

Куда уж проще?
PA
()
в принципе ничего нового - чекпойнт придумали это лет эдак 15 назад,правда они там используют язык inspect для написания правил.Ждем человеческих гуев.
dyadko
()
Ответ на: комментарий от alt0v14
> а чего сложного в iptables что "люди" не осилили, там же все элементарно, не то что tc :)

Точно подмечено. Синтаксис iptables может казаться странным, пока не столкнёшься с tc :)

const86 ★★★★★
()
а как же simple, keep it simple? iptables можно быстро по памяти настроить хоть в 30меговом дистрибутиве, хоть вообще в initrd. А теперь - файлы, длинные тексты.

Не хороните linux!
ARHL
()
Ответ на: комментарий от wfrr
люди обычно умеют читать. Есть отличный иптаблес туториал, после прочтения которого сразу начинаешь все понимать. мануал переведен на тучу языков.
mrdeath ★★★★★
()
Ответ на: комментарий от PA
>Пример конфига ferm:
>
>table filter chain INPUT {
>saddr (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8) {
>proto tcp dport (http https ssh) ACCEPT;
>proto udp dport domain ACCEPT;
>}
>}
>или так:
>@def $ADMIN_HOSTS = (1.2.3.4 2.3.4.5 3.4.5.6 4.5.6.7 5.6.7.8);
>
>table filter chain INPUT {
>saddr $ADMIN_HOSTS {
>proto tcp dport (http https ssh) ACCEPT;
>proto udp dport domain ACCEPT;
>}
>Куда уж проще?

Проще? Пожалуйста:
ВХОДЯЩИЕ (почта, сайт, ненужная фигня) = РАЗРЕШИТЬ
ВХОДЯЩИЕ (какой-то порт непонятный) = СЕРВЕР ВНУТРИ:ПОРТ
ИСХОДЯЩИЕ (все) = СДЕЛАТЬ КАК У ЛЮДЕЙ
ОСТАЛЬНОЕ = ОТВЕТИТЬ ТЕМ-ЖЕ
Mr_Alone ★★★★★
()
Ответ на: комментарий от Pavval
Ура, кто-то понял что значит для людей.
wfrr ★★☆
()
Даешь sendmail в ядро!
eXOR ★★★★★
()
Прозреваю что из-за вынесения кода который будет принимать решения по правилам за пределы ядра всё это будет на порядок тормознее. Фрюшники опять вылезут и будут кричать что фря как говнороутер заруливает линуксы.
А синтаксис приятный весьма. Хотя что мешало сделать pf-подобный? Ну да ладно, посмотрим что из этого вырастет
Stiletto
()
Ответ на: комментарий от svu
Нет, shorewall.

а вообще, нужен демон, который будет периодически тестировать сеть и перенастраивать ее в соответствии с изменяющимися условиями.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2
> а вообще, нужен демон, который будет периодически тестировать сеть и перенастраивать ее в соответствии с изменяющимися условиями.

Демоны для протоколов RIP и OSPF написали чорт знает как давно.
gaa ★★
()
Ответ на: комментарий от gaa
>Демоны для протоколов RIP и OSPF написали чорт знает как давно.
а зебра/квагга/бирд уже умеют за меня настроить файрволл?
Stiletto
()
Ответ на: комментарий от Stiletto
>Прозреваю что из-за вынесения кода который будет принимать решения по правилам за пределы ядра всё это будет на порядок тормознее. Фрюшники опять вылезут и будут кричать что фря как говнороутер заруливает линуксы.

Подозрительный ты мой! Ядро работает согласно правилам в псевдокоде. Никакого userspace. userspace только переводит текстовые правила в псевдокод.
Pavval ★★★★★
() автор топика
Ответ на: комментарий от Mr_Alone
> ИСХОДЯЩИЕ (все) = СДЕЛАТЬ КАК У ЛЮДЕЙ

Метко

xio
()
Ответ на: комментарий от const86
> Синтаксис iptables может казаться странным, пока не столкнёшься с tc

Утраиваю. После того, как попробовал настроить tc, iptablesa больше не боюсь.

a3
()
Ответ на: комментарий от sda00
> что у нас там с --match-owner? зае***ся костыли городить на проверку процесса, генерящего траф...

+1024 ^ pi А вообще посмотрим, пощупаем :)

RaySlava
()
Ответ на: комментарий от wfrr
>
Не прошло и десяти лет как до разрабов iptables дошло что правила пишутся людями.

по моему в iptables все ясно наглядно и понятно , в отличие от ЭТОГО.
Sith ★★★★★
()
Ответ на: комментарий от Pavval
А обратно псевдокод в правила кто переводит? Или из файла мы грузим понятные правила, а потом если надо постотреть текущие настройки, получаем кашу?

И так в iptables была проблема, что при выводе правил (iptables -L) получаем опции не совсем в том виде, в каком указывали при вводе, например, -j SNAT --to-source x.x.x.x, а в выводе to:x.x.x.x.

P.S. Интерестно, а будут в iptables добавлять возможность нескольких целей в одном правиле, типа "-j LOG -j DROP" ?

mky ★★★★★
()
Ответ на: комментарий от Sith
>по моему в iptables все ясно наглядно и понятно , в отличие от ЭТОГО.
+1, ппкс

Куда уже проще iptables'а не знаю, а вот на этих конструкциях мозг встал... бред какой-то, для освоения ipt синтаксиса нуна просто знать работу tcp/ip стэка, для освоения ЭТОГО походу еще и программить не подетски.
Kalashmat
()
Ответ на: комментарий от a3
> После того, как попробовал настроить tc, iptablesa больше не боюсь.

Не пробовал настраивать tc, но в iptables всё достаточно понятно и вовсе не нужно быть биороботом чтобы понять =) В крайнем случае всегда есть iptables tutorial переведённый в том числе и на русский
angel_eyes
()
Не имеет смысла - iptables и так очень-очень понятная вещь.
Df_Yz
()
Ответ на: комментарий от wfrr
> Не прошло и десяти лет как до разрабов iptables дошло что правила пишутся людями.

Но белка-то справилась? ;) И среднестатистический пользователь осилит, если постарается.
angel_eyes
()
Ответ на: комментарий от Stiletto
>> Демоны для протоколов RIP и OSPF написали чорт знает как давно.
> а зебра/квагга/бирд уже умеют за меня настроить файрволл?


Конечно. А ещё кастрюля за тебя кашу переваривает.
gaa ★★
()
Ответ на: комментарий от mky
> А обратно псевдокод в правила кто переводит? Или из файла мы грузим понятные правила, а потом если надо постотреть текущие настройки, получаем кашу?

А зачем? Давно ты программы декомпилировал?
gaa ★★
()
Ответ на: комментарий от angel_eyes
>Не пробовал настраивать tc

стоит попробовать. это развчлечение для стойких духом.
prizident ★★★★★
()
Ответ на: комментарий от angel_eyes
> И среднестатистический пользователь осилит, если постарается.

Среднестатистический пользователь не должен разбираться в iptables. Должен быть гуй, в котором можно просто и понятно настроить firewall. Базовые вещи. Если кому надо посложнее, пусть пишет правила сам.

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