nftables āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° 1.0.3 āĻ°āĻŋāĻ˛āĻŋāĻœ

āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° nftables 1.0.3 āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, IPv4, IPv6, ARP āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŦā§āĻ°āĻŋāĻœ (iptables, ip6table, arptables āĻāĻŦāĻ‚ ebtables āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ā§‡) āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ nftables 1.0.3 āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋ Linux 5.18 āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

nftables āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻšāĻ˛ā§‡, āĻ¯āĻ–āĻ¨ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻ¸ā§āĻ¤āĻ°āĻŸāĻŋ nf_tables āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž 3.13 āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻĒāĻ° āĻĨā§‡āĻ•ā§‡ Linux āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ…āĻ‚āĻļāĨ¤ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§‡, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻœā§‡āĻ¨ā§‡āĻ°āĻŋāĻ• āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛-āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻ†āĻšāĻ°āĻŖ, āĻĄā§‡āĻŸāĻžāĻ° āĻ‰āĻĒāĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŽā§ŒāĻ˛āĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤

āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻœā§‡āĻ°āĻžāĻ‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€-āĻ¸ā§āĻĒā§‡āĻ¸ āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄā§‡ āĻ¸āĻ‚āĻ•āĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻ‡ āĻŦāĻžāĻ‡āĻŸāĻ•ā§‹āĻĄāĻŸāĻŋ āĻ¨ā§‡āĻŸāĻ˛āĻŋāĻ‚āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ BPF (āĻŦāĻžāĻ°ā§āĻ•āĻ˛ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°) āĻ¸āĻĻā§ƒāĻļ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨ā§‡ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ•ā§‹āĻĄā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯āĻ­āĻžāĻŦā§‡ āĻšā§āĻ°āĻžāĻ¸ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ‚ āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ•ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤

āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ‰āĻĻā§āĻ­āĻžāĻŦāĻ¨:

  • āĻ¸ā§‡āĻŸ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¸ā§āĻ• āĻĻā§āĻŦāĻžāĻ°āĻž āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻ¨āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, "*" āĻšāĻŋāĻšā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: āĻŸā§‡āĻŦāĻŋāĻ˛ inet testifsets { set simple_wild { type ifname flags interval āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ = { "abcdef*", "āĻ…āĻ¨ā§āĻ¯ āĻ¨āĻžāĻŽ", "ppp0" } } āĻšā§‡āĻ‡āĻ¨ 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-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 } āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ¨ # nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ ip xy { 1.2.3.0 -1.2.4.255, 3.3.3.6 } āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻĻā§‡āĻ–āĻžāĻŦā§‡ = { 1.2.3.0-1.2.4.255, 3.3.3.3-3.3.3.6, 4.4.4.4-4.4.4.8 }

    āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸ā§€āĻŽāĻžāĻ° āĻ†āĻ‡āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻĄāĻŧā§‡ āĻāĻŽāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĨā§‡āĻ•ā§‡ āĻĒā§ƒāĻĨāĻ• āĻ†āĻ‡āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¨, āĻ¤āĻ–āĻ¨ āĻĒāĻ°āĻŋāĻ¸āĻ°āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻž āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤

  • āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ…āĻ¨ā§āĻŦāĻžāĻĻ (NAT) āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœāĻžāĻ°ā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻ–āĻ¨ "-o/—āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ" āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻ–āĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸ā§‡āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ # cat ruleset.nft āĻŸā§‡āĻŦāĻŋāĻ˛ ip x { āĻšā§‡āĻ‡āĻ¨ y { āĻŸāĻžāĻ‡āĻĒ nat hook postrouting priority srcnat; āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĄā§āĻ°āĻĒ; ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat āĻĨā§‡āĻ•ā§‡ 5.5.5.5:90 } }

    "nft -o -c -f ruleset.nft" āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻĒā§ƒāĻĨāĻ• "āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ°" āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻŦā§‡: snat āĻĨā§‡āĻ•ā§‡ 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 ruleset.nft āĻŸā§‡āĻŦāĻŋāĻ˛ ip x { [â€Ļ] āĻšā§‡āĻ‡āĻ¨ nat_dns_acme { udp length 47-63 @th,160,128 0x0e373135363130333131303735353203 @ 62st d_t78st āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ ,160,128 0x0e31393032383939353831343037320e āĻ¯āĻžāĻ¨ nat_dns_this_5301 udp āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ 62-78 @th,160,128 0x0e31363436323733373931323934300e goto nat_dns_saturn_5301 udp āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ 62-78, @160,128 0 0e goto nat_dns_saturn_32393535373539353636383732310 udp āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯ 5302-62 @th,78 160,128x0e0e goto nat_dns_saturn_38353439353637323038363633390}5303

    āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĒāĻžāĻ‡: udp lengthāĨ¤ @th,160,128 vmap { 47-63 āĨ¤ 0x0e373135363130333131303735353203 : āĻ¯āĻžāĻ¨ nat_dns_dnstc, 62-78āĨ¤ 0x0e31393032383939353831343037320e : āĻ¯āĻžāĻ¨ nat_dns_this_5301, 62-78āĨ¤ 0x0e31363436323733373931323934300e : āĻ¯āĻžāĻ¨ nat_dns_saturn_5301, 62-78āĨ¤ 0x0e32393535373539353636383732310e : āĻ¯āĻžāĻ¨ nat_dns_saturn_5302, 62-78 āĨ¤ 0x0e38353439353637323038363633390e : goto nat_dns_saturn_5303 }

  • āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒā§‡ āĻ•āĻžāĻāĻšāĻž āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤āĨ¤ āĻ¯ā§‡āĻŽāĻ¨: #nft add āĻ¨āĻŋāĻ¯āĻŧāĻŽ xy ip saddr. @ih,32,32 { 1.1.1.1 0x14, 2.2.2.2 0x1e } āĻŦāĻž āĻŸā§‡āĻŦāĻŋāĻ˛ x { āĻ¸ā§‡āĻŸ y { ip saddr āĻāĻ° āĻĒā§āĻ°āĻ•āĻžāĻ°āĨ¤ @ih,32,32 āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ = { 1.1.1.1 āĨ¤ 0x14 } }
  • āĻ¸āĻ‚āĻ¯ā§‹āĻœāĻ¨ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒā§‡ āĻĒā§‚āĻ°ā§āĻŖāĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: āĻŸā§‡āĻŦāĻŋāĻ˛ inet t { āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° m1 { āĻĒā§āĻ°āĻ•āĻžāĻ° udp āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯āĨ¤ @ih,32,32 : āĻ°āĻžāĻ¯āĻŧ āĻĒāĻ¤āĻžāĻ•āĻž āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ = {20-80āĨ¤ 0x14 : āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§āĻ¨, 1-10āĨ¤ 0xa : āĻĄā§āĻ°āĻĒ } } āĻšā§‡āĻ‡āĻ¨ c { āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻ‡āĻ¨āĻĒā§āĻŸ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° 0; āĻĒāĻ˛āĻŋāĻ¸āĻŋ āĻĄā§āĻ°āĻĒ; āĻ‡āĻ‰āĻĄāĻŋāĻĒāĻŋ āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯āĨ¤ @ih,32,32 vmap @m1 } }
  • āĻŸāĻŋāĻ¸āĻŋāĻĒāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ 5.18+ āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡): tcp āĻĢā§āĻ˛ā§āĻ¯āĻžāĻ— āĻ¸āĻŋāĻ¨ āĻ°āĻŋāĻ¸ā§‡āĻŸ tcp āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ sack-perm
  • āĻšā§‡āĻ‡āĻ¨ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ ("nft āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻšā§‡āĻ‡āĻ¨ xy") āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻ¤ā§āĻŦāĻ°āĻžāĻ¨ā§āĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨