nftables 1.0.1, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป€เบŸเบฃเบกเป€เบงเบตเบเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบฅเบงเบกเบญเบดเบ™เป€เบ•เบตเป€เบŸเบ”เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบชเบณเบฅเบฑเบš IPv4, IPv6, ARP, เปเบฅเบฐเบšเบฃเบดเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปเบฅเป‰เบง (เปเบ™เปƒเบชเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™ iptables, ip6table, arptables, เปเบฅเบฐ ebtables). เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบณเบฅเบฑเบš nftables 1.0.1 เป„เบ”เป‰เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ kernel. Linux 5.16-rc1.

เบŠเบธเบ” nftables เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบงเบฝเบเบ‡เบฒเบ™เบฅเบฐเบ”เบฑเบšเป€เบ„เบตเป€เบ™เบฅเปเบกเปˆเบ™เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบฅเบฐเบšเบปเบšเบเปˆเบญเบ nf_tables, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เป€เบ„เบตเป€เบ™เบฅ. Linux เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบฅเบธเป‰เบ™ 3.13, เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบญเบดเบ™เป€เบ•เบตเป€เบŸเบ”เบ—เบตเปˆเบšเปเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเป‚เบ›เบฃเป‚เบ•เบ„เบญเบ™เบ—เบปเปˆเบงเป„เบ›เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบ–เบทเบเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเป€เบ„เบตเป€เบ™เบฅ, เป€เบŠเบดเปˆเบ‡เบชเบฐเปœเบญเบ‡เปœเป‰เบฒเบ—เบตเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบชเบณเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบžเบฑเบเป€เบเบฑเบ”, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐ เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป„เบซเบผ.

เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เป€เบญเบ‡ เปเบฅเบฐ เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเป‚เบ›เบฃเป‚เบ•เบ„เบญเบ™เปเบกเปˆเบ™เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ bytecode เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ bytecode เบ™เบตเป‰เบ–เบทเบเป‚เบซเบผเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ kernel เป‚เบ”เบเปƒเบŠเป‰เบญเบดเบ™เป€เบ•เบตเป€เบŸเบ” Netlink เปเบฅเบฐ เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ kernel เปƒเบ™เบžเบดเป€เบชเบ” เป€เบ„เบทเปˆเบญเบ‡ virtual, เป€เบฎเบฑเบ”เปƒเบซเป‰เบ™เบถเบเป€เบ–เบดเบ‡ BPF (Berkeley Packet Filters). เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš kernel เป„เบ”เป‰เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ เปเบฅเบฐ เบเป‰เบฒเบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบปเบ”เบฅเบฐเบšเบฝเบš เปเบฅเบฐ เป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ—เบฑเบ‡เปเบปเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰.

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบ•เบปเป‰เบ™เบ•เป:

  • เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบซเบฅเบ”เบŠเบธเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบฅเบฐเบฅเบฒเบเบเบฒเบ™เปเบœเบ™เบ—เบตเปˆ.
  • เบเบฒเบ™เป‚เบซเบผเบ”เบŠเบธเบ” เปเบฅเบฐเบฅเบฒเบเบเบฒเบ™เปเบœเบ™เบ—เบตเปˆเบ„เบทเบ™เปƒเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบฅเบฑเปˆเบ‡เปเบฅเป‰เบง.
  • เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบฅเบฐเบ•เปˆเบญเบ‡เป‚เบชเป‰เบ—เบตเปˆเป€เบฅเบทเบญเบเปƒเบ™เบŠเบธเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป„เบ”เป‰เบ–เบทเบเป€เบฅเบฑเปˆเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡ "nft list rules" เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบกเบต 100 เบžเบฑเบ™เปเบ–เบงเปเบกเปˆเบ™ 3.049 เบงเบดเบ™เบฒเบ—เบต, เปเบฅเบฐเป€เบกเบทเปˆเบญเบญเบญเบเบžเบฝเบ‡เปเบ•เปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ nat เปเบฅเบฐเบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡ ("nft list table nat", "nft list table filter. โ€) เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เป€เบ›เบฑเบ™ 1.969 เปเบฅเบฐ 0.697 เบงเบดเบ™เบฒเบ—เบต.
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ—เบตเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ "--terse" เป„เบ”เป‰เบ–เบทเบเป€เบฅเบฑเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบกเบตเบŠเบธเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ - เปเบฅเบฐเบฅเบฒเบเบŠเบทเปˆเปเบœเบ™เบ—เบตเปˆ.
  • เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเบฑเปˆเบ™เบ•เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบˆเบฒเบเบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ "egress", เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™ egress เปƒเบ™เบ•เปˆเบญเบ‡เป‚เบชเป‰ netdev (egress hook), i.e. เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบกเบทเปˆเบญเบ„เบปเบ™เบ‚เบฑเบšเป„เบ”เป‰เบฎเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ”เบˆเบฒเบ kernel network stack. เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบšโ€‹เบ„เบนเปˆโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ”เบฑเบ”โ€‹เปเบเป‰โ€‹เบ‚เบญเบ‡ bytes เปƒเบ™โ€‹เบชเปˆเบงเบ™โ€‹เบซเบปเบงโ€‹เปเบฅเบฐโ€‹เป€เบ™เบทเป‰เบญโ€‹เปƒเบ™โ€‹เบ‚เบญเบ‡ Packet เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบŠเบปเบ”โ€‹เป€เบŠเบตเบโ€‹เบ—เบตเปˆโ€‹เปƒเบซเป‰โ€‹. # nft เป€เบžเบตเปˆเบกเบเบปเบ” xy @ih,32,32 0x14000000 counter #nft add rule xy @ih,32,32 set 0x14000000 counter

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster