ИздаванС Π½Π° пакСтния Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ nftables 1.1.6

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅Π½ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ nftables 1.1.6, ΠΊΠΎΠΉΡ‚ΠΎ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° интСрфСйситС Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° IPv4, IPv6, ARP ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ мостовС (ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° замяна Π½Π° iptables, ip6table, arptables ΠΈ ebtables). Π‘ΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libnftnl 1.3.1, прСдоставяща нискоуровнСв API Π·Π° взаимодСйствиС с подсистСмата nf_tables.

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚a nftables Π²Π»ΠΈΠ·Π°Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° пакСтния Ρ„ΠΈΠ»Ρ‚ΡŠΡ€, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² пространството Π½Π° потрСбитСля, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π° Π½ΠΈΠ²ΠΎ ядро Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π΅ осигурСна ΠΎΡ‚ подсистСмата nf_tables, която Π΅ част ΠΎΡ‚ ядрото Π½Π° Linux ΠΎΡ‚ вСрсия 3.13. На Π½ΠΈΠ²ΠΎ ядро сС прСдоставя само ΠΎΠ±Ρ‰ интСрфСйс, нСзависим ΠΎΡ‚ конкрСтния ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‰ основни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Π°Π½Π½ΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ°.

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

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° Π΅ пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° шаблони Π·Π° Π»Π΅ΠΊΠΈ Ρ‚ΡƒΠ½Π΅Π»ΠΈ, ΠΊΠ°Ρ‚ΠΎ vxlan, geneve ΠΈ erspan: table netdev global { tunnel t1 { id 10 ip saddr 192.168.2.10 ip daddr 192.168.2.11 sport 1025 dport 20020 ttl 1 erspan { version 1 index 2 } } tunnel t2 { id 10 ip saddr 192.168.3.10 ip daddr 192.168.3.11 sport 1025 dport 21021 ttl 1 erspan { version 1 index 2 } } chain in { type filter hook ingress device veth0 priority 0; tunnel name ip saddr map { 10.141.10.12 : Β«t1Β», 10.141.10.13 : Β«t2Β» } fwd to erspan1 } } ΠŸΡ€Π΅Π΄ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° трябва Π΄Π° сС създадС ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ интСрфСйс erspan1: ip link add dev erspan1 type erspan external
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° маски Π² ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ интСрфСйси Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ netdev, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° добавянС Π½Π° основна Π²Π΅Ρ€ΠΈΠ³Π° във Ρ„ΠΈΠ»Ρ‚ΡŠΡ€Π° Π·Π° входящ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π·Π° всички устройства vlan, ΠΌΠΎΠΆΠ΅ Π΄Π° сС посочи: table netdev t { chain c { type filter hook ingress devices = { Β«vlan*Β», Β«veth0Β» } priority filter; policy accept; } }
  • На систСмитС с Linux ядро 6.18+ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° L2 ΠΊΠ°Π΄Ρ€ΠΈ Π² интСрфСйса Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ мостовС Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° насочванС Π½Π° всички Ethernet ΠΊΠ°Π΄Ρ€ΠΈ Π·Π° MAC адрСса de:ad:00:00:be:ef към IP стСка, ΠΌΠΎΠΆΠ΅ Π΄Π° сС посочи: table bridge global { chain pre { type filter hook prerouting priority 0; policy accept; ether daddr de:ad:00:00:be:ef meta pkttype set host ether daddr set meta ibrhwaddr accept } }
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° инфраструктура Π·Π° fuzzing тСстванС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструмСнти afl++ (american fuzzy lop++), Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π° Π½Π° Π΅Ρ‚Π°ΠΏ Π½Π° компилация Ρ‡Ρ€Π΅Π· Β«.\/configure β€”with-fuzzerΒ».

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

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