Выпуск пакетного фильтра nftables 1.0.6
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Опубликован выпуск пакетного фильтра nftables 1.0.6, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком.
Непосредственно правила фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в ядре в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя.
Основные изменения:
- В оптимизаторе правил, вызываемом при указании опции "-o/--optimize", налажена автоматическая упаковка правил через их объединение и преобразование в map- и set-списки. Например, правила
# cat ruleset.nft
table ip x {
chain y {
type filter hook input priority filter; policy drop;
meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept
meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 accept
meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.3.0/24 accept
meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.4.0-2.2.4.10
accept
meta iifname eth2 ip saddr 1.1.1.3 ip daddr 2.2.2.5 accept
}
}
после выполнения "nft -o -c -f ruleset.nft" будут преобразованы в следующим образом:
ruleset.nft:4:17-74: meta iifname eth1 ip saddr 1.1.1.1 ip
daddr 2.2.2.3 accept
ruleset.nft:5:17-74: meta iifname eth1 ip saddr 1.1.1.2 ip
daddr 2.2.2.4 accept
ruleset.nft:6:17-77: meta iifname eth1 ip saddr 1.1.1.2 ip
daddr 2.2.3.0/24 accept
ruleset.nft:7:17-83: meta iifname eth1 ip saddr 1.1.1.2 ip
daddr 2.2.4.0-2.2.4.10 accept
ruleset.nft:8:17-74: meta iifname eth2 ip saddr 1.1.1.3 ip
daddr 2.2.2.5 accept
into:
iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 .
1.1.1.2 . 2.2.2.4, eth1 . 1.1.1.2 . 2.2.3.0/24, eth1 . 1.1.1.2 .
2.2.4.0-2.2.4.10, eth2 . 1.1.1.3 . 2.2.2.5 } accept
- Оптимизатор также может преобразовывать в более компактную форму правила, в которых уже используются простые set-списки, например правила:
# cat ruleset.nft
table ip filter {
chain input {
type filter hook input priority filter; policy drop;
iifname "lo" accept
ct state established,related accept comment "In traffic we
originate, we trust"
iifname "enp0s31f6" ip saddr { 209.115.181.102,
216.197.228.230 } ip daddr 10.0.0.149 udp sport 123 udp dport 32768-65535 accept
iifname "enp0s31f6" ip saddr { 64.59.144.17, 64.59.150.133 }
ip daddr 10.0.0.149 udp sport 53 udp dport 32768-65535 accept
}
}
после выполнения "nft -o -c -f ruleset.nft" будут упакованы следующим образом:
ruleset.nft:6:22-149: iifname "enp0s31f6" ip saddr {
209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 udp sport 123 udp dport
32768-65535 accept
ruleset.nft:7:22-143: iifname "enp0s31f6" ip saddr {
64.59.144.17, 64.59.150.133 } ip daddr 10.0.0.149 udp sport 53 udp dport
32768-65535 accept
into:
iifname . ip saddr . ip daddr . udp sport . udp dport {
enp0s31f6 . 209.115.181.102 . 10.0.0.149 . 123 . 32768-65535, enp0s31f6 .
216.197.228.230 . 10.0.0.149 . 123 . 32768-65535, enp0s31f6 . 64.59.144.17 .
10.0.0.149 . 53 . 32768-65535, enp0s31f6 . 64.59.150.133 . 10.0.0.149 . 53 .
32768-65535 } accept
- Решена проблема с генерацией байткода для слияния интервалов, в которых применяются типы с разным порядком следования байтов, например IPv4 (сетевой порядок следования байтов) и meta mark (системный порядок следования байтов).
table ip x {
map w {
typeof ip saddr . meta mark : verdict
flags interval
counter
elements = {
127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : accept,
192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff :
accept,
}
}
chain k {
type filter hook input priority filter; policy drop;
ip saddr . meta mark vmap @w
}
}
- Налажено сопоставления редких протоколов при использовании raw-выражений, например:
meta l4proto 91 @th,400,16 0x0 accept
- Решены проблемы с включением правил с интервалами:
insert rule x y tcp sport { 3478-3497, 16384-16387 } counter accept
- Улучшен API JSON, в котором появилась поддержка выражений в set- и map-списках.
- В расширениях к python-библиотеке nftables разрешена загрузка наборов правил для обработки в режиме проверки ("-c") и добавлена поддержка внешнего определения переменных.
- В элементах set-списков разрешено добавление комментариев.
- В byte ratelimit разрешено указания нулевого значения.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://www.mail-archive.com/n...)
- OpenNews: Выпуск пакетного фильтра nftables 1.0.5
- OpenNews: Локальная уязвимость в nftables, позволяющая повысить свои привилегии
- OpenNews: Ещё одна уязвимость в подсистеме ядра Linux Netfilter
- OpenNews: Выпуск межсетевого экрана firewalld 1.2
- OpenNews: Уязвимость в подсистеме ядра Linux Netfilter
Похожие новости:
- Выпуск пакетного фильтра nftables 1.0.5
- Локальная уязвимость в nftables, позволяющая повысить свои привилегии
- Ещё одна уязвимость в подсистеме ядра Linux Netfilter
- Выпуск пакетного фильтра iptables 1.8.8
- Уязвимость в подсистеме netfilter, позволяющая выполнить код на уровне ядра Linux
- Выпуск пакетного фильтра nftables 1.0.2
- Разработчики Netfilter отстояли право коллективного принятия решений при нарушении GPL
- Выпуск пакетного фильтра nftables 1.0.1
- Выпуск пакетного фильтра nftables 1.0.0
- Уязвимость в подсистеме ядра Linux Netfilter
Теги для поиска: #_nftables, #_netfilter
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:57
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Опубликован выпуск пакетного фильтра nftables 1.0.6, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком. Непосредственно правила фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в ядре в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя. Основные изменения:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:57
Часовой пояс: UTC + 5