Vlákno názorů k článku nftables: správa pravidel v našem firewallu od RadekS - Dobrý den, především děkuji, za články. už několik dní hledám...

  • Článek je starý, nové názory již nelze přidávat.
  • 19. 4. 2020 14:35

    RadekS

    Dobrý den,
    především děkuji, za články.
    už několik dní hledám návod na nft, ale né a né něco porádného najít.

    Na nasazení nftables jsem se těšil z toho důvodu, protože všude co jsem četl byla infomrace, že jde o zjednodušení zefektivění stávajících iptables a co hlavně že se inspirovali u BSD firewallu "pf".
    "pf" firewall jsem chvíli používal a jeho konfigurace byla super, měl jsem ho hodně rád, byl jednoduchý na pochopení na používání v CLI, prostě super.
    Co měl ale ze všeho nejlepěí je MANUÁL.
    Vždy když jsem něco nevěděl, stačilo dát "man pf" a během několika minut jsem našel odpověď.

    Takže když jsem seo dozvěděl, že nftables by mělo být jednodušší syntax a inspirováno u pf, tak že to zkusím.

    Bohužel jsem opět narazil na MAN stránly v linuxu, které jsou o proti BSD manuálovým stránkám na nulové informační úrovni.

    Prakticky NIKDY mi "man příkaz" v linuxu nepomohl s nalezením odpovědí jak co nastavit. Vždy člověk musel do googlu a najít nějaký návod, kde to vysvětluje nějaký uživatel.

    A u nftables je to bohužel úplně stejné. Návod "man nft" je naprosto ale úplně na dvě věci! Napsal bych něco jiného ale nechci být sprostý.

    Jen obyčejnáotázka na nalezení jak nastavit pravidlo, které povoluje IP kamkoli je nadlidský úkol.
    Něco jako "ip accept" nefunguje, nebo "oif encp0 accept" znovu nefunguje.
    Zafungoval až příkaz: "ip daddr 0/0 accept".
    Který se ale ve výpisu zobrazí jako:
    "ip daddr & 0.0.0.0 == 0.0.0.0 accept"

    WTF! Co to proboha je??? To si fakt někdo dělá "pr..."! Omlouvám se zase jsem sprostý. Ale co je to proboha za zápis?
    Proč tam nění jednoduše to co je konfiguraci, tj. "0.0.0.0/0" ?

    Když napíšu, "ip daddr 10.0.0.0/16 accept", tak to se zobrazí stejně.
    Proč proboha network 0/0 zobrazuje takhle zpitvořeně?
    Z principu se network 0.0.0.0/0 naprosto nelyší od 10.0.0.0/16. Je to systém psaní ip adres jen 0/0 reprezentuje "default routu", ale v principu zápis je naprotosto stejný jako pro všechny ostatní ip adresy.
    Podobně jako loopback je ip adresa 127.0.0.1/32. To správně zobrazuje jako 127.0.0.1.

    Může mi někdo vysvětlit proč pitvoří zápis pro default routu?

    No abych to ukončil.
    Zatím jsem nebyl schopný nastavit rozumný konfigurák pro obyčejný firewall workstation tak abych provoz "OUTPUT" vše zakázal a povolil pouze vybraný provoz a všechno mi fungovalo.

    Je mi jasné, že je to hlavně mezi klávesnicí a židlí, že nerozumím tomu jak to je vyrobené, ale kydž to porovnám s bsd, pf, nebo ipfw, nebo i se starým IPTABLES, tak ty jsem byl relativně hned schopný nastavit.

    S nftables, který má být jednodušší se mi to zatím nepodařilo.

    Ach jo.

  • 21. 4. 2020 19:01

    jm

    Používám něco takového, doufám, že nedávám hackerům návod na exploit.


    chain output {
    type filter hook output priority 0;
    ct state established,related accept
    # accept any localhost traffic
    oif lo accept
    # # accept local lan
    # ip daddr $local_lan accept
    # accept trusted protocols
    tcp dport { \
    ssh, http, https, svn, git, imaps, domain, mdns \
    } ct state new accept
    udp dport { \
    domain, mdns \
    } ct state new accept
    ip protocol { icmp, esp } accept
    # count and drop any other traffic
    counter drop
    }