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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.