เบเบฒเบเบเปเบญเบเบเบปเบงเบเบญเบ packet nftables 1.0.7 เปเบเปเบเบทเบเบเบฑเบเบเบตเบกเบกเบฒ, unifying packet filtering interfaces เบชเปเบฒเบฅเบฑเบ IPv4, IPv6, ARP เปเบฅเบฐเบเบปเบงเปเบเบทเบญเบเปเบฒเบ (เบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบเบปเบเปเบเบ iptables, ip6table, arptables เปเบฅเบฐ ebtables). เบเบธเบ nftables เบเบฐเบเบญเบเบกเบตเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป, เปเบเบเบฐเบเบฐเบเบตเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบฅเบฐเบเบฑเบ kernel เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบฅเบฐเบเบปเบเบเปเบญเบ nf_tables, เปเบเบดเปเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ Linux kernel เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบเปเบญเบ 3.13. เบฅเบฐเบเบฑเบ kernel เบชเบฐเบซเบเบญเบเบเบฝเบเปเบเปเบชเปเบงเบเบเบดเบเบเปเปเปเบเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบเปเบเบเบญเบเบเบปเปเบงเปเบเบเบตเปเบชเบฐเบซเบเบญเบเบซเบเปเบฒเบเบตเปเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฑเบเปเบเบฑเบ, เบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเปเบซเบผ.
เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบฅเบฐเบเบปเบงเบเบฑเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบเปเบเบเบญเบเปเบเปเบเบทเบเบฅเบงเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบ bytecode เปเบเบเบทเปเบเบเบตเปเบเบนเปเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ bytecode เบเบตเปเบเบทเบเปเบซเบฅเบเปเบเบปเปเบฒเปเบเปเบ kernel เปเบเบเปเบเปเบเบฒเบเปเบเปเบเบญเบ Netlink เปเบฅเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบ kernel เปเบเปเบเบทเปเบญเบ virtual เบเบดเปเบชเบเบเบตเปเบฅเบฐเบเบถเบเปเบเบดเบ BPF (Berkeley Packet Filters). เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเปเบเปเบเปเบฅเบฐเบเปเบฒเบเบซเบเปเบฒเบเบตเปเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบเปเบฅเบฐเปเบซเบเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเปเบเบเบญเบเปเบเบปเปเบฒเปเบเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป.
เบเบฒเบเบเปเบฝเบเปเบเบเบเบปเปเบเบเป:
- ะะปั ัะธััะตะผ ั ัะดัะพะผ Linux 6.2+ ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตัะถะบะฐ ัะพะฟะพััะฐะฒะปะตะฝะธั ะฟัะพัะพะบะพะปะพะฒ vxlan, geneve, gre ะธ gretap, ััะพ ะฟะพะทะฒะพะปัะตั ะธัะฟะพะปัะทะพะฒะฐัั ะฟัะพัััะต ะฒััะฐะถะตะฝะธั ะดะปั ะฟัะพะฒะตัะบะธ ะทะฐะณะพะปะพะฒะบะพะฒ ะฒ ะธะฝะบะฐะฟััะปะธัะพะฒะฐะฝะฝัั ะฟะฐะบะตัะฐั . ะะฐะฟัะธะผะตั, ะดะปั ะฟัะพะฒะตัะบะธ IP-ะฐะดัะตัะฐ ะฒ ะทะฐะณะพะปะพะฒะบะต ะฒะปะพะถะตะฝะฝะพะณะพ ะฟะฐะบะตัะฐ ะธะท VxLAN, ัะตะฟะตัั ะผะพะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั ะฟัะฐะฒะธะปะฐ (ะฑะตะท ะฝะตะพะฑั ะพะดะธะผะพััะธ ะฟัะตะดะฒะฐัะธัะตะปัะฝะพะน ะดะตะธะฝะบะฐะฟััะปััะธะธ ะทะฐะณะพะปะพะฒะบะฐ VxLAN ะธ ะฟัะธะฒัะทะบะธ ัะธะปัััะฐ ะบ ะธะฝัะตััะตะนัั vxlan0): โฆ udp dport 4789 vxlan ip protocol udp โฆ udp dport 4789 vxlan ip saddr 1.2.3.0/24 โฆ udp dport 4789 vxlan ip saddr . vxlan ip daddr { 1.2.3.4 . 4.3.2.1 }
- ะ ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตัะถะบะฐ ะฐะฒัะพะผะฐัะธัะตัะบะพะณะพ ัะปะธัะฝะธั ะพััะฐัะบะพะฒ ะฟะพัะปะต ัะฐััะธัะฝะพะณะพ ัะดะฐะปะตะฝะธั ัะปะตะผะตะฝัะฐ set-ัะฟะธัะบะฐ, ััะพ ะฟะพะทะฒะพะปัะตั ัะดะฐะปะธัั ัะปะตะผะตะฝั ะธะปะธ ัะฐััั ะดะธะฐะฟะฐะทะพะฝะฐ ะธะท ัััะตััะฒัััะตะณะพ ะดะธะฐะฟะฐะทะพะฝะฐ (ัะฐะฝััะต ะดะธะฐะฟะฐะทะพะฝ ะผะพะถะฝะพ ะฑัะปะพ ัะดะฐะปะธัั ัะพะปัะบะพ ัะตะปะธะบะพะผ). ะะฐะฟัะธะผะตั, ะฟะพัะปะต ัะดะฐะปะตะฝะธั ัะปะตะผะตะฝัะฐ 25 ะธะท set-ัะฟะธัะบะฐ ั ะดะธะฐะฟะฐะทะพะฝะฐะผะธ 24-30 ะธ 40-50 ะฒ ัะฟะธัะบะต ะพััะฐะฝัััั 24, 26-30 ะธ 40-50. ะัะฟัะฐะฒะปะตะฝะธั, ะฝะตะพะฑั ะพะดะธะผัะต ะดะปั ัะฐะฑะพัั ะฐะฒัะพัะปะธัะฝะธั, ะฑัะดัั ะฟัะตะดะปะพะถะตะฝั ะฒ ะบะพััะตะบัะธััััะธั ะฒัะฟััะบะฐั ััะฐะฑะธะปัะฝัั ะฒะตัะพะบ ัะดัะฐ 5.10+. # nft list ruleset table ip x { set y { typeof tcp dport flags interval auto-merge elements = { 24-30, 40-50 } } } # nft delete element ip x y { 25 } # nft list ruleset table ip x { set y { typeof tcp dport flags interval auto-merge elements = { 24, 26-30, 40-50 } } }
- ะ ะฐะทัะตัะตะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะบะพะฝัะฐะบัะฐัะธะธ ะธ ะดะธะฐะฟะฐะทะพะฝะพะฒ ะฟัะธ ะผะฐะฟะฟะธะฝะณะต ััะฐะฝัะปััะธะธ ะฐะดัะตัะพะฒ (NAT). table ip nat { chain prerouting { type nat hook prerouting priority dstnat; policy accept; dnat to ip daddr . tcp dport map { 10.1.1.136 . 80 : 1.1.2.69 . 1024, 10.1.1.10-10.1.1.20 . 8888-8889 : 1.1.2.69 . 2048-2049 } persistent } }
- ะะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตัะถะบะฐ ะฒััะฐะถะตะฝะธั ยซlastยป, ะฟะพะทะฒะพะปัััะตะณะพ ัะทะฝะฐัั ะฒัะตะผั ะฟะพัะปะตะดะฝะตะณะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธั ัะปะตะผะตะฝัะฐ ะฟัะฐะฒะธะปะฐ ะธะปะธ set-ัะฟะธัะบะฐ. ะะพะทะผะพะถะฝะพััั ะฟะพะดะดะตัะถะธะฒะฐะตััั ะฝะฐัะธะฝะฐั ั ัะดัะฐ Linux 5.14. table ip x { set y { typeof ip daddr . tcp dport size 65535 flags dynamic,timeout last timeout 1h } chain z { type filter hook output priority filter; policy accept; update @y { ip daddr . tcp dport } } } # nft list set ip x y table ip x { set y { typeof ip daddr . tcp dport size 65535 flags dynamic,timeout last timeout 1h elements = { 172.217.17.14 . 443 last used 1s591ms timeout 1h expires 59m58s409ms, 172.67.69.19 . 443 last used 4s636ms timeout 1h expires 59m55s364ms, 142.250.201.72 . 443 last used 4s748ms timeout 1h expires 59m55s252ms, 172.67.70.134 . 443 last used 4s688ms timeout 1h expires 59m55s312ms, 35.241.9.150 . 443 last used 5s204ms timeout 1h expires 59m54s796ms, 138.201.122.174 . 443 last used 4s537ms timeout 1h expires 59m55s463ms, 34.160.144.191 . 443 last used 5s205ms timeout 1h expires 59m54s795ms, 130.211.23.194 . 443 last used 4s436ms timeout 1h expires 59m55s564ms } } }
- ะะพะฑะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพััั ะพะฟัะตะดะตะปะตะฝะธั ะบะฒะพั ะฒ set-ัะฟะธัะบะฐั . ะะฐะฟัะธะผะตั, ะดะปั ะพะฟัะตะดะตะปะตะฝะธั ะบะฒะพัั ะฝะฐ ััะฐัะธะบ ะดะปั ะบะฐะถะดะพะณะพ ัะตะปะตะฒะพะณะพ IP-ะฐะดัะตัะฐ, ะผะพะถะฝะพ ัะบะฐะทะฐัั: table netdev x { set y { typeof ip daddr size 65535 quota over 10000 mbytes } chain y { type filter hook egress device ยซeth0ยป priority filter; policy accept; ip daddr @y drop } } # nft add element inet x y { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft list ruleset table netdev x { set y { type ipv4_addr size 65535 quota over 10000 mbytes elements = { 8.8.8.8 quota over 10000 mbytes used 196 bytes } } chain y { type filter hook egress device ยซeth0ยป priority filter; policy accept; ip daddr @y drop } }
- ะ ะฐะทัะตัะตะฝะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต ะบะพะฝััะฐะฝั ะฒ set-ัะฟะธัะบะฐั . ะะฐะฟัะธะผะตั, ะฟัะธ ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะฒ ะบะฐัะตััะฒะต ะบะปััะฐ ัะฟะธัะบะฐ ะฐะดัะตัะฐ ะฝะฐะทะฝะฐัะตะฝะธั ะธ ะธะดะตะฝัะธัะธะบะฐัะพัะฐ VLAN ะผะพะถะฝะพ ะฝะฐะฟััะผัั ัะบะฐะทะฐัั ะฝะพะผะตั VLAN (daddr . 123): table netdev t { set s { typeof ether saddr . vlan id size 2048 flags dynamic,timeout timeout 1m } chain c { type filter hook ingress device eth0 priority 0; policy accept; ether type != 8021q update @s { ether daddr . 123 } counter } }
- ะะพะฑะฐะฒะปะตะฝะฐ ะฝะพะฒะฐั ะบะพะผะฐะฝะดะฐ ยซdestroyยป ะดะปั ะฑะตะทะพะณะพะฒะพัะพัะฝะพะณะพ ัะดะฐะปะตะฝะธั ะพะฑัะตะบัะพะฒ (ะฒ ะพัะปะธัะธะต ะพั ะบะพะผะฐะฝะดั delete ะฝะต ะณะตะฝะตัะธััะตั ENOENT ะฟัะธ ะฟะพะฟััะบะต ัะดะฐะปะตะฝะธั ะพััััััะฒัััะตะณะพ ะพะฑัะตะบัะฐ). ะะปั ัะฐะฑะพัั ััะตะฑัะตััั ะบะฐะบ ะผะธะฝะธะผัะผ ัะดัะพ Linux 6.3-rc. destroy table ip filter
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru