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

IPv1.0.3, IPv4, ARP සහ ජාල පාලම් (iptables, ip6table, arptables සහ ebtables ප්‍රතිස්ථාපනය කිරීම අරමුණු කරගත්) පැකට් පෙරහන් අතුරුමුහුණත් ඒකාබද්ධ කරමින්, packet filter nftables 6 නිකුතුව ප්‍රකාශයට පත් කර ඇත. nftables 1.0.3 නිකුතුව ක්‍රියා කිරීමට අවශ්‍ය වෙනස්කම් Linux 5.18 කර්නලය තුළ අන්තර්ගත වේ.

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

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

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

  • Set lists දැන් මාස්ක් එකකින් ජාල අතුරුමුහුණත් නම් ගැලපීම සඳහා සහය දක්වයි, උදාහරණයක් ලෙස, “*” සංකේතය භාවිතයෙන් සඳහන් කර ඇත: table inet testifsets {set simple_wild { type ifname flags interval element = { “abcdef*”, “othername”, “ppp0” } } chain v4icmp { වර්ගය පෙරහන කොක්ක ආදාන ප්‍රමුඛතාවය 0; ප්රතිපත්ති පිළිගැනීම; iifname @simple_wild කවුන්ටර පැකට් 0 බයිට් 0 iifname { “abcdef*”, “eth0” } කවුන්ටර පැකට් 0 බයිට් 0 }}
  • මෙහෙයුම අතරතුර ඡේදනය වන කට්ටල-ලැයිස්තු මූලද්‍රව්‍ය ස්වයංක්‍රීයව ඒකාබද්ධ කිරීම ක්‍රියාත්මක කරන ලදී. මීට පෙර, “ස්වයං ඒකාබද්ධ” විකල්පය සකසා ඇති විට, නීති රීති ප්‍රකාශ කිරීමේ අදියරේදී ඒකාබද්ධ කිරීම සිදු කරන ලදී, නමුත් දැන් එය ක්‍රියාත්මක වන විට නව මූලද්‍රව්‍ය වර්ධක ලෙස එකතු කරන විට ද ක්‍රියා කරයි. උදාහරණයක් ලෙස, ප්‍රකාශන අදියරේදී, ලැයිස්තුව y {කොඩි පරතරය ස්වයංක්‍රීය ඒකාබද්ධ මූලද්‍රව්‍ය = { 1.2.3.0, 1.2.3.255/1.2.3.0, 24, 3.3.3.3, 4.4.4.4-4.4.4.4 . ip xy {4.4.4.8 -3.3.3.4, 3.3.3.5 } මූලද්‍රව්‍ය මෙන් දිස් වනු ඇත = { 1.2.3.0-24, 3.3.3.3-3.3.3.5, 4.4.4.4-4.4.4.8 }

    පවතින පරාස අයිතම තුළට වැටෙන තනි අයිතමයන් ඔබ ලැයිස්තුවෙන් ඉවත් කරන විට, පරාසය කෙටි කර හෝ බෙදනු ලැබේ.

  • බහුවිධ ලිපින පරිවර්තන (NAT) රීති සිතියම් ලැයිස්තුවකට ඒකාබද්ධ කිරීම සඳහා සහය "-o/—optimize" විකල්පය සඳහන් කර ඇති විට හැඳින්වෙන රීති ප්‍රශස්තකරණයට එක් කර ඇත. උදාහරණයක් ලෙස, කට්ටලය සඳහා # cat ruleet.nft table ip x { chain y { type nat hook postrouting priority srcnat; ප්රතිපත්ති පහත වැටීම; ip saddr 1.1.1.1 tcp dport 8000 snat සිට 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snot 5.5.5.5:90 } }

    “nft -o -c -f ruleset.nft” ක්‍රියාත්මක කිරීම වෙනම “ip saddr” රීති සිතියම් ලැයිස්තුවක් බවට පරිවර්තනය කරයි: snat to ip saddr . tcp dport සිතියම { 1.1.1.1 . 8000: 4.4.4.4. 80, 2.2.2.2. 8001: 5.5.5.5. 90}

    ඒ හා සමානව, අමු ප්‍රකාශන සිතියම් ලැයිස්තු බවට පරිවර්තනය කළ හැක: # cat ruleet.nft table ip x { […] chain nat_dns_acme { udp length 47-63 @th,160,128 0x0e373135363130333131303735353203 දිග ,62 78x160,128e0e goto nat_dns_this_0 udp දිග 31393032383939353831343037320-5301 @th,62 78x160,128e0e goto nat_dns_saturn_0 udp දිග 31363436323733373931323934300-5301 @th,62 78x160,128e0 0 32393535373539353636383732310e goto nat_dns_saturn_5302 udp දිග 62-78 @th,160,128 0x0e38353439353637323038363633390e goto nat_dns_saturn_5303 drop } }

    ප්‍රශස්තිකරණයෙන් පසු අපට සිතියම් ලැයිස්තුවක් ලැබේ: udp දිග . @th,160,128 vmap { 47-63 . 0x0e373135363130333131303735353203 : goto nat_dns_dnstc, 62-78 . 0x0e31393032383939353831343037320e : goto nat_dns_this_5301, 62-78 . 0x0e31363436323733373931323934300e : goto nat_dns_saturn_5301, 62-78 . 0x0e32393535373539353636383732310e : goto nat_dns_saturn_5302, 62-78 . 0x0e38353439353637323038363633390e : goto nat_dns_saturn_5303 }

  • සංයුක්ත කිරීමේ මෙහෙයුම් වලදී අමු ප්‍රකාශන භාවිතා කිරීමට අවසර ඇත. උදාහරණයක් ලෙස: #nft add rule xy ip saddr. @ih,32,32 { 1.1.1.1 . 0x14, 2.2.2.2 . 0x1e } හෝ වගුව x { set y { ip saddr වර්ගය . @ih,32,32 මූලද්‍රව්‍ය = { 1.1.1.1 . 0x14 }}}
  • සංකලන මෙහෙයුම් වලදී පූර්ණ සංඛ්‍යා ශීර්ෂ ක්ෂේත්‍ර සඳහන් කිරීම සඳහා සහය එක් කරන ලදී: වගුව inet t { map m1 { udp දිග වර්ගය . @ih,32,32: තීන්දුව සලකුණු විරාම මූලද්‍රව්‍ය = { 20-80 . 0x14: පිළිගන්න, 1-10 . 0xa : drop } } chain c { type filter hook input priority 0; ප්රතිපත්ති පහත වැටීම; udp දිග. @ih,32,32 vmap @m1 }}
  • TCP විකල්ප යළි පිහිටුවීම සඳහා සහය එක් කරන ලදී (ලිනක්ස් කර්නලය 5.18+ සමඟ පමණක් ක්‍රියා කරයි): tcp flags syn reset tcp විකල්පය sack-perm
  • දාම ප්‍රතිදාන විධාන ක්‍රියාත්මක කිරීම ("nft list chain xy") වේගවත් කර ඇත.

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

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