ИздаванС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ nftables 0.9.1

Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прСдставСн Ρ€Π΅Π»ΠΈΠΉΠ· Π½Π° пакСтния Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ nftables 0.9.1, Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‰ сС ΠΊΠ°Ρ‚ΠΎ замСститСл Π½Π° iptables, ip6tables, arptables ΠΈ ebtables, Ρ‡Ρ€Π΅Π· ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° интСрфСйситС Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° IPv4, IPv6, ARP ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ моста. ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ nftables Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° пакСтния Ρ„ΠΈΠ»Ρ‚ΡŠΡ€, ΠΊΠΎΠΈΡ‚ΠΎ работят Π² пространството Π½Π° потрСбитСля, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ядро Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° сС осигурява ΠΎΡ‚ подсистСмата nf_tables, която Π΅ част ΠΎΡ‚ ядрото Π½Π° Linux ΠΎΡ‚ вСрсия 3.13.

На Π½ΠΈΠ²ΠΎ ядро сС прСдоставя само ΠΎΠ±Ρ‰ интСрфСйс, нСзависСщ ΠΎΡ‚ конкрСтния ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρˆ Π±Π°Π·ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, изпълнСниС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Π°Π½Π½ΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°.
Π›ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ ΠΈ спСцифичнитС Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‡ΠΈ сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Π² пространството Π½Π° потрСбитСля, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ сС Π·Π°Ρ€Π΅ΠΆΠ΄Π° Π² ядрото с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° интСрфСйса Netlink ΠΈ сС изпълнява Π² спСциална Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, наподобяваща BPF (Berkeley Packet Filters). Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволява Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π½Π° Π½ΠΈΠ²ΠΎ ядро, ΠΈ Π΄Π° сС изнСсат всички Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ парсинг Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ Π² пространството Π½Π° потрСбитСля.

Основни нововъвСдСния:

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° IPsec, която позволява ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° адрСси Π½Π° Ρ‚ΡƒΠ½Π΅Π»ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° заявката Π·Π° IPsec ΠΈ Ρ‚Π°Π³ SPI (Security Parameter Index). НапримСр,

    … ipsec in ip saddr 192.168.1.0/24
    … ipsec in spi 1-65536

    Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ възмоТна ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° ΠΏΡ€Π΅Π· Ρ‚ΡƒΠ½Π΅Π»Π° IPsec. НапримСр, Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· IPSec:

    … filter output rt ipsec missing drop

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° IGMP (Internet Group Management Protocol). НапримСр, Π·Π° ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° входящи IGMP заявки Π·Π° члСнство Π² Π³Ρ€ΡƒΠΏΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ

    nft add rule netdev foo bar igmp type membership-query counter drop

  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π° опрСдСлянС Π½Π° Π²Π΅Ρ€ΠΈΠ³ΠΈ Π·Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ (jump / goto). НапримСр:

    define dest = ber
    add rule ip foo bar jump $dest

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° маски Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми (OS Fingerprint) Π½Π° Π±Π°Π·Π° Π½Π° стойности TTL Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π°. НапримСр, Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² зависимост ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π½Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

    … meta mark set osf ttl skip name map { "Linux" : 0x1,
    "Windows" : 0x2,
    "MacOS" : 0x3,
    "unknown" : 0x0 }
    … osf ttl skip version "Linux:4.20"

  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° ARP адрСса Π½Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‡Π° ΠΈ IPv4 адрСса Π½Π° Ρ†Π΅Π»Π΅Π²Π°Ρ‚Π° систСма. НапримСр, Π·Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° брояча Π½Π° ARP ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΈ ΠΎΡ‚ адрСс 192.168.2.1, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ:

    table arp x {
    chain y {
    Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Ρ…ΡƒΠΊ Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€; ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ΅ΠΌΠΈ;
    arp saddr ip 192.168.2.1 брояч ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ 1 Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ 46
    }
    }

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ прСнасочванС Π½Π° заявки Ρ‡Ρ€Π΅Π· прокси (tproxy). НапримСр, Π·Π° прСнасочванС Π½Π° заявки ΠΎΡ‚ ΠΏΠΎΡ€Ρ‚ 80 към ΠΏΠΎΡ€Ρ‚ Π½Π° прокси 8080:

    Ρ‚Π°Π±Π»ΠΈΡ†Π° ip x {
    chain y {
    Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Ρ…ΡƒΠΊ прСнасочванС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ -150; ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ΅ΠΌΠΈ;
    tcp dport 80 tproxy Π΄ΠΎ :8080
    }
    }

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° сокСти с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° послСдващо ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½Π°Ρ‚Π° ΠΌΠ°Ρ€ΠΊΠ° Ρ‡Ρ€Π΅Π· setsockopt() Π² Ρ€Π΅ΠΆΠΈΠΌ SO_MARK. НапримСр:

    Ρ‚Π°Π±Π»ΠΈΡ†Π° inet x {
    chain y {
    Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Ρ…ΡƒΠΊ прСнасочванС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ -150; ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ΅ΠΌΠΈ;
    tcp dport 8080 ΠΌΠ°Ρ€ΠΊΠ° Π·Π°Π΄Π°Π²Π°Π½Π΅ сокСт ΠΌΠ°Ρ€ΠΊΠ°
    }
    }

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° тСкстови наимСнования ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΈ Π·Π° Π²Π΅Ρ€ΠΈΠ³ΠΈ. НапримСр:

    nft Π΄ΠΎΠ±Π°Π²ΠΈ Π²Π΅Ρ€ΠΈΠ³Π° ip x raw { Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Ρ…ΡƒΠΊ прСнасочванС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ raw; }
    nft Π΄ΠΎΠ±Π°Π²ΠΈ Π²Π΅Ρ€ΠΈΠ³Π° ip x filter { Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Ρ…ΡƒΠΊ прСнасочванС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€; }
    nft Π΄ΠΎΠ±Π°Π²ΠΈ Π²Π΅Ρ€ΠΈΠ³Π° ip x filter_later { Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Ρ…ΡƒΠΊ прСнасочванС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ + 10; }

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ‚Π°Π³ΠΎΠ²Π΅ SELinux (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 { Ρ‚ΠΈΠΏ inet_service : secmark; }
    nft Π΄ΠΎΠ±Π°Π²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ inet filter secmapping { 22 : β€žsshtagβ€œ }
    nft Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ inet filter input meta secmark set tcp dport ΠΊΠ°Ρ€Ρ‚Π° @secmapping

  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ Π² тСкстов Π²ΠΈΠ΄, ΠΊΠ°ΠΊΡ‚ΠΎ са ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π² Ρ„Π°ΠΉΠ»Π° /etc/services. НапримСр:

    nft Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ x y tcp dport β€žsshβ€œ
    nft списък ΠΏΡ€Π°Π²ΠΈΠ»Π° -l
    Ρ‚Π°Π±Π»ΠΈΡ†Π° x {
    chain y {
    …
    tcp dport β€žsshβ€œ
    }
    }

  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠ° ΠΌΡ€Π΅ΠΆΠΎΠ² интСрфСйс. НапримСр:

    Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ inet raw прСнасочванС meta iifkind β€žvrfβ€œ ΠΏΡ€ΠΈΠ΅ΠΌΠΈ

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π°Π±ΠΎΡ€ΠΈ (sets) Ρ‡Ρ€Π΅Π· явно ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ„Π»Π°Π³Π° β€ždynamicβ€œ. НапримСр, Π·Π° обновяванС Π½Π° Π½Π°Π±ΠΎΡ€Π° β€žsβ€œ с добавянС Π½Π° изходящ адрСс ΠΈ Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° записа Π² случай Π½Π° ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 30 сСкунди:

    Π΄ΠΎΠ±Π°Π²ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° x
    Π΄ΠΎΠ±Π°Π²ΠΈ Π½Π°Π±ΠΎΡ€ x s { Ρ‚ΠΈΠΏ ipv4_addr; Ρ€Π°Π·ΠΌΠ΅Ρ€ 128; Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ 30s; Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ; }
    Π΄ΠΎΠ±Π°Π²ΠΈ Π²Π΅Ρ€ΠΈΠ³Π° x y { Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Ρ…ΡƒΠΊ Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ 0; }
    Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ x y Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉ @s { ip saddr }

  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ условиС Π·Π° възникванС Π½Π° Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅. НапримСр, Π·Π° прСнасочванС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, пристигнали Π½Π° ΠΏΠΎΡ€Ρ‚ 8888, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅:

    Ρ‚Π°Π±Π»ΠΈΡ†Π° ip filter {
    ct Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ агрСсивСн-tcp {
    ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» tcp;
    l3proto ip;
    ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° = {установСн: 100, close_wait: 4, close: 4}
    }
    Π²Π΅Ρ€ΠΈΠ³Π° output {
    …
    tcp dport 8888 ct Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ Π·Π°Π΄Π°Π²Π°Π½Π΅ β€žΠ°Π³Ρ€Π΅ΡΠΈΠ²Π΅Π½-tcpβ€œ
    }
    }

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° NAT Π·Π° сСмСйството inet:

    Ρ‚Π°Π±Π»ΠΈΡ†Π° inet nat {
    …
    ip6 daddr dead::2::1 dnat Π΄ΠΎ dead:2::99
    }

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ срСдства Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° информация Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ правописни Π³Ρ€Π΅ΡˆΠΊΠΈ:

    nft Π΄ΠΎΠ±Π°Π²ΠΈ Π²Π΅Ρ€ΠΈΠ³Π° filtre test

    Π“Ρ€Π΅ΡˆΠΊΠ°: Няма Ρ‚Π°ΠΊΡŠΠ² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ дирСктория; ΠΈΠΌΠ°Π»ΠΈ стС ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Π° β€žfilterβ€œ Π² сСмСйство ip?
    Π΄ΠΎΠ±Π°Π²ΠΈ Π²Π΅Ρ€ΠΈΠ³Π° filtre test
    ^^^^^^

  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π° Π½Π° интСрфСйси Π² Π½Π°Π±ΠΎΡ€ΠΈ (sets):

    Π½Π°Π±ΠΎΡ€ sc {
    Ρ‚ΠΈΠΏ inet_service . ifname
    Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ = { β€žsshβ€œ . β€žeth0β€œ }
    }

  • ОбновСн синтаксис Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° flowtable:

    nft Π΄ΠΎΠ±Π°Π²ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° x
    nft Π΄ΠΎΠ±Π°Π²ΠΈ flowtable x ft { Ρ…ΡƒΠΊ Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ 0; устройства = { eth0, wlan0 }; }
    …
    nft Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ x Π½Π°ΠΏΡ€Π΅Π΄ ip ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» { tcp, udp } ΠΏΠΎΡ‚ΠΎΠΊ Π΄ΠΎΠ±Π°Π²ΠΈ @ft

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° JSON.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster