nftables පැකට් පෙරහන නිකුතුව 1.0.0

IPv1.0.0, IPv4, ARP සහ ජාල පාලම් සඳහා (iptables, ip6table, arptables සහ ebtables ප්‍රතිස්ථාපනය කිරීම අරමුණු කරගත්) පැකට් පෙරහන් අතුරුමුහුණත් ඒකාබද්ධ කරමින්, packet filter nftables 6 නිකුත් කිරීම ප්‍රකාශයට පත් කර ඇත. nftables 1.0.0 නිකුතුව ක්‍රියා කිරීමට අවශ්‍ය වෙනස්කම් Linux 5.13 කර්නලය තුළ අන්තර්ගත වේ. අනුවාද අංකයෙහි සැලකිය යුතු වෙනසක් කිසිදු මූලික වෙනසක් සමඟ සම්බන්ධ නොවේ, නමුත් දශම අංකනයෙහි අංකනය අඛණ්ඩව පවත්වාගෙන යාමේ ප්‍රතිඵලයක් පමණි (පෙර නිකුතුව 0.9.9 විය).

nftables පැකේජයට පරිශීලක අවකාශයේ ක්‍රියාත්මක වන පැකට් පෙරහන් සංරචක ඇතුළත් වන අතර කර්නල් මට්ටමේ කාර්යය සපයනු ලබන්නේ nf_tables උප පද්ධතිය මගිනි, එය 3.13 නිකුතුවේ සිට Linux කර්නලයේ කොටසක් වේ. කර්නල් මට්ටම සපයනු ලබන්නේ පැකට් වලින් දත්ත උපුටා ගැනීම, දත්ත මෙහෙයුම් සිදු කිරීම සහ ප්‍රවාහ පාලනය සඳහා මූලික කාර්යයන් සපයන සාමාන්‍ය ප්‍රොටෝකෝල-ස්වාධීන අතුරු මුහුණතක් පමණි.

පෙරීමේ රීති සහ ප්‍රොටෝකෝල-විශේෂිත හසුරුවන්නන් පරිශීලක අවකාශයේ බයිට්කේතයට සම්පාදනය කරනු ලැබේ, ඉන්පසු මෙම බයිට්කේතය Netlink අතුරුමුහුණත භාවිතයෙන් කර්නලයට පටවනු ලබන අතර BPF (Berkeley Packet Filters) සිහිගන්වන විශේෂ අථත්‍ය යන්ත්‍රයක කර්නලය තුළ ක්‍රියාත්මක වේ. මෙම ප්‍රවේශය මඟින් කර්නල් මට්ටමින් ක්‍රියාත්මක වන පෙරහන් කේතයේ ප්‍රමාණය සැලකිය යුතු ලෙස අඩු කිරීමට සහ ප්‍රොටෝකෝල සමඟ වැඩ කිරීම සඳහා විග්‍රහ කිරීමේ නීති සහ තර්කනයේ සියලුම කාර්යයන් පරිශීලක අවකාශයට ගෙන යාමට ඔබට ඉඩ සලසයි.

ප්රධාන නවෝත්පාදන:

  • කට්ටලයේ නිර්වචනය කර ඇති අනෙකුත් මූලද්‍රව්‍ය යටතට නොවැටෙන ඕනෑම පැකේජයක් සඳහා ක්‍රියාරම්භක වන "*" මාස්ක් මූලද්‍රව්‍ය සඳහා සහය සකසන ලැයිස්තු වෙත එක් කර ඇත. වගුව x { map blocklist { type ipv4_addr : තීර්‍ණ ධජ විරාම මූලද්‍රව්‍ය = { 192.168.0.0/16 : පිළිගන්න, 10.0.0.0/8 : පිළිගන්න, * : drop } } දාමය y { වර්ගය පෙරහන් කොක්ක පෙරහුරු කිරීමේ ප්‍රමුඛතාවය 0; ප්රතිපත්ති පිළිගැනීම; ip saddr vmap @blocklist }}
  • "--define" විකල්පය භාවිතයෙන් විධාන රේඛාවේ සිට විචල්යයන් නිර්වචනය කළ හැකිය. # cat test.nft වගුව netdev x { chain y { type filter hook ingress devices = $dev ප්‍රමුඛතාවය 0; ප්රතිපත්ති පහත වැටීම; } } # nft —define dev="{ eth0, eth1 }" -f test.nft
  • සිතියම් ලැයිස්තු වලදී, නියත (ප්‍රකාශිත) ප්‍රකාශන භාවිතයට අවසර ඇත: table inet filter { map portmap { type inet_service : తీర్పు කවුන්ටර මූලද්‍රව්‍ය = { 22 counter packets 0 bytes 0 : jump ssh_input, * counter packets 0 bytes 0 : drop } } දාම ssh_input {} chain wan_input { tcp dport vmap @portmap } chain prerouting { type filter hook prerouting priority raw; ප්රතිපත්ති පිළිගැනීම; iif vmap { "lo" : jump wan_input } } }
  • ලබා දී ඇති පැකට් පවුලක් සඳහා හසුරුවන්නන්ගේ ලැයිස්තුවක් පෙන්වීමට "list hooks" විධානය එක් කරන ලදී: # nft list hooks ip device eth0 family ip { hook ingress { +0000000010 chain netdev xy [nf_tables] +0000000300 chain inet mw [nf_tables] { -0000000100 chain ip ab [nf_tables] +0000000300 chain inet mz [nf_tables] } කොක්ක ඉදිරියට { -0000000225 selinux_ipv4_forward 0000000000 chain {0000000225} hooks4 iptable0000000225 selinux_ipv4_output } කොක්ක postrouting { +XNUMX XNUMX selinux_ipvXNUMX_postroute }}
  • පෝලිම් කුට්ටි පරිශීලක අවකාශයේ පෝලිම්වලට පැකට් බෙදා හැරීම සඳහා jhash, symhash සහ numgen ප්‍රකාශන ඒකාබද්ධ කිරීමට ඉඩ දෙයි. … symhash mod 65536 වෙත පෝලිම් … පෝලිම් ධජ මඟහැර numgen inc mod 65536 වෙත … jhash oif වෙත පෝලිම. meta mark mod 32 "පෝලිම" අත්තනෝමතික යතුරු මත පදනම්ව පරිශීලක අවකාශයේ පෝලිමක් තෝරා ගැනීමට සිතියම් ලැයිස්තු සමඟ ඒකාබද්ධ කළ හැක. ... පෝලිම් කොඩි ඔයිෆ් නම් සිතියමට මග හැරේ { "eth0" : 0, "ppp0" : 2, "eth1" : 2 }
  • කට්ටල ලැයිස්තුවක් සිතියම් කිහිපයකට ඇතුළත් වන විචල්‍යයන් පුළුල් කළ හැකිය. අතුරුමුහුණත් අර්ථ දක්වන්න = { eth0, eth1 } වගුව ip x { chain y { type filter hook input priority 0; ප්රතිපත්ති පිළිගැනීම; iifname vmap {lo : පිළිගන්න, $ අතුරුමුහුණත් : drop } } } # nft -f x.nft # nft ලැයිස්තුව නීති රීති වගුව ip x { chain y { type filter hook input priority 0; ප්රතිපත්ති පිළිගැනීම; iifname vmap { "lo" : පිළිගන්න, "eth0" : drop, "eth1" : drop } }
  • කාල පරතරයන්හිදී vmaps (තීරණ සිතියම) ඒකාබද්ධ කිරීමට අවසර ඇත: # nft add rule 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 } හෝ IP පරාස සහ තොට සංයෝජන: ... dnat සිට ip saddr . tcp dport සිතියම { 80 . 192.168.1.2: 80-10.141.10.2. 10.141.10.5-8888}

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න