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 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    dnes 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 7
    dnes 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    včera 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    včera 17:44 | IT novinky

    Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).

    Ladislav Hagara | Komentářů: 1
    včera 15:11 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.0.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 4
    včera 14:22 | IT novinky

    Nejvyšší soud podpořil novináře Českého rozhlasu. Nařídil otevřít spor o uchovávání údajů o komunikaci (data retention). Uvedl, že stát odpovídá za porušení práva EU, pokud neprovede řádnou transpozici příslušné směrnice do vnitrostátního práva.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Zajímavý článek

    Minulý týden proběhl u CZ.NIC veřejný test aukcí domén. Včera bylo publikováno vyhodnocení a hlavní výstupy tohoto testu.

    Ladislav Hagara | Komentářů: 29
    včera 04:44 | Nová verze

    Byla vydána nová verze 3.5.0 svobodné implementace protokolu RDP (Remote Desktop Protocol) a RDP klienta FreeRDP. Přehled novinek v ChangeLogu. Opraveno bylo 6 bezpečnostních chyb (CVE-2024-32039, CVE-2024-32040, CVE-2024-32041, CVE-2024-32458, CVE-2024-32459 a CVE-2024-32460).

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (67%)
     (11%)
     (2%)
     (20%)
    Celkem 544 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Linuxové DMZ - V

    5. 3. 2003 | Martin Pavlíček | Bezpečnost | 20610×

    Podrobné pojednání o routerech. Příklady nastavení. Minidistribuce LRP.

    V dnešním díle bychom si měli podrobněji rozebrat nastavení routeru a ukázat si, jak se pracuje s jednou minidistribucí určenou právě k provozování routeru.

    V minulých dílech jsem si o DMZ řekli něco málo obecně, prošli jsme si i modelové topologie sítí, proto si myslím, že byste si určitě měli přečíst i minulé díly (pokud jste tak již neučinili :-) ).

    Hned na úvod bych chtěl podotknout, že routování je opět docela velké téma, o kterém by se toho dalo napsat hodně. Doufám, že tento článek bude obsahovat alespoň to základní (poznámky, připomínky a případné otázky prosím pište v diskuzi, pokusím se na ně odpovědět).

    Takový linuxový router je, co se peněz týče, poměrně levná záležitost. Bude vám na něj stačit nějaký stařičký počítač (klidně i 486 či nějaké staré Pentium) a libovolná distribuce Linuxu. Můžete použít běžnou distribuci (RedHat, Debian atd.), kterou patřičně "ořežete" a necháte v ní jen to, co je potřeba. Nebo můžete použít speciální minidistribuci. Poměrně zajímavý je projekt LRP - Linux Router Project, což je distribuce na jednu disketu (!). Jak se s ní pracuje si řekneme dále.

    Nejprve si, ale (opět trošku obecněji) projděme základní nastavení sítě v Linuxu (pozn. vše, co se netýká LRP, jsem testoval v distribuci RedHat 7.3, takže doufám, že vše bude podobně fungovat i jinde).

    Základní nastavení sítě

    V mnoha UNIXech každé síťové rozhraní má svůj "soubor" v adresáři /dev. V Linuxu tomu tak není; každé síťové zařízení je vytvářeno dynamicky v softwaru, který jej momentálně potřebuje (není tedy reprezentováno patřičným "souborem zařízení").

    Prvním předpokladem úspěchu je mít funkční síťovou kartu. Pokud máte nějakou běžnou síťovku a originální jádro z vaší distribuce, tak by to většinou neměl být problém. Jestli vaše jádro s kartou spolupracuje si můžete ověřit při startu systému ve výpisech z jádra nebo pokud to nestihnete zkuste příkaz dmesg | grep eth0 (příp. eth1 ...). Pokud je vše v pořádku, tak se vám může zobrazit třeba něco takového:

    eth0: VIA VT6102 Rhine-II at 0xf0000000, 00:c0:9f:18:dc:b1, IRQ 11.
    eth0: MII PHY found at address 1, status 0x7809 advertising 01e1 Link 0000.

    Ještě podotknu, že pro projevení se změn není třeba restart počítače, vše bude fungovat buď ihned nebo stačí restartovat službu network např. takto:

    # service network restart

    nebo

    # /etc/init.d/network restart

    Dále si můžeme (pokud to již nemáme z dřívějška) nastavit jméno počítače a to příkazem hostname:

    # hostname router

    Pro další nastavení sítě můžete v RedHatu použít program /usr/bin/netconfig, pomocí něhož nastavíte např. IP adresu, masku sítě, DNS server atd. a který vypadá asi tak jako vidíte na obrázku:

    My si ale ukážeme jak se vše nastaví pomocí příkazového řádku a konfiguračních souborů.

    Základním nástrojem (příkazem) pro nastavování IP adresování ve většině distribucí Linuxu je ifconfig. Základní tvar tohoto příkazu je:

    ifconfig zařízení adresa volby

    Samotný příkaz ifconfig nám vypíše aktuální stav. Tento příkaz má spoustu voleb. Pokud vás budou zajímat i jiné než ty, o kterých bude řeč, tak zkuste obvyklé man ifconfig.

    Nejdříve si nastavíme tzv. rozhraní "loopback" (česky se překládá jako "místní smyčka") Loopback je speciální rozhraní, které umožňuje síťové připojení ke svému vlastnímu počítači. Je mu vyhrazena IP adresa 127.0.0.1. Konfigurace tohoto rozhraní je jednoduchá, stačí napsat:

    # ifconfig lo 127.0.0.1

    Nyní již přejdeme k síťové kartě, příklad nastavení může vypadat třeba takto:

    # ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up

    Tento příkaz nastaví IP adresu a masku podsítě, systém si sám odvodí adresu pro všesměrové vysílání (broadcast), která bude 192.168.1.255. Pokud byste někdy chtěli rozhraní eth0 deaktivovat použijte příkaz:

    # ifconfig eth0 down

    Podobně bychom nastavili všechna ostatní síťová rozhraní (v případě routeru musíte mít minimálně dvě).

    To, co jsme teď provedli, má jednu chybu: po restartu o veškeré nastavení přijdeme. Proto v případě, že všechno funguje (základní diagnostickou utilitou je ping) je třeba vše zapsat do patřičných konfiguračních souborů. Je ještě možnost příkazy ifconfig ... zapsat do nějakého rc.X sktriptu, ale není to moc používané ani elegantní (ale fungovalo by to :-) ).

    Umístění konfiguračních souborů

    RedHat (a Mandrake)

    Nastavení síťového rozhraní: /etc/sysconfig/network-scripts/ifcfg-*

    Jméno stroje (hostname) a výchozí brána: /etc/sysconfig/network

    Debian

    Nastavení síťového rozhraní a routování: /etc/network/interfaces

    Můj soubor ifcfg-eth0 vypadá třeba takto:

    DEVICE=eth0
    BOOTPROTO=static
    BROADCAST=192.168.1.255
    IPADDR=192.168.1.1
    NETMASK=255.255.255.0
    NETWORK=192.168.1.0
    ONBOOT=yes

    Obdobně nastavíme i soubory pro ostatní rozhraní (např. ifcfg-eth1).

    Nastavení routeru

    Samotný routovací proces je relativně jednoduchý. Příchozí paket je porovnán s údaji v routovací tabulce a podle toho, který údaj je nejpřesnější, tak na to rozhraní je paket následně odeslán. A právě aby toto mohlo fungovat je potřeba mít správně nastavenou routovací tabulku. K tomu je používán speciální příkaz, který zadané argumenty převádí na volání jádra, které potom samotné routování provádí. Tento příkaz se jmenuje route. Obecný tvar tohoto příkazu je:

    route prikaz typ cilsit netmask maska gw brana dev dn

    Výpis routovací tabulky můžete získat např. pomocí příkazu:

    # /sbin/route -n

    parametr "-n" zajistí, že se nebudou převádět IP adresy na jména (čili nepotřebujeme funkční DNS), výsledek může vypadat nějak takto:

    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
    0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
    Flags Shrnutí stavu spojení, písmena znamenají:
    U     spojení je aktivní (UP)
    H     cíl představuje hostitelský počítač
    G     cíl představuje bránu (Gateway)
    Metric Vyjadřuje délku trasy, má smysl u systémů, kde lze do jednoho cíle dojít několika cestami (viz. náš druhý příklad). Trase s nižší metrikou se obvykle dává přednost. Tyto informace nevyužívá samotné jádro, ale některé routovací protokoly (např. OSPF).
    Ref Počet referencí na tuto trasu, informaci opět nepoužívá jádro Linuxu, ale uvádí se protože ji mohou využívat jiné operační systémy.
    Use Počet úspěšných hledání ve vyrovnávací paměti tras. Hodnotu lze zobrazit zadáním příkazu route -F.

    Malá síť

    Nejlépe asi bude vše si demonstrovat na příkladech. Nejdříve si představme malou ethernetovou síť, kde nám router spojuje pouze lokální síť LAN a internet (pochopitelně na takovém routeru by běžela spousta jiných věcí jako např. proxy server, firewall, možná mail server atd., ale o to nám teď nejde). Protože je to síť malá, používáme statické routování a IP adresy třídy C.

    Pro směrování paketů do lokální sítě na routeru nastavíme:

    # route add -net 192.168.1.0 netmask 255.255.255.0 eth0

    A pro připojení na internet (místo eth1 bychom v malé síti mohli použít třeba ppp0):

    # route add default eth1

    Na pracovních stanicích v síti LAN je potřeba nastavit:

    # route add default gw 192.168.1.1 eth0

    Tím určíme, že pakety, které nemají adresu v místní síti, se budou posílat na router (který je pak předá dál na internet).

    Větší síť

    Ve druhém příkladě již budeme mít síť větší, s několika routery, a proto bude pro nás výhodné použít tzv. dynamické routování, ke kterému používáme démona routed, jež je součástí balíčku NetKit, a který zajišťuje dynamické routování s pomocí protokolu RIP, tzn. v případě výpadku jednoho z routerů jsou aktualizovány všechny ostatní a pakety mohou putovat jinou cestou.

    Třídu IP adresy si zvolíme podle potřeby (podle velikosti sítě), pro ilustraci použiji opět třídu C.

    Na každém routeru musíme provést pouze dva příkazy, takže např. na routeru 1 provedeme:

    # route add -net 192.168.1.1 netmask 255.255.255.0 eth0
    # /usr/sbin/routed

    Obdobně nastavíme i router 2, 3 a 4. Poté už by se měl démon routed postarat o všechno ostatní. Při spuštění automaticky nalezne všechny aktivní síťové porty a odesílá a přijímá zprávy na každé síťové zařízení, aby bylo možné určit a aktualizovat routovací tabulku na všech routerech. Tohle je velice důležité, protože v případě selhání jednoho routeru se automaticky aktualizují tabulky a pakety mohou putovat jinou cestou.

    Na routeru 1 by bylo ještě potřeba nastavit NAT (stejně tak na routeru v prvním příkladu), ale tomu se budeme věnovat v některém z příštích dílů společně s paketovými filtry.

    Protože je defaultně zakázáno předávání (přeposílání) paketů, je nutné toto povolit příkazem:

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

    Tento příkaz musíme zadat do nějakého rc skriptu (např. /etc/rc.d/rc.local), aby se provedl při každém startu, nebo můžeme editovat soubor /etc/sysctl.conf, řádek "Controls IP packet forwarding".

    Tolik tedy k nastavení routování pod "normální" distribucí Linuxu, nyní přejdeme k něčemu speciálnímu.

    Linux Routing Project (LRP)

    Jedna velmi zajímavá minidistribuce, která má své kořeny v distribuci Debian, a kterou můžete použít na váš router. Nejzajímavější na ní je to, že se vejde na jednu disketu (můžete samozřejmě použít i např. ZIPku nebo HDD). Pokud si chcete tuto distribuci vyzkoušet, tak na adrese www.linuxrouter.org najdete odkazy na ftp servery, ze který si můžete stáhnout zabalený "image" diskety, a poté jej např. takto "nakopírovat" na disketu:

    # gunzip idiot-image_1440KB_FAT_2.9.8_Linux_2.2.gz
    # dd if=idiot-image_1440KB_FAT_2.9.8_Linux_2.2 of=/dev/fd0

    Pak již stačí jen restartovat počítač a nechat jej z této diskety nabootovat. Je asi jasné, že tak malá distribuce nebude příliš hardwarově náročná, v dokumentaci můžete najít následující příklady použitého hardwaru:

    • 386dx with 16MB, floppy, ne for LAN and 28k8 leased line
    • 486dx 66 ??MB for 16 users on 128k leased line
    • AMD K5/133 64MB with Sangoma S508 for Frame Relay

    Ne, že by jste s podobnými staříčky nemohli provozovat nějakou klasickou distribuci, ale museli byste ji pořádně ořezat (a možná nejlépe připravit na jiném stroji) a navíc byste potřebovali HDD :-). Výhodou může být i to, že váš systém poběží z "read-only media" a také to, že v tak malém systému je jen to, co je nezbytně nutné, tzn. žádné zbytečně běžící služby a programy, které zvyšují bezpečnostní riziko.

    To, co chvíli vypadá jako výhoda, se rázem stává nevýhodou, takže jeden z problémů, na který byste mohli narazit, je nedostatečná kapacita diskety. Zvláště v případě, kdy budete chtít využít možnost do systému doinstalovat např. DHCP, SSH či PortSentry (bezpečnostní utilita, která vás upozorní v případě, že vám někdo zkouší skenovat porty) atd. V takovém případě si buď můžete sehnat HDD (někde na smetišti dějin, třeba 100 MB :-)), či naformátovat běžnou disktetu až na 1680 KB (jak to udělat je popsáno v dokumentaci).

    Pojďme si říci jak to vlastně funguje. Bootovací médium (v našem případě disketa) obsahuje linuxové jádro (pomocí LRP patches lze vytvořit LRP kernel z normálního kernelu), při bootování je obsah rozbalen do paměti resp. do ramdisku (/dev/ram0) a pak je ramdisk připojen jako kořenový disk (/), systém nadále samozřejmě běží v paměti. Je logické, že všechny změny, které provedete je potřeba zapsat na disketu, protože jinak byste o ně při restartu přišli. Toto lze provést jak pomocí jednoduchého menu, které se vám zobrazí po nabootování, tak i automaticky v určitých nastavených intervalech (ztráta všeho nastavení po restartu může být i výhodou, pokud něco nastavíte špatně, tak pokud jste již neprovedli zálohu, stačí restart a máte "čistý systém").

    Po spuštění se přihlaste jako root, heslo je zatím prázdné (doporučuji ihned nastavit pomocí příkazu passwd). Poté by se vám mělo objevit "Linux Router Project - configuration menu", pomocí kterého se dá vše celkem pohodlně nastavit, a také je v něm důležitá položka a to "Back-up ramdisk". Pokud z něj vyskočíte (klávesa "q"), můžete se do něj zpět vrátit příkazem lrcfg.

    Nějaké konkrétní podrobnosti zde uvádět nebudu, protože možností je opravdu mnoho, takže doporučuji si pročíst dokumentaci, kterou můžete najít třeba na této adrese. Navíc jsou všechny konfigurační soubory samozřejmě okomentovány.

    LRP není jediná minidistribuce určená k provozování routeru, takže pokud vy používáte nebo znáte jinou, tak budu rád, když se podělíte o zkušenosti v diskuzi.

    Tolik tedy dnes, v příštích dílech seriálu se začneme zabývat firewally.

    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 - VI (Firewally)
    Linuxové DMZ - VII (Paketové filtry)

    Odkazy a zdroje

    LRP
    floppyfw
    IP Calculator
    man netstat
           

    Hodnocení: 36 %

            š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ář

    5.3.2003 08:30 Petr Kos | skóre: 10 | Valašské Meziříčí
    Rozbalit Rozbalit vše LRP
    To, co se da najit na linuxrouter.org neni prilis aktualni, doporucoval bych spise http://leaf.sourceforge.net/ , kde projekt LRP pokracuje.
    5.3.2003 10:15 BoodOk
    Rozbalit Rozbalit vše # route add default eth1
    # route add default eth1
    ... , no jo, ale kudyma za horizont ethernetoveho segmentu?
    Ovsem jako autonomni sit by to fungovalo dobre.
    5.3.2003 12:47 Zdenek Kaminski
    Rozbalit Rozbalit vše # route add default eth1
    Dobry den, Hmm, a proc by to nemelo fungovat za "horizont" ethernetoveho segmentu? Default route do interface je uplne korektni. Musi byt ovsem na ethernetu nekdo, kdo je schopen takove pakety vzit a preroutovat jinam...
    6.3.2003 10:13 BoodOk
    Rozbalit Rozbalit vše # route add default eth1
    OK. Prosim muzete upresnit jak pracuje system, ve kterem nema router nastavenu default gateway (ma pouze default route do eth1)?
    Jiří Svoboda avatar 6.3.2003 12:44 Jiří Svoboda | skóre: 37 | blog: cat /dev/mind | Prostějov
    Rozbalit Rozbalit vše # route add default eth1
    No u normalniho eth me to taky nenapada. :-) Ale u point to point spojeni (treba ppp) je to vcelku bezne ('route add default ppp0').
    6.3.2003 14:06 BoodOk
    Rozbalit Rozbalit vše # route add default eth1
    U ppp je to jasne, ale me se jedna o ne PtP spojeni (ethernet). Z diskuze vyplyva, ze existuje system, kdy router vysila pres default interface (eth1) pakety do segmentu eth1 jako "broadcast" (nevi na jakou MAC je poslat, nezna default gateway) a nekdo/neco na tom segmentu ty pakety sbira a posila dale do internetu. Nejsem vsevedouci, mozna, ze neco takoveho existuje, proto bych byl za podrobnejsi informaci vdecen.
    15.7.2005 09:28 ivast
    Rozbalit Rozbalit vše Re: # route add default eth1
    V takomto pripade musi byt na danom eth segmente zariadenie, ktore funguje ako "proxy arp", tzn na vsetky arp requesty na ip adresy mimo daneho segmenu odpoveda svojou mac adresou ( a pravdepodobne aj smeruje nasledne obdrzane ip pakety).
    7.3.2003 18:27 Milan Hejpetr | skóre: 25 | blog: poznamky | Plzen
    Rozbalit Rozbalit vše Zna nekdo spolehlive reseni VPN brany s IPSec na Linuxu ?
    Ma zde nekdo zkusennosti s VPN branou (IPSec), postavenou na Linuxu a Free Swan ? Mam na mysli neco jako disketovou distribuci DUCLING atd...Nechce se mne porizovat drahe komercni reseni (CISCO, CheckPoint, atd...)... Idealni by byla nejaka "minidistribuce" - na 1 CD, na disketach atd... Diky za tipy...

    Založit nové vláknoNahoru

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