Nukleo mailan, paketeetatik datuak ateratzeko, datuekin eragiketak egiteko eta fluxua kontrolatzeko oinarrizko funtzioak eskaintzen dituen protokolotik independentea den interfaze generiko bat baino ez da eskaintzen. Iragazte-arauak beraiek eta protokoloaren berariazko kudeatzaileak erabiltzaile-espazioko byte-kodean konpilatzen dira, eta ondoren byte-kode hori nukleoan kargatzen da Netlink interfazea erabiliz eta nukleoan exekutatzen da BPF (Berkeley Packet Filters) antzeko makina birtual berezi batean. Ikuspegi honek nukleo mailan exekutatzen den iragazketa-kodearen tamaina nabarmen murriztea eta analizatzeko arauen funtzio guztiak eta protokoloekin lan egiteko logika erabiltzaileen espaziora eramatea ahalbidetzen du.
Berrikuntza nagusiak:
- Multzoei lotutako pakete eta trafiko-kontagailuetarako laguntza gehitu zaie multzoei. Kontagailuak "counter" gako-hitza erabiliz gaitzen dira:
taula ip x {
ezarri y {
typeof ip saddr
kontraerasora
elementuak = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
}katea z {
motako iragazkia kako irteera lehentasunezko iragazkia; politika onartu;
ip daddr @y
}
} - Kontagailuen hasierako balioak ezartzeko, adibidez, berrabiarazi ondoren aurreko kontagailuak berrezartzeko, "nft -f" komandoa erabil dezakezu:
# cat ruleset.nft
taula ip x {
ezarri y {
typeof ip saddr
kontraerasora
elementuak = { 192.168.10.35 kontagailu paketeak 1 byte 84, 192.168.10.101 \
kontagailua p 192.168.10.135 kontagailu paketeak 0 byte 0}
}katea z {
motako iragazkia kako irteera lehentasunezko iragazkia; politika onartu;
ip daddr @y
}
}
# nft -f ruleset.nft
#nft zerrendako arau multzoa
taula ip x {
ezarri y {
typeof ip saddr
kontraerasora
elementuak = { 192.168.10.35 kontagailu paketeak 1 byte 84, 192.168.10.101 \
kontagailua p 192.168.10.135 kontagailu paketeak 0 byte 0}
}katea z {
motako iragazkia kako irteera lehentasunezko iragazkia; politika onartu;
ip daddr @y
}
} - Kontrako euskarria ere gehitu da flowtaulari:
taula ip foo {
flowtable bar {
amua sartzeko lehentasuna -100
gailuak = { eth0, eth1 }
kontraerasora
}katea aurrera {
motako iragazkia hook aurrera lehentasunezko iragazkia;
flow gehitu @bar counter
}
}Kontagailuen zerrenda ikus dezakezu "conntrack -L" komandoa erabiliz:
tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47278 dport=5201 pakete=9 byte=608 \
src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47278 pakete=8 byte=428 [DESKARGA] mark=0 \
secctx=null use=2 tcp 6 src=192.168.10.2 dst=10.0.1.2 sport=47280 dport=5201 \
paketeak=1005763 byte=44075714753 src=10.0.1.2 dst=10.0.1.1 sport=5201 dport=47280 \
paketeak=967505 byte=50310268 [DESKARGA] mark=0 secctx=null erabilera=2 - Kateatze-multzoetan (konkatenazioa, konparaketa errazten duten zenbait helbide eta ataka-sorta), "typeof" zuzentaraua erabil daiteke, multzoko elementuen elementuen datu-mota zehazten duena:
taula ip foo {
ezarri zerrenda zuria {
typeof ip saddr . tcp dport
elementuak = { 192.168.10.35 . 80, 192.168.10.101. 80}
}kate-barra {
type filter hook prerouting lehentasunezko iragazkia; politika jaitsiera;
ip daddr. tcp dport @whitelist onartu
}
} - Zuzentarau mota orain mapa-zerrendetako batuketei ere aplikatzen zaie:
taula ip foo {
mapa addr2mark {
typeof ip saddr . tcp dport: meta marka
elementuak = { 192.168.10.35 . 80 : 0x00000001,
192.168.10.135. 80 : 0x00000002}
}kate-barra {
type filter hook prerouting lehentasunezko iragazkia; politika jaitsiera;
meta mark ezarri ip daddr . tcp dport map @addr2mark onartu
}
} - Multzo anonimoetan (izenik gabeko) barruti-juntzeetarako laguntza gehitu da:
# nft gehitu araua inet filter input ip daddr . tcp dport\
{ 10.0.0.0/8 . 10-23, 192.168.1.1-192.168.3.8. 80-443 } onartu - Sareko zubiak prozesatzen direnean 802.1q (VLAN) bandera duten paketeak baztertzeko gaitasuna eskaintzen da:
# nft gehitu araua zubia foo bar ether mota vlan errefusatu tcp berrezarri
- TCP saio-identifikatzailearekin (conntrack ID) bat etortzeko laguntza gehitu da. Conntrack IDa zehazteko, "--output id" aukera erabil dezakezu:
# conttrack -L βirteerako id
udp 17 18 src=192.168.2.118 dst=192.168.2.1 sport=36424 dport=53 pakete=2 \
bytes=122 src=192.168.2.1 dst=192.168.2.118 sport=53 dport=36424 pakete=2 byte=320 \
[ZIURTU] mark=0 erabilera=1 id=2779986232# nft gehitu araua foo bar ct id 2779986232 kontagailua
Iturria: opennet.ru