sìoltachan pacaid nftables 1.0.0 sgaoileadh

Chaidh sgaoileadh sìoltachan pacaid nftables 1.0.0 fhoillseachadh, ag aonachadh eadar-aghaidh sìoltachaidh pacaid airson IPv4, IPv6, ARP agus drochaidean lìonra (ag amas air a bhith a’ cur an àite iptables, ip6table, arptables agus ebtables). Tha na h-atharrachaidhean a tha a dhìth airson an sgaoileadh nftables 1.0.0 gu obair air an toirt a-steach don kernel Linux 5.13. Chan eil atharrachadh mòr ann an àireamh an tionndaidh co-cheangailte ri atharrachaidhean bunaiteach sam bith, ach tha e dìreach mar thoradh air leantainneachd cunbhalach ann an àireamhachadh ann an comharradh deicheach (b’ e 0.9.9 an sgaoileadh roimhe).

Tha am pasgan nftables a’ toirt a-steach co-phàirtean sìoltachain pacaid a bhios a’ ruith ann an àite luchd-cleachdaidh, fhad ‘s a tha an obair ìre kernel air a thoirt seachad leis an fho-shiostam nf_tables, a tha air a bhith na phàirt den kernel Linux bho chaidh a leigeil ma sgaoil 3.13. Chan eil an ìre kernel a’ toirt seachad ach eadar-aghaidh coitcheann neo-eisimeileach pròtacal a bheir seachad gnìomhan bunaiteach airson dàta a thoirt a-mach à pacaidean, coileanadh gnìomhachd dàta, agus smachd 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:

  • Chaidh taic don eileamaid masg “*” a chuir ri liostaichean seata, a tha air a phiobrachadh airson pacaidean sam bith nach eil fo eileamaidean eile a tha air am mìneachadh san t-seata. clàr x { blocklist mapa { seòrsa ipv4_addr : verdict flags interval elements = { 192.168.0.0/16 : gabhail ris, 10.0.0.0/8 : gabhail ris, * : tuiteam } } slabhraidh y {seòrsa dubhan sìoltachain ro-làimh prìomhachas 0; gabhail ri poileasaidh; ip saddr vmap @blocklist } }
  • Tha e comasach caochladairean a mhìneachadh bhon loidhne-àithne a’ cleachdadh an roghainn “--define”. # cat test.nft table netdev x { chain y { type filter hook ingress devices = $dev prìomhachas 0; tuiteam poileasaidh; } } # nft -define dev = " { eth0, eth1 } " -f test.nft
  • Ann an liostaichean mhapaichean, tha cleachdadh abairtean seasmhach (staideil) ceadaichte: clàr inet filter { map portmap { type inet_service : verdict counter elements = { 22 pacaidean cunntais 0 bytes 0 : leum ssh_input, * counterpackets 0 bytes 0 : drop } } slabhraidh ssh_input { } slabhraidh wan_input { tcp dport vmap @portmap } ro-innleachd slabhraidh { seòrsa dubhan sìoltachain ro-làimh prìomhachais amh; gabhail ri poileasaidh; iif vmap { "lo" : leum wan_input } } }
  • Chaidh òrdugh “dubhan liosta” a chuir ris gus liosta de luchd-làimhseachaidh airson teaghlach pacaid sònraichte a thaisbeanadh: # nft liosta dubhan ip inneal eth0 teaghlach ip { dubhan ingress { +0000000010 slabhraidh netdev xy [nf_tables] +0000000300 slabhraidh inet mw [nf_tables] } cuir a-steach dubhan { -0000000100 slabhraidh ip ab [nf_tables] +0000000300 slabhraidh inet mz [nf_tables] } dubhan air adhart { -0000000225 selinux_ipv4_forward 0000000000 slabhraidh ip ac [nf_tables] 0000000225} dubhan air adhart postrouting { +4 0000000225 selinux_ipv4_postroute } }
  • Leigidh blocaichean ciudha abairtean jhash, symhash, agus numgen a chur còmhla gus pacaidean a sgaoileadh gu ciudha ann an àite luchd-cleachdaidh. … ciudha gu symhash mod 65536 … seach-rathad brataichean ciudha gu numgen inc mod 65536 … ciudha gu jhash oif . Faodar meta mark mod 32 "ciudha" a chur còmhla ri liostaichean mhapaichean gus ciudha a thaghadh ann an àite cleachdaiche stèidhichte air iuchraichean neo-riaghailteach. ... ciudha brataichean a' dol seachad air mapa oifname { "eth0" : 0, "ppp0" : 2, "eth1" : 2 }
  • Tha e comasach caochladairean a tha a’ toirt a-steach liosta sheata a leudachadh gu grunn mhapaichean. define interfaces = { eth0, eth1 } clàr ip x { slabhraidh y { seòrsa cuir a-steach dubhan sìoltachain prìomhachas 0; gabhail ri poileasaidh; iifname vmap { lo : gabh ris, $interfaces : drop } } # nft -f x.nft # nft list ruleset table ip x { chain y { seòrsa cuir a-steach dubhan sìoltachain prìomhachas 0; gabhail ri poileasaidh; iifname vmap { "lo" : gabhail ris, "eth0" : drop, "eth1" : drop } } }
  • Tha e ceadaichte vmaps (mapa breithneachaidh) a thoirt còmhla aig amannan: # nft cuir riaghailt xy tcp dport . ip saddr vmap { 1025-65535 . 192.168.10.2 : gabhail }
  • Co-chòrdadh nas sìmplidhe airson mapaichean NAT. Ceadaichte raointean seòlaidhean a shònrachadh: ... mapa snat gu ip saddr { 10.141.11.4 : 192.168.2.2-192.168.2.4 } no seòlaidhean IP agus puirt: ... dnat gu mapa ip saddr { 10.141.11.4 : 192.168.2.3 : . 80 } no measgachadh de raointean IP agus puirt: ... dnat gu ip saddr . mapa tcp dport {192.168.1.2 . 80: 10.141.10.2-10.141.10.5. 8888-8999 }

Source: fosgailtenet.ru

Cuir beachd ann