נפטאַבלעס פּאַקאַט פילטער 0.9.5 מעלדונג

ארויס פּאַקאַט פילטער מעלדונג נפטאַבלעס 0.9.5, развивающегося в качестве замены iptables, ip6table, arptables и ebtables за счёт унификации интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов. В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. Необходимые для работы выпуска nftables 0.9.5 изменения включены в состав ядра Linux 5.7.

דער קערן מדרגה גיט בלויז אַ דזשאַנעריק פּראָטאָקאָל-פרייַ צובינד וואָס גיט יקערדיק פאַנגקשאַנז פֿאַר יקסטראַקטינג דאַטן פון פּאַקיץ, פּערפאָרמינג דאַטן אַפּעריישאַנז און לויפן קאָנטראָל. די פֿילטרירונג כּללים און פּראָטאָקאָל-ספּעציפיש האַנדלערס זענען קאַמפּיילד אין ביטעקאָדע אין באַניצער פּלאַץ, נאָך וואָס דעם בייטעקאָד איז לאָודיד אין די קערן ניצן די נעטלינק צובינד און עקסאַקיוטאַד אין די קערן אין אַ ספּעציעל ווירטואַל מאַשין רעמאַניסאַנט פון BPF (Berkeley Packet Filters). דער צוגאַנג אַלאַוז איר צו באטייטיק רעדוצירן די גרייס פון די פֿילטרירונג קאָד פליסנדיק אויף די קערן מדרגה און מאַך אַלע די פאַנגקשאַנז פון פּאַרסינג כּללים און לאָגיק פֿאַר ארבעטן מיט פּראָטאָקאָלס אין באַניצער פּלאַץ.

הויפּט חידושים:

  • В наборы добавлена поддержка счётчиков пакетов и трафика, привязанных к элементам набора. Счётчики включаются при помощи ключевого слова «counter»:

    טיש יפּ רענטגענ {
    set y {
    טיפּ פון יפּ סאַדר
    טאָמבאַנק
    עלעמענטן = {192.168.10.35, 192.168.10.101, 192.168.10.135}
    }

    קייט ז {
    type filter hook output priority filter; policy accept;
    ip daddr @y
    }
    }

  • Для установки начальных значений счётчиков, например, для восстановления прошлых счётчиков после перезапуска, набора можно использовать команду «nft -f»:

    # cat ruleset.nft
    טיש יפּ רענטגענ {
    set y {
    טיפּ פון יפּ סאַדר
    טאָמבאַנק
    elements = { 192.168.10.35 counter packets 1 bytes 84, 192.168.10.101 \
    counter p 192.168.10.135 counter packets 0 bytes 0 }
    }

    קייט ז {
    type filter hook output priority filter; policy accept;
    ip daddr @y
    }
    }
    # nft -f ruleset.nft
    # nft list ruleset
    טיש יפּ רענטגענ {
    set y {
    טיפּ פון יפּ סאַדר
    טאָמבאַנק
    elements = { 192.168.10.35 counter packets 1 bytes 84, 192.168.10.101 \
    counter p 192.168.10.135 counter packets 0 bytes 0 }
    }

    קייט ז {
    type filter hook output priority filter; policy accept;
    ip daddr @y
    }
    }

  • Поддержка счётчиков также добавлена во flowtable:

    טיש ip foo {
    flowtable bar {
    hook ingress priority -100
    devices = { eth0, eth1 }
    טאָמבאַנק
    }

    קייט פאָרויס {
    type filter hook forward priority filter;
    flow add @bar counter
    }
    }

    Посмотреть список счётчиков можно командной «conntrack -L»:

    tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47278 dport=5201 packets=9 bytes=608 \
    src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47278 packets=8 bytes=428 [OFFLOAD] mark=0 \
    secctx=null use=2 tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47280 dport=5201 \
    packets=1005763 bytes=44075714753 src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47280 \
    packets=967505 bytes=50310268 [OFFLOAD] mark=0 secctx=null use=2

  • В наборах для присоединений (concatenation, определённые связки адресов и портов, упрощающие сопоставление) обеспечена возможность использования директивы «typeof», определяющей тип данных элементов для составных частей элементов набора:

    טיש ip foo {
    שטעלן ווייטליסט {
    typeof ip saddr . tcp dport
    elements = { 192.168.10.35 . 80, 192.168.10.101 . 80 }
    }

    קייט באַר {
    טיפּ פילטער פאַרטשעפּען פּריראָוטינג בילכערקייַט פילטער; פאליסי פאַלן;
    ip daddr . tcp dport @whitelist accept
    }
    }

  • Директива typeof теперь также применима для присоединений в map-списках:

    טיש ip foo {
    מאַפּע אַדר2מאַרק {
    typeof ip saddr . tcp dport : meta mark
    elements = { 192.168.10.35 . 80 : 0x00000001,
    192.168.10.135 . 80 : 0x00000002 }
    }

    קייט באַר {
    טיפּ פילטער פאַרטשעפּען פּריראָוטינג בילכערקייַט פילטער; פאליסי פאַלן;
    meta mark set ip daddr . tcp dport map @addr2mark accept
    }
    }

  • Добавлена поддержка присоединений с диапазонами в анонимных (неименованных) наборах:

    # nft add rule inet filter input ip daddr . tcp dport \
    { 10.0.0.0/8 . 10-23, 192.168.1.1-192.168.3.8 . 80-443 } accept

  • Предоставлена возможность отбрасывания пакетов с флагами 802.1q (VLAN) при обработке сетевых мостов:

    # nft add rule bridge foo bar ether type vlan reject with tcp reset

  • Добавлена поддержка сопоставления по идентификатору TCP-сеанса (conntrack ID). Для определения conntrack ID можно использовать опцию «—output id»:

    # conntrack -L —output id
    udp 17 18 src=192.168.2.118 dst=192.168.2.1 sport=36424 dport=53 packets=2 \
    bytes=122 src=192.168.2.1 dst=192.168.2.118 sport=53 dport=36424 packets=2 bytes=320 \
    [ASSURED] mark=0 use=1 id=2779986232

    # nft add rule foo bar ct id 2779986232 counter

מקור: opennet.ru

לייגן אַ באַמערקונג