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

āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻāĻ• āĻŦāĻ›āĻ° āĻĒāĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ nftables 0.9.1, IPv6, IPv4, ARP āĻāĻŦāĻ‚ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻŦā§āĻ°āĻŋāĻœāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŋāĻ‚ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡ iptables, ip6table, arptables āĻāĻŦāĻ‚ ebtables-āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ nftables āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻšāĻ˛ā§‡, āĻ¯āĻ–āĻ¨ āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛-āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ•āĻžāĻœ nf_tables āĻ¸āĻžāĻŦāĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž 3.13 āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻĒāĻ° āĻĨā§‡āĻ•ā§‡ Linux āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ…āĻ‚āĻļāĨ¤

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

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

  • IPsec āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ, IPsec āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ†āĻ‡āĻĄāĻŋ, āĻāĻŦāĻ‚ SPI (āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻ°āĻŋāĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ‡āĻ¨āĻĄā§‡āĻ•ā§āĻ¸) āĻŸā§āĻ¯āĻžāĻ—ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻŽā§‡āĻ˛āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ,

    ... āĻ†āĻ‡āĻĒāĻŋ āĻ¸āĻĻāĻ°ā§‡ ipsec 192.168.1.0/24
    ... ipsec in spi 1-65536

    āĻ•ā§‹āĻ¨ā§‹ āĻ°ā§āĻŸ IPsec āĻŸāĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻžāĻ“ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, IPSec āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¨āĻ¯āĻŧ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻŦā§āĻ˛āĻ• āĻ•āĻ°āĻ¤ā§‡:

    â€Ļ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ rt ipsec āĻ…āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĄā§āĻ°āĻĒ

  • IGMP (āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻ—ā§āĻ°ā§āĻĒ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛) āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ†āĻĒāĻ¨āĻŋ āĻ‡āĻ¨āĻ•āĻžāĻŽāĻŋāĻ‚ IGMP āĻ—ā§āĻ°ā§āĻĒ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻ¤āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨

    nft āĻ¯ā§‹āĻ— āĻ¨āĻŋāĻ¯āĻŧāĻŽ netdev foo āĻŦāĻžāĻ° igmp āĻŸāĻžāĻ‡āĻĒ āĻŽā§‡āĻŽā§āĻŦāĻžāĻ°āĻļāĻŋāĻĒ-āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻĄā§āĻ°āĻĒ

  • āĻŸā§āĻ°āĻžāĻ¨āĻœāĻŋāĻļāĻ¨ āĻšā§‡āĻ‡āĻ¨ (āĻœāĻžāĻŽā§āĻĒ/āĻ—ā§‹āĻŸā§‹) āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻžāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

    dest = ber āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨
    āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ ip foo āĻŦāĻžāĻ° āĻœāĻžāĻŽā§āĻĒ $dest

  • āĻšā§‡āĻĄāĻžāĻ°ā§‡ āĻŸāĻŋāĻŸāĻŋāĻāĻ˛ āĻŽāĻžāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (āĻ“āĻāĻ¸ āĻĢāĻŋāĻ™ā§āĻ—āĻžāĻ°āĻĒā§āĻ°āĻŋāĻ¨ā§āĻŸ) āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻŽāĻžāĻ¸ā§āĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒā§āĻ°ā§‡āĻ°āĻ• āĻ“āĻāĻ¸ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

    ... āĻŽā§‡āĻŸāĻž āĻŽāĻžāĻ°ā§āĻ• āĻ¸ā§‡āĻŸ osf ttl āĻ¸ā§āĻ•āĻŋāĻĒ āĻ¨āĻžāĻŽ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° { "Linux" : 0x1,
    "āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ": 0x2,
    "MacOS": 0x3,
    "āĻ…āĻœāĻžāĻ¨āĻž" : 0x0 }
    ... osf ttl āĻ¸ā§āĻ•āĻŋāĻĒ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ "Linux:4.20"

  • āĻĒā§āĻ°ā§‡āĻ°āĻ•ā§‡āĻ° ARP āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° IPv4 āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, 192.168.2.1 āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĨā§‡āĻ•ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ ARP āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

    āĻŸā§‡āĻŦāĻŋāĻ˛ arp x {
    āĻšā§‡āĻ‡āĻ¨ y {
    āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻ‡āĻ¨āĻĒā§āĻŸ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°; āĻ¨ā§€āĻ¤āĻŋ āĻ—ā§āĻ°āĻšāĻŖ;
    āĻ†āĻ°āĻĒāĻŋ āĻ¸āĻĻāĻ° āĻ†āĻ‡āĻĒāĻŋ 192.168.2.1 āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ 1 āĻŦāĻžāĻ‡āĻŸ 46
    }
    }

  • āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ (tproxy) āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸ā§āĻŦāĻšā§āĻ› āĻĢāĻ°āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ‚ āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĒā§‹āĻ°ā§āĻŸ 80 āĻ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻĒā§‹āĻ°ā§āĻŸ 8080 āĻ āĻ•āĻ˛ āĻ°āĻŋāĻĄāĻžāĻ‡āĻ°ā§‡āĻ•ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡:

    āĻŸā§‡āĻŦāĻŋāĻ˛ ip x {
    āĻšā§‡āĻ‡āĻ¨ y {
    āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻĒā§āĻ°āĻŋāĻ°ā§āĻŸāĻŋāĻ‚ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° -150; āĻ¨ā§€āĻ¤āĻŋ āĻ—ā§āĻ°āĻšāĻŖ;
    tcp dport 80 tproxy āĻĨā§‡āĻ•ā§‡ :8080
    }
    }

  • SO_MARK āĻŽā§‹āĻĄā§‡ setsockopt() āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸ā§‡āĻŸ āĻšāĻŋāĻšā§āĻ¨ āĻ†āĻ°āĻ“ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻš āĻ¸āĻ•ā§‡āĻŸ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

    āĻŸā§‡āĻŦāĻŋāĻ˛ inet x {
    āĻšā§‡āĻ‡āĻ¨ y {
    āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻĒā§āĻ°āĻŋāĻ°ā§āĻŸāĻŋāĻ‚ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° -150; āĻ¨ā§€āĻ¤āĻŋ āĻ—ā§āĻ°āĻšāĻŖ;
    tcp dport 8080 āĻŽāĻžāĻ°ā§āĻ• āĻ¸ā§‡āĻŸ āĻ¸āĻ•ā§‡āĻŸ āĻšāĻŋāĻšā§āĻ¨
    }
    }

  • āĻšā§‡āĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

    nft āĻšā§‡āĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ ip x raw { āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻĒā§āĻ°āĻŋāĻ°ā§āĻŸāĻŋāĻ‚ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻ•āĻžāĻāĻšāĻž; }
    nft āĻšā§‡āĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ ip x āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° { āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻĒā§āĻ°āĻŋāĻ°ā§āĻŸāĻŋāĻ‚ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°; }
    nft āĻšā§‡āĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ ip x filter_later { āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻĒā§āĻ°āĻŋāĻ°ā§āĻŸāĻŋāĻ‚ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° + 10; }

  • SELinux āĻŸā§āĻ¯āĻžāĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ (Secmark)āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ SELinux āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡ "sshtag" āĻŸā§āĻ¯āĻžāĻ— āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

    nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ secmark inet āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° sshtag "system_u:object_r:ssh_server_packet_t:s0"

    āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡ āĻāĻ‡ āĻ˛ā§‡āĻŦā§‡āĻ˛āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨:

    nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ inet āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ‡āĻ¨āĻĒā§āĻŸ tcp dport 22 āĻŽā§‡āĻŸāĻž secmark āĻ¸ā§‡āĻŸ "sshtag"

    nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° inet āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° secmapping { type inet_service : secmark; }
    nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ inet āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ¸ā§‡āĻ•āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ‚ { 22 : "sshtag" }
    nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ inet āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ‡āĻ¨āĻĒā§āĻŸ āĻŽā§‡āĻŸāĻž secmark āĻ¸ā§‡āĻŸ tcp dport āĻŽāĻžāĻ¨āĻšāĻŋāĻ¤ā§āĻ° @secmapping

  • āĻŸā§‡āĻ•ā§āĻ¸āĻŸ āĻ†āĻ•āĻžāĻ°ā§‡ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻĒā§‹āĻ°ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ¯ā§‡āĻŽāĻ¨ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ /etc/services āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

    nft āĻ¨āĻŋāĻ¯āĻŧāĻŽ xy tcp dport "ssh" āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨
    nft āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¸ā§‡āĻŸ -l
    āĻŸā§‡āĻŦāĻŋāĻ˛ x {
    āĻšā§‡āĻ‡āĻ¨ y {
    ...
    tcp dport "ssh"
    }
    }

  • āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻ§āĻ°āĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

    āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ inet raw prerouting meta iifkind "vrf" āĻ¸ā§āĻŦā§€āĻ•āĻžāĻ° āĻ•āĻ°ā§āĻ¨

  • āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ "āĻ—āĻ¤āĻŋāĻļā§€āĻ˛" āĻĒāĻ¤āĻžāĻ•āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§‡ āĻ¸ā§‡āĻŸā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ‰ā§ŽāĻ¸ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻ¸ā§‡āĻŸ "s" āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ 30 āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ā§‹ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻ°āĻŋāĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡:

    āĻŸā§‡āĻŦāĻŋāĻ˛ x āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨
    āĻ¸ā§‡āĻŸ xs āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ {āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°ā§āĻ¨ ipv4_addr; āĻ†āĻ•āĻžāĻ° 128; āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§€āĻŽāĻž 30s; āĻĒāĻ¤āĻžāĻ•āĻž āĻ—āĻ¤āĻŋāĻļā§€āĻ˛; }
    āĻšā§‡āĻ‡āĻ¨ xy āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ {āĻŸāĻžāĻ‡āĻĒ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻšā§āĻ• āĻ‡āĻ¨āĻĒā§āĻŸ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° 0; }
    āĻ¨āĻŋāĻ¯āĻŧāĻŽ xy āĻ†āĻĒāĻĄā§‡āĻŸ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ @s { ip saddr }

  • āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŸāĻžāĻ‡āĻŽāĻ†āĻ‰āĻŸ āĻļāĻ°ā§āĻ¤ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, 8888 āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻ†āĻ—āĻ¤ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŸāĻžāĻ‡āĻŽāĻ†āĻ‰āĻŸ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻĄ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

    āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ†āĻ‡āĻĒāĻŋ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° {
    ct āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§€āĻŽāĻž āĻ†āĻ•ā§āĻ°āĻŽāĻ¨āĻžāĻ¤ā§āĻŽāĻ•-tcp {
    āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ tcp;
    l3proto ip;
    āĻ¨ā§€āĻ¤āĻŋ = {āĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤: 100, āĻ•ā§āĻ˛ā§‹āĻœ_āĻ“āĻ¯āĻŧā§‡āĻŸ: 4, āĻŦāĻ¨ā§āĻ§: 4}
    }
    āĻšā§‡āĻ‡āĻ¨ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ {
    ...
    tcp dport 8888 ct āĻŸāĻžāĻ‡āĻŽāĻ†āĻ‰āĻŸ āĻ¸ā§‡āĻŸ "āĻ†āĻ•ā§āĻ°āĻŽāĻ¨āĻžāĻ¤ā§āĻŽāĻ•-tcp"
    }
    }

  • inet āĻĒāĻ°āĻŋāĻŦāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ NAT āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨:

    āĻŸā§‡āĻŦāĻŋāĻ˛ inet nat {
    ...
    ip6 daddr dead::2::1 dnat to dead:2::99
    }

  • āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻŸāĻžāĻ‡āĻĒā§‹ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸāĻŋāĻ‚:

    nft āĻšā§‡āĻ‡āĻ¨ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨

    āĻ¤ā§āĻ°ā§āĻŸāĻŋ: āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•ā§‹āĻ¨ā§‹ āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¨ā§‡āĻ‡; āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻĢā§āĻ¯āĻžāĻŽāĻŋāĻ˛āĻŋ āĻ†āĻ‡āĻĒāĻŋāĻ¤ā§‡ āĻŸā§‡āĻŦāĻŋāĻ˛ "āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°" āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻžāĻ¨?
    āĻšā§‡āĻ‡āĻ¨ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨
    ^^^^^^

  • āĻ¸ā§‡āĻŸā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž:

    āĻ¸ā§‡āĻŸ sc {
    inet_service āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°ā§āĻ¨āĨ¤ ifname
    āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ = { "ssh"āĨ¤ "eth0" }
    }

  • āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻž āĻĢā§āĻ˛ā§‹āĻŸā§‡āĻŦāĻ˛ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸:

    nft āĻŸā§‡āĻŦāĻŋāĻ˛ x āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨
    nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻĢā§āĻ˛ā§‹āĻŸā§‡āĻŦāĻ˛ x ft { āĻšā§āĻ• āĻ‡āĻ¨āĻ—ā§āĻ°ā§‡āĻ¸ āĻ…āĻ—ā§āĻ°āĻžāĻ§āĻŋāĻ•āĻžāĻ° 0; āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ = {eth0, wlan0}; }
    ...
    nft āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ x āĻĢāĻ°āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ†āĻ‡āĻĒāĻŋ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ { tcp, udp } āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ @ft

  • āĻ‰āĻ¨ā§āĻ¨āĻ¤ JSON āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤

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

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