nftables packet filter 0.9.1 famoahana

Taorian'ny taona fampandrosoana aseho famotsorana sivana fonosana nftables 0.9.1, mivelatra ho solon'ny iptables, ip6table, arptables ary ebtables amin'ny alΓ lan'ny fampiraisana ny sivana fonosana ho an'ny IPv4, IPv6, ARP ary tetezana tambajotra. Ny fonosana nftables dia ahitana singa sivana fonosana izay mandeha amin'ny habaka mpampiasa, raha toa kosa ny asan'ny kernel-level dia omen'ny subsystem nf_tables, izay anisan'ny kernel Linux hatramin'ny famoahana 3.13.

Ny haavon'ny kernel dia tsy manome afa-tsy interface tsy miankina amin'ny protocol generic izay manome fiasa fototra amin'ny fakana ny angona avy amin'ny fonosana, ny fampandehanana ny angona ary ny fanaraha-maso ny fikorianan'ny rano.
Ny lojikan'ny fanivanana ny tenany sy ireo mpikirakira manokana momba ny protocole dia natambatra ho bytecode ao amin'ny habaka mpampiasa, ary avy eo dia ampidirina ao anaty kernel ity bytecode ity amin'ny alΓ lan'ny interface Netlink ary atao amin'ny milina virtoaly manokana mampahatsiahy ny BPF (Berkeley Packet Filters). Ity fomba ity dia ahafahanao mampihena be ny haben'ny kaody sivana mandeha amin'ny haavon'ny kernel ary mamindra ny fiasa rehetra amin'ny fitsipi-pitenenana sy ny lojika amin'ny fiasana amin'ny protocols ho any amin'ny habaka mpampiasa.

Fanavaozana lehibe:

  • Fanohanana IPsec, ahafahana mifanandrify amin'ny adiresin'ny tonelina mifototra amin'ny fonosana, ID fangatahana IPsec, ary marika SPI (Security Parameter Index). Ohatra,

    ... ipsec amin'ny ip saddr 192.168.1.0/24
    ... ipsec amin'ny spi 1-65536

    Azo atao koa ny manamarina raha mandalo tonelina IPsec ny lalana iray. Ohatra, hanakana ny fifamoivoizana tsy amin'ny IPSec:

    … vokatra sivana rt ipsec tsy hita

  • Fanohanana ny IGMP (Internet Group Management Protocol). Ohatra, azonao atao ny mampiasa fitsipika hanilika ny fangatahana ho mpikambana ao amin'ny vondrona IGMP

    nft add rule netdev foo bar igmp type membership-query counter drop

  • Fahafahana mampiasa fari-pahalalana hamaritana rojom-pandrosoana (mitsambikina / goto). Ohatra:

    mamaritra ny tanjona = ber
    ampio fitsipika ip foo bar jump $dest

  • Fanohanana saron-tava hamantarana ny rafitra miasa (OS Fingerprint) mifototra amin'ny sanda TTL ao amin'ny lohapejy. Ohatra, mba hanamarihana ny fonosana mifototra amin'ny OS mpandefa, azonao atao ny mampiasa ny baiko:

    ... meta mark set osf ttl skip name map { "Linux" : 0x1,
    "Windows": 0x2,
    "MacOS": 0x3,
    "tsy fantatra" : 0x0 }
    ... osf ttl skip version "Linux:4.20"

  • Fahaizana mifanandrify amin'ny adiresy ARP an'ny mpandefa sy ny adiresy IPv4 an'ny rafitra kendrena. Ohatra, mba hampitomboana ny kaontera ny fonosana ARP nalefa avy amin'ny adiresy 192.168.2.1, azonao atao ny mampiasa ity fitsipika manaraka ity:

    latabatra arp x {
    rojo y {
    karazana sivana hook fidirana laharam-pahamehana sivana; manaiky ny politika;
    arp saddr ip 192.168.2.1 fonosana counter 1 byte 46
    }
    }

  • Fanohanana ny fandefasana fangatahana mangarahara amin'ny alΓ lan'ny proxy (tproxy). Ohatra, hamerenana ny antso mankany amin'ny seranana 80 mankany amin'ny seranana proxy 8080:

    latabatra ip x {
    rojo y {
    karazana sivana hook prerouting laharam-pahamehana -150; manaiky ny politika;
    tcp dport 80 tproxy mankany: 8080
    }
    }

  • Fanohanana ny fanamarihan'ny socket miaraka amin'ny fahafahana mahazo bebe kokoa ny marika napetraka amin'ny alΓ lan'ny setsockopt() amin'ny fomba SO_MARK. Ohatra:

    latabatra inet x {
    rojo y {
    karazana sivana hook prerouting laharam-pahamehana -150; manaiky ny politika;
    tcp dport 8080 marika mametraka marika socket
    }
    }

  • Fanohanana amin'ny famaritana ny anaran-tsoratra laharam-pahamehana ho an'ny rojo. Ohatra:

    nft ampio rojo ip x manta { karazana filtre hook prerouting priority manta; }
    nft ampio rojo ip x sivana { karazana filtre hook prerouting prioritΓ© sivana; }
    nft ampio rojo ip x filter_later { type sivana hook prerouting priority sivana + 10; }

  • Fanohanana ny marika SELinux (Secmark). Ohatra, mba hamaritana ny tenifototra "sshtag" amin'ny contexte SELinux dia azonao atao ny mihazakazaka:

    nft add secmark inet filter sshtag "system_u: object_r: ssh_server_packet_t:s0"

    Ary ampiasao ity marika ity amin'ny fitsipika:

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

    nft ampio sarintany inet sivana secmapping { karazana inet_service: secmark; }
    nft manampy singa inet sivana secmapping {22: "sshtag"}
    nft add rule inet filter input meta secmark set tcp dport map @secmapping

  • Fahaizana mamaritra ny seranana voatendry amin'ny protocols amin'ny endrika lahatsoratra, araka ny voafaritra ao amin'ny rakitra /etc/services. Ohatra:

    nft add rule xy tcp dport "ssh"
    nft list ruleset -l
    latabatra x {
    rojo y {
    ...
    tcp dport "ssh"
    }
    }

  • Fahaizana manamarina ny karazana interface tsara. Ohatra:

    ampio fitsipika inet raw prerouting meta iifkind "vrf" manaiky

  • Fanohanana nohatsaraina amin'ny fanavaozana amin'ny fomba mavitrika ny votoatin'ny andiany amin'ny alΓ lan'ny famaritana mazava ny saina "dynamique". Ohatra, hanavao ny "s" mba hanampiana ny adiresy loharano ary hamerina ny fidirana raha tsy misy fonosana mandritra ny 30 segondra:

    ampio latabatra x
    ampio set xs { type ipv4_addr; habe 128; fe-potoana 30s; saina mavitrika; }
    ampio rojo xy { karazana filtre hook laharam-pahamehana 0; }
    ampio fitsipika xy fanavaozana @s { ip saddr }

  • Fahaizana mametraka fepetra fiatoana misaraka. Ohatra, raha hanilika ny fe-potoana default ho an'ny fonosana tonga amin'ny seranan-tsambo 8888 dia azonao atao ny mamaritra:

    sivana ip table {
    ct timeout aggressive-tcp {
    protocol tcp;
    l3proto ip;
    politika = {naorina: 100, akaiky_miandry: 4, akaiky: 4}
    }
    rojo vokatra {
    ...
    tcp dport 8888 ct fe-potoana napetraka "mahery setra-tcp"
    }
    }

  • Fanohanana NAT ho an'ny fianakaviana inet:

    latabatra inet nat {
    ...
    ip6 daddr maty::2::1 dnat to dead:2::99
    }

  • Nohatsaraina ny tatitra momba ny fahadisoana diso:

    nft add chain filter test

    Error: Tsy misy rakitra na lahatahiry toy izany; latabatra "sivana" ao amin'ny fianakaviana ip ve no tianao holazaina?
    ampio fitsapana sivana rojo
    ^^^^^^

  • Fahaizana mamaritra ny anaran'ny interface amin'ny andiany:

    mametraka sc {
    type inet_service . ifname
    singa = { "ssh" . "eth0" }
    }

  • Nohavaozina ny fitsipiky ny flowtable:

    nft ampio latabatra x
    nft add flowtable x ft { laharam-pahamehana fidirana 0; fitaovana = {eth0, wlan0}; }
    ...
    nft add rule x forward ip protocol {tcp, udp } flow add @ft

  • Fanohanana JSON nohatsaraina.

Source: opennet.ru

Add a comment