phát hành bộ lọc gói nftables 0.9.3

được phát hành giải phóng bộ lọc gói nftables 0.9.3, развивающегося в качестве замены iptables, ip6table, arptables и ebtables за счёт унификации интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов. В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. Необходимые для работы выпуска nftables 0.9.3 изменения включены в состав будущей ветки ядра Linux 5.5.

Cấp độ kernel chỉ cung cấp một giao diện chung độc lập với giao thức, cung cấp các chức năng cơ bản để trích xuất dữ liệu từ các gói, thực hiện các hoạt động dữ liệu và kiểm soát luồng. Bản thân logic lọc và các trình xử lý dành riêng cho giao thức được biên dịch thành mã byte trong không gian người dùng, sau đó mã byte này được tải vào kernel bằng giao diện Netlink và được thực thi trong một máy ảo đặc biệt gợi nhớ đến BPF (Bộ lọc gói Berkeley). Cách tiếp cận này cho phép bạn giảm đáng kể kích thước của mã lọc đang chạy ở cấp kernel và chuyển tất cả các chức năng của quy tắc phân tích cú pháp và logic để làm việc với các giao thức vào không gian người dùng.

Những đổi mới chính:

  • Поддержка сопоставления пакетов по времени. Можно определить как диапазоны времени и дат, в которых будет срабатывать правило, так и настроить срабатывание в отдельные дни недели. Также добавлена новая опция «-T» для вывода эпохального времени в секундах.

    meta time \»2019-12-24 16:00\» — \»2020-01-02 7:00\»
    meta hour \»17:00\» — \»19:00\»
    meta day \»Fri\»

  • Поддержка восстановления и сохранения меток SELinux (secmark).

    ct secmark set meta secmark
    meta secmark set ct secmark

  • Поддержка map-списков synproxy, позволяющих определять более одного правила на бэкенд.

    bảng ip foo {
    synproxy https-synproxy {
    tin nhắn 1460
    wscale 7
    timestamp sack-perm
    }

    synproxy other-synproxy {
    tin nhắn 1460
    wscale 5
    }

    chain pre {
    loại móc lọc ưu tiên định tuyến trước thô; chính sách chấp nhận;
    tcp dport 8888 cờ tcp đồng bộ notrack
    }

    thanh xích {
    loại bộ lọc móc ưu tiên bộ lọc chuyển tiếp; chính sách chấp nhận;
    ct state invalid,untracked synproxy name ip saddr map { 192.168.1.0/24 : «https-synproxy», 192.168.2.0/24 : «other-synproxy» }
    }
    }

  • Возможность динамического удаления элементов set-наборов из правил обработки пакетов.

    nft add rule … delete @set5 { ip6 saddr . ip6 daddr }

  • Поддержка сопоставления VLAN по идентификатору и протоколу, определённых в метаданных интерфейса сетевого моста;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Опция «-t» («—terse») для исключения элементов set-наборов при отображении правил. При выполнении «nft -t list ruleset» будет выведено:

    bảng ip x {
    đặt y {
    type ipv4_addr
    }
    }

    А при «nft list ruleset»

    bảng ip x {
    đặt y {
    type ipv4_addr
    elements = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Возможность указания более одного устройства в цепочках netdev (работает только с ядром 5.5) для объединения типовых правил фильтрации.

    add table netdev x
    add chain netdev x y { \
    type filter hook ingress devices = { eth0, eth1 } priority 0;
    }

  • Возможность добавления описаний типов данных.

    # nft describe ipv4_addr
    datatype ipv4_addr (IPv4 address) (basetype integer), 32 bits

  • Возможность сборки CLI-интерфейса с библиотекой linenoise вместо libreadline.

    ./configure —with-cli=linenoise

Nguồn: opennet.ru

Thêm một lời nhận xét