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

ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืคึผืึทืงืึทื˜ ืคื™ืœื˜ืขืจ ื ืคื˜ืึทื‘ืœืขืก 1.0.0 ืื™ื– ืืจื•ื™ืก, ื™ื•ื ืึทืคื™ื™ื™ื ื’ ืคึผืึทืงืึทื˜ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืคึฟืึทืจ IPv4, IPv6, ARP ืื•ืŸ ื ืขืฅ ื‘ืจื™ืงืŸ (ืึทื™ืžืขื“ ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื™ืคึผื˜ืึทื‘ืœืขืก, ื™ืคึผ6ื˜ืึทื‘ืœืข, ืึทืจืคึผื˜ืึทื‘ืœืขืก ืื•ืŸ ืขื‘ื˜ืึทื‘ืœืขืก). ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ nftables 1.0.0 ืฆื• ืึทืจื‘ืขื˜ืŸ ื–ืขื ืขืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ Linux 5.13 ืงืขืจืŸ. ื ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืขื ื“ืขืจื•ื ื’ ืื™ืŸ ื“ื™ ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจ ืื™ื– ื ื™ืฉื˜ ืคืืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืงื™ื™ืŸ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืึธื‘ืขืจ ืื™ื– ื‘ืœื•ื™ื– ืึท ืงืึทื ืกืึทืงื•ื•ืึทื ืก ืคื•ืŸ ื“ื™ ืงืึธื ืกื™ืกื˜ืขื ื˜ ืงืึทื ื˜ื™ื ื™ื•ื™ื™ืฉืึทืŸ ืคื•ืŸ ื ืึทืžื‘ืขืจื™ื ื’ ืื™ืŸ ื“ืขืฆื™ืžืึทืœ ื ืึธื•ื˜ื™ื™ืฉืึทืŸ (ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืžืขืœื“ื•ื ื’ ืื™ื– ื’ืขื•ื•ืขืŸ 0.9.9).

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

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

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

  • ืกื•ืคึผืคึผืึธืจื˜ ืคึฟืึทืจ ื“ื™ "*" ืžืึทืกืงืข ืขืœืขืžืขื ื˜ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ืฉื˜ืขืœืŸ ืจืฉื™ืžื•ืช, ื•ื•ืึธืก ืื™ื– ื˜ืจื™ื’ืขืจื“ ืคึฟืึทืจ ืงื™ื™ืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ืคืึทืœืŸ ืื•ื ื˜ืขืจ ืื ื“ืขืจืข ืขืœืขืžืขื ื˜ืŸ ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ืขื ื’ืึทื ื’. ื˜ื™ืฉ ืจืขื ื˜ื’ืขื  {ืžืึทืคึผืข ื‘ืœืึธืงืœื™ืกื˜ {ื˜ื™ืคึผ ื™ืคึผื•ื•4_ืึทื“ื“ืจ: ื•ื•ืขืจื“ื™ืงื˜ ืคืœืึทื’ืก ืžืขื”ืึทืœืขืš ืขืœืขืžืขื ื˜ืŸ = {192.168.0.0/16: ืึธื ื ืขืžืขืŸ, 10.0.0.0/8: ืึธื ื ืขืžืขืŸ, *: ืคืึทืœืŸ}} ืงื™ื™ื˜ ื™ {ื˜ื™ืคึผ ืคื™ืœื˜ืขืจ ืคืึทืจื˜ืฉืขืคึผืขืŸ ืคึผืจื™ืจืึธื•ื˜ื™ื ื’ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ 0; ืคึผืึธืœื™ื˜ื™ืง ืึธื ื ืขืžืขืŸ; ip saddr vmap @ื‘ืœืึธืงืœื™ืกื˜ } }
  • ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื“ืขืคื™ื ื™ืจืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืคึฟื•ืŸ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ื ื™ืฆืŸ ื“ื™ "--ื“ืขืคื™ื ื™ืจืŸ" ืึธืคึผืฆื™ืข. # ืงืึทืฅ ื˜ืขืกื˜.ื ืคื˜ ื˜ื™ืฉ ื ืขื˜ื“ืขื•ื• ืจืขื ื˜ื’ืขื  { ืงื™ื™ื˜ ื™ {ื˜ื™ืคึผ ืคื™ืœื˜ืขืจ ืงืจื•ืง ื™ื ื’ืจืขืกืก ื“ืขื•ื•ื™ืกืขืก = $ ื“ืขื•ื• ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ 0; ืคืืœื™ืกื™ ืคืึทืœืŸ; } } # nft โ€” ื“ืขืคื™ื ื™ืจืŸ ื“ืขื•ื• = "{ eth0, eth1 }" -f test.nft
  • ืื™ืŸ ืžืึทืคึผืข ืจืฉื™ืžื•ืช, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง (ืกื˜ื™ื™ื˜ืคืึทืœ) ืื•ื™ืกื“ืจื•ืงืŸ ืื™ื– ืขืจืœื•ื™ื‘ื˜: ื˜ื™ืฉ ื™ื ืขื˜ ืคื™ืœื˜ืขืจ { ืžืึทืคึผืข ืคึผืึธืจื˜ืžืึทืคึผ {ื˜ื™ืคึผ inet_service: ื•ื•ืขืจื“ื™ืงื˜ ื˜ืึธืžื‘ืึทื ืง ืขืœืขืžืขื ื˜ืŸ = {22 ื˜ืึธืžื‘ืึทื ืง ืคึผืึทืงื™ืฅ 0 ื‘ื™ื˜ืขืก 0: ืฉืคึผืจื™ื ื’ืขืŸ ssh_input, * ื˜ืึธืžื‘ืึทื ืง ืคึผืึทืงื™ืฅ 0 ื‘ื™ื˜ืขืก 0: ืงืึทืคึผ }} ืงื™ื™ื˜ ssh_input {} ืงื™ื™ื˜ wan_input {tcp dport vmap @portmap} ืงื™ื™ื˜ ืคึผืจื™ืจืึธื•ื˜ื™ื ื’ {ื˜ื™ืคึผ ืคื™ืœื˜ืขืจ ืงืจื•ืง ืคึผืจืขืจืึธื•ื˜ื™ื ื’ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ ืจื•ื™; ืคึผืึธืœื™ื˜ื™ืง ืึธื ื ืขืžืขืŸ; iif vmap {"ืœืึธ": ืฉืคึผืจื™ื ื’ืขืŸ wan_input}}}
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ "ืจืฉื™ืžื” ื›ื•ืงืก" ื‘ืึทืคึฟืขืœ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ืึท ืจืฉื™ืžื” ืคื•ืŸ ื”ืึทื ื“ืœืขืจืก ืคึฟืึทืจ ืึท ื’ืขื’ืขื‘ืŸ ืคึผืึทืงืึทื˜ ืžืฉืคึผื—ื”: # nft ืจืฉื™ืžื” ื›ื•ืงืก ื™ืคึผ ืžื™ื˜ืœ eth0 ืžืฉืคึผื—ื” ื™ืคึผ {ื”ืึธืงืŸ ื™ื ื’ืจืขืกืก {+0000000010 ืงื™ื™ื˜ ื ืขื˜ื“ืขื•ื• ืงืกื™ [ื ืค_ื˜ืึทื‘ืœืขืก] +0000000300 ืงื™ื™ื˜ ื™ื ืขื˜ ืžื•ื• [ื ืค_ื˜ืึทื‘ืœืขืก] } {-0000000100/0000000300 ื˜ืฉืึทื™ืŸ IP [NF_TIBALS] +0000000225 ืงื™ื™ื˜ ื™ื ืขื˜ MZ [nf_tables_IPV4_TONUX_IPV0000000000_TONUX_IPV0000000225_TONUX_IPOTING {+4 0000000225 ืกืขืœื™ื ื•ืงืก_ื™ืคึผ V4_Postroute}}}
  • ืจื™ื™ ื‘ืœืึทืงืก ืœืึธื–ืŸ ื“ื–ืฉื”ืึทืฉ, ืกื™ืžื”ืึทืฉ ืื•ืŸ ื ื•ืžื’ืขืŸ ืื•ื™ืกื“ืจื•ืงืŸ ืฆื• ื–ื™ื™ืŸ ืงืึทืžื‘ื™ื™ื ื“ ืฆื• ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ืคึผืึทืงื™ืฅ ืฆื• ืงื™ื•ื– ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ. โ€ฆ ืจื™ื™ ืฆื• ืกื™ืžื”ืึทืฉ ืžืึธื“ 65536 โ€ฆ ืจื™ื™ ืคืœืึทื’ืก ื‘ื™ื™ืคึผืึทืก ืฆื• ื ื•ืžื’ืขืŸ ื™ื ืง ืžืึธื“ 65536 โ€ฆ ืจื™ื™ ืฆื• ื“ื–ืฉื”ืึทืฉ ืึธื™ืฃ . ืžืขื˜ืึท ืžืึทืจืง ืžืึธื“ 32 "ืจื™ื™" ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืงืึทืžื‘ื™ื™ื ื“ ืžื™ื˜ ืžืึทืคึผืข ืจืฉื™ืžื•ืช ืฆื• ืกืขืœืขืงื˜ื™ืจืŸ ืึท ืจื™ื™ ืื™ืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืฉืœื™ืกืœืขืŸ. ... ืจื™ื™ ืคืœืึทื’ืก ื‘ื™ื™ืคึผืึทืก ืฆื• ื“ื™ ื ืึธืžืขืŸ ืžืึทืคึผืข {"eth0": 0, "ppp0": 2, "eth1": 2}
  • ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื™ืงืกืคึผืึทื ื“ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื•ื•ืึธืก ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืึท ืกื›ื•ื ืจืฉื™ืžื” ืื™ืŸ ืขื˜ืœืขื›ืข ืžืึทืคึผืก. ื“ืขืคื™ื ื™ืจืŸ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– = {ืขื˜ื”0, ืขื˜ื”1} ื˜ื™ืฉ ื™ืคึผ ืจืขื ื˜ื’ืขื  {ืงื™ื™ื˜ ื™ {ื˜ื™ืคึผ ืคื™ืœื˜ืขืจ ืงืจื•ืง ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ 0; ืคึผืึธืœื™ื˜ื™ืง ืึธื ื ืขืžืขืŸ; iifname vmap {ืœืึธ: ืึธื ื ืขืžืขืŸ, $ ื™ื ื˜ืขืจืคื™ื™ืกื™ื–: ืคืึทืœืŸ}}} # nft -f x.nft # nft ืจืฉื™ืžื” ื›ึผืœืœื™ื ืกืขื˜ ื˜ื™ืฉ ื™ืคึผ ืจืขื ื˜ื’ืขื  { ืงื™ื™ื˜ ื™ {ื˜ื™ืคึผ ืคื™ืœื˜ืขืจ ืงืจื•ืง ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜ 0; ืคึผืึธืœื™ื˜ื™ืง ืึธื ื ืขืžืขืŸ; iifname vmap {"ืœืึธ": ืึธื ื ืขืžืขืŸ, "ืขื˜ื”0": ืงืึทืคึผ, "ืขื˜ื”1": ืงืึทืคึผ}}}
  • ืงืึทืžื‘ื™ื™ื ื™ื ื’ ื•ื•ืžืึทืคึผืก (ื•ื•ืขืจื“ื™ืงื˜ ืžืึทืคึผืข) ืžื™ื˜ ื™ื ื˜ืขืจื•ื•ืึทืœื– ืื™ื– ืขืจืœื•ื™ื‘ื˜: # nft add rule xy tcp dport . ip saddr vmap {1025-65535. 192.168.10.2: ืึธื ื ืขืžืขืŸ }
  • ืกื™ืžืคึผืœื™ืคื™ืขื“ ืกื™ื ื˜ืึทืงืก ืคึฟืึทืจ NAT ืžืึทืคึผื™ื ื’ื–. ื“ืขืจืœื•ื™ื‘ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึทื“ืจืขืก ืจื™ื™ื ื“ื–ืฉืึทื–: ... snat to ip saddr map { 10.141.11.4 : 192.168.2.2-192.168.2.4 } ืึธื“ืขืจ ื™ืงืกืคึผืœื™ืกืึทื˜ ื™ืคึผ ื•ื•ืขื ื“ื˜ ืื•ืŸ ืคึผืึธืจืฅ: ... ื“ื ืึทื˜ ืฆื• ื™ืคึผ ืกืึทื“ืจ ืžืึทืคึผืข {10.141.11.4: 192.168.2.3. . 80 } ืึธื“ืขืจ ืงืึทืžื‘ืึทื ื™ื™ืฉืึทื ื– ืคื•ืŸ IP ืจื™ื™ื ื“ื–ืฉืึทื– ืื•ืŸ ืคึผืึธืจืฅ: ... dnat to ip saddr . tcp dport ืžืึทืคึผืข {192.168.1.2. 80: 10.141.10.2-10.141.10.5. 8888-8999 }

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

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