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 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 4
    dnes 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    dnes 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 1
    dnes 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

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

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Nová verze

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Zajímavý software

    Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.

    Ladislav Hagara | Komentářů: 11
    včera 12:33 | Nová verze

    Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).

    Fluttershy, yay! | Komentářů: 1
    včera 12:00 | Nová verze

    Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Shorewall - snazší cesta k tvorbě firewallu

    10.6.2010 09:10 | Přečteno: 3308× | Počítače | Výběrový blog | poslední úprava: 11.6.2010 11:23

    S několika servery jsem převzal do správy i firewall nastavený přes shorewall. To si předělám na svůj vlastní systém, byla první věc, co mě napadla. Ale nepředělám. Nastudoval jsem si shorewall. Přece jen - nastavení je jednodušší (nižší pravděpodobnost chyby) a spousta věcí, o které jsem se musel starat sám, se shorewallem odpadá.

    Shorewall tvoří několik souborů s různými parametry a pravidly. Z těch se pak při startu systému (z init skriptů) nebo při změně (make) vygenerují a zavedou do kernelu pravidla iptables.

    Konfigurace

    K vytvoření jednoduchého firewallu pro malou firmu nebo domácí síť stačí několik málo souborů.

    params

    Soubor není zcela nezbytný, ale dovede usnadnit tvorbu složitějších pravidel. V tomto souboru můžeme definovat různé proměnné, které lze později použít v pravidlech, například:

    HTTP=10.10.1.100        # adresa vnitřního HTTP serveru
    OUTER=93.231.291.257    # adresa vnějšího (internetového) síťového rozhraní
    OUTER_DEV=eth0
    INNER_DEV=eth1
    

    masq

    Nastavení maškarády nebo SNAT na výstupním síťovém rozhraní. Jaký je rozdíl mezi MASQUERADE a SNAT? SNAT si pamatuje všechna spojení a při krátkodobém výpadku linky je schopné pokračovat v práci jakoby se nechumelilo. Adresa pro SNAT musí být zadaná v parametrech. SNAT použijte, pokud máte pevnou linku. MASQUERADE při výpadku linky zruší všechna spojení a je třeba vytvořit spojení znovu. Adresu si MASQUERADE zjišťuje pokaždé v kernelu (pomalejší). MASQUERADE použijte, jste-li připojení například přes modem protokolem PPP a internetová adresa je vám přidělovaná dynamicky.

    V souboru stačí obvykle jediný řádek. Pro mne je výhodné, jsou-li konkrétní hodnoty nahrazené symbolickými hodnotami (ty jsou nastavené v souboru params). Takto vypadá soubor pro SNAT:

    $OUTER_DEV  $INNER_DEV   $OUTER 
    

    A takto vypadá soubor pro MASQUERADE:

    $OUTER_DEV  $INNER_DEV 
    

    Vyberte si samozřejmě pouze jednu podobu podle vašich potřeb.

    interfaces

    Pro jednoduchý firewall se dvěma síťovými kartami stačí jednoduchý soubor interfaces (konkrétní hodnoty jsou opět nahrazené symbolickými hodnotami ze souboru params):

    net     $OUTER_DEV  detect
    loc     $INNER_DEV  detect  routeback
    

    Hodnoty net a loc jsou názvy zón - na vnějším ($OUTER_DEV) rozhraní je pověšená zóna net, na vnitřním rozhraní zóna loc. Klíčové slovo detect znamená, že broadcast adresa se najde automaticky. Pro vnitřní rozhraní může být důležitá hodnota routeback - povoluje se tímto routování z vnitřní sítě do vnitřní sítě. Může to být důležité, máte-li ve vnitřní síti služby, ke kterým přistupujete přes router (například HTTP server a podobně).

    policy

    Nastavení defaultní politiky. Na svých firewallech obvykle vždy nastavuji DROP či REJECT, ale pro jednoduché firewally to může být někdy dost těžký kanón - v takovém případě je vše zakázané a funguje pouze to, co se výslovně povolí v souboru rules. Ošetřit je třeba všechny směry:

    loc   net   REJECT         # Vše z vnitřní sítě do internetu se zakáže
    net   loc   DROP    info   # Vše z venku dovnitř se zahodí a zaloguje
    
    $FW   loc   ACCEPT         # Vše z firewallu do vnitřní sítě se povolí
    loc   $FW   REJECT         # Vše z vnitřní sítě na firewall se zakáže
    
    $FW   net   ACCEPT         # Vše z firewallu ven se povolí
    net   $FW   DROP           # Vše z internetu na firewall se zahodí
    
    all   all   DROP    info   # Vše ostatní se zahodí a zaloguje
    

    zones

    Zde jsou definované jednotlivé zóny (internet, vnitřní síť, firewall a případně demilitarizovaná zóna). Soubor je ve své základní podobě velmi jednoduchý:

    net ipv4
    loc ipv4
    fw  firewall
    

    rules

    Soubor s jednotlivými pravidly. Zde je to pravé místo, kde se můžeme vyřádit. Pravidla jsou rozdělená do různých sekcí, obvykle nás bude zajímat pouze sekce NEW (pravidla budeme psát za řádek SECTION NEW).

    V souboru lze používat makra. To je fajn myšlenka, ale pouze do chvíle, než začneme psát jednoduchá pravidla pro DNAT. Pak to kdosi nedomyslel (nebo mi něco uniklo) a generovaná pravidla pro iptables hraničí s nepoužitelností (ale jo, chápu, proč to tak asi je). Bez komentáře se proto použití maker na nevhodném místě (DNAT) vyhnu. Makrem je v souboru například zápis Ping/ACCEPT (nemusíme se starat, jak vyjádřit v jazyce shorewall ping).

    # Z vnější sítě na FW
    Ping/ACCEPT         net         $FW
    SSH/ACCEPT          net         $FW
    
    # Z vnitřní sítě na FW
    Ping/ACCEPT         loc         $FW
    SSH/ACCEPT          loc         $FW
    
    # Z vnitřní sítě ven
    # Hodně restriktivní firewall :-)
    SSH/ACCEPT          loc         net
    Ping/ACCEPT         loc         net
    Web/ACCEPT          loc         net
    Jabberd/ACCEPT      loc         net
    IMAP/ACCEPT         loc         net
    IMAPS/ACCEPT        loc         net
    POP3/ACCEPT         loc         net
    POP3S/ACCEPT        loc         net
    

    Pravidla pro provoz z vnější sítě dovnitř potřebují bližší vysvětlení. Provoz, který je iniciován zevnitř, je povolený automaticky. Kromě toho ale často vyvstává problém povolit různé služby (webový server) a zajistit, aby byla taková služba přístupná jak z internetu, tak z vnitřní sítě. Kromě toho musí být taková služba přístupná z obou sítí stejně. Nelze mít server http://bravenec.org/ přístupný z internetu normální URL adresou http://bravenec.org/ a z vnitřní sítě adresou http://10.10.1.100/ - u protokolu http by vám to obvykle apache sedící ve svém digitálním vigvamu neodpustil. Ale jedno už je to třeba poště - ale ani zde není důvod přistupovat ke službě jinak zvenku a jinak zevnitř (konfigurovat poštu na notebooku dvakrát denně je pěkný opruz).

    # Služby
    DNAT    net     loc:$HTTP   tcp   80    -    $OUTER
    DNAT    loc     loc:$HTTP   tcp   80    -    $OUTER
    

    Shorewall je natolik inteligentní, že jedním pravidlem (DNAT loc...) pro vnitřní síť nastaví jak forwading z vnitřní sítě do vnitřní sítě, tak i potřebný SNAT. Bohužel není shorewall natolik inteligentní, že nelze napsat pravidlo DNAT v jeho zjednodušené podobě (jak je popsané v dokumentaci k shorewall). Pokud totiž neuvedete adresu $OUTER, shorewall vygeneruje pravidlo bez této adresy a přesměruje pak veškerý provoz na portu 80 dovnitř sítě - provoz pro váš http jde na váš vnitřní server (v pořádku), provoz pro pro microsoft.com jde na váš vnitřní server (v pořádku???), provoz pro google jde na váš vnitřní server (život bez google?). Ale co je nejhorší, i provoz na vaši oblíbenou pornosajtu jde na váš vnitřní server. A to už v pořádku sakra není!

    Ale pokud potřebujete mít službu přístupnou pouze z venku, nic vám nebrání zapsat pravidlo jednodušeji:

    # Služby
    HTTP/DNAT   net     loc:$HTTP
    

    Přeložení, spuštění

    Konfigurace je hotová, můžeme pravidla přeložit příkazem make.

    Nezapomeňte zajistit, aby se shorewall startoval při spuštění systému (initskripty). To už záleží na distribuci, já to v Gentoo zajistím takto:

    rc-update shorewall add default
    

    A nakonec nezbytný odkaz na domácí stránku: http://www.shorewall.net

    Jo - a ještě se možná musím předem omluvit za případné chyby či nepřesnosti. Před 24 hodinami jsem shorewall prakticky neviděl.

           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    houska avatar 10.6.2010 09:46 houska | skóre: 41 | blog: HW
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    HTTP=10.10.1.100        # adresa vnitřního HTTP serveru
    OUTER=93.231.291.257    # adresa vnějšího (internetového) síťového rozhraní
    

    za pul roku nebudes vedet co je "OUTER" - jestli rozhrani, ipcko, nejakej server... o "HTTP" ani nemluvim ;)

    Petr Bravenec avatar 10.6.2010 10:03 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Pravděpodobně to vědět budu, protože to jsou zkratky, které v iptables pravidlech používám nějakých deset let. Jsem na ně zvyklý.
    Petr Bravenec - Hobrasoft s.r.o.
    10.6.2010 17:11 CEST
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Takze hrajes na vendor lock-in?:-) Pokud by to mel nekdo po tobe prevzit nebo za tebe zakocit, tak pro nej bude jednodussi a zrejme i rychlejsi z vypisu iptables -nvL udelat v nejakym obecnym nastroji (at uz to bude fwbuilder, pfSense nebo IPcop) novej firewall, nez zjistovat, co ktera promenna vlastne dela a jestli muze zmenit tamtu promennou tak, aby to udelalo to, co opravdu chce a ne tisic dalsich veci, ktery nechce.

    Proto mam taky radsi cisty iptables, protoze to je proste standard. Kazdej, kdo dela FW na linuxu bude iptables na 99% umet. Kdyz neco ubastlim ve fwbuilderu/pfSense/m0n0wall/IPcop, bude si to ten nekdo muset trosku nastudovat, ale tyhle nastroje jsou urceny k tomu, aby se s tim delalo jednoduse, takze udelat zmenu by melo byt pro FW odbornika i bez znalosti konkretniho produktu jednoduche. Ale pochopeni ciziho skriptu bude asi slozitejsi.
    Petr Bravenec avatar 10.6.2010 17:24 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Proměnné a jiné různé symbolické hodnoty se používají poměrně běžně a s oblibou. Všude. V programech, ve skriptech, v parametrech. I v iptables. Rozhodně je čitelnější napsat https než 443. Co je na tom špatně? Navíc takový FW napsaný pomocí proměnných v shorewall nebo přímo v iptables je pružnější. Při přenosu na jiný počítač stačí přepsat pár proměnných (komentovaných) a restartovat. Při přesunu služby stačí přepsat proměnnou a restartovat. Nemusím hledat, kde všude se IP adresa vyskytuje. Přímo v iptables by to bylo v pravidlech out-in, in-in, pre-in, pre-out, in-post, dmz-in, in-dmz... je jedno co to znamená, jen tak z hlavy jsem si vzpomenul na sedm míst pro nastavení jediné služby.

    Shorewall jsem zdědil. Uvažoval jsem o nahrazení čistě iptables. Ale nemá to smysl, shorewall je výhodnější - dobře zdokumentovaný, rozšířený, poměrně přehledný a ve srovnání s iptables nepoměrně pružnější.
    Petr Bravenec - Hobrasoft s.r.o.
    Petr Bravenec avatar 10.6.2010 17:32 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu

    Člověče, tak mě napadá... ty jsi viděl shorewall nebo víš aspoň vůbec, o čem je řeč, když - cituji - "pochopení cizího skriptu bude asi složitější"? Shorewall není "cizí" není "skript". Takto se dalo argumentovat u mého včerejšího zápisku:

    http://www.abclinuxu.cz/blog/Bravenec/2010/6/skripty-pro-firewall

    Petr Bravenec - Hobrasoft s.r.o.
    10.6.2010 10:12 KluceoveSlova
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Jednoznacne PfSense je najlepsi hned po IPCop...
    Petr Bravenec avatar 10.6.2010 11:37 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Jenže PfSense je klikací a IPCop je něco úplně jiného.
    Petr Bravenec - Hobrasoft s.r.o.
    10.6.2010 16:03 Visgean Skeloru
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Hmm a co říkáte na Vuurmuur? Osobně s ním mám dobré zkušenosti ale zas tak se v tomhle nevyznám...
    Petr Bravenec avatar 10.6.2010 16:21 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu

    Klikací :-(

    Tedy abych nekřivdil - GUI je v ncurses, pravděpodobně to myší nebude ovladatalné.

    Kde se bere má nechuť ke klikacím nástrojům:

    Plusy GUI:

    • Snadné nastavení i pro lamu.
    • Odborník si nemusí pamatovat nebo studovat příkazy iptables.

    Minusy GUI:

    • Snadné nastavení i pro lamu.
    • Odborník si musí pamatovat nebo studovat příkazy iptables.
    • Odborník musí vědět, jak přečurat gui.
    • Obvykle nelze rozumně komentovat (jako například registry windows).
    • Obvykle nelze kus "zakomentovat", je potřeba celý kus smazat (jako například registry windows).
    • Jsem zvyklý číst písmenka, nerozumím obrázkům.
    • Nefunguje na systémech z roku 2003 s Pentiem a 64MB RAM

    Mám na starosti více serverů a je pro mě výhoda překopírovat na server šablonu (s komentáři a s návodem), upravit pár proměnných (OUTER, OUTER_DEV, HTTP....) a spustit. Pro archivaci změn a testování nových funkcí mohu snadno nasadit git (verzovací systém). Minusů má GUI jednoznačně více.

    Petr Bravenec - Hobrasoft s.r.o.
    10.6.2010 20:11 Visgean Skeloru
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Tak to 'klikátko' (ono to není klikátko) pouze edituje nějaké svoje soubory a ty pak můžete taky synchronizovat podle libosti.. Vuurmuur toho umí docela hodně, někdy to zkuste :) (a nebo třeba nezkoušejte :)) )

    Mimochodem, dobrý nápad synchronizovat konfiguráky pomocí gitu.
    11.6.2010 10:03 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Tak jsem si to teď zkusil nainstalovat, akorát jak se tak koukám do jejich roadmapy, tak to vypadá, že neumí IPv6 a ještě asi docela dlouho umět nebude... :-/
    Petr Bravenec avatar 11.6.2010 10:10 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    V první chvíli jsem se vyděsil, že by se to snad mělo týkat shorewall. Koukal jsem do repozitáře, balík shorewall6 tam mám... pak mi došlo, že se to týká zřejmě vuurmuur.
    Petr Bravenec - Hobrasoft s.r.o.
    11.6.2010 10:35 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Přesně tak; u shorewallu bych nepředpokládal, že by tam nebyla :) Btw nezkoušel jste to? Jde mi o to, jestli configy shorewallu jsou pro IPv4 a IPv6 stejné nebo je to také striktně oddělené?
    Petr Bravenec avatar 11.6.2010 10:45 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu
    Nezkoušel jsem to. Já s IPv6 zatím jen tak laškuju...
    Petr Bravenec - Hobrasoft s.r.o.
    Petr Bravenec avatar 11.6.2010 11:25 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Shorewall - snazší cesta k tvorbě firewallu

    Ještě jsem tam objevil chybu. V nastavení služeb bylo původně uvedeno:

    # Služby
    DNAT    net     loc:$HTTP   tcp   80    80    $OUTER
    DNAT    loc     loc:$HTTP   tcp   80    80    $OUTER
    

    Není to vyloženě špatně, ale uvedená služba (HTTP) by pracovala pouze v případě, že by byl zdrojový port také 80, což obecně nebývá. Opravil jsem to na:

    # Služby
    DNAT    net     loc:$HTTP   tcp   80    -    $OUTER
    DNAT    loc     loc:$HTTP   tcp   80    -    $OUTER
    
    Petr Bravenec - Hobrasoft s.r.o.

    Založit nové vláknoNahoru

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