nftables پيڪٽ فلٽر 1.0.0 رليز

پيڪٽ فلٽر nftables 1.0.0 جو رليز شايع ڪيو ويو آهي، IPv4، IPv6، ARP ۽ نيٽ ورڪ پل لاءِ پيڪٽ فلٽرنگ انٽرفيس کي متحد ڪرڻ (مقصد iptables، ip6table، arptables ۽ ebtables کي تبديل ڪرڻ). ڪم ڪرڻ لاءِ nftables 1.0.0 ڇڏڻ لاءِ گهربل تبديليون لينڪس 5.13 ڪنيل ۾ شامل آهن. نسخي نمبر ۾ هڪ اهم تبديلي ڪنهن به بنيادي تبديلين سان جڙيل نه آهي، پر صرف هڪ نتيجو آهي مسلسل تسلسل جي تسلسل جي نسخي ۾ انگن اکرن ۾ (اڳوڻي رليز 0.9.9 هئي).

nftables پيڪيج ۾ پيڪيٽ فلٽر اجزاء شامل آهن جيڪي صارف جي جاء تي هلن ٿا، جڏهن ته ڪنيبل سطح جو ڪم nf_tables سب سسٽم پاران مهيا ڪيل آهي، جيڪو 3.13 جي ڇڏڻ کان وٺي لينڪس ڪنييل جو حصو آهي. ڪرنل ليول صرف هڪ عام پروٽوڪول-آزاد انٽرفيس مهيا ڪري ٿو جيڪو پيڪن مان ڊيٽا ڪڍڻ، ڊيٽا آپريشنز ڪرڻ، ۽ وهڪري ڪنٽرول ڪرڻ لاءِ بنيادي ڪم مهيا ڪري ٿو.

فلٽرنگ جا ضابطا پاڻ ۽ پروٽوڪول-مخصوص هينڊلر يوزر اسپيس بائيٽ ڪوڊ ۾ مرتب ڪيا ويندا آهن، جنهن کان پوءِ هي بائيٽ ڪوڊ نيٽ لنڪ انٽرفيس استعمال ڪندي ڪرنل ۾ لوڊ ڪيو ويندو آهي ۽ بي پي ايف (برڪلي پيڪٽ فلٽرز) جهڙي هڪ خاص ورچوئل مشين ۾ ڪرنل ۾ لڳايو ويندو آهي. اهو طريقو اهو ممڪن بڻائي ٿو ته ڪنيل سطح تي هلندڙ فلٽرنگ ڪوڊ جي سائيز کي خاص طور تي گھٽائڻ ۽ ضابطن جي تجزيي جي سڀني ڪمن کي منتقل ڪرڻ ۽ پروٽوڪول سان ڪم ڪرڻ جي منطق کي صارف جي جاء تي.

مکيه جدت:

  • "*" ماسڪ عنصر لاءِ سپورٽ لسٽن کي سيٽ ڪرڻ ۾ شامل ڪيو ويو آھي، جيڪو ڪنھن به پيڪيجز لاءِ شروع ڪيو ويو آھي جيڪي سيٽ ۾ بيان ڪيل ٻين عنصرن جي ھيٺان نه ھجن. ٽيبل x { نقشي جي بلاڪ لسٽ { ٽائپ ipv4_addr : فيصلي جي پرچم وقفي عناصر = { 192.168.0.0/16 : قبول ڪريو، 10.0.0.0/8 : قبول ڪريو، * : ڊراپ } } زنجير y { ٽائپ فلٽر ٿلهو اڳواٽ ترجيح 0 ؛ پاليسي قبول؛ ip saddr vmap @blocklist } }
  • "--define" اختيار استعمال ڪندي ڪمانڊ لائن مان متغيرن کي بيان ڪرڻ ممڪن آھي. # cat test.nft ٽيبل netdev x { زنجير y { ٽائپ فلٽر ٿلهو انگريس ڊيوائسز = $dev ترجيح 0؛ پاليسي جي کوٽ؛ } } # nft — define dev="{ eth0, eth1 }" -f test.nft
  • نقشي جي لسٽن ۾، مستقل (مثبت) اظهار جي استعمال جي اجازت آھي: ٽيبل انٽ فلٽر { نقشي جو پورٽ ميپ { قسم inet_service : verdict counter عناصر = { 22 counter packets 0 bytes 0 : jump ssh_input , * counter packets 0 bytes 0 : drop } } زنجير ssh_input { } زنجير wan_input { tcp dport vmap @portmap } زنجير اڳڀرائي { ٽائيپ فلٽر ٿلهو اڳڀرائي خام ؛ پاليسي قبول؛ iif vmap { "lo" : jump wan_input } }
  • شامل ڪيو ويو ”لسٽ ٿڪس“ ڪمانڊ ڏنل پيڪٽ فيملي لاءِ ھينڊلر جي لسٽ ڏيکارڻ لاءِ: # nft لسٽ ٿلهو ip ڊيوائس eth0 خانداني ip { hook ingress { +0000000010 chain netdev xy [nf_tables] +0000000300 chain inet mw [nf_tables in] { -0000000100 زنجير ip ab [nf_tables] +0000000300 زنجير inet mz [nf_tables] } ٿلهو اڳتي وڌايو { -0000000225 selinux_ipv4_forward 0000000000 زنجير ip ac [nf_tables }0000000225_4 output] 0000000225_ آئوٽ } ٿلهو پوسٽروٽنگ { +4 XNUMX selinux_ipvXNUMX_postroute } }
  • قطار بلاڪ کي اجازت ڏين ٿا جھش، سمھش، ۽ نمجن ايڪسپريسز کي گڏ ڪرڻ لاءِ پيڪٽس کي ورهائڻ لاءِ يوزر اسپيس ۾ قطار ۾. … قطار symhash mod 65536 … queue flags bypass to numgen inc Mod 65536 … queue to jhash oif . ميٽا مارڪ موڊ 32 "قطار" کي پڻ گڏيل ڪري سگھجي ٿو نقشي جي فهرستن سان قطار چونڊڻ لاءِ صارف جي جاءِ ۾ صوابديدي ڪيبن جي بنياد تي. ... قطار جھنڊو بائي پاس ڏانھن oifname نقشو { "eth0" : 0, "pp0" : 2, "eth1" : 2 }
  • اهو ممڪن آهي ته متغيرن کي وڌايو وڃي جنهن ۾ ڪيترن ئي نقشن ۾ هڪ سيٽ لسٽ شامل آهي. وضاحت ڪريو انٽرفيس = { eth0, eth1 } ٽيبل ip x { زنجير y { ٽائپ فلٽر ٿلهو ان پٽ priority 0 ؛ پاليسي قبول؛ iifname vmap { لو : قبول ڪريو، $انٽرفيس : ڊراپ } } } # nft -f x.nft # nft فهرست قاعدن جي ٽيبل ip x { زنجير y { ٽائپ فلٽر ٿلهو ان پٽ priority 0 ؛ پاليسي قبول؛ iifname vmap { "lo" : قبول ڪريو، "eth0" : drop، "eth1" : drop } } }
  • وقفن تي vmaps (فيصلي جو نقشو) کي گڏ ڪرڻ جي اجازت آهي: # nft ضابطو شامل ڪريو xy tcp dport . ip saddr vmap { 1025-65535 . 192.168.10.2 : قبول ڪريو }
  • NAT ميپنگ لاءِ آسان نحو. پتي جي حدن کي بيان ڪرڻ جي اجازت ڏني وئي: ... snat to ip saddr map { 10.141.11.4 : 192.168.2.2-192.168.2.4 } يا واضح IP پتي ۽ بندرگاهن: ... dnat to ip saddr map { 10.141.11.4. 192.168.2.3. . 80 } or combinations of IP ranges and ports: ... dnat to ip saddr . tcp dport نقشو { 192.168.1.2 . 80: 10.141.10.2-10.141.10.5. 8888-8999 }

جو ذريعو: opennet.ru

تبصرو شامل ڪريو