เบเบฒเบเบเปเบญเบเบเบปเบงเบเบญเบเปเบเบฑเบเปเบเบฑเบ , เปเบเบดเปเบเบเบณเบฅเบฑเบเบเบทเบเบเบฑเบเบเบฐเบเบฒเบเบถเปเบเบกเบฒเปเบเบทเปเบญเบเบปเบเปเบเบ iptables, ip6table, arptables, เปเบฅเบฐ ebtables เปเบเบเบเบฒเบเบฅเบงเบกเบญเบดเบเปเบเบตเปเบเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบชเบณเบฅเบฑเบ IPv4, IPv6, ARP, เปเบฅเบฐเบเบฃเบดเบเปเบเบทเบญเบเปเบฒเบเปเบเบปเปเบฒเบเบฑเบ. เบเบธเบ nftables เบเบฐเบเบญเบเบกเบตเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเปเบเบเบทเปเบเบเบตเปเบเบนเปเปเบเป, เปเบเบเบฐเบเบฐเบเบตเปเบเบฑเบเบเบฑเบเบฅเบฐเบเบฑเบเปเบเบตเปเบเบฅเปเบกเปเบเบชเบฐเปเบญเบเปเบซเปเปเบเบเบฅเบฐเบเบปเบเบเปเบญเบ nf_tables, เปเบเบดเปเบเปเบเบฑเบเบชเปเบงเบเปเบถเปเบเบเบญเบเปเบเบตเปเบเบฅ. Linux เปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบฅเบธเปเบ 3.13, เบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเปเบญเบเบเบฒเบเบชเบณเบฅเบฑเบ nftables 0.9.3 เปเบเบทเปเบญเปเบซเปเปเบฎเบฑเบเบงเบฝเบเปเบเปเปเบกเปเบเบฅเบงเบกเบขเบนเปเปเบเบชเบฒเบเบฒ kernel เบเบตเปเบเบฐเบกเบฒเปเบเบดเบ. Linux 5.5โ.
เบฅเบฐเบเบฑเบ kernel เบชเบฐเบซเบเบญเบเบเบฝเบเปเบเปเบชเปเบงเบเบเบดเบเบเปเปเปเบเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเปเบเปเบเบเบญเบเบเบปเปเบงเปเบเบเบตเปเบชเบฐเบซเบเบญเบเบซเบเปเบฒเบเบตเปเบเบทเปเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฑเบเปเบเบฑเบ, เบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบ, เปเบฅเบฐเบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเปเบซเบผ. เปเบซเบเบเบปเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบปเบงเบกเบฑเบเปเบญเบเปเบฅเบฐเบเบปเบงเบเบฑเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบเปเบเบเบญเบเปเบเปเบเบทเบเบฅเบงเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบ bytecode เปเบเบเบทเปเบเบเบตเปเบเบนเปเปเบเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ bytecode เบเบตเปเบเบทเบเปเบซเบฅเบเปเบเบปเปเบฒเปเบเปเบ kernel เปเบเบเปเบเปเบเบฒเบเปเบเปเบเบญเบ Netlink เปเบฅเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเบทเปเบญเบ virtual เบเบดเปเบชเบเบเบตเปเบฅเบฐเบเบถเบเปเบเบดเบ BPF (Berkeley Packet Filters). เบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบซเบผเบธเบเบฅเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฅเบฐเบเบฑเบเปเบเปเบเปเบฅเบฐเบเปเบฒเบเบซเบเปเบฒเบเบตเปเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเปเบเบเปเบฅเบฐเปเบซเบเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเปเบเบเบญเบเปเบเบปเปเบฒเปเบเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบนเปเปเบเป.
เบเบฐเบงเบฑเบเบเบฐเบเปเบฒเบเบปเปเบเบเป:
- เบฎเบญเบเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบนเปเปเบเบฑเบเปเบเบฑเบเบเบฒเบกเปเบงเบฅเบฒ. เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเบเบปเบโเบเบฑเบโเบชเบญเบโเปเบงโเบฅเบฒโเปเบฅเบฐโเปเบฅโเบเบฐโเบงเบฑเบโเบเบตเปโเบเบปเบโเบฅเบฐโเบเบฝเบโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฐโเบเบธเปเบโ, เปเบฅเบฐโเบเปเบฒโเบเบปเบโเบเบฒเบ triggering เปเบโเปเบเปโเบฅเบฐโเบกเบทเปโเบเบญเบโเบญเบฒโเบเบดเบโ. เบเบญเบเบเบฒเบเบเบตเปเบเบฑเบเปเบเปเปเบเบตเปเบกเบเบฒเบเปเบฅเบทเบญเบเปเบซเบกเป "-T" เปเบเบทเปเบญเบชเบฐเปเบเบเปเบงเบฅเบฒ epochal เปเบเบฑเบเบงเบดเบเบฒเบเบต.
meta time \ยป2019-12-24 16:00\" โ \ยป 2020-01-02 7:00\"
เปเบกเบเบฒเบเบปเปเบงเปเบกเบ \"17:00\" - \"19:00\"
meta day \"เบงเบฑเบเบชเบธเบ\" - เบฎเบญเบเบฎเบฑเบเบเบฒเบเบเบทเปเบเบเบน เปเบฅเบฐ เบเบฑเบเบเบถเบเปเบเบฑเบ SELinux (เปเบเบฑเบเบกเบฒเบ).
ct secmark เบเบฑเปเบ meta secmark
meta secmark เบเบฑเปเบ ct secmark - เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบเบเบตเป synproxy, เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบซเบผเบฒเบเบเปเบงเบฒเบซเบเบถเปเบเบเบปเบเบฅเบฐเบเบฝเบเบเปเป backend.
เบเบฒเบเบฐเบฅเบฒเบ ip foo {
synproxy https-synproxy {
เบกเบช 1460
เบเบฐเปเบฒเบ 7
timestamp sack-perm
}synproxy other-synproxy {
เบกเบช 1460
เบเบฐเปเบฒเบ 5
}เปเบชเปเบเปเบญเบ {
type filter hook prerouting เบเบนเบฅเบดเบกเบฐเบชเบดเบเบงเบฑเบเบเบธเบเบดเบ; เบเบญเบกเบฎเบฑเบเบเบฐเปเบเบเบฒเบ;
tcp dport 8888 tcp flags syn notrack
}เปเบเบเปเบชเป {
type filter hook forward filter เบเบนเบฅเบดเบกเบฐเบชเบดเบ; เบเบญเบกเบฎเบฑเบเบเบฐเปเบเบเบฒเบ;
ct state เบเปเปเบเบทเบเบเปเบญเบ, untracked synproxy name ip saddr map { 192.168.1.0/24 : โhttps-synproxyโ, 192.168.2.0/24 : โother-synproxyโ }
}
} - เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบญเบปเบฒเบญเบปเบเบเบฐเบเบญเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบขเปเบฒเบเปเบเบเบฒเบกเบดเบเบญเบญเบเบเบฒเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบธเบเปเบเปเบเปเบเบฑเบเปเบเบฑเบ.
nft เปเบเบตเปเบกเบเบปเบเบฅเบฐเบเบฝเบ ... เบฅเบถเบ @set5 { ip6 saddr . ip6 เบเปเป}
- เบฎเบญเบเบฎเบฑเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเบตเป VLAN เปเบเบ ID เปเบฅเบฐเปเบเบฃเปเบเบเปเบเบตเปเบเบณเบเบปเบเปเบงเปเปเบ metadata เบเบญเบเบเบฒเบเปเบเปเบเบญเบเบเบปเบงเปเบเบทเบญเบเปเบฒเบ;
meta ibrpvid 100
meta ibrvproto vlan - เบเบฒเบเปเบฅเบทเบญเบ "-t" ("--terse") เปเบเบทเปเบญเบเบปเบเปเบงเบฑเปเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเบเบธเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบเปเบงเบฅเบฒเบเบตเปเบชเบฐเปเบเบเบเบปเบเบฅเบฐเบเบฝเบ. เปเบฅเปเบ "nft -t list ruleset" เบเบฐเบญเบญเบเบกเบฒ:
เบเบฒเบเบฐเบฅเบฒเบ ip x {
เบเบฑเปเบ y {
เบเบดเบก ipv4_addr
}
}เปเบฅเบฐเบเปเบงเบ "เบเบปเบเบฅเบฐเบเบฝเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป nft"
เบเบฒเบเบฐเบฅเบฒเบ ip x {
เบเบฑเปเบ y {
เบเบดเบก ipv4_addr
เบญเบปเบเบเบฐเบเบญเบ = { 192.168.10.2, 192.168.20.1,
192.168.4.4, 192.168.2.34 }
}
} - เบเบงเบฒเบกโเบชเบฒโเบกเบฒเบโเบเบตเปโเบเบฐโเบฅเบฐโเบเบธโเบซเบผเบฒเบโเบเบงเปเบฒโเบซเบเบถเปเบโเบญเบธโเบเบฐโเบเบญเบโเปเบโเบเปเบญเบโเปเบชเป netdev (เปเบเปโเปเบเปโเบเบฝเบโเปเบเปโเบเบฑเบ kernel 5.5โ) เปเบเบทเปเบญโเบเบฐโเบชเบปเบกโเบเบปเบโเบฅเบฐโเบเบฝเบโเบเบฒเบโเบเบฑเปเบโเบเบญเบโเบเบปเปเบงโเปเบโ.
เปเบเบตเปเบกเบเบฒเบเบฐเบฅเบฒเบ netdev x
เปเบเบตเปเบกเบเปเบญเบเปเบชเป netdev xy { \
type filter hook ingress devices = { eth0, eth1 } เบเบนเบฅเบดเบกเบฐเบชเบดเบ 0;
} - เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบเบตเปเบกเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบฐเปเบเบเบเปเปเบกเบนเบ.
# nft เบญเบฐเบเบดเบเบฒเบ ipv4_addr
เบเบฐเปเบเบเบเปเปเบกเบนเบ ipv4_addr (เบเบตเปเบขเบนเป IPv4) (เบเบณเบเบงเบเปเบเบฑเบกเบเบฐเปเบเบเบเบฒเบ), 32 เบเบดเบ - เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเปเบเปเบเบญเบ CLI เบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ linenoise เปเบเบเบเบตเปเบเบฐ libreadline.
./configure --with-cli=linenoise
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru
