ืืขืจ ืงืขืจื ืืืจืื ืืื ืืืืื ืึท ืืืฉืึทื ืขืจืืง ืคึผืจืึธืืึธืงืึธื-ืคืจืืึท ืฆืืืื ื ืืืึธืก ืืื ืืงืขืจืืืง ืคืึทื ืืงืฉืึทื ื ืคึฟืึทืจ ืืงืกืืจืึทืงืืื ื ืืึทืื ืคืื ืคึผืึทืงืืฅ, ืคึผืขืจืคืึธืจืืื ื ืืึทืื ืึทืคึผืขืจืืืฉืึทื ื ืืื ืืืืคื ืงืึธื ืืจืึธื. ืื ืคึฟืืืืจืืจืื ื ืึผืืืื ืืื ืคึผืจืึธืืึธืงืึธื-ืกืคึผืขืฆืืคืืฉ ืืึทื ืืืขืจืก ืืขื ืขื ืงืึทืืคึผืืืื ืืื ืืืืขืงืึธืืข ืืื ืืึทื ืืฆืขืจ ืคึผืืึทืฅ, ื ืึธื ืืืึธืก ืืขื ืืืืืขืงืึธื ืืื ืืึธืืืื ืืื ืื ืงืขืจื ื ืืฆื ืื ื ืขืืืื ืง ืฆืืืื ื ืืื ืขืงืกืึทืงืืืืึทื ืืื ืื ืงืขืจื ืืื ืึท ืกืคึผืขืฆืืขื ืืืืจืืืึทื ืืึทืฉืื ืจืขืืึทื ืืกืึทื ื ืคืื BPF (Berkeley Packet Filters). ืืขืจ ืฆืืืึทื ื ืึทืืึทืื ืืืจ ืฆื ืืืืืืืืง ืจืขืืืฆืืจื ืื ืืจืืืก ืคืื ืื ืคึฟืืืืจืืจืื ื ืงืึธื ืคืืืกื ืืืง ืืืืฃ ืื ืงืขืจื ืืืจืื ืืื ืืึทื ืึทืืข ืื ืคืึทื ืืงืฉืึทื ื ืคืื ืคึผืึทืจืกืื ื ืึผืืืื ืืื ืืึธืืืง ืคึฟืึทืจ ืืจืืขืื ืืื ืคึผืจืึธืืึธืงืึธืืก ืืื ืืึทื ืืฆืขืจ ืคึผืืึทืฅ.
ืืืืคึผื ืืืืืฉืื:
- ืฉืืืฆื ืคึฟืึทืจ ืจืืื ืืืฉืึทื ืืื ืงืึทื ืขืงืฉืึทื ื (ืงืึทื ืงืึทืืึทื ืืืฉืึทื, ืืืืขืจ ืืึทื ืืึทืื ืคืื ืึทืืจืขืกืขืก ืืื ืคึผืึธืจืฅ ืืืึธืก ืคืึทืจืคึผืึธืฉืขืืขืจื ืคืึทืจืืืืึทื). ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืคึฟืึทืจ ืึท ืกืืื "ืืืืืืืืกื" ืืืขืืขื ืก ืขืืขืืขื ืื ืืขื ืขื ืึท ืึทืืึทืืฉืืึทื ื, ืกืคึผืขืฆืืคืืฆืืจื ืื "ืืขืืึทืืขื" ืคืึธื ืืืขื ืึธื ืืืืึทืื ืึทื ืื ืืึทื ื ืงืขื ืขื ืึทืจืืึทื ื ืขืืขื ืจืืื ืืืฉืึทื ืืื ืื ืึทืืึทืืฉืืึทื ื (ืคึฟืึทืจ ืื ืึทืืึทืืฉืืึทื ื "ipv4_addr. ipv4_addr. inet_service" ืขืก ืืื ืืขืืืขื ืคืจืืขืจ ืืขืืืขื ืฆื ืจืฉืืื ืคึผืื ืืืขื ืฉืืืขืืขืืขื ืคืื ืื ืคืึธืจืขื "192.168.10.35. 192.68.11.123", ืืื ืืืฆื ืืืจ ืงืขื ืขื ืกืคึผืขืฆืืคืืฆืืจื ืืจืืคึผืขืก ืคืื ืึทืืจืขืกืขืก "80-192.168.10.35-192.168.10.40"):192.68.11.123).
ืืืฉ ip foo {
ืฉืืขืื ืืืืืืืืกื {
ืืืคึผ ipv4_addr. ipv4_addr. inet_service
ืคืืึทืืก ืืขืืึทืืขื
ืขืืขืืขื ืื = {192.168.10.35-192.168.10.40. 192.68.11.123-192.168.11.125. 80}
}ืงืืื ืืึทืจ {
ืืืคึผ ืคืืืืขืจ ืคืึทืจืืฉืขืคึผืขื ืคึผืจืืจืึธืืืื ื ืืืืืขืจืงืืึทื ืคืืืืขืจ; ืคืืืืกื ืคืึทืื;
ip saddr. ip daddr. tcp dport @whitelist ืึธื ื ืขืืขื
}
} - ืืื ืฉืืขืื ืืื ืืึทืคึผืข ืจืฉืืืืช, ืขืก ืืื ืืขืืืขื ืฆื ื ืืฆื ืื "ืืืคึผ ืคืื" ืืืจืขืงืืืื, ืืืึธืก ืืืืขืจืืึทื ื ืื ืคึฟืึธืจืืึทื ืคืื ืื ืขืืขืืขื ื ืืืขื ืจืืืื.
ืคึฟืึทืจ ืืืึทืฉืคึผืื:ืืืฉ ip foo {
ืฉืืขืื ืืืืืืืืกื {
ืืืคึผ ืคืื ืืคึผ ืกืึทืืจ
ืขืืขืืขื ืื = {192.168.10.35, 192.168.10.101, 192.168.10.135}
}ืงืืื ืืึทืจ {
ืืืคึผ ืคืืืืขืจ ืคืึทืจืืฉืขืคึผืขื ืคึผืจืืจืึธืืืื ื ืืืืืขืจืงืืึทื ืคืืืืขืจ; ืคืืืืกื ืคืึทืื;
ip daddr @ืืืืืืขืืืกื ืึธื ื ืขืืขื
}
}ืืืฉ ip foo {
ืืึทืคึผืข ืึทืืจ2ืืึทืจืง {
ืืืคึผ ืคืื IP ืกืึทืืจ: ืืขืืึท ืฆืืืื
ืขืืขืืขื ืื = {192.168.10.35: 0x00000001, 192.168.10.135: 0x00000002}
}
} - ืฆืืืขืืืืื ืื ืคืืืืงืืื ืฆื ื ืืฆื ืืืฉืืื ืฅ ืืื NAT ืืืื ืืื ืื, ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืกืคึผืขืฆืืคืืฆืืจื ืึทื ืึทืืจืขืก ืืื ืคึผืึธืจื ืืืขื ืืืคืืื ืื ื NAT ืืจืึทื ืกืคืึธืจืืึทืฆืืข ืืืืืจื ืืืืฃ ืืึทืคึผืข ืจืฉืืืืช ืึธืืขืจ ืืขืืืืกื ืฉืืขืื:
nft add rule ip nat pre dnat ip adr. ืคึผืึธืจื ืฆื ืืคึผ ืกืึทืืจ ืืึทืคึผืข {1.1.1.1: 2.2.2.2. ืืจืฒึทืกืืง }
nft ืืืืื ืืึทืคึผืข ืืคึผ ื ืึทื ืืขืกืืึทื ืืืฉืึทื ื {ืืืคึผ ipv4_addr. inet_service: ipv4_addr. inet_service \\; }
nft add rule ip nat pre dnat ip adr. ืคึผืึธืจื ืฆื ืืคึผ ืกืึทืืจ. tcp dport ืืึทืคึผืข @ ืืขืกืืึทื ืืืฉืึทื ื - ืฉืืืฆื ืคึฟืึทืจ ืืึทืื ืืืึทืจื ืึทืงืกืขืืขืจืืืฉืึทื ืืื ืขืืืขืืข ืคึฟืืืืจืืจืื ื ืึทืคึผืขืจืืืฉืึทื ื ืืืจืืืขืงืึธืื ืืืจื ืื ื ืขืฅ ืงืึธืจื. ืึทืงืกืขืืขืจืืืฉืึทื ืืื ืขื ืืืืึทืื ืืืจื ืื ืขืืืึธืึธื ื ืืฆื ("ethtool -K eth0 hw-tc-offload on"), ื ืึธื ืืืึธืก ืขืก ืืื ืึทืงืืืืืืืืื ืืื ื ืคืืึทืืืขืก ืคึฟืึทืจ ืื ืืืืคึผื ืงืืื ืืื ืื "ืึธืคืืึธืึทื" ืคืึธื. ืืืขื ื ืืฆื ืื ืืื ืืงืก ืงืขืจื 5.6, ืืึทืื ืืืึทืจื ืึทืงืกืขืืขืจืืืฉืึทื ืืื ืืขืฉืืืฆื ืคึฟืึทืจ ืืขืืขืจ ืคืขืื ืืืึธืก ืจืืืื ืืื ืืื ืื ืงืึทืืื ื ืฆืืืื ื ืืืจืืงืืง ืืื ืงืึธืืืื ืึทืฆืืข ืืื ืจืืกืืืืื ื, ืืืกืงืึทืจืืื ื, ืืืคึผืืืงืืืืื ื (ืืืคึผ) ืืื ืคืึธืจืืืขืจืืื ื (ืคืืืื) ืคึผืึทืงืืฅ. ืืื ืืขื ืืืืฉืคึผืื ืืื ืื, ืื ืึทืคึผืขืจืืืฉืึทื ื ืคืื ืืจืึทืคึผืื ื ืคึผืึทืงืืฅ ืงืืืขื ืคืื ืื ืึทืืจืขืก 192.168.30.20 ืืขื ืขื ืืืจืืืขืงืึธืื ืืืืฃ ืื ื ืขืฅ ืงืึธืจื ืืืจืื, ืึธื ืคืึธืจื ืื ืคึผืึทืงืืฅ ืฆื ืื ืงืขืจื:
# ืงืึทืฅ ืืขืงืข.ื ืคื
ืืืฉ ื ืขืืืขืื ืจืขื ืืืขื {
ืงืืื ื {
ืืืคึผ ืคืืืืขืจ ืคืึทืจืืฉืขืคึผืขื ืื ืืจืขืกืก ืืืื ืขืื0 ืืืืืขืจืงืืึทื 10; ืคืืึทืืก ืึธืคืืึธืึทื;
ืืคึผ ืกืึทืืจ 192.168.30.20 ืงืึทืคึผ
}
}
# nft -f file.nft - ืืืคึผืจืืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืขื ืึธืจื ืคืื ืึท ืืขืืช ืืื ืื ืึผืืืื.
# nft ืืืกืืขืงื ืืขืจืฉื ip yz ืฉืขืคึผื 7
ืืขืืช: ืงืขื ื ืืฉื ืคึผืจืึธืฆืขืก ืืขืจืฉื: ื ืื ืึทืืึท ืืขืงืข ืึธืืขืจ ืืืขืืืืืึทืืขืจ
ืืืกืืขืงื ืืขืจืฉื ip yz handle 7
^# nft ืืืกืืขืงื ืืขืจืฉื ip xx ืฉืขืคึผื 7
ืืขืืช: ืงืขื ื ืืฉื ืคึผืจืึธืฆืขืก ืืขืจืฉื: ื ืื ืึทืืึท ืืขืงืข ืึธืืขืจ ืืืขืืืืืึทืืขืจ
ืืืกืืขืงื ืืขืจืฉื IP ืงืกืงืก ืฉืขืคึผื 7
^# nft ืืืกืืขืงื ืืืฉ ืืืืกื
ืืขืืช: ื ืื ืึทืืึท ืืขืงืข ืึธืืขืจ ืืืขืืืืืึทืืขืจ; ืืื ืืืจ ืืขืืืื ื ืืืฉ "ืคึผืจืืืืจื" ืืื ืืฉืคึผืื ืืคึผ?
ืืืกืืขืงื ืืืฉ ืืืืกื
^^^^ืืขืจ ืขืจืฉืืขืจ ืืืืฉืคึผืื ืืืืืื ืึทื ืื ืืืฉ "ื" ืืื ื ืืฉื ืืื ืื ืกืืกืืขื, ืื ืจืืข ืึทื ืื "7" ืืึทื ืืืขืจ ืืื ืคืขืื ืืืง, ืืื ืื ืืจืื ืึทื ืึท ืืืคึผืึธ ืคึผืื ืืืขื ืืื ืืขืืืืื ืืืขื ืืืืคึผืื ื ืื ืืืฉ ื ืึธืืขื.
- ืฆืืืขืืืืื ืฉืืืฆื ืคึฟืึทืจ ืงืึธื ืืจืึธืืืจืื ื ืื ืฉืงืืึทืฃ ืฆืืืื ื ืืืจื ืกืคึผืขืฆืืคืืฆืืจื "ืืขืืึท ืกืืืฃ" ืึธืืขืจ "ืืขืืึท ืกืืืคื ืึทืืข":
... meta sdifname vrf1 ...
- ืฆืืืขืืืืื ืฉืืืฆื ืคึฟืึทืจ ืจืขืื ืึธืืขืจ ืืื ืงืก ืืืขืจืจืืง ืึทืคึผืขืจืืืฉืึทื ื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืฆื ืืืขืจืจืืง ืึท ืืืืืกืืื ื ืคึผืึทืงืึทื ืคืืจืืข ืืื ืงืก ืืืจื 1 ืืืกื ืืื ืฉืืขืื ืื ืืื ืขืจืืืขืจืืืง ืืืกื ืฆื 1:
โฆ ืืขืืึท ืืืจืง ืฉืืขืื ืืขืืึท ืืืจืง ืืฉืืคื 1 ืึธืืขืจ 0x1 โฆ
- ืืืคึผืืึทืืขื ืึทื "-V" ืึธืคึผืฆืืข ืฆื ืึทืจืืืกืืืืึทืื ืขืงืกืืขื ืืขื ืืืขืจืกืืข ืืื ืคึฟืึธืจืืึทืฆืืข.
# ื ืคื -ืื
nftables v0.9.4 (ืืืฉืืื ืืื ืคืื ืฃ)
ืงืื: ืจืขืืืื ืข
json: ืืึธ
ืืื ืืืืคึผ: ื ืืื
ืืืืงืกืืึทืืืขืก: ืืึธ - ืืึทืคึฟืขืื ืฉืืจื ืึธืคึผืฆืืขืก ืืืื ืืืฆื ืืืื ืกืคึผืขืกืืคืืขื ืืืืืขืจ ืงืึทืืึทื ืื. ืฆืื ืืืืฉืคึผืื, ืืืจ ืืึทืจืคึฟื ืฆื ืกืคึผืขืฆืืคืืฆืืจื "nft -a list ruleset", ืืื ืคืืืกื ืืืง "nft list ruleset -a" ืืืขื ืจืขืืืืืึทื ืืื ืึท ืืขืืช.
ืืงืืจ: opennet.ru