Ole maualuga ole kernel e maua ai na'o se fa'aoga tuto'atasi tuto'atasi lautele e maua ai galuega fa'avae mo le su'eina o fa'amaumauga mai fa'amaumauga, fa'atinoina o fa'amaumauga, ma le pulea o le tafe. O tulafono faʻapipiʻi ma faʻataʻitaʻiga faʻapitoa e tuʻufaʻatasia i le bytecode i avanoa faʻaoga, a maeʻa ona utaina lea o le bytecode i totonu o le fatu e faʻaaoga ai le Netlink interface ma faʻatinoina i totonu o le fatu i totonu o se masini faʻapitoa faʻapitoa e manatua ai le BPF (Berkeley Packet Filters). O lenei faiga e mafai ai e oe ona faʻaititia tele le tele o le faʻamaʻiina o le code o loʻo taʻavale i le kernel level ma faʻagaoioia galuega uma o le faʻavasegaina o tulafono ma le faʻaogaina mo le galulue faʻatasi ma protocols i avanoa faʻaoga.
Autu fa'afouga:
- Lagolago mo laina i fesoʻotaʻiga (concatenation, faʻapipiʻi o tuatusi ma ports e faʻafaigofie ai faʻatusatusaga). Mo se faʻataʻitaʻiga, mo se seti "whitelist" o ona elemene o se faʻapipiʻi, faʻamaonia le "ava" fuʻa o le a faʻaalia ai o le seti e mafai ona aofia ai laina i totonu o le faʻapipiʻi (mo le faʻapipiʻi "ipv4_addr . ipv4_addr . inet_service" na mafai muamua ona lisi saʻo. fetaui o le fomu "192.168.10.35. 192.68.11.123", ma o lea e mafai ona e faʻamaonia vaega o tuatusi "80-192.168.10.35-192.168.10.40").
laulau ip foo {
seti le lisi papa'e {
type ipv4_addr . ipv4_addr. inet_service
va o fu'a
elemene = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
}filifili pa {
fa'aigoa fa'amama fa'aa'oa muamua fa'aa'e fa'amuamua faamama; pa'u o faiga faavae;
ip saddr. ip tama. tcp dport @whitelist talia
}
} - I seti ma lisi faʻafanua, e mafai ona faʻaogaina le "ituaiga" faʻatonuga, lea e fuafua ai le faatulagaga o le elemene pe a fetaui.
Mo se faʻataʻitaʻiga:laulau ip foo {
seti le lisi papa'e {
ituaiga ip saddr
elemene = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
}filifili pa {
fa'aigoa fa'amama fa'aa'oa muamua fa'aa'e fa'amuamua faamama; pa'u o faiga faavae;
ip daddr @whitelist talia
}
}laulau ip foo {
fa'afanua addr2mark {
typeof ip saddr: faʻailoga meta
elemene = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
}
} - Faʻaopoopo le tomai e faʻaoga faʻatasi i le NAT bindings, lea e mafai ai ona e faʻamaonia se tuatusi ma se taulaga pe a faʻamalamalamaina suiga NAT e faʻavae i luga o lisi faʻafanua poʻo seti igoa:
nft faaopoopo tulafono ip nat pre dnat ip addr . uafu i ip saddr faafanua {1.1.1.1 : 2.2.2.2. tolu sefulu }
nft fa'aopoopo fa'afanua ip nat taunu'uga {ituaiga ipv4_addr. inet_service: ipv4_addr. inet_service \\; }
nft faaopoopo tulafono ip nat pre dnat ip addr . uafu i ip saddr. tcp dport faafanua @destinations - Lagolago mo le faʻavaveina o meafaigaluega faʻatasi ai ma nisi o galuega faʻamamaina o loʻo faʻatinoina e le network card. E mafai ona fa'avavevave e ala i le ethtool utility ("ethtool -K eth0 hw-tc-offload on"), a mae'a ona fa'agaoioia i nftables mo le filifili autu e fa'aaoga ai le fu'a "offload". Pe a fa'aogaina le Linux kernel 5.6, e lagolagoina le fa'avavevave o meafaigaluega mo le fa'atusaina o le fa'auluuluga ma le su'esu'ega o feso'ota'iga fa'atasi ma le mauaina, lafoa'iina, fa'aluaina (dup), ma le lafo atu (fwd) pepa. I le faʻataʻitaʻiga o loʻo i lalo, o gaioiga o le tuʻuina o paʻu e sau mai le tuatusi 192.168.30.20 o loʻo faia i le tulaga o le network card, e aunoa ma le pasiina o pepa i le fatu:
# pusi faila.nft
laulau netdev x {
filifili y {
ituaiga faamama matau masini eth0 faamuamua 10; fu'a ave'esea;
ip saddr 192.168.30.20 pa'u
}
}
# nft -f faila.nft - Faʻaleleia faʻamatalaga e uiga i le nofoaga o se mea sese i tulafono.
# nft tape le tulafono ip yz au 7
Sese: Le mafai ona fa'agasolo tulafono: Leai se faila po'o se fa'atonuga
tape le tulafono ip yz au 7
^# nft tape le tulafono ip xx au 7
Sese: Le mafai ona fa'agasolo tulafono: Leai se faila po'o se fa'atonuga
tape le tulafono ip xx au 7
^# nft tape le laulau twst
Sese: Leai se faila po'o se lisi; o le uiga o lau laulau 'su'ega' ile aiga ip?
tape le laulau twst
^^^^O le faʻataʻitaʻiga muamua o loʻo faʻaalia ai o le laulau "y" e leʻo i totonu o le polokalama, o le lona lua o loʻo misi le "7", ma le lona tolu o loʻo faʻaalia se faʻataʻitaʻiga pe a taina le igoa ole laulau.
- Faʻaopoopo le lagolago mo le siakiina o le atinaʻe pologa e ala i le faʻamaonia o le "meta sdif" poʻo le "meta sdifname":
... meta sdifname vrf1 ...
- Fa'aopoopo le lagolago mo fa'agaioiga sifi taumatau po'o agavale. Mo se faʻataʻitaʻiga, ia fesuiaʻi se pepa faʻailoga o loʻo i ai nei e tuʻu i le 1 bit ma seti le laʻititi i le 1:
... fa'ailoga meta seti fa'ailoga meta lshift 1 po'o le 0x1 ...
- Fa'atinoina le filifiliga "-V" e fa'aalia ai fa'amatalaga fa'alautele.
# nft -V
nftables v0.9.4 (Jive i le Lima)
cli:readline
json: ioe
migmp: leai
libxtables: ioe - E tatau ona fa'amaoti mai nei filifiliga laina fa'atonu a'o le'i fa'atonuina. Mo se faʻataʻitaʻiga, e tatau ona e faʻamaonia le "nft -a lisi lisi tulafono", ma le faʻaogaina o le "nft lisi tulafono -a" o le a iʻu ai i se mea sese.
puna: opennet.ru