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

පළ කළා පැකට් පෙරහන මුදා හැරීම nftables 0.9.5, IPv6, IPv4, ARP සහ ජාල පාලම් සඳහා පැකට් පෙරීමේ අතුරුමුහුණත් ඒකාබද්ධ කිරීම මගින් iptables, ip6table, arptables සහ ebtables සඳහා ආදේශකයක් ලෙස සංවර්ධනය වෙමින් පවතී. nftables පැකේජයට පරිශීලක අවකාශයේ ක්‍රියාත්මක වන පැකට් පෙරහන් සංරචක ඇතුළත් වන අතර කර්නල් මට්ටමේ කාර්යය සපයනු ලබන්නේ nf_tables උප පද්ධතියෙන් වන අතර එය 3.13 නිකුත් කිරීමේ සිට Linux කර්නලයේ කොටසක් වේ. nftables 0.9.5 නිකුතුව ක්‍රියා කිරීමට අවශ්‍ය වෙනස්කම් කර්නලයේ ඇතුළත් කර ඇත Linux 5.7.

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

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

  • කට්ටල මූලද්‍රව්‍ය හා සම්බන්ධ පැකට් සහ ගමනාගමන කවුන්ටර සඳහා සහය කට්ටලවලට එක් කර ඇත. "කවුන්ටරය" මූල පදය භාවිතයෙන් කවුන්ටර සක්රිය කර ඇත:

    වගුව ip x {
    y { සකසන්න
    ip saddr වර්ගය
    ප්රති
    මූලද්‍රව්‍ය = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    දාමය z {
    ටයිප් ෆිල්ටර් කොක්ක ප්රතිදාන ප්රමුඛතා පෙරහන; ප්රතිපත්ති පිළිගැනීම;
    ip daddr @y
    }
    }

  • කවුන්ටරවල ආරම්භක අගයන් සැකසීමට, උදාහරණයක් ලෙස, නැවත ආරම්භ කිරීමෙන් පසු පෙර කවුන්ටර යථා තත්වයට පත් කිරීම සඳහා, ඔබට "nft -f" විධානය භාවිතා කළ හැකිය:

    # cat ruleset.nft
    වගුව ip x {
    y { සකසන්න
    ip saddr වර්ගය
    ප්රති
    මූලද්‍රව්‍ය = { 192.168.10.35 කවුන්ටර පැකට් 1 බයිට් 84, 192.168.10.101 \
    කවුන්ටරය p 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 \
    කවුන්ටරය p 192.168.10.135 කවුන්ටර පැකට් 0 බයිට් 0 }
    }

    දාමය z {
    ටයිප් ෆිල්ටර් කොක්ක ප්රතිදාන ප්රමුඛතා පෙරහන; ප්රතිපත්ති පිළිගැනීම;
    ip daddr @y
    }
    }

  • ප්‍රති සහාය ද ප්‍රවාහ වගුවට එක් කර ඇත:

    වගුව ip foo {
    ගලා යා හැකි තීරුව {
    කොක්ක ඇතුල්වීමේ ප්‍රමුඛතාවය -100
    උපාංග = { eth0, eth1 }
    ප්රති
    }

    දාමය ඉදිරියට {
    ටයිප් ෆිල්ටර් කොක්ක ඉදිරියට ප්‍රමුඛතා පෙරහන;
    ප්‍රවාහ එකතු කරන්න @bar කවුන්ටරය
    }
    }

    “contrack -L” විධානය භාවිතයෙන් ඔබට කවුන්ටර ලැයිස්තුව නැරඹිය හැකිය:

    tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47278 dport=5201 packets=9 bytes=608 \
    src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47278 packets=8 bytes=428 [OFFLOAD] mark=0 \
    secctx=ශුන්‍ය භාවිතය=2 tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47280 dport=5201 \
    packets=1005763 bytes=44075714753 src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47280 \
    packets=967505 bytes=50310268 [OFFLOAD] mark=0 secctx=null use=2

  • සංසන්දනය සඳහා කට්ටලවල (සම්බන්ධ කිරීම, සංසන්දනය සරල කරන ඇතැම් ලිපින මිටි සහ වරායන්), කට්ටලයේ මූලද්‍රව්‍යවල සංඝටක කොටස් සඳහා මූලද්‍රව්‍යවල දත්ත වර්ගය තීරණය කරන “වර්ගය” විධානය භාවිතා කළ හැකිය:

    වගුව ip foo {
    සුදු ලැයිස්තුව සකසන්න {
    ip saddr වර්ගය. tcp dport
    මූලද්රව්ය = { 192.168.10.35 . 80, 192.168.10.101. 80}
    }

    දාම තීරුව {
    ටයිප් ෆිල්ටර් කොක්ක ප්‍රමුඛතා පෙරහන පෙරහුරු; ප්රතිපත්ති පහත වැටීම;
    ip daddr. tcp dport @whitelist පිළිගන්න
    }
    }

  • දැන් සිතියම් ලැයිස්තු වල එක්වීම් සඳහා විධාන වර්ගයද අදාළ වේ:

    වගුව ip foo {
    සිතියම addr2mark {
    ip saddr වර්ගය. tcp dport: මෙටා ලකුණ
    මූලද්රව්ය = { 192.168.10.35 . 80 : 0x00000001,
    192.168.10.135. 80 : 0x00000002}
    }

    දාම තීරුව {
    ටයිප් ෆිල්ටර් කොක්ක ප්‍රමුඛතා පෙරහන පෙරහුරු; ප්රතිපත්ති පහත වැටීම;
    meta mark set ip daddr . tcp dport සිතියම @addr2mark පිළිගන්න
    }
    }

  • නිර්නාමික (නම් නොකළ) කට්ටලවල පරාසයක එකතු කිරීම් සඳහා එකතු කරන ලද සහාය:

    # nft add rule inet filter input ip daddr . tcp dport\
    { 10.0.0.0/8 . 10-23, 192.168.1.1-192.168.3.8. 80-443 } පිළිගන්නවා

  • ජාල පාලම් සැකසීමේදී 802.1q (VLAN) ධජ සහිත පැකට් ඉවත දැමීමේ හැකියාව සපයා ඇත:

    # nft add rule bridge foo bar ether type vlan reject with tcp reset

  • TCP සැසි හඳුනාගැනීම් (contrack ID) මගින් ගැලපීම සඳහා සහය එක් කරන ලදී. Contrack ID තීරණය කිරීම සඳහා, ඔබට “--output id” විකල්පය භාවිතා කළ හැක:

    # conntrack -L —ප්‍රතිදාන id
    udp 17 18 src=192.168.2.118 dst=192.168.2.1 sport=36424 dport=53 packets=2 \
    bytes=122 src=192.168.2.1 dst=192.168.2.118 sport=53 dport=36424 packets=2 bytes=320 \
    [Assured] mark=0 use=1 id=2779986232

    # nft add rule foo bar ct id 2779986232 කවුන්ටරය

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

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