sìoltachan pacaid nftables 0.9.1 sgaoileadh

Às deidh bliadhna de leasachadh air a thaisbeanadh sgaoileadh sìoltachan pacaid nftables 0.9.1, a’ leasachadh mar àite an àite iptables, ip6table, arpttables agus ebtables le bhith ag aonachadh eadar-aghaidh sìoltachaidh pacaid airson IPv4, IPv6, ARP agus drochaidean lìonra. 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 tharraing à pacaidean, coileanadh gnìomhachd dàta, agus smachd sruthadh.
Tha an loidsig sìoltachaidh fhèin agus luchd-làimhseachaidh protocol-sònraichte air an cur ri chèile ann am bytecode ann an àite luchd-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 ann an inneal brìgheil sònraichte a tha coltach ri BPF (Berkeley Packet Filters). Leigidh an dòigh-obrach seo leat 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 airson obrachadh le protocolaidhean a ghluasad gu àite luchd-cleachdaidh.

Prìomh innleachdan:

  • Taic IPsec, a’ ceadachadh seòlaidhean tunail a mhaidseadh stèidhichte air pacaid, ID iarrtas IPsec, agus tag SPI (Clàr Parameter Tèarainteachd). Mar eisimpleir,

    ... ipsec ann an ip saddr 192.168.1.0/24
    ... ipsec ann an spi 1-65536

    Tha e comasach cuideachd dearbhadh a bheil slighe a’ dol tro thunail IPsec. Mar eisimpleir, gus trafaic a bhacadh nach eil tro IPSec:

    … sìoltachan toradh rt ipsec tuiteam a dhìth

  • Taic airson IGMP (Pròtacal Riaghladh Buidhne Eadar-lìn). Mar eisimpleir, faodaidh tu riaghailt a chleachdadh gus iarrtasan ballrachd buidhne IGMP a tha a’ tighinn a-steach a dhubhadh às

    nft cuir riaghailt netdev foo bar igmp seòrsa ballrachd - ceist counter drop

  • Comasach air caochladairean a chleachdadh gus slabhraidhean gluasaid a mhìneachadh (leum / goto). Mar eisimpleir:

    mìneachadh dest = ber
    cuir riaghailt ip foo bar jump $dest

  • Taic airson masgaichean gus siostaman obrachaidh a chomharrachadh (OS Meòir-lorg) stèidhichte air luachan TTL anns a’ cheann-cinn. Mar eisimpleir, gus pacaidean a chomharrachadh stèidhichte air an OS a chuir thu, faodaidh tu an àithne a chleachdadh:

    ... meta comharra seata osf ttl skip ainm mapa { "Linux" : 0x1,
    "Windows": 0x2,
    "MacOS": 0x3,
    "neo-aithnichte" : 0x0 }
    ... osf ttl skip tionndadh "Linux: 4.20"

  • Comas seòladh ARP an neach a chuir agus seòladh IPv4 an t-siostam targaid a mhaidseadh. Mar eisimpleir, gus an àireamh de phacaidean ARP a chuirear bhon t-seòladh 192.168.2.1 a mheudachadh, faodaidh tu an riaghailt a chleachdadh:

    bòrd arp x {
    slabhraidh y {
    seòrsa criathrag cuir a-steach dubhan prìomhachais; gabhail ri poileasaidh;
    arp saddr ip 192.168.2.1 pacaidean cunntais 1 bytes 46
    }
    }

  • Taic airson iarrtasan a chuir air adhart gu follaiseach tro neach-ionaid (tproxy). Mar eisimpleir, gus fiosan ath-stiùireadh gu port 80 gu port proxy 8080:

    clàr ip x {
    slabhraidh y {
    seòrsa dubhan sìoltachain prerouting prìomhachas -150; gabhail ri poileasaidh;
    tcp dport 80 tproxy gu: 8080
    }
    }

  • Taic airson socaidean a chomharrachadh le comas an comharra suidhichte fhaighinn tuilleadh tro setsockopt () ann am modh SO_MARK. Mar eisimpleir:

    clàr inet x {
    slabhraidh y {
    seòrsa dubhan sìoltachain prerouting prìomhachas -150; gabhail ri poileasaidh;
    tcp dport 8080 comharra seata socaid comharra
    }
    }

  • Taic airson ainmean teacsa prìomhachais a shònrachadh airson slabhraidhean. Mar eisimpleir:

    nft cuir slabhraidh ip x raw {seòrsa dubhan sìoltachain ro-làimh prìomhachais amh; }
    nft cuir slabhraidh ip x criathrag {seòrsa dubhan sìoltachain ro-làimh sìoltachan prìomhachais; }
    nft cuir slabhraidh ip x filter_later { seòrsa dubhan sìoltachain ro-làimh sìoltachan prìomhachais + 10; }

  • Taic airson tagaichean SELinux (Secmark). Mar eisimpleir, gus an taga “sshtag” a mhìneachadh ann an co-theacs SELinux, faodaidh tu ruith:

    nft cuir sìoltachan inet secmark sshtag "system_u:object_r: ssh_server_packet_t: s0"

    Agus an uairsin cleachd an leubail seo anns na riaghailtean:

    nft cuir a-steach riaghailt inet filter cuir a-steach tcp dport 22 meta secmark seata “sshtag”

    nft cuir mapa criathrag inet secmapping { seòrsa inet_service : secmark; }
    nft cuir eileamaid criathrag inet secmapping { 22 : "sshtag" }
    nft cuir a-steach riaghailt inet filter meta secmark seata tcp dport map @secmapping

  • Comas puirt a shònrachadh do phròtacalan ann an cruth teacsa, mar a tha iad air am mìneachadh anns an fhaidhle /etc/services. Mar eisimpleir:

    nft cuir riaghailt x y tcp dport "ssh"
    nft liosta riaghailtean -l
    clàr x {
    slabhraidh y {
    ...
    tcp dport "ssh"
    }
    }

  • Comas sgrùdadh a dhèanamh air an t-seòrsa eadar-aghaidh lìonra. Mar eisimpleir:

    cuir ris an riaghailt inet raw prerouting meta iifkind "vrf" gabhail ris

  • Taic nas fheàrr airson a bhith ag ùrachadh susbaint sheataichean le bhith a’ sònrachadh gu soilleir a’ bhratach “fiùghantach”. Mar eisimpleir, gus seata “s” ùrachadh gus an seòladh stòr a chuir ris agus ath-shuidheachadh an inntrig mura h-eil pacaidean ann airson 30 diog:

    cuir clàr x
    cuir seata x s {seòrsa ipv4_addr; meud 128; ùine-ama 30s; brataichean fiùghantach; }
    cuir slabhraidh x y { seòrsa cuir a-steach dubhan sìoltachain prìomhachas 0; }
    cuir riaghailt x y update @s { ip saddr }

  • Comas suidheachadh ùine fa leth a shuidheachadh. Mar eisimpleir, gus faighinn thairis air an ùine bunaiteach airson pacaidean a thig gu port 8888, faodaidh tu sònrachadh:

    sìoltachan ip clàr {
    ùine ct ionnsaigheach-tcp {
    protocol tcp;
    l3 proto ip;
    poileasaidh = {stèidhichte: 100, close_wait: 4, dùin: 4}
    }
    toradh slabhraidh {
    ...
    clàr-ama tcp dport 8888 ct seata “ionnsaigheach-tcp”
    }
    }

  • Taic NAT airson teaghlach neo-dhìreach:

    clàr inet nat {
    ...
    ip6 daddr marbh ::2::1 dnat gu marbh:2::99
    }

  • Aithris mearachd typo nas fheàrr:

    nft cuir deuchainn sìoltachain slabhraidh ris

    Mearachd: Chan eil faidhle no eòlaire mar sin ann; an robh thu a’ ciallachadh clàr “filter” ann an ip teaghlaich?
    cuir deuchainn sìoltachain slabhraidh ris
    ^^^^^^

  • Comas ainmean eadar-aghaidh a shònrachadh ann an seataichean:

    suidhich sc {
    seòrsa inet_service . mas ainm
    eileamaidean = { "ssh". "eth0" }
    }

  • Co-chòrdadh riaghailtean flowtable ùraichte:

    nft cuir clàr x
    nft cuir clàr-sruth x ft { dubhan a-steach prìomhachas 0; innealan = { eth0, wlan0 }; }
    ...
    nft cuir riaghailt x air adhart ip protocol { tcp, udp } sruthadh cuir @ft

  • Taic JSON nas fheàrr.

Source: fosgailtenet.ru

Cuir beachd ann