Nftables paketi vÀljaanne 0.9.2

Toimus paketifiltri vĂ€ljaanne nftables 0.9.2, mis areneb iptablesi, ip6table'i, arptables'i ja ebtables'i asendamiseks, unifitseerides pakettide filtreerimise liideseid IPv4, IPv6, ARP ja vĂ”rgu sillutamiseks. Nftablesi paketis on kasutusruumi pakettide filtreerimise komponente, samas kui tuuma tasemel tagab toimimise nf_tables'i alamsĂŒsteem, mis on osa Linuxi tuumast alates versioonist 3.13. Nftables 0.9.2 vĂ€ljaande tööks vajalikud muudatused on lisatud Linuxi tuuma versioonis 5.3.

Tuumatasandil pakutakse ainult ĂŒldist liidest, mis ei sĂ”ltu konkreetsest protokollist ja pakub pĂ”hifunktsioone andmete ekstraktsiooniks pakettidest, andmete töötlemiseks ja voogude haldamiseks. Otsene filtreerimise loogika ja protokollipĂ”hised töötlejad kompileeritakse kasutajaruumi 'bytecode', mis seejĂ€rel laaditakse tuuma mitteliidese kaudu ja kĂ€itatakse spetsiaalses virtuaalmasinas, mis meenutab BPF-i (Berkeley Packet Filters). Selline lĂ€henemine vĂ”imaldab oluliselt vĂ€hendada tuumatasandil töötava filtreerimiskoodi suurust, viies kĂ”ik reeglite kĂ€sitlemise ja protokollide töötlemise funktsioonid kasutajaruumi.

Peamised uuendused:

  • VĂ”imalus kontrollida sadama numbrit transportkihi paketipea kaudu sĂ”ltumata 4. tasandi protokollist:

    add rule x y ip protocol { tcp, udp } th dport 53

  • Eluea taastamise toetamine elementide kogumites:

    add element ip x y { 1.1.1.1 timeout 30s expires 15s }

  • VĂ”imalus kontrollida ĂŒksikuid valikuid (lsrr, rr, ssrr ja ra) IPv4 paketist:

    add rule x y ip option rr exists drop

    Marsruutimisvalikute jaoks on vÔimalik kontrollida vÀlja type, ptr, length ja addr:

    add rule x y ip option rr type 1 drop

  • VĂ€ljendites on nĂŒĂŒd lubatud mÀÀrata vĂ”rgu eeliseid ja aadresside vahemikke:

    iifname ens3 snat to 10.0.0.0/28
    iifname ens3 snat to 10.0.0.1-10.0.0.15

  • Toetab muutujate kasutamist ketaste mÀÀratlemisel:

    define default_policy = accept
    add chain ip foo bar { type filter hook input priority filter; policy $default_policy }

  • Kettide prioriteedi mÀÀramine on nĂŒĂŒd vĂ”imalik numbrilises ja sĂŒmboolses vormis:

    define prio = filter
    define prionum = 10
    define prioffset = «filter — 150»

    add table ip foo
    add chain ip foo bar { type filter hook input priority $prio; }
    add chain ip foo ber { type filter hook input priority $prionum; }
    add chain ip foo bor { type filter hook input priority $prioffset; }

  • Toetab synproxy mooduli rakendamist. NĂ€iteks TCP pordi 8888 kaitsmiseks saab kasutada jĂ€rgmisi reegleid:

    table ip x {
    chain y {
    type filter hook prerouting priority raw; policy accept;
    tcp dport 8888 tcp flags syn notrack
    }

    chain z {
    type filter hook forward priority filter; policy accept;
    tcp dport 8888 ct state invalid,untracked synproxy mss 1460 \
    wscale 7 timestamp sack-perm ct state invalid drop
    }
    }

  • NĂŒĂŒd saab mÀÀrata ĂŒhendustootmise poliitikaid tavaliste reeglite kogumite kaudu, et mÀÀrata tabelis conntrack oodatud lisast ĂŒhendusi, mis vajavad mitme ĂŒhenduse loomist protokollide ja stsenaariumite korral. NĂ€iteks, et mÀÀrata port 8888 TCP-ĂŒhenduse oodatud jĂ€rgmised ĂŒhendused porti 5432, saab kirjutada jĂ€rgmised reeglid:

    table x {
    ct expectation myexpect {
    protocol tcp
    dport 5432
    timeout 1h
    size 12
    l3proto ip
    }

    chain input {
    type filter hook input priority 0;
    ct state new tcp dport 8888 ct expectation set myexpect
    ct state established,related counter accept
    }
    }

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster