ื ืคื˜ืึทื‘ืœืขืก ืคึผืึทืงืึทื˜ ืคื™ืœื˜ืขืจ 1.0.2 ืžืขืœื“ื•ื ื’

ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืคึผืึทืงืึทื˜ ืคื™ืœื˜ืขืจ ื ืคื˜ืึทื‘ืœืขืก 1.0.2 ืื™ื– ืืจื•ื™ืก, ื™ื•ื ืึทืคื™ื™ื™ื ื’ ืคึผืึทืงืึทื˜ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืคึฟืึทืจ IPv4, IPv6, ARP ืื•ืŸ ื ืขืฅ ื‘ืจื™ืงืŸ (ืึทื™ืžืขื“ ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื™ืคึผื˜ืึทื‘ืœืขืก, ื™ืคึผ6ื˜ืึทื‘ืœืข, ืึทืจืคึผื˜ืึทื‘ืœืขืก ืื•ืŸ ืขื‘ื˜ืึทื‘ืœืขืก). ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ื“ื™ nftables 1.0.2 ืžืขืœื“ื•ื ื’ ืฆื• ืึทืจื‘ืขื˜ืŸ ื–ืขื ืขืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ 5.17-rc.

ื“ื™ nftables ืคึผืขืงืœ ื›ื•ืœืœ ืคึผืึทืงืึทื˜ ืคื™ืœื˜ืขืจ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื•ื•ืึธืก ืœื•ื™ืคืŸ ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ, ื‘ืฉืขืช ื“ื™ ืงืขืจืŸ-ืžื“ืจื’ื” ืึทืจื‘ืขื˜ ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ nf_tables ืกืึทื‘ืกื™ืกื˜ืึทื, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ ื–ื™ื ื˜ ืžืขืœื“ื•ื ื’ 3.13. ื“ืขืจ ืงืขืจืŸ ืžื“ืจื’ื” ื’ื™ื˜ ื‘ืœื•ื™ื– ืึท ื“ื–ืฉืึทื ืขืจื™ืง ืคึผืจืึธื˜ืึธืงืึธืœ-ืคืจื™ื™ึท ืฆื•ื‘ื™ื ื“ ื•ื•ืึธืก ื’ื™ื˜ ื™ืงืขืจื“ื™ืง ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ื™ืงืกื˜ืจืึทืงื˜ื™ื ื’ ื“ืึทื˜ืŸ ืคื•ืŸ ืคึผืึทืงื™ืฅ, ืคึผืขืจืคืึธืจืžื™ื ื’ ื“ืึทื˜ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ืŸ ืœื•ื™ืคืŸ ืงืึธื ื˜ืจืึธืœ.

ื“ื™ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ื›ึผืœืœื™ื ืื•ืŸ ืคึผืจืึธื˜ืึธืงืึธืœ-ืกืคึผืขืฆื™ืคื™ืฉ ื”ืึทื ื“ืœืขืจืก ื–ืขื ืขืŸ ืงืึทืžืคึผื™ื™ืœื“ ืื™ืŸ ื‘ื™ื˜ืขืงืึธื“ืข ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ, ื ืึธืš ื•ื•ืึธืก ื“ืขื ื‘ื™ื™ื˜ืขืงืึธื“ ืื™ื– ืœืึธื•ื“ื™ื“ ืื™ืŸ ื“ื™ ืงืขืจืŸ ื ื™ืฆืŸ ื“ื™ ื ืขื˜ืœื™ื ืง ืฆื•ื‘ื™ื ื“ ืื•ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืื™ืŸ ื“ื™ ืงืขืจืŸ ืื™ืŸ ืึท ืกืคึผืขืฆื™ืขืœ ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืจืขืžืึทื ื™ืกืึทื ื˜ ืคื•ืŸ BPF (Berkeley Packet Filters). ื“ืขืจ ืฆื•ื’ืึทื ื’ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืื˜ื™ื™ื˜ื™ืง ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ืงืึธื“ ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ ื“ื™ ืงืขืจืŸ ืžื“ืจื’ื” ืื•ืŸ ืžืึทืš ืึทืœืข ื“ื™ ืคืึทื ื’ืงืฉืึทื ื– ืคื•ืŸ ืคึผืึทืจืกื™ื ื’ ื›ึผืœืœื™ื ืื•ืŸ ืœืึธื’ื™ืง ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืคึผืจืึธื˜ืึธืงืึธืœืก ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ.

ื”ื•ื™ืคึผื˜ ื—ื™ื“ื•ืฉื™ื:

  • ื ืจืขื’ื•ืœื™ืจืŸ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธืŸ ืžืึธื“ืข ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜, ืขื ื™ื™ื‘ืึทืœื“ ืžื™ื˜ ื“ื™ ื ื™ื™ึทืข "-ืึธ" ("--ืึธืคึผื˜ื™ืžื™ื–ืข") ืึธืคึผืฆื™ืข, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึทืžื‘ื™ื™ื ื“ ืžื™ื˜ ื“ื™ "--ื˜ืฉืขืง" ืึธืคึผืฆื™ืข ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ืŸ ืึทืคึผื˜ืึทืžื™ื™ื– ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ื›ึผืœืœื™ื ืกืขื˜ ื˜ืขืงืข ืึธืŸ ืึทืงื˜ืฉืึทื•ื•ืึทืœื™ ืœืึธื•ื“ื™ื ื’ ืขืก . ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืขื ืœืขืš ื›ึผืœืœื™ื, ืœืžืฉืœ, ื“ื™ ื›ึผืœืœื™ื: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1. .2.2.2.2 ืึธื ื ืขืžืขืŸ ip saddr 2.2.2.2 ip daddr 3.3.3.3 ืงืึทืคึผ

    ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืึทืžื‘ื™ื™ื ื“ ืื™ืŸ ืžืขื˜ืึท ื™ื™ืคื ืึทืžืข. ip saddr. ื™ืคึผ ื“ืึทื“ื“ืจ {ืขื˜ื”1. 1.1.1.1. 2.2.2.3, ืขื˜ื”1. 1.1.1.2. 2.2.2.5} ืึธื ื ืขืžืขืŸ ื™ืคึผ ืกืึทื“ืจ. 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 ืžืขืจื“ื–ืฉื™ื ื’: ruleset.nft:16:3-37: ip daddr 192.168.0.1 ื˜ืึธืžื‘ืึทื ืง ืึธื ื ืขืžืขืŸ ruleset.nft:17:3-37: ip daddr 192.168.0.2 ื˜ืึธืžื‘ืึทื ืง ืึธื ื ืขืžืขืŸ ruleset.nft:18:3-37: ip daddr 192.168.0.3 ื˜ืึธืžื‘ืึทื ืง ืึธื ื ืขืžืขืŸ ืื™ืŸ: ip daddr {192.168.0.1, 192.168.0.2, 192.168.0.3} ื˜ืึธืžื‘ืึทื ืง ืคึผืึทืงื™ืฅ 0 ื‘ื™ื˜ืขืก 0 ืึธื ื ืขืžืขืŸ

  • ื“ื™ ืกืขื˜ ืจืฉื™ืžื•ืช ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื™ืคึผ ืื•ืŸ ื˜ืงืคึผ ืึธืคึผืฆื™ืขืก, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืกืงื˜ืคึผ ื˜ืฉืึทื ื’ืงืก: ืฉื˜ืขืœืŸ s5 {ื˜ื™ืคึผ ืคื•ืŸ ื™ืคึผ ืึธืคึผืฆื™ืข ืจืึท ื•ื•ืขืจื˜ ืขืœืขืžืขื ื˜ืŸ = {1, 1024}} ืฉื˜ืขืœืŸ s7 {ื˜ื™ืคึผ ืคื•ืŸ ืกืงื˜ืคึผ ืฉื˜ื™ืง ื™ื ื™ื˜ ื ื•ืžืขืจ-ื™ื ื‘ืึทื•ื ื“-ืกื˜ืจื™ืžื– ืขืœืขืžืขื ื˜ืŸ = { 1, 4}} ืงื™ื™ื˜ ืง5 {ื™ืคึผ ืึธืคึผืฆื™ืข ืจืึท ื•ื•ืขืจื˜ @ืก5 ืึธื ื ืขืžืขืŸ} ืงื™ื™ื˜ ืง7 {ืกืงื˜ืคึผ ืฉื˜ื™ืง ื™ื ื™ื˜ ื ื•ืžืขืจ-ื™ื ื‘ืึทื•ื ื“-ืกื˜ืจื™ืžื– @ืก7 ืึธื ื ืขืžืขืŸ}
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ TCP ืึธืคึผืฆื™ืขืก ืคืึทืกื˜ืึธืคึผืขืŸ, md5sig ืื•ืŸ mptcp.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื ื™ืฆืŸ ื“ื™ mp-tcp ืกื•ื‘ื˜ื™ืคึผืข ืื™ืŸ ืžืึทืคึผื™ื ื’ืก: tcp ืึธืคึผืฆื™ืข mptcp ืกื•ื‘ื˜ื™ืคึผืข 1
  • ื™ืžืคึผืจื•ื•ื•ื“ ืงืขืจืŸ-ื–ื™ื™ึทื˜ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ืงืึธื“.
  • ืคืœืึธื•ื•ื˜ืึทื‘ืœืข ืื™ืฆื˜ ื”ืื˜ ืคื•ืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ JSON ืคึฟืึธืจืžืึทื˜.
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ื“ื™ "ืึธืคึผื•ื•ืึทืจืคืŸ" ืงืึทืžืฃ ืื™ืŸ ืขื˜ื”ืขืจื ืขื˜ ืจืึทื ื•ื•ืึธืก ืจื™ื›ื˜ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 ืึธืคึผื•ื•ืึทืจืคืŸ

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’