IPv1.0.0, IPv4, ARP, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดฌเตเดฐเดฟเดกเตเดเตเดเตพ (iptables, ip6table, arptables, ebtables เดเดจเตเดจเดฟเดต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดฒเดเตเดทเตเดฏเดฎเดฟเดเตเดเตเดณเตเดณ) เดชเดพเดเตเดเดฑเตเดฑเต เดซเดฟเตฝเดเตเดเดฑเดฟเดเดเต เดเดจเตเดฑเตผเดซเตเดธเตเดเตพ เดเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดชเดพเดเตเดเดฑเตเดฑเต เดซเดฟเตฝเดเตเดเตผ nftables 6 เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเดฟ. nftables 1.0.0 เดฑเดฟเดฒเตเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเดเตเดเตพ Linux 5.13 เดเตเตผเดฃเดฒเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. เดชเดคเดฟเดชเตเดชเต เดจเดฎเตเดชเดฑเดฟเดฒเต เดเดฐเต เดชเตเดฐเดงเดพเดจ เดฎเดพเดฑเตเดฑเด เด เดเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดฆเดถเดพเดเดถ เดจเตเดเตเดเตเดทเดจเดฟเตฝ เดจเดฎเตเดชเดฑเดฟเดเดเดฟเดจเตเดฑเต เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดคเตเดเตผเดเตเดเดฏเตเดเต เด เดจเดจเตเดคเดฐเดซเดฒเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต (เดฎเตเดฎเตเดชเดคเตเดคเต เดฑเดฟเดฒเตเดธเต 0.9.9 เดเดฏเดฟเดฐเตเดจเตเดจเต).
nftables เดชเดพเดเตเดเตเดเดฟเตฝ เดฏเตเดธเตผ เดธเตเดชเตเดธเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดชเดพเดเตเดเดฑเตเดฑเต เดซเดฟเตฝเดเตเดเตผ เดเดเดเดเตเดเตพ เดเตพเดชเตเดชเตเดเตเดจเตเดจเต, เด เดคเตเดธเดฎเดฏเด เดเตเตผเดฃเตฝ-เดฒเตเดตเตฝ เดตเตผเดเตเดเต เดจเตฝเดเตเดจเตเดจเดคเต 3.13 เดฑเดฟเดฒเตเดธเต เดฎเตเดคเตฝ Linux เดเตเตผเดฃเดฒเดฟเดจเตเดฑเต เดญเดพเดเดฎเดพเดฏ nf_tables เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฃเต. เดชเดพเดเตเดเดฑเตเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดเดเตโเดธเตโเดเตเดฐเดพเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดกเดพเดฑเตเดฑ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเดเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด เดซเตเดฒเต เดเตบเดเตเดฐเตเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เด เดเดฟเดธเตเดฅเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเตฝเดเตเดจเตเดจ เดเดฐเต เดเดจเดฑเดฟเดเต เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ-เดธเตเดตเดคเดจเตเดคเตเดฐ เดเดจเตเดฑเตผเดซเตเดธเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดเตเตผเดฃเตฝ เดฒเตเดตเตฝ เดจเตฝเดเตเดจเตเดจเดคเต.
เดซเดฟเตฝเดเตเดเดฑเดฟเดเดเต เดจเดฟเดฏเดฎเดเตเดเดณเตเด เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโเด เดนเดพเตปเดกเตโเดฒเดฑเตเดเดณเตเด เดฏเตเดธเตผ-เดธเตโเดชเตเดธเต เดฌเตเดฑเตเดฑเตโเดเตเดกเดฟเดฒเตเดเตเดเต เดเดเดชเตเตฝ เดเตเดฏเตเดฏเตเดจเตเดจเต, เด เดคเดฟเดจเตเดถเตเดทเด เด เดฌเตเดฑเตเดฑเตโเดเตเดกเต เดจเตเดฑเตเดฑเตโเดฒเดฟเดเตเดเต เดเดจเตเดฑเตผเดซเตเดธเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเตผเดฃเดฒเดฟเดฒเตเดเตเดเต เดฒเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดฌเดฟเดชเดฟเดเดซเต (เดฌเตเตผเดเตเดเตโเดฒเดฟ เดชเดพเดเตเดเดฑเตเดฑเต เดซเดฟเตฝเดเตเดเดฑเตเดเตพ) เดชเตเดฒเตเดฏเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเดจเดฟเตฝ เดเตเตผเดฃเดฒเดฟเตฝ เดเดเตโเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เด เดธเดฎเตเดชเดจเด เดเตเตผเดฃเตฝ เดคเดฒเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดซเดฟเตฝเดเตเดเดฑเดฟเดเดเต เดเตเดกเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เดเดฃเตเดฏเดฎเดพเดฏเดฟ เดเตเดฑเดฏเตเดเตเดเตเดเดฏเตเด เดชเดพเดดเตเดธเดฟเดเดเต เดจเดฟเดฏเดฎเดเตเดเดณเตเดเต เดเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดชเตเดฐเตเดเตเดเตเดเตเดเตเดณเตเดเตพเดเตเดเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดฒเตเดเดฟเดเตเดเตเด เดฏเตเดธเตผ เดธเตเดชเตเดธเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดชเตเดฐเดงเดพเดจ เดเดฃเตเดเตเดชเดฟเดเตเดคเตเดคเดเตเดเตพ:
- เดธเตเดฑเตเดฑเต เดฒเดฟเดธเตโเดฑเตเดฑเตเดเดณเดฟเดฒเตเดเตเดเต โ*โ เดฎเดพเดธเตโเดเต เดเดฒเดฎเตเดจเตเดฑเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดเตเตผเดคเตเดคเดฟเดเตเดเตเดฃเตเดเต, เดเดคเต เดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดฎเดฑเตเดฑเต เดเดเดเดเตเดเดณเตเดเต เดเตเดดเดฟเตฝ เดตเดฐเดพเดคเตเดค เดชเดพเดเตเดเตเดเตเดเตพเดเตเดเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดจเตเดจเต. เดชเดเตเดเดฟเด x {เดฎเดพเดชเตเดชเต เดฌเตเดฒเตเดเตเดเตโเดฒเดฟเดธเตเดฑเตเดฑเต {เดคเดฐเด ipv4_addr : เดตเดฟเดงเดฟ เดซเตเดฒเดพเดเตเดเดณเตเดเต เดเดเดตเตเดณ เดเดเดเดเตเดเตพ = { 192.168.0.0/16 : เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด, 10.0.0.0/8 : เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด, * : เดกเตเดฐเตเดชเตเดชเต } } เดเตเดฏเดฟเตป y {เดคเดฐเด เดซเดฟเตฝเดเตเดเตผ เดนเตเดเตเดเต เดฎเตเตปโเดเดฃเดจ 0; เดจเดฏเด เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด; ip saddr vmap @blocklist }}
- โ--defineโ เดเดชเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฎเดพเตปเดกเต เดฒเตเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดจเดฟเตผเดตเดเดฟเดเตเดเดพเตป เดธเดพเดงเดฟเดเตเดเตเด. # cat test.nft เดเตเดฌเดฟเตพ netdev x {เดเตเดฏเดฟเตป y {เดเตเดชเตเดชเต เดซเดฟเตฝเดเตเดเตผ เดนเตเดเตเดเต เดเตปเดเตเดฐเดธเต เดเดชเดเดฐเดฃเดเตเดเตพ = $dev เดฎเตเตปเดเดฃเดจ 0; เดจเดฏเดชเดฐเดฎเดพเดฏ เดตเตเดดเตเด; } } # nft โdefine dev="{ eth0, eth1 }" -f test.nft
- เดฎเดพเดชเตเดชเต เดฒเดฟเดธเตเดฑเตเดฑเตเดเดณเดฟเตฝ, เดธเตเดฅเดฟเดฐเดฎเดพเดฏ (เดธเตเดฑเตเดฑเตเดฑเตเดฑเตเดซเตเตพ) เดเดเตเดธเตเดชเตเดฐเดทเดจเตเดเดณเตเดเต เดเดชเดฏเตเดเด เด เดจเตเดตเดฆเดจเตเดฏเดฎเดพเดฃเต: เดเตเดฌเดฟเตพ เดเดจเตเดฑเตเดฑเต เดซเดฟเตฝเดเตเดเตผ { เดฎเดพเดชเตเดชเต เดชเตเตผเดเตเดเตเดฎเดพเดชเตเดชเต { เดเตเดชเตเดชเต inet_service : เดตเดฟเดงเดฟ เดเตเดฃเตเดเตผ เดเดเดเดเตเดเตพ = { 22 เดเตเดฃเตเดเตผ เดชเดพเดเตเดเดฑเตเดฑเตเดเตพ 0 เดฌเตเดฑเตเดฑเตเดเตพ 0 : jump ssh_input, * counter packets 0 bytes 0 : drop } } เดเตเดฏเดฟเตป ssh_input { } chain wan_input { tcp dport vmap @portmap } เดเตเดฏเดฟเตป เดชเตเดฐเดฟเดฑเตเดเตเดเดฟเดเดเต {เดเตเดชเตเดชเต เดซเดฟเตฝเดเตเดเตผ เดนเตเดเตเดเต เดชเตเดฐเดฟเดฑเตเดเตเดเดฟเดเดเต เดฎเตเตปเดเดฃเดจ เดฑเต; เดจเดฏเด เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด; iif vmap { "lo" : jump wan_input } } }
- เดคเดจเตเดจเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดชเดพเดเตเดเดฑเตเดฑเต เดซเดพเดฎเดฟเดฒเดฟเดเตเดเดพเดฏเตเดณเตเดณ เดนเดพเตปเดกเตโเดฒเดฑเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต "เดฒเดฟเดธเตเดฑเตเดฑเต เดนเตเดเตเดเตเดธเต" เดเดฎเดพเตปเดกเต เดเตเตผเดคเตเดคเต: # nft เดฒเดฟเดธเตเดฑเตเดฑเต เดนเตเดเตเดเตเดเตพ IP เดเดชเดเดฐเดฃเด eth0 เดซเดพเดฎเดฟเดฒเดฟ ip { hook ingress { +0000000010 chain netdev xy [nf_tables] +0000000300 chain inet mw เดชเตเดเตเดเต [nf_tables] { -0000000100 เดเตเดฏเดฟเตป ip ab [nf_tables] +0000000300 chain inet mz [nf_tables] } เดนเตเดเตเดเต เดซเตเตผเดตเตเดกเต { -0000000225 selinux_ipv4_forward 0000000000 chain 0000000225 chain selinux_ipv4_output } เดนเตเดเตเดเต เดชเตเดธเตเดฑเตเดฑเตโเดฑเตเดเตเดเดฟเดเดเต { +0000000225 4 selinux_ipvXNUMX_postroute }}
- เดเดชเดฏเตเดเตเดคเต เดเดเดคเตเดคเดฟเดฒเต เดเตเดฏเตเดเดณเดฟเดฒเตเดเตเดเต เดชเดพเดเตเดเดฑเตเดฑเตเดเตพ เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ jhash, symhash, numgen เดเดเตเดธเตเดชเตเดฐเดทเดจเตเดเตพ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเตเดฏเต เดฌเตเดฒเตเดเตเดเตเดเตพ เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. โฆ เดธเดฟเดเดนเดพเดทเต เดฎเตเดกเต 65536 เดฒเตเดเตเดเตเดณเตเดณ เดเตเดฏเต โฆ เดเตเดฏเต เดซเตเดฒเดพเดเตเดเตพ เดฌเตเดชเดพเดธเต เดเต numgen inc mod 65536โฆ เดเตเดฏเต เดเดพเดทเต เดเดเดซเต. เดฎเตเดฑเตเดฑเดพ เดฎเดพเตผเดเตเดเต เดฎเตเดกเต 32 "เดเตเดฏเต" เดฎเดพเดชเตเดชเต เดฒเดฟเดธเตเดฑเตเดฑเตเดเดณเตเดฎเดพเดฏเดฟ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเต เด เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เดเตเดเดณเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดเดชเดฏเตเดเตเดคเต เดธเตเดฅเดฒเดคเตเดคเต เดเดฐเต เดเตเดฏเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดพเด. ... เดเตเดฏเต เดซเตเดฒเดพเดเตเดเตพ เดเดเดซเตโเดจเตเดฏเดฟเด เดฎเดพเดชเตเดชเดฟเดฒเตเดเตเดเต เดฌเตเดชเดพเดธเต { "eth0" : 0, "ppp0" : 2, "eth1" : 2 }
- เดจเดฟเดฐเดตเดงเดฟ เดฎเดพเดชเตเดชเตเดเดณเดฟเดฒเตเดเตเดเต เดเดฐเต เดธเตเดฑเตเดฑเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเตพเดชเตเดชเตเดเตเดจเตเดจ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดธเดพเดงเดฟเดเตเดเตเด. เดเดจเตเดฑเตผเดซเตเดธเตเดเตพ เดจเดฟเตผเดตเดเดฟเดเตเดเตเด = { eth0, eth1 } เดชเดเตเดเดฟเด ip x {เดเตเดฏเดฟเตป y {เดคเดฐเด เดซเดฟเตฝเดเตเดเตผ เดนเตเดเตเดเต เดเตปเดชเตเดเตเดเต เดฎเตเตปเดเดฃเดจ 0; เดจเดฏเด เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด; iifname vmap {lo : เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด, $เดเดจเตเดฑเตผเดซเตเดธเตเดเตพ: เดกเตเดฐเตเดชเตเดชเต } }} # nft -f x.nft # nft เดฒเดฟเดธเตเดฑเตเดฑเต เดฑเตเตพเดธเตเดฑเตเดฑเต เดชเดเตเดเดฟเด ip x {เดเตเดฏเดฟเตป y {เดคเดฐเด เดซเดฟเตฝเดเตเดเตผ เดนเตเดเตเดเต เดเตปเดชเตเดเตเดเต เดฎเตเตปเดเดฃเดจ 0; เดจเดฏเด เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด; iifname vmap { "lo" : เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด, "eth0" : drop, "eth1" : drop } } }
- เดเดเดตเตเดณเดเดณเดฟเตฝ vmaps (เดตเดฟเดงเดฟ เดฎเดพเดชเตเดชเต) เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเต เด เดจเตเดตเดฆเดจเตเดฏเดฎเดพเดฃเต: # nft add rule xy tcp dport . ip saddr vmap { 1025-65535 . 192.168.10.2 : เดธเตเดตเตเดเดฐเดฟเดเตเดเตเด}
- NAT เดฎเดพเดชเตเดชเดฟเดเดเตเดเตพเดเตเดเดพเดฏเตเดณเตเดณ เดฒเดณเดฟเดคเดฎเดพเดเตเดเดฟเดฏ เดตเดพเดเตเดฏเดเดเดจ. เดตเดฟเดฒเดพเดธ เดถเตเดฐเตเดฃเดฟเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เด เดจเตเดตเดฆเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต: ... เดธเตเดจเดพเดฑเตเดฑเต เดเต ip saddr เดฎเดพเดชเตเดชเต { 10.141.11.4 : 192.168.2.2-192.168.2.4 } เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดฏ IP เดตเดฟเดฒเดพเดธเดเตเดเดณเตเด เดชเตเตผเดเตเดเตเดเดณเตเด: ... dnat to ip saddr เดฎเดพเดชเตเดชเต { 10.141.11.4 :192.168.2.3 . 80 } เด เดฒเตเดฒเตเดเตเดเดฟเตฝ IP เดถเตเดฐเตเดฃเดฟเดเดณเตเดเตเดฏเตเด เดชเตเตผเดเตเดเตเดเดณเตเดเตเดฏเตเด เดเตเดฎเตเดชเดฟเดจเตเดทเดจเตเดเตพ: ... dnat to ip saddr . tcp dport เดฎเดพเดชเตเดชเต { 192.168.1.2 . 80: 10.141.10.2-10.141.10.5. 8888-8999 }
เด เดตเดฒเดเดฌเด: opennet.ru