Lẹhin ọdun kan ti idagbasoke
Ipele ekuro n pese nikan ni wiwo olominira ilana ilana jeneriki ti o pese awọn iṣẹ ipilẹ fun yiyo data lati awọn apo-iwe, ṣiṣe awọn iṣẹ data, ati iṣakoso sisan.
Imọye sisẹ funrararẹ ati awọn olutọju-ila-ilana ni a ṣe akojọpọ sinu bytecode ni aaye olumulo, lẹhin eyi ti kojọpọ baiti yii sinu ekuro nipa lilo wiwo Netlink ati ṣiṣe ni ẹrọ foju foju pataki kan ti o ṣe iranti ti BPF (Awọn Ajọ Packet Berkeley). Ọna yii ngbanilaaye lati dinku iwọn iwọn koodu sisẹ ti n ṣiṣẹ ni ipele ekuro ati gbe gbogbo awọn iṣẹ ti awọn ofin itọka ati ọgbọn fun ṣiṣẹ pẹlu awọn ilana sinu aaye olumulo.
Awọn imotuntun akọkọ:
- Atilẹyin IPsec, ngbanilaaye ibaramu ti awọn adirẹsi oju eefin ti o da lori apo, ID ibeere IPsec, ati SPI (Atọka Parameter Aabo) tag. Fun apere,
... ipsec ni ip saddr 192.168.1.0/24
... ipsec ni spi 1-65536O tun ṣee ṣe lati ṣayẹwo boya ọna kan kọja nipasẹ oju eefin IPsec. Fun apẹẹrẹ, lati dènà ijabọ kii ṣe nipasẹ IPSec:
… àlẹmọ o wu RT ipsec sonu silẹ
- Atilẹyin fun IGMP (Ilana Iṣakoso Ẹgbẹ Ayelujara). Fun apẹẹrẹ, o le lo ofin kan lati ṣabọ awọn ibeere ọmọ ẹgbẹ IGMP ti nwọle
nft fi ofin netdev foo bar igmp iru ẹgbẹ-ibeere counter ju
- O ṣeeṣe ti lilo awọn oniyipada lati ṣalaye awọn ẹwọn iyipada (fo / goto). Fun apere:
setumo dest = ber
fi ofin ip foo bar fo $ dest - Atilẹyin fun awọn iboju iparada lati ṣe idanimọ awọn ọna ṣiṣe (Fingerprint OS) ti o da lori awọn iye TTL ninu akọsori. Fun apẹẹrẹ, lati samisi awọn apo-iwe ti o da lori OS olufiranṣẹ, o le lo aṣẹ naa:
... meta ami ṣeto osf ttl foo orukọ maapu {"Linux": 0x1,
"Windows": 0x2,
"MacOS": 0x3,
"aimọ": 0x0}
... osf ttl foo ẹya "Lainos: 4.20" - Agbara lati baamu adiresi ARP ti olufiranṣẹ ati adirẹsi IPv4 ti eto ibi-afẹde. Fun apẹẹrẹ, lati mu counter ti awọn apo-iwe ARP ti a firanṣẹ lati adirẹsi 192.168.2.1, o le lo ofin atẹle:
tabili arp x {
ẹwọn y {
iru àlẹmọ kio input ayo àlẹmọ; imulo gba;
arp saddr ip 192.168.2.1 counter awọn apo-iwe 1 baiti 46
}
} - Atilẹyin fun fifiranšẹ sihin ti awọn ibeere nipasẹ aṣoju (tproxy). Fun apẹẹrẹ, lati tun awọn ipe pada si ibudo 80 si ibudo aṣoju 8080:
tabili ip x {
ẹwọn y {
iru àlẹmọ kio prerouting ayo -150; imulo gba;
tcp dport 80 tproxy si: 8080
}
} - Atilẹyin fun isamisi awọn iho pẹlu agbara lati gba ami ti a ṣeto siwaju sii nipasẹ setsockot () ni ipo SO_MARK. Fun apere:
tabili inet x {
ẹwọn y {
iru àlẹmọ kio prerouting ayo -150; imulo gba;
tcp dport 8080 ami ṣeto ami iho
}
} - Atilẹyin fun sisọ awọn orukọ ọrọ pataki fun awọn ẹwọn. Fun apere:
nft add pq ip x raw {Iru àlẹmọ kio prerouting ayo aise; }
nft fi pq ip x àlẹmọ {Iru àlẹmọ kio prerouting ayo àlẹmọ; }
nft fi pq ip x filter_later {Iru àlẹmọ kio prerouting ayo àlẹmọ + 10; } - Atilẹyin fun awọn aami SELinux (Secmark). Fun apẹẹrẹ, lati ṣalaye tag “sshtag” ni ipo SELinux, o le ṣiṣe:
nft ṣafikun secmark inet àlẹmọ sshtag "system_u: object_r: ssh_server_packet_t: s0"
Ati lẹhinna lo aami yii ni awọn ofin:
nft ṣafikun ofin inet àlẹmọ titẹ sii tcp dport 22 meta secmark ṣeto “sshtag”
nft ṣafikun maapu inet àlẹmọ secmapping {iru inet_service: iṣẹju-aaya; }
nft ṣafikun ipin inet àlẹmọ ni apakan apakan {22: "sshtag"}
nft ṣafikun ofin inet àlẹmọ input meta secmark ṣeto tcp dport maapu @ secmapping - Agbara lati tokasi awọn ebute oko oju omi ti a yàn si awọn ilana ni fọọmu ọrọ, bi wọn ṣe ṣalaye ninu faili /etc/services. Fun apere:
nft ṣafikun ofin xy tcp dport “ssh”
nft akojọ ruleset -l
tabili x {
ẹwọn y {
...
tcp dport "ssh"
}
} - Agbara lati ṣayẹwo iru wiwo nẹtiwọki. Fun apere:
fi ofin inet raw prerouting meta iifkind "vrf" gba
- Atilẹyin ilọsiwaju fun mimu dojuiwọn awọn akoonu ti awọn eto nipa sisọtọ asia “ti o ni agbara”. Fun apẹẹrẹ, lati ṣe imudojuiwọn ṣeto “s” lati ṣafikun adirẹsi orisun ati tun titẹ sii ti ko ba si awọn apo-iwe fun ọgbọn-aaya 30:
fi tabili x
ṣafikun ṣeto xs {iru ipv4_addr; iwọn 128; akoko ipari 30s; awọn asia ìmúdàgba; }
fi pq xy kun {Iru àlẹmọ kio input ni ayo 0; }
ṣafikun imudojuiwọn xy @s {ip saddr} - Agbara lati ṣeto ipo akoko ipari lọtọ. Fun apẹẹrẹ, lati fopin si akoko aifọwọyi fun awọn apo-iwe ti o de ni ibudo 8888, o le pato:
àlẹmọ ip tabili {
ct timeout ibinu-tcp {
Ilana tcp;
l3proto ip;
eto imulo = {ti iṣeto: 100, close_wait: 4, sunmọ: 4}
}
igbejade ẹwọn {
...
tcp dport 8888 ct akoko ti o ti ṣeto "ibinu-tcp"
}
} - Atilẹyin NAT fun ẹbi inet:
tabili inet nat {
...
ip6 daddr oku :: 2 :: 1 dnat si oku: 2 :: 99
} - Ilọsiwaju ijabọ aṣiṣe typo:
nft ṣafikun idanwo àlẹmọ pq
Aṣiṣe: Ko si iru faili tabi ilana; ṣe o tumọ si tabili “àlẹmọ” ni idile ip?
fi pq àlẹmọ igbeyewo
^^^^^^ - Agbara lati tokasi awọn orukọ wiwo ni awọn eto:
ṣeto sc {
tẹ inet_service. iforukọ
eroja = {"ssh" . "eth0" }
} - Sintasi awọn ofin ṣiṣan ti a ṣe imudojuiwọn:
nft fi tabili x
nft ṣafikun ṣiṣan ṣiṣan x ft {ikọ ingress ni ayo 0; awọn ẹrọ = {eth0, wlan0}; }
...
nft ṣafikun ofin x siwaju ip Ilana {tcp, udp} fikun ṣiṣan @ft - Imudara atilẹyin JSON.
orisun: opennet.ru