เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ เบ™เบณ เบชเบฐ เป€เปœเบต เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบเบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ” nftables 0.9.1, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบชเปเบฒเบฅเบฑเบš iptables, ip6table, arptables เปเบฅเบฐ ebtables เป‚เบ”เบ unifying packet filtering interfaces เบชเปเบฒเบฅเบฑเบš IPv4, IPv6, ARP เปเบฅเบฐเบ‚เบปเบงเป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบŠเบธเบ” nftables เบ›เบฐเบเบญเบšเบกเบตเบญเบปเบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบฅเบฐเบ”เบฑเบš kernel เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบฅเบฐเบšเบปเบšเบเปˆเบญเบ nf_tables, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ Linux kernel เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ›เปˆเบญเบ 3.13.

เบฅเบฐเบ”เบฑเบš kernel เบชเบฐเบซเบ™เบญเบ‡เบžเบฝเบ‡เปเบ•เปˆเบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเปเบšเบšเป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบžเบฑเบเป€เบเบฑเบ”, เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผ.
เป€เบซเบ”เบœเบปเบ™เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เปเบฅเบฐเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ bytecode เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ bytecode เบ™เบตเป‰เบ–เบทเบเป‚เบซเบฅเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ kernel เป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš Netlink เปเบฅเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบžเบดเป€เบชเบ”เบ—เบตเปˆเบฅเบฐเบ™เบถเบเป€เบ–เบดเบ‡ BPF (Berkeley Packet Filters). เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเปเบเปˆเบ™เปเบฅเบฐเบเป‰เบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เปเบเบเปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป‚เบ›เป‚เบ•เบ„เบญเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰.

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบ•เบปเป‰เบ™เบ•เป:

  • เบฎเบญเบ‡เบฎเบฑเบš IPsec, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบˆเบฑเบšเบ„เบนเปˆเบ—เบตเปˆเบขเบนเปˆเบญเบธเป‚เบกเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเปเบžเบฑเบเป€เบเบฑเบ”, ID เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป IPsec, เปเบฅเบฐเปเบ—เบฑเบ SPI (Security Parameter Index). เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡,

    ... ipsec เปƒเบ™ ip saddr 192.168.1.0/24
    ... ipsec เปƒเบ™ spi 1-65536

    เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เปƒเบ”เบœเปˆเบฒเบ™เบญเบธเป‚เบกเบ‡ IPsec. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบšเปเปˆเบœเปˆเบฒเบ™ IPSec:

    โ€ฆ เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบœเบปเบ™เบœเบฐเบฅเบดเบ” rt ipsec เบ‚เบฒเบ”เบซเบฒเบเป„เบ›

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ IGMP (Internet Group Management Protocol). เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเป€เบžเบทเปˆเบญเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เป€เบ›เบฑเบ™เบชเบฐเบกเบฒเบŠเบดเบเบเบธเปˆเบก IGMP เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒ

    nft เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš netdev foo bar igmp type membership-query counter drop

  • เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ›เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ (jump / goto). เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

    เบเปเบฒเบ™เบปเบ” dest = ber
    เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš ip foo bar jump $dest

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเบ™เป‰เบฒเบเบฒเบเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ (OS Fingerprint) เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ„เปˆเบฒ TTL เปƒเบ™เบชเปˆเบงเบ™เบซเบปเบง. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบซเบกเบฒเบเปเบžเบฑเบเป€เบเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ OS เบœเบนเป‰เบชเบปเปˆเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡:

    ... meta mark set osf ttl เบ‚เป‰เบฒเบกเบŠเบทเปˆเปเบœเบ™เบ—เบตเปˆ { "Linux" : 0x1,
    "Windows": 0x2,
    "MacOS": 0x3,
    "unknown": 0x0 }
    ... osf ttl เบ‚เป‰เบฒเบกเป€เบงเบตเบŠเบฑเบ™ "Linux: 4.20"

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบ—เบตเปˆเบขเบนเปˆ ARP เบ‚เบญเบ‡เบœเบนเป‰เบชเบปเปˆเบ‡เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆ IPv4 เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ•เบปเบงเบ™เบฑเบšเบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ” ARP เบ—เบตเปˆเบชเบปเปˆเบ‡เบกเบฒเบˆเบฒเบเบ—เบตเปˆเบขเบนเปˆ 192.168.2.1, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ arp x {
    เป‚เบชเป‰ y {
    type filter hook input filter priority; เบ™เบฐเป‚เบเบšเบฒเบเบเบญเบกเบฎเบฑเบš;
    arp saddr ip 192.168.2.1 counter packets 1 bytes 46
    }
    }

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ—เบตเปˆเป‚เบ›เปˆเบ‡เปƒเบชเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบœเปˆเบฒเบ™เบ•เบปเบงเปเบ—เบ™ (tproxy). เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบฒเบ™เป‚เบ—เป„เบ›เบซเบฒเบžเบญเบ” 80 เป„เบ›เบซเบฒเบžเบญเบ”เบžเบฃเบฑเบญเบเบŠเบต 8080:

    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ ip x {
    เป‚เบชเป‰ y {
    type filter hook prerouting priority -150; เบ™เบฐเป‚เบเบšเบฒเบเบเบญเบกเบฎเบฑเบš;
    tcp dport 80 tproxy เป€เบ–เบดเบ‡ :8080
    }
    }

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบกเบฒเบ sockets เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบเบœเปˆเบฒเบ™ setsockopt() เปƒเบ™เป‚เบซเบกเบ” SO_MARK. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ inet x {
    เป‚เบชเป‰ y {
    type filter hook prerouting priority -150; เบ™เบฐเป‚เบเบšเบฒเบเบเบญเบกเบฎเบฑเบš;
    tcp dport 8080 mark set socket mark
    }
    }

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบฐเบšเบธเบŠเบทเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบชเปเบฒเบฅเบฑเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

    nft เป€เบžเบตเปˆเบกเบ•เปˆเบญเบ‡เป‚เบชเป‰ ip x raw { type filter hook prerouting priority raw; }
    nft เป€เบžเบตเปˆเบกเบ•เปˆเบญเบ‡เป‚เบชเป‰ ip x filter { type filter hook prerouting priority filter; }
    nft เป€เบžเบตเปˆเบกเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ ip x filter_later { type filter hook prerouting priority filter + 10; }

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ SELinux tags (Secmark). เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เปเบ—เบฑเบ "sshtag" เปƒเบ™เบšเปเบฅเบดเบšเบปเบ” SELinux, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™:

    nft เป€เบžเบตเปˆเบก secmark inet filter sshtag "system_u:object_r:ssh_server_packet_t:s0"

    เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เป‰เบฒเบเบ™เบตเป‰เปƒเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš:

    nft เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš inet filter input tcp dport 22 meta secmark set โ€œsshtagโ€

    nft เป€เบžเบตเปˆเบกเปเบœเบ™เบ—เบตเปˆ inet filter secmapping { type inet_service : secmark; }
    nft เป€เบžเบตเปˆเบกเบญเบปเบ‡เบ›เบฐเบเบญเบš inet filter secmapping { 22 : "sshtag" }
    nft เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš inet filter input meta secmark set tcp dport map @secmapping

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบฐเบšเบธเบžเบญเบ”เบ—เบตเปˆเบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เป‚เบ›เป‚เบ•เบ„เบญเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบ„เบงเบฒเบก, เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ /etc/services. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

    nft เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš xy tcp dport "ssh"
    nft เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบเบปเบ”เบฅเบฐเบšเบฝเบš -l
    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ x {
    เป‚เบชเป‰ y {
    ...
    tcp dport "ssh"
    }
    }

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡:

    เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš inet raw prerouting meta iifkind "vrf" เบเบญเบกเบฎเบฑเบš

  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบŠเบธเบ”เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡ "dynamic" เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบŠเบธเบ” "s" เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ—เบตเปˆเบขเบนเปˆเปเบซเบผเปˆเบ‡เปเบฅเบฐเบ›เบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบซเบกเปˆเบ–เป‰เบฒเบšเปเปˆเบกเบตเปเบžเบฑเบเป€เบเบฑเบ”เป€เบ›เบฑเบ™เป€เบงเบฅเบฒ 30 เบงเบดเบ™เบฒเบ—เบต:

    เป€เบžเบตเปˆเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ x
    เป€เบžเบตเปˆเบกเบŠเบธเบ” xs { เบ›เบฐเป€เบžเบ” ipv4_addr; เบ‚เบฐเปœเบฒเบ” 128; เปเบปเบ”เป€เบงเบฅเบฒ 30s; เบ—เบธเบ‡เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง; }
    add chain xy { type filter hook input priority 0; }
    เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš xy update @s { ip saddr }

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เปเบปเบ”เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบกเบฒเบฎเบญเบ”เบžเบญเบ” 8888, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธ:

    เบ•เบปเบงเบเบญเบ‡ ip เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ {
    ct timeout aggressive-tcp {
    tcp เบžเบดเบ—เบตเบเบฒเบ™;
    l3proto ip;
    policy = {established: 100, close_wait: 4, close: 4}
    }
    เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ {
    ...
    tcp dport 8888 ct timeout set "aggressive-tcp"
    }
    }

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ NAT เบชเปเบฒเบฅเบฑเบšเบ„เบญเบšเบ„เบปเบง inet:

    เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ inet nat {
    ...
    ip6 daddr เบ•เบฒเบ::2::1 dnat เบเบฑเบšเบ•เบฒเบ:2::99
    }

  • เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบžเบดเบกเบœเบดเบ”:

    nft เป€เบžเบตเปˆเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰

    เบœเบดเบ”เบžเบฒเบ”: เบšเปเปˆเบกเบตเป„เบŸเบฅเปŒ เบซเบผเบทเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง; เบ—เปˆเบฒเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ "เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡" เปƒเบ™ ip เบ„เบญเบšเบ„เบปเบงเบšเป?
    เป€เบžเบตเปˆเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰
    ^^^^ เบฅเบฐ ^^

  • เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฅเบฐโ€‹เบšเบธโ€‹เบŠเบทเปˆโ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เปƒเบ™โ€‹เบŠเบธเบ”โ€‹:

    เบ•เบฑเป‰เบ‡ sc {
    เบžเบดเบก inet_service . ifname
    เบญเบปเบ‡เบ›เบฐเบเบญเบš = { "ssh". "eth0" }
    }

  • เบ›เบฑเบšเบ›เบธเบ‡ syntax เบเบปเบ” flowtable:

    nft เป€เบžเบตเปˆเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ x
    nft เป€เบžเบตเปˆเบก flowtable x ft { hook ingress priority 0; เบญเบธเบ›เบฐเบเบญเบ™ = { eth0, wlan0 }; }
    ...
    nft เป€เบžเบตเปˆเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš x forward ip protocol { tcp, udp } flow add @ft

  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš JSON.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™