āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° nftables 1.0.0 āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, IPv4, IPv6, ARP āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦā§āĻ°āĻŋāĻ (iptables, ip6table, arptables āĻāĻŦāĻ ebtables āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ā§) āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĨ¤ nftables 1.0.0 āĻ°āĻŋāĻ˛āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ Linux 5.13 āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻā§āĻ¨ā§ āĻŽā§āĻ˛āĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻĻāĻļāĻŽāĻŋāĻ āĻ¸ā§āĻŦāĻ°āĻ˛āĻŋāĻĒāĻŋāĻ¤ā§ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ (āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻāĻžāĻļāĻāĻŋ āĻāĻŋāĻ˛ 0.9.9)āĨ¤
nftables āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻāĻ˛ā§, āĻ¯āĻāĻ¨ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸ā§āĻ¤āĻ°āĻāĻŋ nf_tables āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž 3.13 āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻĒāĻ° āĻĨā§āĻā§ Linux āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§āĻ° āĻ āĻāĻļāĨ¤ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛-āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻāĻšāĻ°āĻŖ, āĻĄā§āĻāĻžāĻ° āĻāĻĒāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻĒā§āĻ¸ āĻŦāĻžāĻāĻāĻā§āĻĄā§ āĻ¸āĻāĻāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻ āĻŦāĻžāĻāĻāĻā§āĻĄāĻāĻŋ āĻ¨ā§āĻāĻ˛āĻŋāĻāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ BPF (āĻŦāĻžāĻ°ā§āĻāĻ˛ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°) āĻ¸āĻĻā§āĻļ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ āĻā§āĻĄā§āĻ° āĻāĻāĻžāĻ° āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻāĻŦāĻ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĻā§āĻāĻžāĻŦāĻ¨:
- āĻ¸ā§āĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ â*â āĻŽāĻžāĻ¸ā§āĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻ¸ā§āĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻĒāĻĄāĻŧā§ āĻ¨āĻž āĻāĻŽāĻ¨ āĻā§āĻ¨ā§ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻŦāĻŋāĻ˛ x { āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° āĻŦā§āĻ˛āĻāĻ˛āĻŋāĻ¸ā§āĻ { āĻāĻžāĻāĻĒ ipv4_addr : āĻ°āĻžāĻ¯āĻŧ āĻĒāĻ¤āĻžāĻāĻž āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ = { 192.168.0.0/16 : āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°ā§āĻ¨, 10.0.0.0/8 : āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°ā§āĻ¨, * : āĻĄā§āĻ°āĻĒ } } āĻā§āĻāĻ¨ y { āĻāĻžāĻāĻĒ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšā§āĻ āĻĒā§āĻ°āĻŋāĻ°ā§āĻāĻŋāĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° 0; āĻ¨ā§āĻ¤āĻŋ āĻā§āĻ°āĻšāĻŖ; ip saddr vmap @blocklist } }
- "--define" āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻĨā§āĻā§ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĨ¤ # cat test.nft āĻā§āĻŦāĻŋāĻ˛ netdev x { āĻā§āĻāĻ¨ y { āĻāĻžāĻāĻĒ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšā§āĻ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ āĻĄāĻŋāĻāĻžāĻāĻ¸ = $dev āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° 0; āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĄā§āĻ°āĻĒ; } } # nft â define dev="{ eth0, eth1 }" -f test.nft
- āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ, āĻ§ā§āĻ°ā§āĻŦāĻ (āĻ¸ā§āĻā§āĻāĻĢā§āĻ˛) āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤: āĻā§āĻŦāĻŋāĻ˛ āĻāĻ¨ā§āĻ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° { āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° āĻĒā§āĻ°ā§āĻāĻŽā§āĻ¯āĻžāĻĒ {āĻāĻžāĻāĻĒ inet_service : āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ = { 22 āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ¯āĻžāĻā§āĻ 0 āĻŦāĻžāĻāĻ 0 : āĻāĻžāĻŽā§āĻĒ ssh_āĻāĻ¨āĻĒā§āĻ, * āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ¯āĻžāĻā§āĻ 0 āĻŦāĻžāĻāĻ 0 : āĻĄā§āĻ°āĻĒ } } āĻā§āĻāĻ¨ ssh_input { } āĻā§āĻāĻ¨ wan_input { tcp dport vmap @portmap } āĻā§āĻāĻ¨ āĻĒā§āĻ°āĻŋāĻ°āĻžāĻāĻāĻŋāĻ { āĻāĻžāĻāĻĒ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšā§āĻ āĻĒā§āĻ°āĻŋāĻ°āĻžāĻāĻāĻŋāĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻāĻžāĻāĻāĻž; āĻ¨ā§āĻ¤āĻŋ āĻā§āĻ°āĻšāĻŖ; iif vmap { "lo" : āĻāĻžāĻŽā§āĻĒ āĻāĻ¯āĻŧāĻžāĻ¨_āĻāĻ¨āĻĒā§āĻ } }
- āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻ°āĻŋāĻŦāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ "āĻ˛āĻŋāĻ¸ā§āĻ āĻšā§āĻ" āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§: # nft āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻšā§āĻ āĻāĻāĻĒāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ eth0 āĻĢā§āĻ¯āĻžāĻŽāĻŋāĻ˛āĻŋ āĻāĻāĻĒāĻŋ { āĻšā§āĻ āĻāĻ¨āĻā§āĻ°ā§āĻ¸ { +0000000010 āĻā§āĻāĻ¨ āĻ¨ā§āĻāĻĄā§āĻ xy [nf_tables] +0000000300 āĻā§āĻāĻ¨ inet mw [nf_tables in] { -0000000100 āĻā§āĻāĻ¨ ip ab [nf_tables] +0000000300 āĻā§āĻāĻ¨ inet mz [nf_tables] } āĻšā§āĻ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ { -0000000225 selinux_ipv4_forward 0000000000 āĻā§āĻāĻ¨ ip ac [nf_tables]0000000225_4 outputs 0000000225_āĻāĻāĻāĻĒā§āĻ } āĻšā§āĻ āĻĒā§āĻ¸ā§āĻāĻ°ā§āĻāĻŋāĻ { +4 XNUMX selinux_ipvXNUMX_postroute } }
- āĻāĻŋāĻ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋ āĻāĻžāĻļ, āĻ¸āĻŋāĻŽāĻšā§āĻ¯āĻžāĻļ āĻāĻŦāĻ āĻ¨ā§āĻŽāĻā§āĻ¨ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻžāĻ° āĻ¸ā§āĻĒā§āĻ¸ā§ āĻ¸āĻžāĻ°āĻŋāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ âĻ āĻ¸āĻžāĻ°āĻŋ āĻĨā§āĻā§ āĻ¸āĻŋāĻŽāĻšā§āĻ¯āĻžāĻļ āĻŽā§āĻĄ 65536 âĻ āĻ¸āĻžāĻ°āĻŋ āĻĒāĻ¤āĻžāĻāĻž āĻŦāĻžāĻāĻĒāĻžāĻ¸ āĻĨā§āĻā§ āĻ¨āĻŽāĻā§āĻ¨ āĻāĻ¨āĻ āĻŽā§āĻĄ 65536 âĻ āĻāĻžāĻļ āĻāĻāĻāĻāĻĢā§āĻ° āĻ¸āĻžāĻ°āĻŋāĨ¤ āĻŽā§āĻāĻž āĻŽāĻžāĻ°ā§āĻ āĻŽā§āĻĄ 32 "āĻ¸āĻžāĻ°āĻŋ" āĻŽā§āĻ¯āĻžāĻĒ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻžāĻ¤ā§ āĻāĻā§āĻāĻžāĻŽāĻ¤ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ ... āĻ¸āĻžāĻ°āĻŋ āĻĒāĻ¤āĻžāĻāĻžāĻā§āĻ˛āĻŋ oifname āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻŦāĻžāĻāĻĒāĻžāĻ¸ { "eth0" : 0, "pp0" : 2, "eth1" : 2 }
- āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ = { eth0, eth1 } āĻā§āĻŦāĻŋāĻ˛ ip x { āĻā§āĻāĻ¨ y { āĻāĻžāĻāĻĒ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšā§āĻ āĻāĻ¨āĻĒā§āĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° 0; āĻ¨ā§āĻ¤āĻŋ āĻā§āĻ°āĻšāĻŖ; iifname vmap { lo : accept, $interfaces : drop } } } # nft -f x.nft # nft āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¸ā§āĻ āĻā§āĻŦāĻŋāĻ˛ ip x { āĻā§āĻāĻ¨ y { āĻāĻžāĻāĻĒ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻšā§āĻ āĻāĻ¨āĻĒā§āĻ āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° 0; āĻ¨ā§āĻ¤āĻŋ āĻā§āĻ°āĻšāĻŖ; iifname vmap { "lo" : āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°ā§āĻ¨, "eth0" : drop, "eth1" : drop } }
- āĻŦāĻŋāĻ°āĻ¤āĻŋāĻ¤ā§ vmaps (āĻ°āĻžāĻ¯āĻŧ āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°) āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤: # nft āĻ¨āĻŋāĻ¯āĻŧāĻŽ xy tcp dport āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻĒāĻŋ āĻ¸āĻĻāĻ° āĻāĻŋāĻŽā§āĻ¯āĻžāĻĒ {1025-65535āĨ¤ 192.168.10.2 : āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°ā§āĻ¨ }
- NAT āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻ˛ā§āĻā§āĻ¤ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸āĨ¤ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻžāĻĒā§āĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§: ... snat to ip saddr āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° { 10.141.11.4 : 192.168.2.2-192.168.2.4 } āĻŦāĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋ: ... dnat āĻĨā§āĻā§ ip saddr āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° { 10.141.11.4. . 192.168.2.3 } āĻŦāĻž āĻāĻāĻĒāĻŋ āĻ°ā§āĻā§āĻ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻ° āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ: ... dnat āĻĨā§āĻā§ ip saddrāĨ¤ tcp dport āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ° { 80 192.168.1.2: 80-10.141.10.2 10.141.10.5-8888 }
āĻāĻ¤ā§āĻ¸: opennet.ru