nftables рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ 0.9.1 рд░рд┐рд▓реАрдЬ

рд╡рд┐рдХрд╛рд╕рдХреЛ рдПрдХ рд╡рд░реНрд╖ рдкрдЫрд┐ рдкреНрд░рд╕реНрддреБрдд рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ рд░рд┐рд▓реАрдЬ nftables 0.9.1, IPv6, IPv4, ARP рд░ рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░рд┐рдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдПрдХреАрдХреГрдд рдЧрд░реЗрд░ iptables, ip6table, arptables рд░ ebtables рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИред nftables рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рд╕реНрдкреЗрд╕ рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрдмрдХрд┐ рдХрд░реНрдиреЗрд▓-рд╕реНрддрд░ рдХрд╛рд░реНрдп nf_tables рдЙрдкрдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рд░рд┐рд▓реАрдЬ 3.13 рджреЗрдЦрд┐ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдХреЛ рднрд╛рдЧ рднрдПрдХреЛ рдЫред

рдХрд░реНрдиреЗрд▓ рд╕реНрддрд░рд▓реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЯреЛрдХрд▓-рд╕реНрд╡рддрдиреНрддреНрд░ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдирд┐рдХрд╛рд▓реНрди, рдбрд╛рдЯрд╛ рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ, рд░ рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдЖрдзрд╛рд░рднреВрдд рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рддрд░реНрдХ рдЖрдлреИ рд░ рдкреНрд░реЛрдЯреЛрдХрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдорд╛ рдмрд╛рдЗрдЯрдХреЛрдбрдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рд╣реБрдиреНрдЫрдиреН, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдмрд╛рдЗрдЯрдХреЛрдб рдиреЗрдЯрд▓рд┐рдЩреНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд░реНрдиреЗрд▓рдорд╛ рд▓реЛрдб рд╣реБрдиреНрдЫ рд░ BPF (рдмрд░реНрдХрд▓реЗ рдкреНрдпрд╛рдХреЗрдЯ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ) рдХреЛ рд╕рдореНрдЭрдирд╛ рдЧрд░рд╛рдЙрдиреЗ рд╡рд┐рд╢реЗрд╖ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫред рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд░реНрдиреЗрд▓ рд╕реНрддрд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдХреЛрдбрдХреЛ рд╕рд╛рдЗрдЬ рдШрдЯрд╛рдЙрди рд░ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВрд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдорд╛ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкрд╛рд░реНрд╕рд┐рдЩ рдирд┐рдпрдо рд░ рддрд░реНрдХрдХрд╛ рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд╛рд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдореБрдЦреНрдп рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ:

  • IPsec рд╕рдорд░реНрдерди, рдкреНрдпрд╛рдХреЗрдЯ, IPsec рдЕрдиреБрд░реЛрдз ID, рд░ SPI (рд╕реБрд░рдХреНрд╖рд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕реВрдЪрдХрд╛рдВрдХ) рдЯреНрдпрд╛рдЧрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╕реБрд░реБрдЩ рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рдорд┐рд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА,

    ... ipsec ip sadr 192.168.1.0/24 рдорд╛
    ... ipsec in spi 1-65536

    рдпреЛ рдкрдирд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ рдХрд┐ рдПрдХ рдорд╛рд░реНрдЧ IPsec рд╕реБрд░реБрдЩ рдорд╛рд░реНрдлрдд рдЬрд╛рдиреНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, IPSec рдорд╛рд░реНрдлрдд рдЯреНрд░рд╛рдлрд┐рдХ рд░реЛрдХреНрди рдХреЛ рд▓рд╛рдЧреА:

    тАж рдлрд┐рд▓реНрдЯрд░ рдЖрдЙрдЯрдкреБрдЯ rt ipsec рд╣рд░рд╛рдЗрд░рд╣реЗрдХреЛ рдбреНрд░рдк

  • IGMP (рдЗрдиреНрдЯрд░рдиреЗрдЯ рд╕рдореВрд╣ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░реЛрдЯреЛрдХрд▓) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдЖрдЧрдорди IGMP рд╕рдореВрд╣ рд╕рджрд╕реНрдпрддрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЦрд╛рд░реЗрдЬ рдЧрд░реНрди рдирд┐рдпрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

    nft рдирд┐рдпрдо рдердкреНрдиреБрд╣реЛрд╕реН netdev foo bar igmp рдкреНрд░рдХрд╛рд░ рд╕рджрд╕реНрдпрддрд╛-рдХреНрд╡реЗрд░реА рдХрд╛рдЙрдиреНрдЯрд░ рдбреНрд░рдк

  • рдЯреНрд░рд╛рдиреНрдЬрд┐рд╕рди рдЪреЗрдирд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдЪрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ (рдЬрдореНрдк / рдЧреЛрдЯреЛ)ред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

    dest = ber рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
    рдирд┐рдпрдо ip foo рдмрд╛рд░ рдЬрдореНрдк $dest рдердкреНрдиреБрд╣реЛрд╕реН

  • рд╣реЗрдбрд░рдорд╛ TTL рдорд╛рдирд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо (OS рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдиреНрдЯ) рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдорд╛рд╕реНрдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░реЗрд╖рдХ OS рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрди, рддрдкрд╛рдИрдВрд▓реЗ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

    ... рдореЗрдЯрд╛ рдорд╛рд░реНрдХ рд╕реЗрдЯ osf ttl рдирд╛рдо рдирдХреНрд╕рд╛ рдЫреЛрдбреНрдиреБрд╣реЛрд╕реН { "Linux" : 0x1,
    "рд╡рд┐рдиреНрдбреЛрдЬ": режxреи,
    "MacOS": режxрей,
    "рдЕрдЬреНрдЮрд╛рдд" : режxреж }
    ... osf ttl рд╕реНрдХрд┐рдк рд╕рдВрд╕реНрдХрд░рдг "Linux: 4.20"

  • рдкреНрд░реЗрд╖рдХрдХреЛ ARP рдареЗрдЧрд╛рдирд╛ рд░ рд▓рдХреНрд╖рд┐рдд рдкреНрд░рдгрд╛рд▓реАрдХреЛ IPv4 рдареЗрдЧрд╛рдирд╛рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреНрд╖рдорддрд╛ред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, 192.168.2.1 рдареЗрдЧрд╛рдирд╛рдмрд╛рдЯ рдкрдард╛рдЗрдПрдХреЛ ARP рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рдХрд╛рдЙрдиреНрдЯрд░ рдмрдврд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рдирд┐рдпрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

    рддрд╛рд▓рд┐рдХрд╛ arp x {
    рдЪреЗрди y {
    рдЯрд╛рдЗрдк рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдлрд┐рд▓реНрдЯрд░; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░;
    arp saddr ip 192.168.2.1 рдХрд╛рдЙрдиреНрдЯрд░ рдкреНрдпрд╛рдХреЗрдЯ 1 рдмрд╛рдЗрдЯреНрд╕ 46
    }
    }

  • рдкреНрд░реЛрдХреНрд╕реА (tproxy) рдорд╛рд░реНрдлрдд рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рдлрд░реНрд╡рд╛рд░реНрдбрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХрд▓рд╣рд░реВ рдкреЛрд░реНрдЯ 80 рд▓рд╛рдИ рдкреНрд░реЛрдХреНрд╕реА рдкреЛрд░реНрдЯ 8080 рдорд╛ рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдЧрд░реНрди:

    рддрд╛рд▓рд┐рдХрд╛ ip x {
    рдЪреЗрди y {
    рдкреНрд░рдХрд╛рд░ рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ prerouting рдкреНрд░рд╛рдердорд┐рдХрддрд╛ -150; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░;
    tcp dport 80 tproxy to :8080
    }
    }

  • SO_MARK рдореЛрдбрдорд╛ setsockopt() рдорд╛рд░реНрдлрдд рд╕реЗрдЯ рдЪрд┐рдиреНрд╣ рдердк рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рдХреЛ рд╕рд╛рде рдорд╛рд░реНрдХрд┐рдЩ рд╕рдХреЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

    рддрд╛рд▓рд┐рдХрд╛ inet x {
    рдЪреЗрди y {
    рдкреНрд░рдХрд╛рд░ рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ prerouting рдкреНрд░рд╛рдердорд┐рдХрддрд╛ -150; рдиреАрддрд┐ рд╕реНрд╡реАрдХрд╛рд░;
    tcp dport 8080 рдорд╛рд░реНрдХ рд╕реЗрдЯ рд╕рдХреЗрдЯ рдорд╛рд░реНрдХ
    }
    }

  • рдЪреЗрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд╛рда рдирд╛рдорд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

    nft рдЪреЗрди рдердкреНрдиреБрд╣реЛрд╕реН ip x raw { рдкреНрд░рдХрд╛рд░ рдлрд┐рд▓реНрдЯрд░ рд╣реБрдХ prerouting priority 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 рдореЗрдЯрд╛ рд╕реЗрдХрдорд╛рд░реНрдХ рд╕реЗрдЯ "sshtag" рдердкреНрдиреБрд╣реЛрд╕реН

    nft рдирдХреНрд╕рд╛ inet рдлрд┐рд▓реНрдЯрд░ secmapping рдердкреНрдиреБрд╣реЛрд╕реН { type inet_service : secmark; }
    nft рддрддреНрд╡ рдердкреНрдиреБрд╣реЛрд╕реН inet рдлрд┐рд▓реНрдЯрд░ secmapping { 22 : "sshtag" }
    nft рдирд┐рдпрдо inet рдлрд┐рд▓реНрдЯрд░ рдЗрдирдкреБрдЯ рдореЗрдЯрд╛ рд╕реЗрдХрдорд╛рд░реНрдХ рд╕реЗрдЯ tcp dport рдирдХреНрд╢рд╛ @secmapping рдердкреНрдиреБрд╣реЛрд╕реН

  • рдкрд╛рда рдлрд╛рд░рдордорд╛ рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВрдорд╛ рддреЛрдХрд┐рдПрдХрд╛ рдкреЛрд░реНрдЯрд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреЗ рдХреНрд╖рдорддрд╛, рдЬрд╕реНрддреИ рддрд┐рдиреАрд╣рд░реВ /etc/services рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЫрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

    nft рдирд┐рдпрдо xy tcp dport "ssh" рдердкреНрдиреБрд╣реЛрд╕реН
    nft рд╕реВрдЪреА рдирд┐рдпрдорд╣рд░реВ -l
    рддрд╛рд▓рд┐рдХрд╛ x {
    рдЪреЗрди y {
    ...
    tcp dport "ssh"
    }
    }

  • рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдХреЛ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдХреНрд╖рдорддрд╛ред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

    рдирд┐рдпрдо inet raw prerouting meta iifkind "vrf" рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН

  • "рдЧрддрд┐рд╢реАрд▓" рдЭрдгреНрдбрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ рд╕реЗрдЯрд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВрд▓рд╛рдИ рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рд╕рдорд░реНрдердиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрд░реЛрдд рдареЗрдЧрд╛рдирд╛ рдердкреНрди рд╕реЗрдЯ "s" рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рд░ рейреж рд╕реЗрдХреЗрдиреНрдбрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдирднрдПрдорд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд░рд┐рд╕реЗрдЯ рдЧрд░реНрди:

    рддрд╛рд▓рд┐рдХрд╛ 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"
    }
    }

  • рдиреЗрдЯ рдкрд░рд┐рд╡рд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди