abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:44 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 14.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    dnes 13:11 | Zajímavý projekt

    Just the Browser je projekt, 'který vám pomůže v internetovém prohlížeči deaktivovat funkce umělé inteligence, telemetrii, sponzorovaný obsah, integraci produktů a další nepříjemnosti' (repozitář na GitHubu). Využívá k tomu skrytá nastavení ve webových prohlížečích, určená původně pro firmy a organizace ('enterprise policies'). Pod linuxem je skriptem pro automatickou úpravu nastavení prozatím podporován pouze prohlížeč Firefox.

    NUKE GAZA! 🎆 | Komentářů: 1
    včera 16:44 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.

    Ladislav Hagara | Komentářů: 2
    včera 15:11 | IT novinky

    Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.

    Ladislav Hagara | Komentářů: 10
    včera 13:55 | IT novinky

    Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Nová verze

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    15.1. 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 3
    15.1. 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 3
    15.1. 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (9%)
     (20%)
     (3%)
     (6%)
     (3%)
     (11%)
     (42%)
    Celkem 471 hlasů
     Komentářů: 12, poslední 14.1. 21:12
    Rozcestník

    Dotaz: nftables - příklad a základní nastavení

    16.11.2022 17:56 Petr
    nftables - příklad a základní nastavení
    Přečteno: 728×
    Ahoj,
    řeším, jak na základní nastavení firewallu nad nftables.

    V podstatě mám toto...
    - z internetu je pro všechny veřejně povolen přístup na http, https, OpenVPN a Wireguard, což jsou služby, které poskytuje tento stroj
    - ssh přístup je povolen pouze z IP adres 192.168.100.11 a 192.168.100.12 (servisní IP)
    - maškaráda - ven se jde přes wan rozhraní ens192
    - do DMZ směruju porty 33891 a 33892



    Nevím si rady s ...
    - jak docílit toho aby mezi sítěma nebylo možné procházet - tj. aby se vlany mezi sebou neviděly a nemohly spolu / navzájem komunikovat
    - jak docílit toho aby se z vlan100 bylo možné dostat do všech ostatních vlan bez jakýchkoli omezení
    - jak docílit toho aby všichni uživatelé ze všech vlan mohli přistupovat do DMZ (vlan20) na IP 192.168.20.10 na port 53udp a žádný jiný
    - jak docílit toho aby z OpenVPN (tun0) mohla IP adresa 192.168.40.100 naprosto všude
    - jak docílit toho aby z OpenVPN (tun0) mohla IP adresa 192.168.40.111 neomezeně na stroj v DMS s IP 192.168.20.88
    - jak docílit toho aby z WireGuard (wg0) mohla IP adresa 192.168.50.100 naprosto všude
    - jak docílit toho aby z WireGuard (wg0) mohla IP adresa 192.168.50.111 neomezeně na stroj v DMS s IP 192.168.20.88

    Dokumentace je pro mě (jako začátečníka) dost zmatená a nesrozumitelná.
    Dokázal by mi prosím někdo poradit, případně mi to na míru napsat ?


    Konfigurace, kterou jsem zatím "vymyslel a zplodil" viz. níže..

    Děkuji,
    Petr
    #!/usr/sbin/nft -f
    
    # vlan10:  192.168.10.0/24   - LAN
    # vlan20:  192.168.20.0/24   - DMZ
    # vlan30:  192.168.30.0/24   - Guest network
    # vlan100: 192.168.100.0/24 - servis / management network
    
    # tun0:  192.168.40.0/24   - OpenVPN
    # wg0:   192.168.50.0/24   - Wireguard VPN
    
    
    flush ruleset
    
    table inet filter {
    	chain input {
    		type filter hook input priority 0; policy drop;
    
          # accept any localhost traffic
          iif lo accept
    
          # accept trafic originated from us
          ct state established,related accept
    
          # drop invalid packets
          ct state invalid counter drop
    
          # accept http, https from anywhere
          tcp dport { 80,443 } accept
    
          # accept OpenVPN clients from anywhere
          udp dport 1194 accept
    
          # accept WireGuard clients from anywhere
          udp dport 5180 accept
    
          # accept SSH only from my servis / management IPs
          tcp dport ssh ip saadr 192.168.100.11 accept
          tcp dport ssh ip saadr 192.168.100.12 accept
    
          # accept icmp from anywhere
          ip protocol icmp accept
    
          # accept icmpv6 from anywhere
          ip6 nexthdr icmpv6 accept
    
          #  meta nfproto ipv6 from anywhere
          icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 1 accept
          icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 255 counter accept
    
          # count and reject everithing else
          counter reject with icmpx type admin-prohibited
    
    
    
    	}
    	chain forward {
    		type filter hook forward priority 0;
    
    	}
    	chain output {
    		type filter hook output priority 0;
    	}
    
    }
    
    
    table ip nat {
            chain prerouting {
                    type nat hook prerouting priority 100; policy accept;
                    iif "ens192" tcp dport 33891 dnat to 192.168.20.11:3389
                    iif "ens192" tcp dport 33892 dnat to 192.168.20.12:3389
            }
    
            chain postrouting {
                    type nat hook postrouting priority 100; policy accept;
                    ip saddr 192.168.10.0/24 oif "ens192" masquerade
                    ip saddr 192.168.20.0/24 oif "ens192" masquerade
                    ip saddr 192.168.30.0/24 oif "ens192" masquerade
                    ip saddr 192.168.40.0/24 oif "ens192" masquerade
                    ip saddr 192.168.50.0/24 oif "ens192" masquerade
                    ip saddr 192.168.100.0/24 oif "ens192" masquerade
            }
    }
    
    

    Odpovědi

    16.11.2022 18:20 X
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Kdysi jsem dlouho nemohl pocohpit tento obrazek. Drtiva vetsina tvych pozadavku se deje v sekci 'forward' kdy paket prechazi z jednoho rozhrani (vstupni -i) na druhe rozhrani(vystupni -o). V tom momente jsi schopny definovat ktere pakety "preskoci" z jedne site do druhe. Mnoho prikladu ma Arch.
    16.11.2022 18:25 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Asi bych potřeboval vysvětlit na konkrétním případě... Na wiki Archu jsem se díval, ale nic, co by alespoň trochu se blížilo mým potřebám ...mluvím o tom forwardu
    16.11.2022 18:48 X
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    V serialu na rootu je to videt lepe. Dalsi priklad je primo na wiki dole. POradna neni skolici centrum, nebo poptavna na brigadu. "Udela to nekdo za mne?" Ne.
    16.11.2022 19:05 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Takže, dejme tomu, že jsem to pochopil správně ?
    To jest, vlan100, vlan101, vlan102 a vlan103 mohou komunikovat "do" i "z" internetu, ale pouze vlan100 může komunikovat do vlan101, vlan102 a vlan103.
    Chápu to správně ?
    chain forward {
    		type filter hook forward priority 0; policy drop;
                    iifname "vlan100" oifname "ens192" ct state related,established accept          # vlan100 -> WAN
                    iifname "ens192" oifname "vlan100" accept                                       # WAN     -> vlan100
    
                    iifname "vlan101" oifname "ens192" ct state related,established accept          # vlan101 -> WAN
                    iifname "ens192" oifname "vlan101" accept                                       # WAN     -> vlan101
    
                    iifname "vlan102" oifname "ens192" ct state related,established accept          # vlan102 -> WAN
                    iifname "ens192" oifname "vlan102" accept                                       # WAN     -> vlan102
    
                    iifname "vlan103" oifname "ens192" ct state related,established accept          # vlan103 -> WAN
                    iifname "ens192" oifname "vlan103" accept                                       # WAN     -> vlan103
    
                    iifname "vlan100" oifname "vlan101" ct state related,established accept         # vlan100 -> vlan101
                    iifname "vlan100" oifname "vlan102" ct state related,established accept         # vlan100 -> vlan102
                    iifname "vlan100" oifname "vlan103" ct state related,established accept         # vlan100 -> vlan103
                    
    	}
    
    
    
    16.11.2022 19:46 X
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Bohuzel ne. Tohle nebude fungovat spravne. nejdrive si nastuduj zakladni fungovani stavoveho firewallu.
    17.11.2022 08:49 Bugsa
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Taková blbá rada: Nainstaluj si nejnovější OpenWRT do virtualu. Přes GUI si naklikej požadovaná pravidla a pak se koukni jak se vygenerovala nftables pravidla.
    18.11.2022 13:02 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Tak jsem se o kousíček (pro mě významný kus) posunul...
    Prosím, mohl bych poprosit o radu, jak nejlépe ošetřit nefungující dva body, viz. níže ?

    Funguje
    - přístup z wanu na HTTP a HTTPS
    - přístup z wanu na OpenVPN
    - přístup z wanu na WireGuard
    - přístup na SSH je povolen pouze z vyjmenovaných IP
    - přístup do internetu z vlan100 a vlan101 pakliže komunikace byla navázána z dané vlan
    - funguje maškaráda (záměrně snat)
    - funguje prostup z vlan100 do vlany101, ve chvíli, kdy se spojení navazuje v vlan100

    Co nefunguje a nedaří se mi od rána zprovoznit...
    - přístup z vlan101 do vlan100 pro konkrétní IP - řekněme že pouze IP 10.101.1.11 smí vstupovat do vlan100
    - přístup na DNS je povolen na všechny veřejné (např. Google) servery, já bych ale potřeboval povolit/vynutit pro vlanu100 vlastní DNS server na adrese 10.100.1.13 a žádný jiný

    Moje aktuální konfigurace nftables vypadá takto...
    #!/usr/sbin/nft -f
    
    flush ruleset
    
    table inet filter {
            chain input {
            type filter hook input priority 0; policy drop;
    
          # accept any localhost traffic
          iif lo accept
    
          # accept trafic originated from us
          ct state established,related accept
    
          # drop invalid packets
          ct state invalid counter drop
    
          # accept http, https from anywhere
          tcp dport { 80,443 } accept
    
          # accept OpenVPN clients from anywhere
          udp dport 1194 accept comment "OpenVPN in"
    
          # accept WireGuard clients from anywhere
          udp dport 5180 accept comment "WireGuard in"
    
          # accept SSH only from this IPs
          tcp dport ssh ip saddr 10.255.255.32 accept comment "SSH in"
          tcp dport ssh ip saddr 10.1.100.11 accept comment "SSH in"
          tcp dport ssh ip saddr 10.1.100.12 accept comment "SSH in"
    
          # accept icmp from anywhere
          ip protocol icmp accept
    
          # accept icmpv6 from anywhere
          ip6 nexthdr icmpv6 accept
    
          #  meta nfproto ipv6 from anywhere
          icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 1 accept
          icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 255 counter accept
    
          # count and reject everithing else
          counter reject with icmpx type admin-prohibited
    
    
          }
    
    
    	chain forward {
    		type filter hook forward priority 0; policy drop;
                    
                    # povolím přístup na internet z vlan100
                    iifname "vlan100" oifname "ens192" accept                                       # vlan100  to Internet
                    iifname "ens192" oifname "vlan100" ct state related,established accept          # Internet to vlan100
    
                    # povolím přístup na internet z vlan101
                    iifname "vlan101" oifname "ens192" accept                                       # vlan101 to Internet
                    iifname "ens192" oifname "vlan101" ct state related,established accept          # Internet to vlan101
    
                    # povolím přístup z vlan100 do vlan101
                    # pokud se komunikace navazuje z vlan100
                    iifname "vlan100" oifname "vlan101" accept                                      # vlan100 to vlan101
                    iifname "vlan101" oifname "vlan100" ct state related,established accept         # vlan101 to vlan100
    
    	}
    
    
    	chain output {
    		type filter hook output priority 0;
    	}
    
    }
    
    
    table ip nat {
        chain prerouting {
            type nat hook prerouting priority 0; policy accept;
        }
    
        chain postrouting {
            type nat hook postrouting priority 100; policy accept;
            ip saddr 10.100.1.0/24 oif "ens192" snat 10.255.255.251
            ip saddr 10.101.1.0/24 oif "ens192" snat 10.255.255.251
        }
    }
    
    
    Předem děkuji.
    Petr
    18.11.2022 13:26 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Tak jsem si myslel, že tyto dva řádky ve forwardu to vyřešili, ale radost mě přešla ve chvíli, kdy jsem v konfiguraci IP 10.101.1.11 zaměnil za 10.101.1.15 a zavolal "systemctl restart nftables" - vesele jsem pingal dál. Pokud ale rebootuju celý server, tak to zafunguje - nechápu proč ?? Co mám špatně ? Jak kdyby si to někde na pozadí udržovalo spojení, který by ale podle nově zavedené konfigurace fungovat již neměla.
                    iifname "vlan101" ip saddr 10.101.1.11 oifname "vlan100" accept
                    iifname "vlan100" ip daddr 10.101.1.11 oifname "vlan101" accept
    
    Díky,
    Petr
    18.11.2022 13:35 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    ICMP normalne konci v conntracku a chyta ho established pravidlo.
    18.11.2022 13:38 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Aha, ...takže jak nejlépe (viz. konfigurace výše) vyřešit ?
    18.11.2022 13:40 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Spustenim sudo conntrack -D -p icmp by ping po restartu nftables prestal fungovat.
    18.11.2022 13:45 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Takže, jinými slovy, testování prostupnosti sítě přes ping není šťastným řešením jak prostupy testovat ?
    18.11.2022 13:50 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Unika mi, co presne nechapes.
    Mas nejaka pravidla ve firewallu, ktera ti pripadne umozni otevrit spojeni. Ta spojeni skonci v conntracku, pokud je povoleny - viz sudo cat /proc/net/nf_conntrack nebo s nainstalovanou binarkou sudo conntrack -L.
    Nahrani nove sady pravidel do firewallu na uz existujici konexe nema vliv. A kdyz se v nem vyskytuje prvidlo s extablished, tak odpovidajici pakety proste matchne.
    Pokud bys ten ping zastavil a spustil novy, uz se odpovedi nedockas.
    18.11.2022 14:00 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Dosud jsem firewally nepolíbený, takže začínám od nuly a je toho hodně co načíst a hlavně pochopit. Doslova a do písmene se problematice firewallů věnuji své první 2 dny v životě, tak mě prosím omluvte za absolutní neznalost. Snažím se... Bohužel, pokud nahraju do firewallu nová pravidla a ping zastavím a následně jej znovu spustím, tak bez problému pingám. Pokud ale počkám třeba minutu nebo dvě a teprve poté ping opět spustím, tak pak už to nepingnu.

    Takže, chápu to správně, že pro účely ladění a hraní si s firewallem, nestačí jen "restartovat nftables" ale také je potřeba vyčistit existující navázaná spojení z conntracku ? Dá se to nějak ošetřit přímo v /etc/nftables.conf ? Dost by mě to usnadnilo prvotní bolesti při prvostním seznamováním.

    Děkuji,
    Petr
    18.11.2022 14:09 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Hadam, ze pro ICMP je conntrack trosku hloupejsi a nekontroluje id, takze muze matchnout tu starou konexi. Zkuste ji rucne a smazat a bude hned jasno.
    To automaticke mazani nevidim jako pruchozi. Uz navazana konexe nema jak zjistit, ze v minule verzi sice prosla, ale v soucasne by uz nemela. A pri restartu firewallu rozhodne nechcete ustrelit vsechny.
    Pro zjisteni, jak pakety bublaji skrz pravidla se da jednoduse pouzit nftrace.
    18.11.2022 15:32 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    nftrace....šikovná utilitka, díky :-)
    20.11.2022 13:16 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Tak jsem právě zjistil, že přístup z WANu na SSH funguje - tj. z IP adresy 10.255.255.32 se na SSH přihlásím. Dále ale v inputu povoluju přístup na SSH pouze pro IP adresy 10.100.1.11 a 10.101.1.11.
    Nerozumím tomu, co mám špatně, že se z vnitřní sítě na SSH serveru (ssh root@10.100.1.1 nebo ssh root@10.101.1.1) připojím z kterýchkoli ostatních vnitřních adres než jsou 10.100.1.11 nebo 10.101.1.11.

    Dále jsem si na serveru rozchodil DHCP server, který přiděluji IP adresy ve vlan100 a vlan101.
    Jak je možné, že DHCP server přidělí stanicím bez problému IP adresu, když jsem DHCP službu nikde v konfiguraci nftables.conf nepovolil ?

    Aktuální nftables.conf viz. níže.
    cat /etc/nftables.conf
    #!/usr/sbin/nft -f
    
    flush ruleset
    
    table inet filter {
            chain input {
            type filter hook input priority 0; policy drop;
    
          # accept any localhost traffic
          iif lo accept
    
          # accept trafic originated from us
          # ct state established,related accept
    
          # drop invalid packets
          ct state invalid counter drop
    
          # accept http, https from anywhere
          tcp dport { 80,443 } accept
    
          # accept OpenVPN clients from anywhere
          udp dport 1194 accept comment "OpenVPN in"
    
          # accept WireGuard clients from anywhere
          udp dport 5180 accept comment "WireGuard in"
    
          # accept SSH only from this IPs
          tcp dport ssh ip saddr 10.255.255.32 accept comment "SSH in"
          tcp dport ssh ip saddr 10.100.1.11 accept comment "SSH in"
          tcp dport ssh ip saddr 10.101.1.11 accept comment "SSH in"
    
          # accept icmp from anywhere
          ip protocol icmp accept
    
          # accept icmpv6 from anywhere
          ip6 nexthdr icmpv6 accept
    
          #  meta nfproto ipv6 from anywhere
          icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 1 accept
          icmpv6 type { nd-neighbor-advert, nd-neighbor-solicit, nd-router-advert} ip6 hoplimit 255 counter accept
    
          # count and reject everithing else
          counter reject with icmpx type admin-prohibited
    
    
          }
    
    
    	chain forward {
    		type filter hook forward priority 0; policy drop;
    
                    # povolím přístup na internet z vlan100
                    iifname "vlan100" oifname "ens192" accept                                       # vlan100  to Internet
                    iifname "ens192" oifname "vlan100" ct state related,established accept          # Internet to vlan100
    
                    # povolím přístup na internet z vlan101
                    iifname "vlan101" oifname "ens192" accept                                       # vlan101 to Internet
                    iifname "ens192" oifname "vlan101" ct state related,established accept          # Internet to vlan101
    
                    # povolím přístup z vlan100 do vlan101
                    # pokud se komunikace navazuje z vlan100
                    iifname "vlan100" oifname "vlan101" accept                                      # vlan100 to vlan101
                    iifname "vlan101" oifname "vlan100" ct state related,established accept         # vlan101 to vlan100
    
                    iifname "vlan101" ip saddr 10.101.1.12 oifname "vlan100" accept
                    iifname "vlan100" ip daddr 10.101.1.12 oifname "vlan101" accept
    
     	}
    
    
    	chain output {
    		type filter hook output priority 0;
    	}
    
    }
    
    
    table ip nat {
        chain prerouting {
            type nat hook prerouting priority 0; policy accept;
        }
    
        chain postrouting {
            type nat hook postrouting priority 100; policy accept;
            ip saddr 10.100.1.0/24 oif "ens192" snat 10.255.255.251
            ip saddr 10.101.1.0/24 oif "ens192" snat 10.255.255.251
        }
    }
    
    Díky, Petr
    20.11.2022 15:51 Petr
    Rozbalit Rozbalit vše Re: nftables - příklad a základní nastavení
    Tak vyřešeno.
    Ve výše uvedené aktuální konfiguraci chybu nemám. Jen jsem měl na straně testovacího PC nastavenou jinou IP adresu, než jsem si myslel, že mám - tak proto mi to fungovalo a mě uvádělo v omyl.

    Ohledně DHCP...
    Věta "DHCP servers need to use raw sockets for IPv4 clients because the DHCP DISCOVER queries from the clients don't have source addresses (since they don't have one yet!) and thus those packets could not be processed as normal packets on a UDP socket" mluví za vše - proto požadavky na DHCP vůbec neprojdou filtrem a proto se do nftables nedostanou.

    Další vysvětlení si lze vzít např. tady: "When getting an IP address the dhcp daemon creates a raw socket to the network interface and handles the UDP protocol itself. Thus the UDP packets never go through iptables. The reason the dhcp daemon has to implement UDP is that the kernel can only handle UDP (in fact all of the TCP/IP suite) when the interface has an IP address. Previously dhcp daemons would first give an interface the IP address of 0.0.0.0 but that no longer works."

    Takže, zatím jsem asi vyřešil vše, co jsem do začátku potřeboval :-)

    Petr

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.