Utgivning av paketfiltret nftables 0.9.2

HÀndelse genomförd utgÄvan av paketfilter nftables 0.9.2, som utvecklas som en ersÀttning för iptables, ip6tables, arptables och ebtables genom att enhetliggöra grÀnssnitten för paketfiltrering för IPv4, IPv6, ARP och nÀtverksbroar. Paketet nftables innehÄller komponenter av paketfilter som fungerar i anvÀndarrummet, medan kÀrnnivÄn hanteras av nf_tables-subsystemet, som ingÄr i Linux-kÀrnan sedan version 3.13. De förÀndringar som krÀvs för nftables 0.9.2 ingÄr i Linux-kÀrnan 5.3.

I kÀrnnivÄn tillhandahÄlls bara ett allmÀnt grÀnssnitt som inte Àr beroende av ett specifikt protokoll och som erbjuder grundlÀggande funktioner för att extrahera data frÄn paket, utföra operationer med data och hantera flöden. SjÀlva filtreringslogiken och protokollspecifika bearbetare kompileras till bytekod i anvÀndarrummet, vilken laddas i kÀrnan via Netlink-grÀnssnittet och körs i en speciell virtuell maskin som pÄminner om BPF (Berkeley Packet Filters). Denna metod möjliggör en betydande minskning av kodstorleken för filtrering som körs pÄ kÀrnnivÄ och flyttar alla funktioner för regelanalys och protokollhantering till anvÀndarrummet.

Huvudsakliga nyheter:

  • Möjlighet att kontrollera portnumret frĂ„n transportlagsheadern oberoende av typ av protokoll för nivĂ„ 4:

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

  • Stöd för att Ă„terstĂ€lla livslĂ€ngden pĂ„ en uppsĂ€ttning element:

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

  • Möjlighet att kontrollera vissa alternativ (lsrr, rr, ssrr och ra) frĂ„n IPv4-paket:

    add rule x y ip option rr exists drop

    För routingalternativ Àr det möjligt att kontrollera fÀlten type, ptr, length och addr:

    add rule x y ip option rr type 1 drop

  • I uttryck Ă€r det nu tillĂ„tet att ange nĂ€tverksprefix och adressintervall:

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

  • Stöd för att anvĂ€nda variabler i kedjedefinitioner:

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

  • Specificering av kedjans prioritet kan nu göras bĂ„de i numeriskt och symboliskt format:

    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; }

  • Stöd för synproxy-modulen har implementerats. Till exempel, för att skydda TCP-port 8888 under synproxy kan följande uppsĂ€ttning regler anvĂ€ndas:

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

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

  • För att definiera i conntrack-tabellen de förvĂ€ntade ytterligare anslutningar relaterade till den aktuella anslutningen, som tillĂ€mpas i protokoll och scenarier som krĂ€ver att flera anslutningar upprĂ€ttas, kan policys nu definieras genom standard uppsĂ€ttningar av regler. Till exempel, för att definiera de förvĂ€ntade efterföljande anslutningarna till TCP-port 8888 och till port 5432 kan följande regler anges:

    tabell x {
    ct expectation myexpect {
    protokoll tcp
    dport 5432
    timeout 1h
    storlek 12
    l3proto ip
    }

    kedja input {
    typ filter hook input prioritet 0;
    ct state new tcp dport 8888 ct expectation set myexpect
    ct state established,related counter accept
    }
    }

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster