nftables ፓኬት ማጣሪያ 0.9.5 መለቀቅ

የታተመ የፓኬት ማጣሪያ መለቀቅ nftables 0.9.5ለ IPv6, IPv4, ARP እና የአውታረ መረብ ድልድዮች የፓኬት ማጣሪያ መገናኛዎችን በማዋሃድ ለ iptables, ip6table, arptables እና ebtables ምትክ ሆኖ በማደግ ላይ. የ nftables ጥቅል በተጠቃሚ ቦታ ውስጥ የሚሰሩ የፓኬት ማጣሪያ ክፍሎችን ያካትታል፣ የከርነል ደረጃ ስራው ደግሞ በ nf_tables ንዑስ ሲስተም የቀረበ ሲሆን 3.13 ከተለቀቀ በኋላ የሊኑክስ ከርነል አካል ነው። ለ nftables የሚያስፈልጉ ለውጦች 0.9.5 ወደ ሥራ መልቀቅ በከርነል ውስጥ ተካትተዋል። Linux 5.7.

የከርነል ደረጃ ከፓኬቶች መረጃን ለማውጣት፣ የውሂብ ስራዎችን ለማከናወን እና ፍሰትን ለመቆጣጠር መሰረታዊ ተግባራትን የሚያቀርብ አጠቃላይ ፕሮቶኮል-ገለልተኛ በይነገጽ ብቻ ይሰጣል። የማጣራት ደንቦቹ እና ፕሮቶኮል-ተኮር ተቆጣጣሪዎች በተጠቃሚ ቦታ ውስጥ በባይቴኮድ ይጠናቀቃሉ ፣ ከዚያ በኋላ ይህ ባይት ኮድ የኔትሊንክ በይነገጽን በመጠቀም ወደ ከርነል ተጭኖ በልዩ ቨርቹዋል ማሽን ውስጥ BPF (በርክሌይ ፓኬት ማጣሪያዎች) የሚያስታውስ በከርነል ውስጥ ይፈጸማል። ይህ አቀራረብ በከርነል ደረጃ የሚሰራውን የማጣሪያ ኮድ መጠን በከፍተኛ ሁኔታ እንዲቀንሱ እና ሁሉንም የመተንተን ደንቦችን እና ከፕሮቶኮሎች ጋር አብሮ ለመስራት አመክንዮ ወደ ተጠቃሚ ቦታ እንዲወስዱ ያስችልዎታል።

ዋና ፈጠራዎች፡-

  • ከስብስብ አካላት ጋር የተቆራኙ የፓኬት እና የትራፊክ ቆጣሪዎች ድጋፍ ወደ ስብስቦች ተጨምሯል። ቆጣሪዎች የሚነቁት “ቆጣሪ” የሚለውን ቁልፍ ቃል በመጠቀም ነው፡-

    ጠረጴዛ ip x {
    አዘጋጅ y {
    ዓይነት ip saddr
    የዕቃ መሸጫ ጠረጴዛ
    ንጥረ ነገሮች = {192.168.10.35, 192.168.10.101, 192.168.10.135}
    }

    ሰንሰለት z {
    አይነት ማጣሪያ መንጠቆ ውፅዓት ቅድሚያ ማጣሪያ; ፖሊሲ መቀበል;
    ip daddr @y
    }
    }

  • የቆጣሪዎችን የመጀመሪያ ዋጋዎች ለማዘጋጀት ፣ ለምሳሌ ፣ እንደገና ከጀመሩ በኋላ የቀድሞ ቆጣሪዎችን ወደነበሩበት ለመመለስ ፣ “nft -f” የሚለውን ትዕዛዝ መጠቀም ይችላሉ-

    # ድመት ruleset.nft
    ጠረጴዛ ip x {
    አዘጋጅ y {
    ዓይነት ip saddr
    የዕቃ መሸጫ ጠረጴዛ
    ኤለመንቶች = {192.168.10.35 ቆጣሪ ፓኬቶች 1 ባይት 84, 192.168.10.101 \
    ቆጣሪ ገጽ 192.168.10.135 ቆጣሪ ፓኬቶች 0 ባይት 0}
    }

    ሰንሰለት z {
    አይነት ማጣሪያ መንጠቆ ውፅዓት ቅድሚያ ማጣሪያ; ፖሊሲ መቀበል;
    ip daddr @y
    }
    }
    # nft -f ruleset.nft
    #nft ዝርዝር ሕጎች
    ጠረጴዛ ip x {
    አዘጋጅ y {
    ዓይነት ip saddr
    የዕቃ መሸጫ ጠረጴዛ
    ኤለመንቶች = {192.168.10.35 ቆጣሪ ፓኬቶች 1 ባይት 84, 192.168.10.101 \
    ቆጣሪ ገጽ 192.168.10.135 ቆጣሪ ፓኬቶች 0 ባይት 0}
    }

    ሰንሰለት z {
    አይነት ማጣሪያ መንጠቆ ውፅዓት ቅድሚያ ማጣሪያ; ፖሊሲ መቀበል;
    ip daddr @y
    }
    }

  • የቆጣሪ ድጋፍ ወደ ሊፈስ የሚችል ታክሏል፡-

    ጠረጴዛ ip foo {
    ሊፈስ የሚችል አሞሌ {
    መንጠቆ ማስገቢያ ቅድሚያ -100
    መሳሪያዎች = {eth0, eth1}
    የዕቃ መሸጫ ጠረጴዛ
    }

    ሰንሰለት ወደፊት {
    አይነት ማጣሪያ መንጠቆ ወደፊት ቅድሚያ ማጣሪያ;
    ፍሰት add @ አሞሌ ቆጣሪ
    }
    }

    "conntrack -L" የሚለውን ትዕዛዝ በመጠቀም የቆጣሪዎችን ዝርዝር ማየት ይችላሉ:

    tcp 6 src=192.168.10.2 dst=10.0.1.2 ስፖርት=47278 ዲፖርት=5201 ፓኬቶች=9 ባይት=608
    src=10.0.1.2 dst=10.0.1.1 ስፖርት=5201 ዲፖርት=47278 ፓኬቶች=8 ባይት=428 [የማጥፋት] ምልክት=0 \
    secx= null አጠቃቀም=2 tcp 6 src=192.168.10.2 dst=10.0.1.2 ስፖርት=47280 ዲፖርት=5201 \\
    ፓኬቶች=1005763 ባይት=44075714753 src=10.0.1.2 dst=10.0.1.1 ስፖርት=5201 ዲፖርት=47280
    ፓኬቶች=967505 ባይት=50310268 [OFFLOAD] mark=0 secx= null use=2

  • ለግንኙነት ስብስቦች (ማያያዝ ፣ የተወሰኑ የአድራሻዎች ጥቅል እና ንፅፅርን የሚያቃልሉ ወደቦች) ፣ የ “ዓይነት” መመሪያን መጠቀም ይቻላል ፣ ይህም ለስብስቡ አካላት አካላት አካላት የውሂብ አይነት የሚወስን ነው ።

    ጠረጴዛ ip foo {
    የተፈቀደ ዝርዝር አዘጋጅ {
    ዓይነት ip saddr . tcp dport
    ንጥረ ነገሮች = {192.168.10.35. 80, 192.168.10.101. 80}
    }

    ሰንሰለት አሞሌ {
    አይነት ማጣሪያ መንጠቆ ቀዳሚ ማጣሪያ; የፖሊሲ ውድቀት;
    ip አባት. tcp dport @whitelist ተቀበል
    }
    }

  • የመመሪያው አይነት አሁን በካርታ ዝርዝሮች ውስጥ ለመቀላቀልም ይሠራል፡-

    ጠረጴዛ ip foo {
    ካርታ addr2mark {
    ዓይነት ip saddr . tcp dport: ሜታ ምልክት
    ንጥረ ነገሮች = {192.168.10.35. 80: 0x00000001,
    192.168.10.135. 80፡ 0x00000002}
    }

    ሰንሰለት አሞሌ {
    አይነት ማጣሪያ መንጠቆ ቀዳሚ ማጣሪያ; የፖሊሲ ውድቀት;
    ሜታ ማርክ አዘጋጅ ip daddr . tcp dport ካርታ @addr2mark ተቀበል
    }
    }

  • ለክልል ድጋፍ ታክሏል ስም-አልባ (ስም ያልተጠቀሰ) ስብስቦች ውስጥ ይቀላቀላል፡

    # nft add rule inet ማጣሪያ ግቤት ip daddr። tcp ዲፖርት
    {10.0.0.0/8. 10-23, 192.168.1.1-192.168.3.8. 80-443} ተቀበል

  • የኔትወርክ ድልድዮችን በሚሰራበት ጊዜ ከ 802.1q (VLAN) ባንዲራዎች ጋር እሽጎችን የማስወገድ ችሎታ:

    # nft አክል ደንብ ድልድይ foo bar ether አይነት vlan በ tcp ዳግም አስጀምር

  • በTCP ክፍለ ጊዜ መለያ (የኮንትራክክ መታወቂያ) ለማዛመድ ድጋፍ ታክሏል። የኮንትራክተሩን መታወቂያ ለማወቅ፣ “--output id” የሚለውን አማራጭ መጠቀም ትችላለህ፡-

    # contrack -L - የውጤት መታወቂያ
    udp 17 18 src=192.168.2.118 dst=192.168.2.1 ስፖርት=36424 ዲፖርት=53 ፓኬቶች=2 \
    ባይት=122 src=192.168.2.1 dst=192.168.2.118 ስፖርት=53 ዲፖርት=36424 ፓኬቶች=2 ባይት=320 \
    [የተረጋገጠ] mark=0 አጠቃቀም=1 id=2779986232

    # nft አክል ደንብ foo bar CT id 2779986232 ቆጣሪ

ምንጭ: opennet.ru

አስተያየት ያክሉ