nftables 0.9.3 փաթեթի վերաշնորհի թողարկում

Հրապարակվել հիմնական փաթեթային ֆիլտրի թողարկում nftables 0.9.3, որը զարգանում է ի որպես փոխարինում iptables, ip6tables, arptables և ebtables, միաժամանակ միավորելով փաթեթների ֆիլտրավորման ինտերֆեյսները IPv4, IPv6, ARP և ցանցային կամուրջների համար։ nftables փաթեթը ներառում է օգտվողի пространстве աշխատող փաթեթների ֆիլտրավորման հանգույցներ, մինչդեռ միջուկի մակարդակում աշխատանքը ապահովում է nf_tables ենթակառուցվածքը, որը ներառված է Linux միջուկում սկսած 3.13 թողարկումից։ nftables 0.9.3 թողարկման համար անհրաժեշտ փոփոխությունները ներառված են ապագա Linux միջուկի 5.5 ճյուղում։

Միջուկի մակարդակում տրամադրվում է միայն ընդհանուր ինտերֆեյս, որը կախված չէ հատուկ պրոտոկոլից և ապահովում է տվյալների քաղելու հիմնական ֆունկցիաները, տվյալների վրա գործողությունների իրականացումը և հոսքի կառավարումը։ Հատուկ ֆիլտրավորման տրամաբանությունն ու պրոտոկոլներին հատուկ պրոցեսորները կոմպիլացվում են байткոդի ռեժիմով օգտվողի пространстве, հետո այդ байткոդը ներբեռնվում է միջուկ, օգտագործելով Netlink ինտերֆեյսը և իրականանում է հատուկ վիրտուալ մեքենայում, որի նմանությունը պատերազմի ֆիլտրերին (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

  • synproxy map-սписокների աջակցություն, որոնք թույլ են տալիս սահմանել մեկից ավելի կանոններ բեքենդի համար։

    լիցենզիա ip foo {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    timestamp sack-perm
    }

    synproxy other-synproxy {
    mss 1460
    wscale 5
    }

    chain pre {
    type filter hook prerouting priority raw; policy accept;
    tcp dport 8888 tcp flags syn notrack
    }

    աբով bar {
    type filter hook forward priority filter; policy accept;
    ct state invalid,untracked synproxy name ip saddr map { 192.168.1.0/24 : "https-synproxy", 192.168.2.0/24 : "other-synproxy" }
    }
    }

  • Dynamic түрде set-համայնքի տարրերի հեռացման հնարավորություն ֆիլտրացման կանոններում։

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

  • VLAN-ների համարժեքության աջակցություն նպատակայնի ըստ պարզման և պրոտոկոլի, որը սահմանվել է ցանցային կամրջի ինտերֆեյսի մետագիտություններում;

    meta ibrpvid 100
    meta ibrvproto vlan

  • «-t» ("—terse") ընտրանքը set-համայնքի տարրերը բացառելու համար կանոնների ցուցադրման ժամանակ։ «nft -t list ruleset» հրամանն իրականացնելիս ցուցադրվելու է:

    table ip x {
    set y {
    type ipv4_addr
    }
    }

    Եվ երբ «nft list ruleset»

    table ip x {
    set 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 հասցե) (basetype integer), 32 bits

  • CLI-հրահանգատուի հավաքման հնարավորություն linenoise գրադարանով libreadline-ի փոխարեն։

    .\/configure —with-cli=linenoise

Ընտանիք: opennet.ru

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster