nftables packet filter 0.9.3 ထွက်ရှိသည်။

ထုတ်ဝေခဲ့သည်။ ပက်ကေ့ဂျ်ထုတ်ခြင်း nftables 0.9.3IPv6၊ IPv4၊ ARP နှင့် ကွန်ရက်တံတားများအတွက် packet filtering interfaces များကို ပေါင်းစည်းခြင်းဖြင့် iptables၊ ip6table၊ arptables နှင့် ebtables များအတွက် အစားထိုးတစ်ခုအဖြစ် တီထွင်ဖန်တီးနေပါသည်။ nftables ပက်ကေ့ဂျ်တွင် အသုံးပြုသူနေရာလွတ်တွင် လည်ပတ်နေသော ပက်ကက်စစ်ထုတ်သည့် အစိတ်အပိုင်းများ ပါ၀င်ပြီး kernel-level အလုပ်ကို 3.13 ကတည်းက Linux kernel ၏ တစ်စိတ်တစ်ပိုင်းဖြစ်သည့် nf_tables ခွဲစနစ်က ပံ့ပိုးပေးထားသည်။ အလုပ်လုပ်ရန်အတွက် nftables 0.9.3 ထွက်ရှိမှုအတွက် လိုအပ်သောပြောင်းလဲမှုများသည် လာမည့် Linux 5.5 kernel ဌာနခွဲတွင် ပါဝင်သည်။

kernel အဆင့်သည် ပက်ကတ်များမှ ဒေတာထုတ်ယူရန်၊ ဒေတာလည်ပတ်မှုနှင့် စီးဆင်းမှုထိန်းချုပ်မှုအတွက် အခြေခံလုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးသည့် ယေဘူယျပရိုတိုကော-အမှီအခိုကင်းသော အင်တာဖေ့စ်ကို ထောက်ပံ့ပေးသည်။ စစ်ထုတ်ခြင်းဆိုင်ရာ ယုတ္တိဗေဒနှင့် ပရိုတိုကော-သတ်သတ်မှတ်မှတ် ကိုင်တွယ်သူများကို အသုံးပြုသူနေရာရှိ ဘိုက်ကုဒ်အဖြစ် စုစည်းထားပြီး၊ ထို့နောက်တွင် ဤ bytecode ကို Netlink အင်တာဖေ့စ်ကို အသုံးပြု၍ kernel ထဲသို့ တင်ကာ BPF (Berkeley Packet Filters) ကို အမှတ်ရသည့် အထူး virtual machine တွင် လုပ်ဆောင်သည်။ ဤချဉ်းကပ်မှုသည် kernel အဆင့်တွင် လုပ်ဆောင်နေသော စစ်ထုတ်ကုဒ်၏ အရွယ်အစားကို သိသာထင်ရှားစွာ လျှော့ချနိုင်ပြီး ပရိုတိုကောများနှင့် လုပ်ဆောင်ရန်အတွက် အသုံးပြုသူနေရာသို့ ခွဲခြမ်းစိတ်ဖြာခြင်းဆိုင်ရာ စည်းမျဉ်းများနှင့် ယုတ္တိဗေဒဆိုင်ရာ လုပ်ငန်းဆောင်တာအားလုံးကို ရွှေ့နိုင်စေပါသည်။

အဓိက တီထွင်ဆန်းသစ်မှုများ-

  • အချိန်အလိုက် ကိုက်ညီသော packets များအတွက် ပံ့ပိုးမှု။ စည်းမျဉ်းကို အစပျိုးမည့် အချိန်နှင့် ရက်စွဲအပိုင်းအခြား နှစ်ခုစလုံးကို သင်သတ်မှတ်နိုင်ပြီး တစ်ပတ်၏ တစ်ဦးချင်းနေ့ရက်များတွင် အစပျိုးခြင်းကို စီစဉ်သတ်မှတ်နိုင်သည်။ စက္ကန့်ပိုင်းအတွင်း epochal time ကိုပြသရန် ရွေးချယ်မှုအသစ် "-T" ကိုလည်း ထည့်သွင်းထားသည်။

    မက်တာအချိန် \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    မက်တာနာရီ \"17:00\" - \"19:00\"
    မက်တာနေ့ \"သောကြာနေ့\"

  • SELinux အမှတ်အသားများ (secmark) ပြန်လည်ရယူခြင်းနှင့် သိမ်းဆည်းခြင်းအတွက် ပံ့ပိုးမှု။

    ct secmark သည် meta secmark ကိုသတ်မှတ်သည်။
    meta secmark သတ်မှတ် ct secmark

  • နောက်ကွယ်တွင် စည်းမျဉ်းတစ်ခုထက်ပို၍ သတ်မှတ်နိုင်စေမည့် synproxy မြေပုံစာရင်းများအတွက် ပံ့ပိုးမှု။

    ip foo ဇယား {
    synproxy https-synproxy {
    mss ၅
    wscale ၇
    အချိန်တံဆိပ်တုံး sack-perm
    }

    synproxy အခြား-synproxy {
    mss ၅
    wscale ၇
    }

    ကွင်းဆက်အကြို {
    အမျိုးအစား filter ချိတ် ဦးစားပေး ကုန်ကြမ်း၊ မူဝါဒလက်ခံ;
    tcp dport 8888 tcp အလံများ syn notrack
    }

    ကွင်းဆက်ဘား {
    အမျိုးအစား filter ကိုရှေ့ဆက်ချိတ် ဦးစားပေး filter; မူဝါဒလက်ခံ;
    ct အခြေအနေ မမှန်ပါ၊ ခြေရာခံမထားသော synproxy အမည် ip saddr မြေပုံ { 192.168.1.0/24 : “https-synproxy”၊ 192.168.2.0/24 : “other-synproxy” }
    }
    }

  • packet processing rules မှ set element များကို dynamically ဖယ်ရှားနိုင်စွမ်း။

    nft add rule ... @set5 { ip6 saddr ကိုဖျက်ပါ။ ip6 ဖေဖေ}

  • ကွန်ရက်တံတား အင်တာဖေ့စ် မက်တာဒေတာတွင် သတ်မှတ်ထားသော ID နှင့် ပရိုတိုကောဖြင့် VLAN မြေပုံဆွဲခြင်းအတွက် ပံ့ပိုးမှု။

    meta ibrpvid 100
    meta ibrvproto vlan

  • စည်းမျဥ်းများကိုပြသသည့်အခါ set sets ၏ဒြပ်စင်များကိုဖယ်ထုတ်ရန် ရွေးချယ်စရာ "-t" ("--terse")။ "nft -t list ruleset" ကို run ခြင်းဖြင့် output ထွက်လာသည်-

    ဇယား ip x {
    သတ်မှတ် y {
    ipv4_addr ဟုရိုက်ပါ။
    }
    }

    “nft list ruleset” ဖြင့်၊

    ဇယား ip x {
    သတ်မှတ် y {
    ipv4_addr ဟုရိုက်ပါ။
    အစိတ်အပိုင်းများ = { 192.168.10.2၊ 192.168.20.1၊
    192.168.4.4၊ 192.168.2.34 }
    }
    }

  • ဘုံစစ်ထုတ်ခြင်းစည်းမျဉ်းများကို ပေါင်းစပ်ရန် netdev ကွင်းဆက်များ (kernel 5.5 နှင့်သာ အလုပ်လုပ်သည်) တွင် စက်တစ်ခုထက်ပို၍ သတ်မှတ်နိုင်မှု။

    netdev x ဇယားကိုထည့်ပါ။
    ချိတ်ဆက်မှု netdev xy { \
    type filter ချိတ် ingress devices = { eth0, eth1 } ဦးစားပေး 0;
    }

  • ဒေတာအမျိုးအစားများ၏ ဖော်ပြချက်များကို ထည့်သွင်းနိုင်မှု။

    #nft သည် ipv4_addr ကိုဖော်ပြသည်။
    datatype ipv4_addr (IPv4 လိပ်စာ) (basetype integer), 32 bits

  • libreadline အစား linenoise စာကြည့်တိုက်ဖြင့် CLI interface ကိုတည်ဆောက်နိုင်မှု။

    ./configure --with-cli=linenoise

source: opennet.ru

မှတ်ချက် Add