nftables pakkasía 0.9.1 útgáfa

Eftir eins árs þróun fram losun pakkasíu nftables 0.9.1, þróast í staðinn fyrir iptables, ip6table, arptables og ebtables með því að sameina pakkasíuviðmót fyrir IPv4, IPv6, ARP og netbrýr. nftables pakkinn inniheldur pakkasíuhluta sem keyra í notendarými, á meðan kjarnastigsvinnan er veitt af nf_tables undirkerfinu, sem hefur verið hluti af Linux kjarnanum frá útgáfu 3.13.

Kjarnastigið veitir aðeins almennt samskiptaóháð viðmót sem veitir grunnaðgerðir til að vinna gögn úr pökkum, framkvæma gagnaaðgerðir og flæðistýringu.
Síurökfræðin sjálf og samskiptasértækir meðhöndlarar eru settir saman í bækakóða í notendarými, eftir það er þessum bætikóða hlaðið inn í kjarnann með því að nota Netlink viðmótið og keyrt í sérstakri sýndarvél sem minnir á BPF (Berkeley Packet Filters). Þessi nálgun gerir þér kleift að minnka verulega stærð síunarkóðans sem keyrir á kjarnastigi og færa allar aðgerðir þáttunarreglna og rökfræði til að vinna með samskiptareglur inn í notendarýmið.

Helstu nýjungar:

  • IPsec stuðningur, sem leyfir samsvörun á vistföngum jarðganga byggt á pakka, IPsec beiðni auðkenni og SPI (Security Parameter Index) merki. Til dæmis,

    ... ipsec í ip saddr 192.168.1.0/24
    ... ipsec í spi 1-65536

    Einnig er hægt að athuga hvort leið liggur í gegnum IPsec göng. Til dæmis, til að loka fyrir umferð ekki í gegnum IPSec:

    … sía framleiðsla rt ipsec vantar fall

  • Stuðningur við IGMP (Internet Group Management Protocol). Til dæmis geturðu notað reglu til að henda IGMP hópaðildarbeiðnum sem berast

    nft bæta við reglu netdev foo bar igmp tegund aðildar-fyrirspurnar counter drop

  • Möguleiki á að nota breytur til að skilgreina umbreytingarkeðjur (hopp / goto). Til dæmis:

    skilgreina dest = ber
    bæta við reglu ip foo bar jump $dest

  • Stuðningur við grímur til að bera kennsl á stýrikerfi (OS Fingerprint) byggt á TTL gildum í hausnum. Til dæmis, til að merkja pakka byggða á sendanda OS, geturðu notað skipunina:

    ... meta mark set osf ttl skip name map { "Linux" : 0x1,
    "Windows": 0x2,
    "MacOS": 0x3,
    "óþekkt" : 0x0 }
    ... osf ttl sleppa útgáfu "Linux:4.20"

  • Geta til að passa við ARP vistfang sendanda og IPv4 vistfang markkerfisins. Til dæmis, til að auka teljara ARP-pakka sem eru sendir frá heimilisfanginu 192.168.2.1, geturðu notað eftirfarandi reglu:

    borð arp x {
    keðja y {
    gerð síu krók inntak forgangs sía; stefna samþykkja;
    arp saddr ip 192.168.2.1 teljarapakkar 1 bæti 46
    }
    }

  • Stuðningur við gagnsæja framsendingu beiðna í gegnum umboð (tproxy). Til dæmis, til að beina símtölum á gátt 80 til umboðsgátt 8080:

    tafla ip x {
    keðja y {
    tegund síu krók forgangur forgangur -150; stefna samþykkja;
    tcp dport 80 tproxy til :8080
    }
    }

  • Stuðningur við að merkja fals með getu til að fá enn frekar sett merkið í gegnum setsockopt() í SO_MARK ham. Til dæmis:

    borð inet x {
    keðja y {
    tegund síu krók forgangur forgangur -150; stefna samþykkja;
    tcp dport 8080 merkjasett falsmerki
    }
    }

  • Stuðningur við að tilgreina forgangstextaheiti fyrir keðjur. Til dæmis:

    nft add chain ip x raw { type filter hook prerouting priority raw; }
    nft add chain ip x filter { type filter hook prerouting priority filter; }
    nft bæta við keðju ip x filter_later { tegund filter hook prerouting forgangssía + 10; }

  • Stuðningur við SELinux merki (Secmark). Til dæmis, til að skilgreina „sshtag“ merkið í SELinux samhengi, geturðu keyrt:

    nft bæta við secmark inet síu sshtag "system_u:object_r:ssh_server_packet_t:s0"

    Og notaðu síðan þetta merki í reglunum:

    nft add rule inet filter input tcp dport 22 meta secmark set “sshtag”

    nft bæta við korti inet filter secmapping {tegund inet_service: secmark; }
    nft add element inet filter secmapping { 22 : "sshtag" }
    nft add rule inet filter input meta secmark set tcp dport map @secmapping

  • Geta til að tilgreina höfn sem úthlutað er samskiptareglum í textaformi, eins og þær eru skilgreindar í /etc/services skránni. Til dæmis:

    nft bæta við reglu xy tcp dport "ssh"
    nft list reglusett -l
    borð x {
    keðja y {
    ...
    tcp dport "ssh"
    }
    }

  • Geta til að athuga tegund netviðmóts. Til dæmis:

    add rule inet raw prerouting meta iifkind "vrf" samþykkja

  • Bættur stuðningur við virk uppfærslu á innihaldi setta með því að tilgreina „dýnamíska“ fánann sérstaklega. Til dæmis, til að uppfæra settið "s" til að bæta við upprunanetfanginu og endurstilla færsluna ef það eru engir pakkar í 30 sekúndur:

    bæta við töflu x
    bæta við setti xs {tegund ipv4_addr; stærð 128; tímamörk 30s; fánar dynamic; }
    bæta við keðju xy { tegund filter krók inntak forgangur 0; }
    bæta við reglu xy uppfæra @s { ip saddr }

  • Möguleiki á að stilla sérstakt tímamörk. Til dæmis, til að hnekkja sjálfgefnum tímamörkum fyrir pakka sem berast á höfn 8888, geturðu tilgreint:

    töflu IP sía {
    ct timeout aggressive-tcp {
    siðareglur tcp;
    l3proto ip;
    stefna = {staðfest: 100, close_wait: 4, loka: 4}
    }
    keðjuútgangur {
    ...
    tcp dport 8888 ct timeout sett "aggressive-tcp"
    }
    }

  • NAT stuðningur fyrir inet fjölskyldu:

    borð inet nat {
    ...
    ip6 daddr dead::2::1 dnat to dead:2::99
    }

  • Bætt prentvillutilkynning:

    nft bæta við keðjusíupróf

    Villa: Engin slík skrá eða skrá; varstu að meina töflu “filter” í fjölskyldu ip?
    bæta við keðjusíuprófi
    ^^^^^^

  • Geta til að tilgreina viðmótsnöfn í settum:

    setja sc {
    sláðu inn inet_service . efnafn
    þættir = { "ssh" . "eth0" }
    }

  • Uppfærð setningafræði flæðitöflureglna:

    nft bæta við töflu x
    nft bæta við flæðitöflu x ft { krókinngangsforgangur 0; tæki = { eth0, wlan0 }; }
    ...
    nft bæta við reglu x áfram ip samskiptareglur { tcp, udp } flæði bæta við @ft

  • Bættur JSON stuðningur.

Heimild: opennet.ru

Bæta við athugasemd