nftables ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ 0.9.3 ಬಿಡುಗಡೆ

ಪ್ರಕಟಿಸಲಾಗಿದೆ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ ಬಿಡುಗಡೆ nftables 0.9.3, развивающегося в качестве замены iptables, ip6table, arptables и ebtables за счёт унификации интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов. В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. Необходимые для работы выпуска nftables 0.9.3 изменения включены в состав будущей ветки ядра Linux 5.5.

ಕರ್ನಲ್ ಮಟ್ಟವು ಪ್ಯಾಕೆಟ್‌ಗಳಿಂದ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು, ಡೇಟಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಹರಿವಿನ ನಿಯಂತ್ರಣಕ್ಕೆ ಮೂಲಭೂತ ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುವ ಸಾಮಾನ್ಯ ಪ್ರೋಟೋಕಾಲ್-ಸ್ವತಂತ್ರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತದೆ. ಫಿಲ್ಟರಿಂಗ್ ಲಾಜಿಕ್ ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್-ನಿರ್ದಿಷ್ಟ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಬಳಕೆದಾರರ ಜಾಗದಲ್ಲಿ ಬೈಟ್‌ಕೋಡ್‌ಗೆ ಸಂಕಲಿಸಲಾಗುತ್ತದೆ, ನಂತರ ಈ ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ನೆಟ್‌ಲಿಂಕ್ ಇಂಟರ್ಫೇಸ್ ಬಳಸಿ ಕರ್ನಲ್‌ಗೆ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು BPF (ಬರ್ಕ್ಲಿ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್‌ಗಳು) ಅನ್ನು ನೆನಪಿಸುವ ವಿಶೇಷ ವರ್ಚುವಲ್ ಯಂತ್ರದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಈ ವಿಧಾನವು ಕರ್ನಲ್ ಮಟ್ಟದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಫಿಲ್ಟರಿಂಗ್ ಕೋಡ್‌ನ ಗಾತ್ರವನ್ನು ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಬಳಕೆದಾರರ ಜಾಗಕ್ಕೆ ಪ್ರೋಟೋಕಾಲ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಪಾರ್ಸಿಂಗ್ ನಿಯಮಗಳು ಮತ್ತು ತರ್ಕದ ಎಲ್ಲಾ ಕಾರ್ಯಗಳನ್ನು ಸರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು:

  • Поддержка сопоставления пакетов по времени. Можно определить как диапазоны времени и дат, в которых будет срабатывать правило, так и настроить срабатывание в отдельные дни недели. Также добавлена новая опция «-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, позволяющих определять более одного правила на бэкенд.

    ಟೇಬಲ್ ಐಪಿ ಫೂ {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    timestamp sack-perm
    }

    synproxy other-synproxy {
    mss 1460
    wscale 5
    }

    chain pre {
    ಕೌಟುಂಬಿಕತೆ ಫಿಲ್ಟರ್ ಹುಕ್ ಪೂರ್ವನಿರ್ಧರಿತ ಆದ್ಯತೆಯ ಕಚ್ಚಾ; ನೀತಿ ಸ್ವೀಕರಿಸಿ;
    tcp dport 8888 tcp ಫ್ಲ್ಯಾಗ್‌ಗಳು ಸಿನ್ ನೋಟ್ರಾಕ್
    }

    ಚೈನ್ ಬಾರ್ {
    ಟೈಪ್ ಫಿಲ್ಟರ್ ಹುಕ್ ಫಾರ್ವರ್ಡ್ ಆದ್ಯತೆಯ ಫಿಲ್ಟರ್; ನೀತಿ ಸ್ವೀಕರಿಸಿ;
    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» будет выведено:

    ಟೇಬಲ್ ip x {
    y { ಹೊಂದಿಸಿ
    type ipv4_addr
    }
    }

    А при «nft list ruleset»

    ಟೇಬಲ್ ip x {
    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

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ