nftables paket filtri 0.9.3 versiyasi

nashr etilgan paketli filtrni chiqarish nftables 0.9.3, IPv6, IPv4, ARP va tarmoq ko'priklari uchun paketli filtrlash interfeyslarini birlashtirib, iptables, ip6table, arptables va ebtables o'rnini bosuvchi sifatida rivojlanmoqda. nftables to'plami foydalanuvchi maydonida ishlaydigan paket filtri komponentlarini o'z ichiga oladi, yadro darajasidagi ish esa 3.13 versiyasidan beri Linux yadrosining bir qismi bo'lgan nf_tables quyi tizimi tomonidan ta'minlanadi. nftables 0.9.3 versiyasi ishlashi uchun zarur bo'lgan o'zgarishlar Linux 5.5 yadrosi bo'limiga kiritilgan.

Yadro darajasi paketlardan ma'lumotlarni olish, ma'lumotlar operatsiyalarini bajarish va oqimlarni boshqarish uchun asosiy funktsiyalarni ta'minlaydigan faqat umumiy protokoldan mustaqil interfeysni ta'minlaydi. Filtrlash mantig'ining o'zi va protokolga xos ishlov beruvchilar foydalanuvchi maydonida bayt-kodga kompilyatsiya qilinadi, shundan so'ng bu bayt kod Netlink interfeysi yordamida yadroga yuklanadi va BPF (Berkeley Packet Filters) ni eslatuvchi maxsus virtual mashinada bajariladi. Ushbu yondashuv yadro darajasida ishlaydigan filtrlash kodining hajmini sezilarli darajada kamaytirish va protokollar bilan ishlash uchun tahlil qilish qoidalari va mantiqining barcha funktsiyalarini foydalanuvchi maydoniga ko'chirish imkonini beradi.

Asosiy innovatsiyalar:

  • Vaqt bo'yicha mos keladigan paketlarni qo'llab-quvvatlash. Siz qoida ishga tushiriladigan vaqt va sana diapazonlarini belgilashingiz va haftaning alohida kunlarida ishga tushirishni sozlashingiz mumkin. Shuningdek, davr vaqtini soniyalarda ko'rsatish uchun yangi "-T" opsiyasi qo'shildi.

    meta vaqt \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    meta soat \"17:00\" - \"19:00\"
    meta kun \"Jum\"

  • SELinux belgilarini tiklash va saqlashni qo'llab-quvvatlash (secmark).

    ct secmark meta secmark to'plami
    meta secmark to'plami ct secmark

  • Har bir backend uchun bir nechta qoidani aniqlash imkonini beruvchi sinproksi xaritalar roʻyxatini qoʻllab-quvvatlash.

    jadval ip foo {
    sinproksi https-sinproksi {
    Xabar 1460
    miqyosi 7
    vaqt tamg'asi sack-perm
    }

    sinproksi boshqa-sinproksi {
    Xabar 1460
    miqyosi 5
    }

    zanjir oldingi {
    turi filtri kanca oldindan marshrutlash ustuvor xom; siyosatni qabul qilish;
    tcp dport 8888 tcp bayroqlari syn nottrack
    }

    zanjir bar {
    turi filtri kanca oldinga ustuvor filtri; siyosatni qabul qilish;
    ct holati yaroqsiz, kuzatilmagan sinproksi nomi ip saddr xaritasi {192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “boshqa-sinproksi” }
    }
    }

  • Paketlarni qayta ishlash qoidalaridan o'rnatilgan elementlarni dinamik ravishda olib tashlash qobiliyati.

    nft qoidani qo'shish ... o'chirish @set5 { ip6 saddr . ip6 daddr}

  • Tarmoq ko'prigi interfeysi metama'lumotlarida aniqlangan ID va protokol bo'yicha VLAN xaritasini qo'llab-quvvatlash;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Qoidalarni ko'rsatishda to'plamlar elementlarini istisno qilish uchun "-t" ("--terse") opsiyasi. "Nft -t list qoidalar to'plami" ishga tushirilsa, quyidagilar chiqadi:

    jadval ip x {
    o'rnatish y {
    ipv4_addr yozing
    }
    }

    Va "nft list qoidalari" bilan

    jadval ip x {
    o'rnatish y {
    ipv4_addr yozing
    elementlar = {192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Umumiy filtrlash qoidalarini birlashtirish uchun netdev zanjirlarida bir nechta qurilmalarni belgilash imkoniyati (faqat yadro 5.5 bilan ishlaydi).

    netdev x jadvalini qo'shing
    zanjir qo'shish netdev xy {\
    turi filtri kanca kirish qurilmalar = { eth0, eth1 } ustuvor 0;
    }

  • Ma'lumotlar turlarining tavsiflarini qo'shish qobiliyati.

    #nft ipv4_addrni tavsiflaydi
    ma'lumotlar turi ipv4_addr (IPv4 manzili) (asosiy turdagi butun son), 32 bit

  • Libreadline o'rniga linenoise kutubxonasi bilan CLI interfeysini yaratish qobiliyati.

    ./configure --with-cli=linenoise

Manba: opennet.ru

a Izoh qo'shish