abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 1
    dnes 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    dnes 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 4
    včera 23:11 | Bezpečnostní upozornění

    Intel vydal 41 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20240514 mikrokódů pro své procesory řešící INTEL-SA-01051, INTEL-SA-01052 a INTEL-SA-01036.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | IT novinky

    Společnost Raspberry Pi patřící nadaci Raspberry Pi chystá IPO a vstup na Londýnskou burzu.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | IT novinky

    Google na své vývojářské konferenci Google I/O 2024 představil řadu novinek. Keynote byl věnován umělé inteligenci (DeepMind, Gemini, Responsible AI).

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Bezpečnostní upozornění

    V Gitu bylo nalezeno 5 zranitelností. Opraveny jsou ve verzích 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 a 2.39.4. Útočník může připravit repozitář tak, že při jeho klonování (git clone) může dojít ke spuštění libovolného kódu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | IT novinky

    Virtualizační softwary VMware Workstation Pro a VMware Fusion Pro jsou nově pro osobní použití zdarma. Softwary VMware Workstation Player a VMware Fusion Player končí.

    Ladislav Hagara | Komentářů: 2
    včera 02:11 | Nová verze

    Linuxová distribuce Endless OS (Wikipedie) byla vydána ve verzi 6.0.0. Přehled novinek i s náhledy v příspěvku na blogu, poznámkách k vydání a také na YouTube.

    Ladislav Hagara | Komentářů: 2
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (74%)
     (6%)
     (10%)
     (10%)
    Celkem 290 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Dotaz: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)

    16.3.2022 09:17 TajnejAgent
    IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Přečteno: 509×
    Čus všem, potřeboval bych poradit od znalců firewallů.

    Mám IPv4 síť rozdělenou do několika subnetů (každý subnet odpovídá geografické lokalitě) a každý tento subnet se dál dělí podle VLAN. To znamená, že dělení sítě vypadá takhle nějak:
    • 10.1.1.0/24 jsou pracovní stanice v Aši
    • 10.1.2.0/24 jsou servery v Aši
    • 10.1.3.0/24 jsou specifická zařízení v Aši
    • 10.2.1.0/24 jsou pracovní stanice v Broumově
    • 10.2.2.0/24 jsou servery v Broumově
    • 10.2.3.0/24 jsou specifická zařízení v Broumově
    • atd.
    Komunikace mezi subnety teče přes firewally, na kterých bych rád měl pravidlo àla "všechny pracovní stanice bez ohledu na lokalitu", tedy match na každou IP adresu ve tvaru 10.*.1.*. V iptables jsem to zkusil zapsat přes netmask takhle:

    iptables -A --source 10.0.1.0/255.0.255.0 -j NECO

    ale to pochopitelně nefunguje, protože netmask musí být souvislá řada bitů.

    Existuje v iptables nebo v nftables způsob (např. nějaký modul), který by uměl adresy vyhodnocovat podle konkrétních bitů?

    Odpovědi

    16.3.2022 10:59 X
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Bud a] si muzes treba vyrobit set:
    define WORKSTATION = { 10.1.1.0/24, 10.2.1.0/24, 10.3.1.0/24... }
    b] nebo si to cele naskriptovat.
    16.3.2022 11:51 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Skriptování jsem už zavrhl v minulosti - jednak vnáší nestandardní prvek do procesu správy, takže dochází k lidským chybám, jednak neřeší přehlednost a čitelnost nasazených pravidel.

    Za tip na použití setů děkuju, to už se trochu blíží tomu, co potřebuju (tzn. mít jedno pravidlo na více subnetů), akorát pořád je potřeba udržovat definici subnetu jako seznam, kterej je od určitého počtu subnetů dost nepřehlednej. Tady mi už ale dává smysl skriptem generovat aspoň šikovně pojmenované sety a na ty se pak odkazovat v samotných pravidlech. To už se dá zvládnout i z hlediska lidského faktoru :-)
    16.3.2022 11:27 xxl | skóre: 25
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    A nemělo by tam být také napsáno, do jakého chainu se to má přidat?
    iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j NECO
    Protože jinak se mi zdá, že to funguje.
    16.3.2022 11:35 X
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Nebude se ta posledni 255 ignorovat?
    16.3.2022 11:47 xxl | skóre: 25
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Zkusil jsem to a zdá se mi, že ne. Že to normálně běhá.

    Ale jak to zapsat pro nftables, to tedy nevím.
    16.3.2022 12:00 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Jasně, chain mi chyběl - původní dotaz jsem psal z ruky na mobilu cestou do kanclu.

    Každopádně jsem z toho trochu jelen. Že by to mělo fungovat, jsem mezitím našel i na serverfault.com (to je tak, když se člověk na něco zeptá, porovnají se mu myšlenky a najednou se mu rozsvítí, co dát do Googlu), tak jsem to zkusil u sebe, ne zcela úspěšně:
    # iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j ACCEPT
    # iptables -L -v -n
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 ACCEPT     all  --  *      *       10.0.0.0/8           0.0.0.0/0           
    (...)
    
    Jinými slovy to dopadlo tak, jak píše X výše, tzn. že druhou 255 to ignorovalo. A aby to bylo ještě lepší, nedaří se mi zreplikovat to chování, kdy jsem zadal pravidlo s "děravou" netmask a iptables mě poslaly do háje, že to neuměj.
    16.3.2022 12:22 xxl | skóre: 25
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    iptables -A

    přidá pravidlo na konec řetězce, takže ve výpisu, tak jak ho máš, nebude...
    16.3.2022 12:25 xxl | skóre: 25
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    A navíc ti to první pravidlo zachytí všechny pakety pro "zájmové" sítě, takže na tom konci chainu nezachytíš už nic.
    16.3.2022 12:30 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Nn, výstup, kterej jsem postnul výše, je z čisté virtuálky, tzn. to jedno pravidlo, co tam je vidět, je opravdu výsledkem toho iptables -A. Za tři tečky jsem schoval jen FORWARD a OUTPUT, žádná další INPUT pravidla. Pro přehlednost ještě jednou bez čištění:
    [2022-03-16 11:35:58] root@srv1.lab3a.local:~# iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j ACCEPT
    [2022-03-16 11:36:16] root@srv1.lab3a.local:~# iptables -L -v -n
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 ACCEPT     all  --  *      *       10.0.0.0/8           0.0.0.0/0           
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    16.3.2022 12:50 X
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    To je zajimave ja to mam jinak:
    iptables -A INPUT --source 10.0.1.0/255.0.255.0 -j DROP
    
    iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    DROP       all  --  10.0.1.0/255.0.255.0  0.0.0.0/0  
    
    16.3.2022 13:04 xxl | skóre: 25
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    root@localhost: #iptables -F
    root@localhost: #iptables -A OUTPUT --dst 192.0.192.0/255.0.255.0 -j ACCEPT
    root@localhost: #iptables -A OUTPUT --dst 192.0.203.0/255.0.255.0 -j ACCEPT
    root@localhost: #iptables -A OUTPUT --dst 192.0.0.1/255.0.0.255 -j ACCEPT
    root@localhost: #iptables -A OUTPUT --dst 192.0.1.0/255.0.255.0 -j ACCEPT
    root@localhost: #ping 192.168.192.1 -c 2 -q
    PING 192.168.192.1 (192.168.192.1) 56(84) bytes of data.
    
    --- 192.168.192.1 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 40ms
    rtt min/avg/max/mdev = 0.816/0.866/0.917/0.058 ms
    root@localhost: #ping 192.168.203.1 -c 3 -q
    PING 192.168.203.1 (192.168.203.1) 56(84) bytes of data.
    
    --- 192.168.203.1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 97ms
    rtt min/avg/max/mdev = 0.771/1.025/1.433/0.292 ms
    root@localhost: #ping 192.168.1.42 -c 5 -q
    PING 192.168.1.42 (192.168.1.42) 56(84) bytes of data.
    
    --- 192.168.1.42 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 131ms
    rtt min/avg/max/mdev = 0.439/0.655/1.332/0.341 ms
    root@localhost: #ping 192.168.208.1 -c 7 -q
    PING 192.168.208.1 (192.168.208.1) 56(84) bytes of data.
    
    --- 192.168.208.1 ping statistics ---
    7 packets transmitted, 7 received, 0% packet loss, time 108ms
    rtt min/avg/max/mdev = 0.819/1.266/1.920/0.418 ms
    root@localhost: #ping 192.168.207.101 -c 11 -q
    PING 192.168.207.101 (192.168.207.101) 56(84) bytes of data.
    
    --- 192.168.207.101 ping statistics ---
    11 packets transmitted, 0 received, +11 errors, 100% packet loss, time 345ms
    pipe 4
    root@localhost: #iptables -nvL
    Chain INPUT (policy ACCEPT 33 packets, 3000 bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    Chain OUTPUT (policy ACCEPT 11 packets, 924 bytes)
     pkts bytes target     prot opt in     out     source               destination
        2   168 ACCEPT     all  --  *      *       0.0.0.0/0            192.0.192.0/255.0.255.0
        3   252 ACCEPT     all  --  *      *       0.0.0.0/0            192.0.203.0/255.0.255.0
        7   588 ACCEPT     all  --  *      *       0.0.0.0/0            192.0.0.1/255.0.0.255
        5   420 ACCEPT     all  --  *      *       0.0.0.0/0            192.0.1.0/255.0.255.0
    root@localhost: #
    
    
    16.3.2022 13:12 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Jako máš verzi iptables pls?
    16.3.2022 13:15 xxl | skóre: 25
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    iptables v1.8.2 (legacy)
    16.3.2022 13:34 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Tak tohle už vypadá líp i u mně:
    [2022-03-16 13:21:53] root@srv1.lab3a.local:~# iptables-legacy -A INPUT --source 10.0.1.0/255.0.255.0 -j ACCEPT
    [2022-03-16 13:22:08] root@srv1.lab3a.local:~# iptables-legacy -L -v -n
    Chain INPUT (policy ACCEPT 70 packets, 5664 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 ACCEPT     all  --  *      *       10.0.1.0/255.0.255.0  0.0.0.0/0           
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain OUTPUT (policy ACCEPT 57 packets, 5528 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    [2022-03-16 13:22:15] root@srv1.lab3a.local:~# iptables-legacy --version
    iptables v1.8.7 (legacy)
    
    Tím mám v podstatě vyřešeno, celý můj problém byl v použití iptables-nft. Sice nftables nejdou úplně ignorovat a musím hledat řešení i pro ně, ale to už mě teď nepálí tolik.

    Díky moc!
    16.3.2022 12:53 j
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Mrkni sem https://man7.org/linux/man-pages/man8/iptables-extensions.8.html

    Mas tam seznam vsemoznych extenzi, trebas najdes neco co by vyhovelo ... jinak tvuj problem === spatny navrh adresovani.

    Pokud si pamatuju spravne, melo by na to jit pouzit u32, ale vykon bude meh ...

    ---

    Dete s tim guuglem dopice!
    16.3.2022 13:07 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Zkoušel jsem to projít, nadějný mi přišel IPMARK target, ale tam se zjevně mám ještě hodně co učit.

    Pokud jde o špatný návrh adresování, jak by to teda mělo vypadat správně, aby se zachovalo členění na dvou osách, které obě mají význam? Ne, že bych byl úplně kovanej, ale napadá mě leda prohodit pořadí segmentů, tzn. 10.1.*.* by byly všechny pracovní stanice, 10.2.*.* servery apod. a 10.*.1.* by byl Aš, 10.*.2.* Broumov atd. V tu chvíli se "všechny pracovní stanice" napíšou jako 10.1.0.0/16, což je super, ale původní problém najednou řeším u "všechno v Aši" apod., navíc mi tak vedle některých FW pravidel bobtnají i routovací tabulky. Je nějakej lepší způsob, jak adresování řešit?
    17.3.2022 08:26 j
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Moznosti je vic, jednak je treba se zamyslet, co je a co neni nutny*, druhak si psal, ze tam mas vlany, takze se uplne stejne jako s rozsahem Ipcek da pracovat s rozsahem vlanu. Dalsi moznost kterou muzes vyuzit je mangle + mark. To bude IMO porad levnejsi, nez vymejslet nejaky binarni maskovani.

    Dalsi moznosti je to ze stroj muze mit vic IPcek z ruznych rozsahu. Jde o to, ze na routeru bys mel proste minimalizovat jak pocet, tak slozitost pravidel, a jakmile zacnes pouzivat nektery mene bezny konstrukce, tak jde vetsinou pekne dorite vykon. Pokud mas provoz v mbitech, tak se to prevazne nijak neprojevi, ale kdyz se posunes do stovek mbit nebo gbit, tak to zacne byt teprve sranda.

    *pro pripomenuti, v historii by se tu zcela jiste nasel blbec, kterej vysvetloval, jak mu 16 bitu v ipv6 nestaci na adresovani site, protoze ma routeru 30, a kazdej bit chce pouzit jako odbocku 0/1 ...

    ---

    Dete s tim guuglem dopice!
    17.3.2022 10:59 X
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    S dobrou SDN automatizaci by to slo "bez prace" filtrovat uz na pobockach a odlehcit tak centralnimu firewallu.
    17.3.2022 13:16 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Tak to si asi docela rozumime, akorat jsem presvedcenej, ze bitwise maskovani je prave ten nejlevnejsi zpusob reseni. Z hlediska vypocetniho vykonu je AND operace nad dvema registry jen jedna procesorova instrukce, neumim si predstavit levnejsi pristup, IMHO se přesně takhle vyhodnocujou i klasický souvisly netmasky, nejen ve firewallu, ale i pri routovani. Celkove se to v uspornym programovani pouziva dost casto. Tzn. V principu slo jen o to, aby se vyhodnoceni netmasky delalo bez omezujiciho predpokladu, kterej je potreba pro routovani, ale uz ne nutne pro filtrovani. Taky se nakonec ukazalo, ze iptables “nesouvisle” masky umi a nftables ma dokonce jeste flexibilnejsi operatory - viz muj souhrn na konci tehle diskuse. Mangle + MARK bych si tipnul, ze bude srovnatelne vypocetne narocny, ale bitova maska mne osobne pripada jednodussi na spravu a prehlednejsi, takze si mangle + mark necham na komplexnejsi situace. Ve vysledku jsem dosahl presne toho, co pises: minimum pravidel v routovaci tabulce, zaroven minimum pravidel ve firewallu (dokonce min, nez s pouzitim mark) a navic jeste s mnimem vyhodnocovanych kriterii (tzn. Staci mi pracovat s adresou, nemusim jako berlicku pouivat VLAN).

    Jinak pokud jde o pana s 30 routerama - vidim, ze jsem za dobu, co jsem t moc nebyl, prisel o spoustu srandy :)
    16.3.2022 13:10 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    U32 taky velmi zajímavý. Asi to není úplně to, jak bych si to řešení představoval, ale rozhodně jsem si teď rozšířil obzory, díky za to.
    16.3.2022 12:56 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Hmm. Pak navrhuju, abysme si přeměřili verze!
    [2022-03-16 12:53:27] root@srv1.lab3a.local:~# iptables --version
    iptables v1.8.7 (nf_tables)
    
    Už od nálezu toho dotazu na serverfault.com mám podezření, že iptables by to možná uměly, ale buď to neumí nftables (což se mi úplně nezdá), nebo se to ztrácí někde v překladu v iptables-nft.
    16.3.2022 12:57 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Tohle je pochopitelně odpověď na https://www.abclinuxu.cz/poradna/linux/show/477806#10
    16.3.2022 14:33 TajnejAgent
    Rozbalit Rozbalit vše Re: IPtables / nftables a "nesouvislá" subnet mask (vyhodnocení adres podle bitů)
    Abych komunitě vrátil vaši snahu, přidávám ještě shrnutí úspěšného řešení doplněné o řešení v nftables.
    1. Zápis netmask "s dírami" (tzn. např. --source 10.1.2.0/255.0.255.0) je možný a funguje v původních iptables (tzn. v dnešních systémech je řeč o iptables-legacy, nikoli o iptables-nft).
    2. V nftables existuje operátor & (bitwise AND) a jestli jsem to správně pochopil, dá se použít na jakékoli pole, ne jen na adresu. Pravidlo se pak přidá například takhle: nft insert rule ip filter INPUT 'ip saddr & 255.0.255.0 == 10.0.1.0 drop' (matchne všechny adresy 10.*.1.*)
    3. iptables-nft (tzn. mezivrstva pro milovníky starých pořádků, která se tváří jako iptables, ale na pozadí pracuje s nftables) si s touhle srandou neporadí: vytvoříme-li pravidlo s "děravou" maskou v iptables-nft, z masky se použije jen část před první dírou (viz komentáře výše), vytvoříme-li pravidlo v nft, iptables-nft už takovou tabulku neumí ani zobrazit: iptables v1.8.7 (nf_tables): table `filter' is incompatible, use 'nft' tool.
    Díky všem za pomoc při rozklíčování, jsem rád, že abíčko furt funguje, jako za starejch časů :)

    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.