nftables packet filter 1.0.2 famoahana

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° nftables 1.0.2, ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ интСрфСйсы Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для IPv4, IPv6, ARP ΠΈ сСтСвых мостов (Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° Π·Π°ΠΌΠ΅Π½Ρƒ iptables, ip6table, arptables ΠΈ ebtables). НСобходимыС для Ρ€Π°Π±ΠΎΡ‚Ρ‹ выпуска nftables 1.0.2 измСнСния Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² состав ядра Linux 5.17-rc.

Ny fonosana nftables dia ahitana singa sivana fonosana izay mandeha amin'ny habaka mpampiasa, raha toa kosa ny asan'ny kernel-level dia omen'ny subsystem nf_tables, izay anisan'ny kernel Linux hatramin'ny famoahana 3.13. Ny haavon'ny kernel dia tsy manome afa-tsy interface tsy miankina amin'ny protocol generic izay manome fiasa fototra amin'ny fakana ny angona avy amin'ny fonosana, ny fampandehanana ny angona ary ny fanaraha-maso ny fikorianan'ny rano.

Ny fitsipika fanivanana sy ireo mpikirakira manokana momba ny protocole dia natambatra ho bytecode-space-n'ny mpampiasa, ary avy eo dia ampidirina ao anaty kernel ity bytecode ity amin'ny alΓ lan'ny interface Netlink ary atao ao anaty kernel ao anaty milina virtoaly manokana mitovy amin'ny BPF (Berkeley Packet Filters). Ity fomba fiasa ity dia ahafahana mampihena be ny haben'ny code sivana mandeha amin'ny haavon'ny kernel ary mamindra ny fiasa rehetra amin'ny fitsipi-pitenenana sy ny lojika miasa amin'ny protocols ho any amin'ny habaka mpampiasa.

Fanavaozana lehibe:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π°Π²ΠΈΠ», Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ Β«-oΒ» (Β«β€”optimizeΒ»), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ Β«β€”checkΒ» для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ» Π±Π΅Π· Π΅Π³ΠΎ фактичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ позволяСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π°Π²ΠΈΠ»Π°: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1 ip daddr 2.2.2.2 accept ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² meta iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 . 1.1.1.2 . 2.2.2.5 } accept ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accept, 2.2.2.2 . 3.3.3.3 : drop }

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования: # nft -c -o -f ruleset.test Merging: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 counter accept into: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • Π’ set-списках Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания ip- ΠΈ tcp-ΠΎΠΏΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ chunk-ΠΎΠ² sctp: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° TCP-ΠΎΠΏΡ†ΠΈΠΉ fastopen, md5sig ΠΈ mptcp.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования Π² сопоставлСниях ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠ° mp-tcp: tcp option mptcp subtype 1
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ ΠΊΠΎΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° сторонС ядра.
  • Для flowtable Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° JSON.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования дСйствия Β«rejectΒ» Π² опСрациях сопоставлСния Ethernet-ΠΊΠ°Π΄Ρ€ΠΎΠ². ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject

Source: opennet.ru

Add a comment