Aig ìre kernel, chan eil ach eadar-aghaidh coitcheann neo-eisimeileach air a thoirt seachad a bheir seachad gnìomhan bunaiteach airson dàta a tharraing à pacaidean, coileanadh obrachaidhean air dàta, agus smachd a chumail air sruthadh. Tha na riaghailtean sìolaidh fhèin agus luchd-làimhseachaidh protocol-sònraichte air an cur ri chèile a-steach do bytecode àite neach-cleachdaidh, às deidh sin tha am bytecode seo air a luchdachadh a-steach don kernel a ’cleachdadh eadar-aghaidh Netlink agus air a chuir gu bàs anns an kernel ann an inneal brìgheil sònraichte coltach ri BPF (Berkeley Packet Filters). Tha an dòigh-obrach seo ga dhèanamh comasach meud a ’chòd sìoltachaidh a tha a’ ruith aig ìre kernel a lughdachadh gu mòr agus a h-uile gnìomh de riaghailtean parsaidh agus loidsig obrachadh le protocolaidhean a ghluasad gu àite luchd-cleachdaidh.
Prìomh innleachdan:
- Taic airson raointean ann an ceanglaichean (concatenation, ceanglaichean sònraichte de sheòlaidhean agus puirt a nì sìmpleachadh air maidseadh). Mar eisimpleir, airson seata “whitelist” aig a bheil na h-eileamaidean mar cheanglachan, le bhith a’ sònrachadh a’ bhratach “eadar-ama” seallaidh e gum faod an seata raointean a ghabhail a-steach sa cheanglachan (airson a’ cheangail “ipv4_addr . ipv4_addr . inet_service" bha e comasach roimhe seo liosta mionaideach a dhèanamh maidsean mar "192.168.10.35. 192.68.11.123", agus a-nis is urrainn dhut buidhnean de sheòlaidhean a shònrachadh "80-192.168.10.35-192.168.10.40:192.68.11.123-192.168.11.125):.
clàr ip foo {
suidhich liosta geal {
seòrsa ipv4_addr . ipv4_ addr . inet_seirbheis
eadar-ama brataichean
eileamaidean = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
}bàr slabhraidh {
seòrsa dubhan sìoltachain ro-làimh sìoltachan prìomhachais; tuiteam poileasaidh;
ip diùraidh. ip daddr. tcp dport@whitelist gabhail ris
}
} - Ann an seataichean agus liostaichean mhapaichean, tha e comasach an stiùireadh "typeof" a chleachdadh, a bhios a 'dearbhadh cruth an eileamaid nuair a bhios e a' mapadh.
Mar eisimpleir:clàr ip foo {
suidhich liosta geal {
seòrsa ip sadr
eileamaidean = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
}bàr slabhraidh {
seòrsa dubhan sìoltachain ro-làimh sìoltachan prìomhachais; tuiteam poileasaidh;
ip daddr @whitelist gabh ris
}
}clàr ip foo {
mapa addr2mark {
seòrsa ip saddr: comharra meta
eileamaidean = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
}
} - Chuir sinn ris a’ chomas air ceanglachan a chleachdadh ann an ceanglachan NAT, a leigeas leat seòladh agus port a shònrachadh nuair a bhios tu a’ mìneachadh eadar-theangachaidhean NAT stèidhichte air liostaichean mhapaichean no seataichean ainmichte:
nft cuir riaghailt ip nat ro dnat ip addr . port gu mapa ip saddr { 1.1.1.1 : 2.2.2.2 . trithead }
nft cuir mapa ip nat cinn-uidhe { seòrsa ipv4_addr . inet_service : ipv4_addr . inet_service \\; }
nft cuir riaghailt ip nat ro dnat ip addr . port gu ip saddr. tcp dport map @destinations - Taic airson luathachadh bathar-cruaidh le bhith a’ toirt air falbh cuid de dh’ obair sìolaidh air guailnean a’ chairt lìonraidh. Tha luathachadh air a chomasachadh tro ghoireas ethtool (“ethtool -K eth0 hw-tc-offload on”), às deidh sin tha e air a ghnìomhachadh ann an nftables airson a’ phrìomh shreath a ’cleachdadh a’ bhratach “offload”. Nuair a bhios tu a’ cleachdadh an kernel Linux 5.6, thathas a’ toirt taic do luathachadh bathar-cruaidh airson a bhith a’ maidseadh raon cinn agus sgrùdadh eadar-aghaidh a’ tighinn a-steach còmhla ri bhith a’ faighinn, a’ leigeil às, a’ dùblachadh (dup), agus a’ cur air adhart (fwd) pacaidean. Anns an eisimpleir gu h-ìosal, thathas a’ coileanadh obair airson pacaidean a leigeil às a’ tighinn bhon t-seòladh 192.168.30.20 aig ìre cairt lìonra, gun a bhith a’ dol seachad air na pacaidean chun na h-eithne:
# faidhle cat.nft
clàr netdev x {
slabhraidh y {
seòrsa inneal ingress dubhan sìoltachain eth0 prìomhachas 10; brataichean air an luchdachadh;
ip saddr 192.168.30.20 tuiteam
}
}
# nft -f faidhle.nft - Fiosrachadh nas fheàrr mu àite mearachd anns na riaghailtean.
# nft sguab às riaghailt ip yz làimhseachadh 7
Mearachd: Cha b' urrainn dhuinn riaghailt a phròiseasadh: Chan eil faidhle no eòlaire mar sin ann
cuir às do riaghailt ip yz làimhseachadh 7
^# nft sguab às riaghailt ip xx làimhseachadh 7
Mearachd: Cha b' urrainn dhuinn riaghailt a phròiseasadh: Chan eil faidhle no eòlaire mar sin ann
cuir às do riaghailt ip xx làimhseachadh 7
^# nft cuir às do bhòrd a’ bhùird
Mearachd: Chan eil faidhle no eòlaire mar sin ann; an robh thu a' ciallachadh 'test' clàr ann an ip teaghlaich?
thoir air falbh tionndadh bùird
^^^^Tha a’ chiad eisimpleir a’ sealltainn nach eil an clàr ‘y’ an làthair san t-siostam, tha an dàrna fear a’ sealltainn gu bheil an inneal-làimhseachaidh ‘7’ a dhìth, agus tha an treas fear a’ sealltainn sanas typo nuair a tha thu a’ sgrìobhadh ainm a’ chlàir.
- Taic a bharrachd airson a bhith a’ sgrùdadh eadar-aghaidh nan tràillean le bhith a’ sònrachadh “meta sdif” no “meta sdifname”:
... meta sdifname vrf1 ...
- Taic a bharrachd airson obrachadh gluasad deas no clì. Mar eisimpleir, airson leubail pacaid gnàthaichte a ghluasad le 1 bit agus suidhich am pìos ìosal gu 1:
… meta comharra seata meta comharra lshift 1 no 0x1 …
- Roghainn “-V” air a chuir an gnìomh gus fiosrachadh dreach leudaichte a thaisbeanadh.
#nft -V
nftables v0.9.4 (Jive at Five)
cli: readline
json: tha
minimp: chan eil
libxtables: tha - Feumaidh roghainnean loidhne-àithne a-nis a bhith air an sònrachadh ro òrdughan. Mar eisimpleir, feumaidh tu “nft -a list ruleset” a shònrachadh, agus le bhith a’ ruith “nft list ruleset -a” thig mearachd.
Source: fosgailtenet.ru