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í
×
    17.4. 17:11 | Zajímavý článek

    Stanislav Fort, vedoucí vědecký pracovník z Vlčkovy 'kyberbezpečnostní' firmy AISLE, zkoumal dopady Anthropic Mythos (nový AI model od Anthropicu zaměřený na hledání chyb, který před nedávnem vyplašil celý svět) a předvedl, že schopnosti umělé inteligence nejsou lineárně závislé na velikosti nebo ceně modelu a dokázal, že i některé otevřené modely zvládly v řadě testů odhalit ve zdrojových kódech stejné chyby jako Mythos (například FreeBSD CVE-2026-4747) a to s výrazně nižšími provozními náklady.

    MakeIranBombedAgain❗ | Komentářů: 6
    17.4. 12:44 | IT novinky

    Federální návrh zákona H.R.8250 'Parents Decide Act', 13. dubna předložený demokratem Joshem Gottheimerem a podpořený republikánkou Elise Stefanik coby spolupředkladatelkou (cosponsor), by v případě svého schválení nařizoval všem výrobcům operačních systémů při nastavování zařízení ověřovat věk uživatelů a při používání poskytovat tento věkový údaj aplikacím třetích stran. Hlavní rozdíl oproti kalifornskému zákonu AB 1043 a kolorádskému SB26-051 je ten, že federální návrh by platil rovnou pro celé USA.

    MakeIranBombedAgain❗ | Komentářů: 12
    17.4. 12:33 | Nová verze

    Qwen (čínská firma Alibaba Cloud) představila novou verzi svého modelu, Qwen3.6‑35B‑A3B. Jedná se o multimodální MoE model s 35 miliardami parametrů (3B aktivních), nativní kontextovou délkou až 262 144 tokenů, 'silným multimodálním vnímáním a schopností uvažování' a 'výjimečnou schopností agentického kódování, která se může měřit s mnohem rozsáhlejšími modely'. Model a dokumentace jsou volně dostupné na Hugging Face, případně na čínském Modelscope. Návod na spuštění je už i na Unsloth.

    MakeIranBombedAgain❗ | Komentářů: 1
    17.4. 11:00 | Nová verze

    Sniffnet, tj. multiplatformní (Windows, macOS a Linux) open source grafická aplikace pro sledování internetového provozu, byl vydán ve verzi 1.5. V přehledu novinek je vypíchnuta identifikace aplikací komunikujících po síti.

    Ladislav Hagara | Komentářů: 4
    17.4. 02:22 | 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 15.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 1
    17.4. 01:11 | Pozvánky

    Současně se SUSECON 2026 proběhne příští čtvrtek v Praze také komunitní Open Developer Summit (ODS) zaměřený na open source a openSUSE. Akce se koná ve čtvrtek 23. 4. (poslední den SUSECONu) v Hilton Prague (místnost Berlin 3) a je zcela zdarma, bez nutnosti registrace na SUSECON. Na programu jsou témata jako automatizace (AutoYaST), DevOps, AI v terminálu, bezpečnost, RISC-V nebo image-based systémy. Všichni jste srdečně zváni.

    lkocman | Komentářů: 1
    16.4. 15:44 | Humor

    Český úřad zeměměřický a katastrální zavedl u anonymního nahlížení do katastru nemovitostí novou CAPTCHA ve formě mapové puzzle: nepřihlášení uživatelé musí nově správně otočit devět dlaždic v 3x3 poli tak, aby dohromady daly souvislý obrázek výseče reálné mapy, přičemž na to mají pouze jeden časově omezený pokus. Test je podle uživatelů i odborníků příliš obtížný a na sociálních sítích pochopitelně schytává zaslouženou kritiku a

    … více »
    MakeIranBombedAgain❗ | Komentářů: 36
    16.4. 15:33 | Nová verze

    Byla vydána verze 1.95.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    16.4. 15:22 | Zajímavý software

    Mozilla prostřednictvím své dceřiné společnosti MZLA Technologies Corporation představila open-source AI klienta Thunderbolt. Primárně je určený pro firemní nasazení.

    Ladislav Hagara | Komentářů: 0
    16.4. 14:00 | IT novinky

    Firma Cal.com oznámila, že přesouvá svůj produkční kód z otevřeného do uzavřeného repozitáře z důvodu bezpečnostního rizika umělé inteligence, která prý dokáže vyhledávat a zneužívat zranitelnosti rychleji, než by je jejich vývojářský tým stíhal opravovat. Zároveň zveřejnila samostatnou, open-source verzi Cal.diy pod licencí MIT, ovšem bez řady původních funkcí. O tom, zda je toto opatření rozumné, existují pochyby. … více »

    MakeIranBombedAgain❗ | Komentářů: 6
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1356 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Linuxové DMZ - VII

    19. 3. 2003 | Martin Pavlíček | Bezpečnost | 16109×

    Paketové filtry s pomocí IPTABLES. Nastavování pravidel. Spouštění firewallu.

    V minulém díle jsme si pověděli něco obecně o firewallech. Dnes se podrobněji zaměříme na zřejmě nejčastěji využívanou část a to na paketové filtry.

    Co je paketový filtr?

    Paketový filtr je software, který zkoumá hlavičky paketů a podle nastavených pravidel rozhoduje, jestli je pustí dál nebo zahodí (nebo třeba rozhodne, zda bude paket routován, zda informace o něm bude zapsána do systémového logu, atd.). Filtrování probíhá na úrovni síťové vrstvy.

    Firewall v Linuxu 2.4 se jmenuje NETFILTER (mimo jiné je to první "oficiální" stavový firewall v Linuxu). Je přímo součástí jádra (může být i jako modul). Pokud používáte originální jádro z vaší distribuce, tak zřejmě nebude třeba cokoliv měnit. V případě, že si jádro kompilujete sami, tak je potřeba zahrnout minimálně tohle:

    • CONFIG_PACKET
    • CONFIG_NETFILTER
    • CONFIG_IP_NF_IPTABLES

    Konfigurační utilita pro NETFILTER se jmenuje IPTABLES a měla by být součástí všech běžných distribucí, pokud ne tak si ji můžete stáhnout např. zde.

    Trocha historie

    První generace paketového filtru se v Linuxu objevila v roce 1994, když Alan Cox portoval ipfw z BSD do jádra řady 1.1. Později se v řadě 2.0 objevil nástroj ipfwadmin. V polovině roku 1998 se v jádrech 2.2 po poměrně rozsáhlých změnách objevil program ipchains. No a nakonec se v nejnovějších jádrech řady 2.4 začal používat netfilter/iptables.

    Základní princip IPTABLES

    Nejdříve si řekněme podle čeho se mohou paketové filtry rozhodovat o tom, co vlastně filtrovat (netýká se jen iptables):

    • typ protokolu: TCP, UDP, ICMP atd.
    • číslo portu u protokolů TCP, UDP
    • typ datagramu, např. SYN/ACK
    • data
    • zdrojová adresa datagramu
    • cílová adresa datagramu

    Jak fungují IPTABLES

    Obecný tvar příkazu iptables:

    iptables příkaz specifikace_pravidel rozšíření

    Základní pojmy:

    chain
    [čejn], česky řetězec, většinou se ale používá anglický termín. Je to soubor pravidel, které jsou na paket aplikovány ve chvíli, kdy paket daným chainem prochází.

    Základní ("vestavěné") chainy jsou INPUT, OUTPUT a FORWARD. Můžeme si samozřejmě vytvářet a pojmenovávat vlastní. Vestavěné, narozdíl od těch vlastních, nemůžeme smazat (můžeme vymazat pouze jejich obsah).

    Další "vestavěné", které se používají při routování s NAT jsou třeba PREROUTING a POSTROUTING.

    pravidlo
    jsou sdruženy v chainech podle typu paketů, o kterých rozhodují, např. pravidla rozhodující o příchozích paketech jsou přidávány do chainu INPUT atd.
    policy
    pravidlo, které se použije v případě, že na paket nelze použít žádné jiné.

    Nyní si pojďme vysvětlit, jak vlastně filtrování paketů probíhá. Pro ilustraci použijeme obrázek:

    Co se tedy děje?

    1. Ve chvíli, kdy do našeho počítače dorazí paket (např. skrze ethernetovou síť či přes modem), jádro se nejdříve podívá na cílové určení paketu (což je routing).
    2. Jestliže je cílovým místem náš stroj, pak paket putuje přes chain INPUT, pokud projde je předán do příslušného procesu (aplikace), který běží na našem počítači.
    3. Pokud není paket určen pro náš stroj, pak záleží na tom, zda je v jádře povoleno forwardování (a to defaultně není) paketů. Pokud není nebo jádro neví, kam ho forwardovat, pak je paket zahozen a do chainu se vůbec nedostane. V opačném případě jím paket prochází a jestliže projde, je odeslán dál.
    4. No a poslední varianta. Program běžící na našem stroji vyšle paket, který může být filtrován v chainu OUTPUT (schválně píšu "může", protože teoreticky, zvláště v menších a jednodušších sítích není filtrování v chainu OUTPUT potřeba).

    Jako pozn. k bodu 3 a pro zopakování si připomeňme, že forward v kernelu "zapnete" pomocí příkazu:

    # echo "1" > /proc/sys/net/ipv4/ip_forward

    Zde bych zmínil jeden z největších rozdílů oproti ipchains. Každý paket je porovnáván (filtrován) jen s jedním chainem, takže pokud paket patří do chainu FORWARD, je porovnán pouze s jeho pravidly. V ipchains by v tomto případě paket putoval skrz všechny chainy, což by celý skript dělalo delším, složitějším a méně přehledným.

    Základní operace, které můžeme provádět s chainy:

    1. vytvořit nový chain -N
    2. smazat prázdný chain -X
    3. změnit policy pro vestavěný chain -P
    4. zobrazit pravidla v chainu -L
    5. vymazat pravidla z chainu -F
    6. vynulovat počítadla paketů a bajtů ve všech pravidlech v chainu -Z

    Základní pravidla pro manipulaci v rámci chainu

    -A (--append) přidá pravidlo na konec chainu.

    # iptables -A INPUT ...

    -D (--delete) smaže pravidlo z chainu, buď můžete uvést pravidlo, které chcete vymazat, nebo číslo pozice pravidla v chainu.

    # iptables -D INPUT -dport 80 -j DROP
    # iptables -D INPUT 3

    -P (--policy) tento příkaz nastavuje defaultní akci, která se s paketem provede v případě, že nebude vyhovovat žádnému pravidlu.

    # iptables -P INPUT DROP

    -N (--new-chain) vytvoří nový chain, který si nějak pojmenujete.

    # iptables -N novy_chain

    -F (--flush) pokud specifikujeme jméno chainu, pak vymaže všechny pravidla, která jsou uvnitř, pokud ho neuvedeme, pak smaže všechny pravidla ve všech chainech.

    # iptables -F FORWARD # iptables -F

    -L (--list) vypíše všechna pravidla v daném chainu.

    # iptables -L INPUT

    Základní parametry

    Někdy je vhodné specifikovat opak pravidla, tedy popisovat paket, který pokud pravidlu nevyhoví, tak na něj bude pravidlo aplikováno. Proto některá pravidla podporují negaci svého argumentu pomocí znaku ! (vykřičník), příklady viz. dále.

    -p (--protocol) pomocí tohoto pravidla můžete specifikovat protokol, např. TCP, UDP, ICMP nebo ALL (pro všechny protokoly), hodnota ALL je defaultní.

    # iptables -A INPUT -p TCP ...
    # iptables -A INPUT -p ! ICMP ...

    -s (--source) definice zdrojové adresy - může být ve formátu jmenném i číselném, můžeme použít negaci, za IP adresou můžeme specifikovat masku podsítě.

    # iptables -A INPUT -s 192.168.2.1 ...
    # iptables -A OUTPUT -s 192.168.1.1/24
    (nebo ... 192.168.1.1/255.255.255.0 ...)

    -d (--destination) opak parametru "-s", zde určujeme cílovou adresu paketu, opět můžeme použít negaci.

    # iptables -A OUTPUT -d ! 192.168.1.22 ...

    Co můžeme s paketem provést?

    -j (jump target) tento parametr slouží k nastavení "akce", kterou s paketem chceme provést, máme následující možnosti:

    ACCEPT
    paket je přijat
    DROP
    paket je zahozen
    REJECT
    paket je zahozen, ale počítač, ze kterého pocházel, je informován pomocí zprávy ICMP port unreacheable.
    LOG
    záhlaví paketu je zapsáno do systémového logu

    Aby to nebylo pořád jen nudná teorie, můžeme si vyzkoušet jednoduchý příklad:

    # iptables -A INPUT -s 127.0.0.1 -p ICMP -j DROP

    Co jsme provedli? Do vstupního chainu jsme přidali pravidlo, které způsobí, že všechny pakety se zdrojovou adresou 127.0.0.1 využívající protokol ICMP, budou zahozeny. Takže pokud nyní zkusíte příkaz:

    # ping 127.0.0.1

    tak vám nebude fungovat (resp. on fungovat bude, ale žádného výsledku se nedočkáte :-)), což se nám nelíbí, takže pravidlo zase, třeba takto, smažeme:

    # iptables -D INPUT 1

    Spouštění firewallu

    Pravidla můžete zapisovat přímo na příkazový řádek (a ona budou hned fungovat), ale po restartu se všechno ztratí. Je proto vhodné vše zapisovat do souboru, který pak nastavíte, aby byl spustitelný a necháte jej spouštět např. ze souboru /etc/rc.local.

    V některých distribucích můžete narazit na příkazy iptables-save a iptables-restrore, které vám mohou pomoci s nastavováním pravidel, kdo chce nechť si přečte jejich manuálové stránky. Mnohde jsou ještě zároveň nainstalovány starší ipchains, které můžete klidně odinstalovat.

    Pár tipů při tvorbě pravidel

    Firewall se většinou vytváří podle pravidla, že "co není výslovně dovoleno, je zakázáno". Lze jej samozřejmě vytvářet i opačně, tedy "co není zakázáno, je dovoleno", ale první varianta bývá většinou bezpečnější.

    Pokud se budeme držet prvního pravidla, pak "firewallový skript" bychom měli začít takto:

    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT DROP

    Je to důležité uvést, protože defaultně jsou policy nastaveny na ACCEPT.

    Filtrování ICMP paketů

    Tyto pakety jsou tak trošku zvláštní případ, nepřenáší data jako takové, ale používají se pro přenos diagnostických a chybových zpráv. V některých sítích jsou tyto pakety úplně blokovány (zahazovány), ale to myslím není úplně nejlepší nápad. Je dobré pouštět alespoň ty, které zajistí fungování utilit ping a traceroute, tzn.:

    ICMP 3 "destination unreachable"
    ICMP 0 "echo reply"
    ICMP 8 "echo request"
    ICMP 11 "time exceeded"

    Logování

    Tady se dá říci, že v běžném provozu může "méně být více". Logování všech zahozených paketů může způsobit znatelné zpomalení firewallu a docela rychle vám bude mizet místo na disku. Logování všeho je výhodné jen ze začátku než firewall odladíte, poté je můžete omezit např. takto:

    # iptables -A INPUT -m limit -limit 15/h -j LOG

    Ještě pro zpřehlednění (při procházení logu) můžeme přidat parametr --log-prefix s nějakým popiskem.

    Podrobnosti o analyzování logů (včetně popisu několika užitečných programů) se dozvíte v příštím díle.

    Tolik tedy z dnešního dílu. Vím, že na tak malé ploše není možno paketové filtry popsat do nějakých podrobností. Pokud vás ale zaujaly, můžete pokračovat ve studiu s pomocí odkazů pod článkem.

    Související články

    Linuxové DMZ - I (Úvod do problematiky)
    Linuxové DMZ - II (Zařízení v DMZ)
    Linuxové DMZ - III (Modelové topologie)
    Linuxové DMZ - IV (Protokoly rodiny TCP/IP)
    Linuxové DMZ - V (Routery a minidistribuce LRP)
    Linuxové DMZ - VI (Firewally)

    Odkazy a zdroje

    Iptables HOWTO (vyčerpávající popis)
    man iptables
    Packet Filtering in kernel 2.4
    Netfilter.org
           

    Hodnocení: 38 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    19.3.2003 10:46 polish
    Rozbalit Rozbalit vše odkaz na souvisejici clanky
    Ahoj, nejak vam nefacha ten odkaz na 6. dil tohoto serialu, misto toho to skace na 5. dil Mejte se fajn Polish
    19.3.2003 12:33 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše odkaz na souvisejici clanky
    diky. moje chyba. uz je to napraveno.
    19.3.2003 11:12 Als
    Rozbalit Rozbalit vše Stavy
    Chybi tu naprosto zakladni vec! A to informace, ze iptables je stavovy firewall.
    19.3.2003 11:42 Michal Vymazal | skóre: 21
    Rozbalit Rozbalit vše Stavy
    Chyba lavky. V clanku je jasne uvedeno, ze IPTABLES je konfiguracni utilita k modulu NETFILTER, kde NETFILTER je stavovy firewall.
    19.3.2003 12:12 Peter Black
    Rozbalit Rozbalit vše Schématické znázornění FW, IN, OUT
    Opravdu je to takhle? Přesněji viz. http://www.netfilter.org/documentation/HOWTO//netfilter-hacking-HOWTO-3.html
    19.3.2003 14:06 Martin Pavlíček | skóre: 19
    Rozbalit Rozbalit vše Schématické znázornění FW, IN, OUT
    Ja si myslim, ze je to spravne, jen tam nejsou zahrnuty chainy PREROUTING, POSTROUTING atd.
    19.3.2003 20:13 kolisko | skóre: 21 | blog: prace
    Rozbalit Rozbalit vše -t filter
    To tu zase chybi mne, ze popisujes tabulku filter a ze jsou jeste jine tabulky (nat, mangle). To by asi mel user vedet jeste pred vysvetlovanim syntaxe a prikladu, ne? Asi to budes vysvetlovat v jednom z dalsich dilu. kolisko
    21.3.2003 16:11 Vrana
    Rozbalit Rozbalit vše router/fw
    Můžete mi poradit nějakou vhodnou distribuci pro vystavbu routeru/FW s DHCP blokovaným na registrované MAC adresy, a možnosti dělení pásma (např. 128kB pro mne a 64 pro ostatní v síti)?
    24.3.2003 07:25 b0dYn
    Rozbalit Rozbalit vše router/fw
    Zkus slackware. Ted zrovna vysla verze 9.0

    Založit nové vláknoNahoru

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