nftables ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ вСрсия 0.9.1

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

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

Основни ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° IPsec, позволяваща ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ Π½Π° Ρ‚ΡƒΠ½Π΅Π»Π½ΠΈ адрСси въз основа Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚, ID Π½Π° IPsec заявка ΠΈ SPI (ИндСкс Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Π·Π° сигурност) Ρ‚Π°Π³. НапримСр,

    ... 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 стойности Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π°. НапримСр, Π·Π° Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ въз основа Π½Π° ОБ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‡, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

    ... meta mark set osf ttl skip name map { "Linux" : 0x1,
    "Windows": 0x2,
    "MacOS": 0x3,
    "нСизвСстСн": 0x0}
    ... osf ttl пропуснСтС вСрсия "Linux:4.20"

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

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

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

    Ρ‚Π°Π±Π»ΠΈΡ†Π° ip x {
    Π²Π΅Ρ€ΠΈΠ³Π° y {
    Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ ΠΊΡƒΠΊΠ° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎΡ‚ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ -150; ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ΅ΠΌΠ°;
    tcp dport 80 tпрокси към :8080
    }
    }

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

    Ρ‚Π°Π±Π»ΠΈΡ†Π° inet x {
    Π²Π΅Ρ€ΠΈΠ³Π° y {
    Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ ΠΊΡƒΠΊΠ° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎΡ‚ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅ -150; ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠ΅ΠΌΠ°;
    tcp dport 8080 ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° сокСт
    }
    }

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

    nft add chain ip x raw { type filter hook prerouting priority raw; }
    nft Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π²Π΅Ρ€ΠΈΠ³Π° ip x Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ { Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ ΠΊΡƒΠΊΠ° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅Π½ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΡ€Π°Π½Π΅; }
    nft Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π²Π΅Ρ€ΠΈΠ³Π° ip x filter_later { type filter hook prerouting priority filter + 10; }

  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° SELinux Ρ‚Π°Π³ΠΎΠ²Π΅ (Secmark). НапримСр, Π·Π° Π΄Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π°Π³Π° "sshtag" Π² контСкст Π½Π° SELinux, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅:

    nft Π΄ΠΎΠ±Π°Π²ΠΈ secmark inet Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ sshtag "system_u:object_r:ssh_server_packet_t:s0"

    И слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π² ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π°:

    nft добавянС Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ inet Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ input tcp dport 22 meta secmark set β€œsshtag”

    nft Π΄ΠΎΠ±Π°Π²ΠΈ ΠΊΠ°Ρ€Ρ‚Π° inet filter secmapping { type inet_service : secmark; }
    nft Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ inet filter secmapping { 22 : "sshtag" }
    nft добавянС Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ inet Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ 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" accept

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π°Π±ΠΎΡ€ΠΈ Ρ‡Ρ€Π΅Π· ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ„Π»Π°Π³Π° β€žΠ΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅Π½β€œ. НапримСр, Π·Π° Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π½Π°Π±ΠΎΡ€Π° "s", Π·Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ адрСса Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° ΠΈ Π΄Π° Π½ΡƒΠ»ΠΈΡ€Π°Ρ‚Π΅ записа, Π°ΠΊΠΎ няма ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° 30 сСкунди:

    Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° x
    add set xs { type ipv4_addr; Ρ€Π°Π·ΠΌΠ΅Ρ€ 128; Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ 30s; Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ; }
    Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π²Π΅Ρ€ΠΈΠ³Π° xy { Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ ΠΊΡƒΠΊΠ° Π²Ρ…ΠΎΠ΄Π΅Π½ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ 0; }
    Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ xy актуализация @s { ip saddr }

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

    Ρ‚Π°Π±Π»ΠΈΡ†Π° IP Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ {
    ct timeout aggressive-tcp {
    ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» tcp;
    l3proto ip;
    ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° = {установСно: 100, close_wait: 4, затварянС: 4}
    }
    Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄ {
    ...
    tcp dport 8888 ct ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ "aggressive-tcp"
    }
    }

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

    Ρ‚Π°Π±Π»ΠΈΡ†Π° inet nat {
    ...
    ip6 daddr ΠΌΡŠΡ€Ρ‚ΡŠΠ²::2::1 dnat към ΠΌΡŠΡ€Ρ‚ΡŠΠ²:2::99
    }

  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ:

    nft добавя тСст Π·Π° Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€

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

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

    set sc {
    Ρ‚ΠΈΠΏ inet_service. ifname
    Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ = { "ssh" . "eth0"}
    }

  • Актуализиран синтаксис Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π΅:

    nft Π΄ΠΎΠ±Π°Π²ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° x
    nft add flowtable x ft {hook ingress priority 0; устройства = {eth0, wlan0}; }
    ...
    nft добавянС Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ x прСнасочванС Π½Π° ip ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» {tcp, udp} ΠΏΠΎΡ‚ΠΎΠΊ добавянС Π½Π° @ft

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

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€