nftables แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ 0.9.1

แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒฌแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒ’แƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒ nftables 0.9.1, แƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช iptables, ip6table, arptables แƒ“แƒ ebtables แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ IPv4, IPv6, ARP แƒ“แƒ แƒฅแƒกแƒ”แƒšแƒฃแƒ แƒ˜ แƒฎแƒ˜แƒ“แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—. nftables แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜, แƒฎแƒแƒšแƒ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒœแƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก nf_tables แƒฅแƒ•แƒ”แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช Linux kernel-แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒ 3.13 แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.

แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒœแƒ” แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ–แƒแƒ’แƒแƒ“ แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒš แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒœแƒแƒ™แƒแƒ“แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
แƒ—แƒแƒ•แƒแƒ“ แƒคแƒ˜แƒšแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒ™แƒ แƒ“แƒ แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ“แƒแƒ›แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ”แƒ™แƒแƒ“แƒจแƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ”แƒก แƒ‘แƒแƒ˜แƒขแƒ˜ แƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒจแƒ˜ Netlink แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ’แƒ•แƒแƒ’แƒแƒœแƒ”แƒ‘แƒก BPF-แƒก (Berkeley Packet Filters). แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒจแƒ”แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ–แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒ˜แƒšแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜.

แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ˜แƒœแƒแƒ•แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜:

  • IPsec แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ, แƒ’แƒ•แƒ˜แƒ แƒแƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒขแƒงแƒ•แƒ˜แƒกแƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก, IPsec แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก ID แƒ“แƒ SPI (แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜) แƒขแƒ”แƒ’แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”. แฒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“,

    ... ipsec ip saddr 192.168.1.0/24-แƒจแƒ˜
    ... ipsec spi 1-65536-แƒจแƒ˜

    แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ, แƒ’แƒแƒ“แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜ IPsec แƒ’แƒ•แƒ˜แƒ แƒแƒ‘แƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ แƒแƒ แƒ IPSec-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—:

    โ€ฆ แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ rt ipsec แƒแƒ™แƒšแƒ˜แƒ แƒฌแƒ•แƒ”แƒ—แƒ˜

  • IGMP-แƒ˜แƒก (แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒข แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก) แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒฌแƒ”แƒกแƒ˜ IGMP แƒฏแƒ’แƒฃแƒคแƒ˜แƒก แƒฌแƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒฅแƒ›แƒ”แƒ‘แƒšแƒแƒ“

    nft แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒฌแƒ”แƒกแƒ˜ netdev foo bar igmp แƒขแƒ˜แƒžแƒ˜แƒก แƒฌแƒ”แƒ•แƒ แƒแƒ‘แƒ-query counter drop

  • แƒ’แƒแƒ แƒ“แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒฏแƒแƒญแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ (แƒœแƒแƒฎแƒขแƒแƒ›แƒ˜ / goto). แฒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“:

    แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ— dest = ber
    แƒ“แƒแƒแƒ›แƒแƒขแƒ” แƒฌแƒ”แƒกแƒ˜ ip foo bar jump $dest

  • แƒœแƒ˜แƒฆแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (OS Fingerprint) แƒกแƒแƒ—แƒแƒฃแƒ แƒจแƒ˜ TTL แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ’แƒแƒ›แƒ’แƒ–แƒแƒ•แƒœแƒ˜ OS-แƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ:

    ... แƒ›แƒ”แƒขแƒ แƒœแƒ˜แƒจแƒœแƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ osf ttl แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ แƒฃแƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒ { "Linux" : 0x1,
    "Windows": 0x2,
    "MacOS": 0x3,
    "แƒฃแƒชแƒœแƒแƒ‘แƒ˜" : 0x0 }
    ... osf ttl แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ— แƒ•แƒ”แƒ แƒกแƒ˜แƒ "Linux: 4.20"

  • แƒ’แƒแƒ›แƒแƒ›แƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก ARP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ—แƒแƒœ แƒ“แƒ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก IPv4 แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ—แƒแƒœ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, 192.168.2.1 แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ ARP แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜แƒก แƒ’แƒแƒกแƒแƒ–แƒ แƒ“แƒ”แƒšแƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒฌแƒ”แƒกแƒ˜:

    แƒ›แƒแƒ’แƒ˜แƒ“แƒ arp x {
    แƒฏแƒแƒญแƒ•แƒ˜ y {
    แƒขแƒ˜แƒžแƒ˜แƒก filter hook แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒ แƒ˜แƒแƒ แƒ˜แƒขแƒ”แƒขแƒฃแƒšแƒ˜ แƒคแƒ˜แƒšแƒขแƒ แƒ˜; แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ;
    arp saddr ip 192.168.2.1 แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ 1 แƒ‘แƒแƒ˜แƒขแƒ˜ 46
    }
    }

  • แƒžแƒ แƒแƒฅแƒกแƒ˜แƒก (tproxy) แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒ” แƒ’แƒแƒ“แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, 80-แƒ” แƒžแƒแƒ แƒขแƒ–แƒ” แƒ–แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒžแƒ แƒแƒฅแƒกแƒ˜ แƒžแƒแƒ แƒขแƒจแƒ˜ 8080:

    แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ ip x {
    แƒฏแƒแƒญแƒ•แƒ˜ y {
    แƒขแƒ˜แƒžแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒ™แƒแƒฃแƒญแƒ˜แƒก แƒžแƒ แƒ˜แƒแƒ แƒ˜แƒขแƒ”แƒขแƒ˜ -150; แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ;
    tcp dport 80 tproxy to:8080
    }
    }

  • แƒกแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ™แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ SO_MARK แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ setsockopt()-แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒ˜แƒจแƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒ—. แฒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“:

    แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก inet x {
    แƒฏแƒแƒญแƒ•แƒ˜ y {
    แƒขแƒ˜แƒžแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒ™แƒแƒฃแƒญแƒ˜แƒก แƒžแƒ แƒ˜แƒแƒ แƒ˜แƒขแƒ”แƒขแƒ˜ -150; แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ;
    tcp dport 8080 แƒœแƒ˜แƒจแƒœแƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒœแƒ˜แƒจแƒแƒœแƒ˜
    }
    }

  • แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒฏแƒแƒญแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒ˜แƒแƒ แƒ˜แƒขแƒ”แƒขแƒฃแƒšแƒ˜ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แฒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“:

    nft add chain ip x raw { type filter hook prerouting priority raw; }
    nft add chain ip x filter { type filter hook prerouting priority filter; }
    nft แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒฏแƒแƒญแƒ•แƒ˜แƒก ip x filter_later { type filter hook prerouting priority filter + 10; }

  • SELinux แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ (Secmark). แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, SELinux แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜ "sshtag" แƒขแƒ”แƒ’แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒ’แƒ”แƒœแƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒฃแƒจแƒ•แƒแƒ—:

    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" แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ

  • แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก โ€žแƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜โ€œ แƒ“แƒ แƒแƒจแƒ˜แƒก แƒ›แƒ™แƒแƒคแƒ˜แƒแƒ“ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒ˜แƒก "s"-แƒ˜แƒก แƒ’แƒแƒกแƒแƒแƒฎแƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ—แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜, แƒ—แƒฃ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก 30 แƒฌแƒแƒ›แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜:

    แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ x
    add set xs { type ipv4_addr; แƒ–แƒแƒ›แƒ 128; แƒขแƒแƒ˜แƒ›แƒแƒฃแƒขแƒ˜ 30แƒฌ; แƒ“แƒ แƒแƒจแƒ”แƒ‘แƒ˜ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜; }
    แƒฏแƒแƒญแƒ•แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ xy { type filter hook แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒ แƒ˜แƒแƒ แƒ˜แƒขแƒ”แƒขแƒ˜ 0; }
    แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒฌแƒ”แƒกแƒ˜ xy แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ @s { ip saddr }

  • แƒชแƒแƒšแƒ™แƒ” แƒ“แƒ แƒแƒ˜แƒก แƒแƒ›แƒแƒฌแƒฃแƒ แƒ•แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, 8888 แƒžแƒแƒ แƒขแƒ–แƒ” แƒจแƒ”แƒ›แƒแƒกแƒฃแƒšแƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒแƒ›แƒแƒฌแƒฃแƒ แƒ•แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ—:

    แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก IP แƒคแƒ˜แƒšแƒขแƒ แƒ˜ {
    ct timeout aggressive-tcp {
    แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜ tcp;
    l3proto ip;
    แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ = {แƒ“แƒแƒแƒ แƒกแƒ“แƒ: 100, แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ_แƒšแƒแƒ“แƒ˜แƒœแƒจแƒ˜: 4, แƒ“แƒแƒฎแƒฃแƒ แƒ•แƒ: 4}
    }
    แƒฏแƒแƒญแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ {
    ...
    tcp dport 8888 ct แƒ“แƒ แƒแƒ˜แƒก แƒแƒ›แƒแƒฌแƒฃแƒ แƒ•แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ "aggressive-tcp"
    }
    }

  • NAT แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒ˜แƒœแƒ”แƒขแƒ˜แƒก แƒแƒฏแƒแƒฎแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

    แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ inet nat {
    ...
    ip6 daddr dead::2::1 dnat to dead:2::99
    }

  • แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ:

    nft แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒฏแƒแƒญแƒ•แƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜

    แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ: แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜ แƒแƒœ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ แƒแƒ  แƒแƒ แƒ˜แƒก; แƒ˜แƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ” แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก "แƒคแƒ˜แƒšแƒขแƒ แƒ˜" แƒแƒฏแƒแƒฎแƒ˜แƒก IP-แƒจแƒ˜?
    แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒฏแƒแƒญแƒ•แƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜
    ^^^^^^

  • แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒ”แƒ‘แƒจแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ:

    แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— sc {
    แƒแƒ™แƒ แƒ˜แƒคแƒ”แƒ— inet_service. แƒ—แƒฃ แƒกแƒแƒฎแƒ”แƒšแƒ˜
    แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ = {"ssh" . "eth0"}
    }

  • แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ flowtable แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜:

    nft แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ x
    nft แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ flowtable x ft { hook ingress priority 0; แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ = { eth0, wlan0 }; }
    ...
    nft แƒ“แƒแƒแƒ›แƒแƒขแƒ” แƒฌแƒ”แƒกแƒ˜ x แƒฌแƒ˜แƒœแƒกแƒ•แƒšแƒ˜แƒก ip แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜ { tcp, udp } flow add @ft

  • แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ JSON แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ.

แƒฌแƒงแƒแƒ แƒ: opennet.ru

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ