nftables ప్యాకెట్ ఫిల్టర్ 1.0.2 విడుదల

IPv1.0.2, IPv4, ARP మరియు నెట్‌వర్క్ బ్రిడ్జ్‌ల కోసం ప్యాకెట్ ఫిల్టరింగ్ ఇంటర్‌ఫేస్‌లను ఏకీకృతం చేస్తూ ప్యాకెట్ ఫిల్టర్ nftables 6 విడుదల ప్రచురించబడింది (iptables, ip6table, arptables మరియు ebtables స్థానంలో ఉంది). nftables 1.0.2 విడుదల పని చేయడానికి అవసరమైన మార్పులు Linux కెర్నల్ 5.17-rcలో చేర్చబడ్డాయి.

nftables ప్యాకేజీ వినియోగదారు స్థలంలో అమలు చేసే ప్యాకెట్ ఫిల్టర్ భాగాలను కలిగి ఉంటుంది, అయితే కెర్నల్-స్థాయి పని nf_tables సబ్‌సిస్టమ్ ద్వారా అందించబడుతుంది, ఇది విడుదలైన 3.13 నుండి Linux కెర్నల్‌లో భాగంగా ఉంది. కెర్నల్ స్థాయి సాధారణ ప్రోటోకాల్-స్వతంత్ర ఇంటర్‌ఫేస్‌ను మాత్రమే అందిస్తుంది, ఇది ప్యాకెట్‌ల నుండి డేటాను సంగ్రహించడం, డేటా కార్యకలాపాలు చేయడం మరియు ఫ్లో నియంత్రణ కోసం ప్రాథమిక విధులను అందిస్తుంది.

ఫిల్టరింగ్ నియమాలు మరియు ప్రోటోకాల్-నిర్దిష్ట హ్యాండ్లర్లు యూజర్-స్పేస్ బైట్‌కోడ్‌లో కంపైల్ చేయబడతాయి, ఆ తర్వాత ఈ బైట్‌కోడ్ నెట్‌లింక్ ఇంటర్‌ఫేస్‌ని ఉపయోగించి కెర్నల్‌లోకి లోడ్ చేయబడుతుంది మరియు BPF (బర్కిలీ ప్యాకెట్ ఫిల్టర్‌లు)ని పోలి ఉండే ప్రత్యేక వర్చువల్ మెషీన్‌లో కెర్నల్‌లో అమలు చేయబడుతుంది. ఈ విధానం కెర్నల్ స్థాయిలో నడుస్తున్న ఫిల్టరింగ్ కోడ్ పరిమాణాన్ని గణనీయంగా తగ్గించడం మరియు పార్సింగ్ నియమాల యొక్క అన్ని విధులు మరియు ప్రోటోకాల్‌లతో పని చేసే లాజిక్‌లను వినియోగదారు స్థలంలోకి తరలించడం సాధ్యం చేస్తుంది.

ప్రధాన ఆవిష్కరణలు:

  • రూల్స్ ఆప్టిమైజేషన్ మోడ్ జోడించబడింది, కొత్త "-o" ("--ఆప్టిమైజ్") ఎంపికను ఉపయోగించి ప్రారంభించబడింది, ఇది "--చెక్" ఎంపికతో కలిపి రూల్‌సెట్ ఫైల్‌ను వాస్తవంగా లోడ్ చేయకుండానే దానికి మార్పులను తనిఖీ చేసి ఆప్టిమైజ్ చేయవచ్చు. . ఆప్టిమైజేషన్ సారూప్య నియమాలను కలపడానికి మిమ్మల్ని అనుమతిస్తుంది, ఉదాహరణకు, నియమాలు: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 మెటా iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 అంగీకరించు ip daddr 1.1.1.1 ip daddr 2.2.2.2 ip dadd2.2.2.2. .3.3.3.3 అంగీకరించు ip saddr XNUMX ip daddr XNUMX డ్రాప్

    మెటా iifname లోకి కలపబడుతుంది. ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2 2.2.2.5 } ip saddrని అంగీకరించండి. ip daddr vmap { 1.1.1.1 . 2.2.2.2 : అంగీకరించు, 2.2.2.2 . 3.3.3.3 : డ్రాప్ }

    ఉదాహరణ వినియోగం: # nft -c -o -f ruleset.test Merging: ruleset.nft:16:3-37: ip daddr 192.168.0.1 కౌంటర్ యాక్సెప్ట్ నియమాలు.nft:17:3-37: ip daddr 192.168.0.2 కౌంటర్ ఆమోదించబడింది Ruleset.nft:18:3-37: ip daddr 192.168.0.3 కౌంటర్ సమ్మతించండి

  • సెట్ జాబితాలు ip మరియు tcp ఎంపికలను పేర్కొనే సామర్థ్యాన్ని అమలు చేస్తాయి, అలాగే sctp భాగాలు: సెట్ s5 { typeof ip ఎంపిక ra విలువ మూలకాలు = { 1, 1024 } } సెట్ s7 { typeof sctp chunk init num-inbound-streams element = { 1, 4 } } చైన్ c5 { ip ఎంపిక ra విలువ @s5 అంగీకరించు } చైన్ c7 { sctp భాగం init num-inbound-streams @s7 అంగీకరించు }
  • TCP ఎంపికలు fastopen, md5sig మరియు mptcp కోసం మద్దతు జోడించబడింది.
  • మ్యాపింగ్‌లలో mp-tcp సబ్టైప్‌ని ఉపయోగించడం కోసం మద్దతు జోడించబడింది: tcp ఎంపిక mptcp సబ్టైప్ 1
  • మెరుగైన కెర్నల్ వైపు ఫిల్టరింగ్ కోడ్.
  • Flowtable ఇప్పుడు JSON ఆకృతికి పూర్తి మద్దతును కలిగి ఉంది.
  • ఈథర్నెట్ ఫ్రేమ్ మ్యాచింగ్ ఆపరేషన్‌లలో "తిరస్కరించు" చర్యను ఉపయోగించగల సామర్థ్యం అందించబడింది. ఈథర్ saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 తిరస్కరించు

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి