د 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 خوشې کیدو راهیسې د لینکس کرنل برخه ده. د کرنل کچه یوازې یو عمومي پروتوکول - خپلواک انٹرفیس چمتو کوي چې د پاکټونو څخه د ډیټا ایستلو ، د معلوماتو عملیاتو ترسره کولو ، او جریان کنټرول لپاره لومړني دندې چمتو کوي.

د فلټر کولو قواعد او د پروتوکول ځانګړي هینډلرونه د کارونکي ځای کې بایټ کوډ کې تنظیم شوي ، وروسته له دې چې دا بایټ کوډ د Netlink انٹرفیس په کارولو سره کرنل کې بار شوی او په ځانګړي مجازی ماشین کې د BPF (برکلي پاکټ فلټرونو) یادونه کوي په کرنل کې اجرا کیږي. دا طریقه تاسو ته اجازه درکوي د فلټر کولو کوډ اندازه د پام وړ کمه کړئ چې د کرنل په کچه روان دي او د پروتوکولونو سره کار کولو لپاره د پارس کولو قواعد او منطق ټولې دندې د کارونکي ځای کې حرکت کوي.

اصلي نوښتونه:

  • د "*" ماسک عنصر لپاره ملاتړ د لیستونو تنظیم کولو کې اضافه شوی ، کوم چې د هر ډول کڅوړو لپاره رامینځته کیږي چې په سیټ کې تعریف شوي نورو عناصرو لاندې نه راځي. جدول 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 : پریکړه ضد عناصر = { 22 کاونټر پاکټونه 0 بایټ 0 : جمپ ssh_input ، * کاونټر پاکټونه 0 بایټس 0 : ډراپ } } زنځیر ssh_input { } زنځیر wan_input { tcp dport vmap @portmap } زنځیر پری روټینګ { ډول فلټر هک پریروټینګ لومړیتوب خام؛ پالیسي منل؛ iif vmap { "lo" : jump wan_input } }
  • د ورکړل شوي کڅوړې کورنۍ لپاره د لاسوندونو لیست ښودلو لپاره د "لیست هکس" کمانډ اضافه شوی: # nft لیست هکس ip وسیله eth0 کورنۍ ip { هوک انګریس { +0000000010 زنځیر 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] {0000000225ip_4 out_0000000225 سلسله 4_آؤټ پټ } هک پوسټروټینګ { +XNUMX XNUMX selinux_ipvXNUMX_postroute } }
  • د قطار بلاکونه اجازه ورکوي چې جاش، سمش، او نمګین څرګندونې یوځای شي ترڅو د کاروونکي ځای کې کتارونو ته کڅوړې توزیع کړي. … کتار د سمش موډ 65536 ته … قطار بیرغونه تر numgen inc mod 65536 … jhash oif ته کتار. د میټا مارک موډ 32 "قطار" هم د نقشې لیستونو سره یوځای کیدی شي ترڅو د خپل سري کیلي پراساس د کارونکي ځای کې قطار غوره کړي. ... د کتار بیرغونه د oifname نقشې ته بای پاس { "eth0" : 0, "pp0" : 2, "eth1" : 2 }
  • دا ممکنه ده چې متغیرات پراخ کړئ چې په څو نقشو کې یو لیست لیست شامل کړي. انٹرفیس تعریف کړئ = {eth0, eth1} جدول ip x { چین y { د فلټر هک ان پټ لومړیتوب 0 ډول; پالیسي منل؛ iifname vmap { lo : accept, $interfaces : drop } } } # nft -f x.nft # nft لیست قواعد جدول ip x { چین y { د فلټر هک ان پټ لومړیتوب 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 نقشه { 10.141.11.4 : 192.168.2.2-192.168.2.4 } یا روښانه IP پتې او بندرونه: ... dnat to ip saddr نقشه {10.141.11.4: 192.168.2.3. . 80 } یا د IP رینجونو او بندرونو ترکیب: ... dnat to ip saddr. tcp dport نقشه { 192.168.1.2 . 80: 10.141.10.2-10.141.10.5. 8888-8999 }

سرچینه: opennet.ru

Add a comment