Skloviny 05/2006 ================ 2. máj 2006 /////////////////////////////////////////////////////////////////////////// ,-----. .----- - - - - - - | | | `-----. |.' | |^| \ / | |,~; \ / | |`. | |_| \/ | | | \/ `-----' / Slovenské Linuxové Noviny \_/ MÁJ 2006 /////////////////////////////////////////////////////////////////////////// Úvod ---- Toto číslo Sklovín vychádza po dobrovoľnej jednomesačnej odmlke. Po štandardnom prehľade (síce teraz dvojmesačnom) sa vo zvyšku časopisu nachádzajú tieto nemenej zaujímavé témy: * Seriál Policy Routing v Linuxe * Príbeh presunu jedného servera Príjemné čítanie praje Jasan Prehľad marcového a aprílového diania ------------------------------------- Malý Anglicko-Slovenský (mass) a Slovensko Anglický (msas) Slovník ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Zdenko Podobný vo svojom http://lists.linux.sk/pipermail/linux/2006-March/074214.html[príspevku] do konferencie `linux` informoval o vydaní premiérovej verzie 1.0 slovníkov mass a msas. Viac informácií na nájdete na adrese http://www.sk-spell.sk.cx[]. Modifikácia DNS odpovede pre vyhradené adresy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ V http://lists.linux.sk/pipermail/linux/2006-March/074212.html[príspevku] do `linux`-u vyjadril Ján Ostrochovský potrebu riešenia zmeny DNS odpovede v závislosti od adresy klienta. Dostal na to pár zaujímavých odpovedí, viac už v spomenutom príspevku. LugCon14: posunutý termín prihlasovania prednášok ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Stano Meduna ako koordinátor prednášajúcich pre najbližší LugCon vo svojom http://lists.linux.sk/pipermail/linux/2006-March/074223.html[príspevku] posunul termíny, do ktorých boli akceptované ďalšie prednášky (momentálne je už po termíne - pozn. red.). Presun servera ~~~~~~~~~~~~~~ http://lists.linux.sk/pipermail/linux/2006-March/074229.html[Oznam o presune] Momentálne je server stále na dočasnom mieste, našťastie však relatívne bezproblémovo funguje a mnohé témy s ktorými sa skôr či neskôr stretneme v Sklovinách boli inšpirované práve činnosťami súvisejúcimi s týmto presunom. Ďakujem http://www.ipsec.info[Milanovi Pikulovi], u ktorého bol server dovtedy umiestnený. Poďakovania a informácie o hardvéri, ktorým server disponuje, sa nachádzajú v ďalšom http://lists.linux.sk/pipermail/linux/2006-March/074231.html[príspevku]. Games for Linux - upgrade portálu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://lists.linux.sk/pipermail/linux/2006-March/074284.html[Príspevok] od Juraja Michálka žiada nápaditých ľudí, aby vyjadrili svoje návrhy na zmeny portálu http://games.linux.sk[]. pam_radius_auth a freeRADIUS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://www.sklug.sk/~jasan/skloviny/externe/radius-ostry.html[Ďalšia obsiahlejšia práca] Jána Ostrochovského sa zaoberá praktickým využitím protokolu RADIUS. Nevydané Skloviny 4/2006 ~~~~~~~~~~~~~~~~~~~~~~~~ http://lists.linux.sk/pipermail/linux/2006-March/074310.html[Oznámenie o nevydaní aprílových Sklovín]. Ďalšie info k LugCon-u ~~~~~~~~~~~~~~~~~~~~~~ http://lists.linux.sk/pipermail/linux/2006-April/074337.html[Rozširujúce informácie] týkajúce sa 14. Víkendu s Linuxom som poslal do všetkých konferencií. Išlo najmä o to, kde nájsť miesto konania na mape a ktorá adresa s informáciami je tá pravá (používame dva nezávislé systémy, nikto netvrdí, že je to dobré, vytvára to zmätok, ale predsa to nejako funguje). Fetchmail a mazanie mailov po niekoľkých dňoch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ V http://lists.linux.sk/pipermail/linux/2006-April/074338.html[príspevku] Juraja Bednára, za ktorým nasleduje aj vyriešenie, sa dozvieme, aký program použiť v kombinácii s http://fetchmail.berlios.de/[`fetchmail`]-om, aby sme dosiahli mazanie mailov z pop3 servera po istom čase. Výpadok mailov na serveri SKLUG-u ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Od 17. apríla http://lists.linux.sk/pipermail/linux/2006-April/074347.html[ nefungovalo doručovanie mailov] zo servera `sklug.sk`. V odpovedi na mail je krátke vysvetlenie opravy. Policy Routing v Linuxe ----------------------- Bežné formy smerovania z rýchlika ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Prosím zdatnejších, aby túto podsekciu bez reptania preskočili. Na Linuxe sa na nastavovanie smerovania bežne používa príkaz `route`. Jeho použitie je nasledovné (v kontexte s príkazom ifconfig): $ ifconfig eth0 192.168.0.47 netmask 0xffffff00 up $ route add default gw 192.168.0.1 Výsledkom prvého príkazu je, že sieťové rozhranie `eth0` uvedieme do aktívneho stavu, v ktorom bude mať uvedenú adresu a sieťovú masku 255.255.255.0 (v príklade je zámerne použitý alternatívny zápis masky). Akýkoľvek počítač v sieti s touto maskou je tým pádom priamo prístupný (nie je potrebné na komunikáciu s ním využívať iný počítač - router). Druhým riadkom systému povieme, že akékoľvek pakety, ktoré nemajú svoj cieľ jasný (nepatria žiadnemu počítaču zo siete 192.168.0.0/255.255.255.0), budú smerované na počítač s adresou 192.168.0.1, ktorý slúži ako smerovač (router). Router musí byť počítač z tej istej siete, v ktorej sa nachádza aj náš počítač, pretože inak by na seba priamo nevideli. Takýmto spôsobom sa nastavuje sieť už dosť dlho. My však v ďalších častiach článku budeme používať na nastavenie siete mladší príkaz, `ip`. Nastavenia z prvého príkladu vykonáme pomocou `ip` nasledovne: $ ip link set eth0 up $ ip addr add 192.168.0.47/24 brd + dev eth0 $ ip route add default via 192.168.0.1 V prvom riadku aktivujeme rozhranie, v druhom mu nastavíme adresu s maskou (dovolím si tu napísať viaceré alternatívne zápisy a prosím vážené publikum o odozvu v prípade, že niektorý zo zápisov nie je jasný: `/24` == `255.255.255.0` == `0xffffff00` == `11111111.11111111.11111111.00000000`) a v treťom nastavíme štandardnú bránu. Takto jednoducho sa ale nastavuje smerovanie len na počítačoch, ktoré majú iba jedno sieťové rozhranie pripojené na internet. Základné princípy smerovania určeného pravidlami ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Radi by sme dosiahli stav, keď sa nám bude určovať smerovanie paketov podľa nejakých pravidiel. Najprv však musíme mať jadro, ktoré je schopné takto čarovať. Minimálne potrebné nastavenia jadra (pre verziu 2.6.16.11) sú: `NET`, `INET`, `IP_ADVANCED_ROUTER`, `IP_MULTIPLE_TABLES`, `CONFIG_IP_ROUTE_FWMARK`, `NETFILTER`, `NETFILTER_XTABLES` a v neposlednom rade `NETFILTER_XT_TARGET_MARK`. Z programov je potrebné mať nainštalované aspoň balíky `iptables` (obsahujúci rovnomenný príkaz) a `iproute2` (obsahujúci príkaz `ip`). V takejto konštelácii by sme mali disponovať jadrom, ktoré dokáže pracovať s viacerými smerovacími tabuľkami. Kým nešpecifikujeme tabuľku, s ktorou pracujeme, používa jadro štandardne tabuľku číslo `254` označenú textovo ako `main`. Príklad: príkaz `ip route add default via 1.1.1.1` je totožný s príkazom `ip route add table main default via 1.1.1.1`. Predpokladajme teraz, že máme dva pevné pripojenia do internetu na rozhraniach `eth0` a `eth1`. Chceme, aby všetky dáta odchádzajúce priamo z tohto servera išli cez `eth0` a dáta od klientov z lokálnej siete `192.168.1.0/24` (na rozhraní `eth2`) aby šli cez `eth1` (nevenujem sa inicializácii rozhraní): ------------------------------------------------------------------- #!/bin/sh IP=/sbin/ip IPT=/sbin/iptables IPTS=/sbin/iptables-save IPTR=/sbin/iptables-restore # čistenie tabuliek $IPTS | sed "/-/d;/^#/d;s/DROP/ACCEPT/" | $IPTR $IP route flush table 1 $IP route add table 1 default via $eth1_gateway $IP route flush table default $IP route add table default default via $eth0_gateway $IP rule flush $IP rule add prio 50 table main $IP rule add prio 60 from 192.168.1.0/24 table 1 $IP rule add prio 80 table default $IP route flush cache $IPT -t filter -N keep_state $IPT -t filter -A keep_state -m state --state RELATED,ESTABLISHED \ -j ACCEPT $IPT -t filter -A keep_state -j RETURN $IPT -t nat -N keep_state $IPT -t nat -A keep_state -m state --state RELATED,ESTABLISHED \ -j ACCEPT $IPT -t filter -A INPUT -j keep_state $IPT -t filter -A FORWARD -j keep_state $IPT -t filter -A OUTPUT -j keep_state $IPT -t nat -A PREROUTING -j keep_state $IPT -t nat -A POSTROUTING -j keep_state $IPT -t nat -A OUTPUT -j keep_state $IPT -t nat PREROUTING -s 192.168.1.0/24 -j SNAT --to $eth1_ip # ... pokračujú nejaké firewall pravidlá ... (možno nabudúce) ------------------------------------------------------------------- Záver prvej časti ~~~~~~~~~~~~~~~~~ Skript nechávam za domácu úlohu na premyslenie. Prijímam návrhy na zlepšenie. Neberte prosím tento príklad ako vyčerpávajúce vysvetlenie podmieneného smerovania v Linuxe. Pokračujeme v ďalšom čísle Sklovín. Teším sa na Vaše pripomienky, pretože práve tie môžu ovplyvniť tempo a zameranie nasledujúcich častí seriálu. Odporúčané študijné materiály (pokojne a s mierou; sú to rozsiahle materiály): * http://people.netfilter.org/rusty/unreliable-guides/[ Rustyho pozoruhodne nespoľahlivé návody] * http://www.policyrouting.org/[] * http://linux-ip.net/[] Skutočný príbeh: Presun servera ------------------------------- ************************************************************ Tento príbeh je pravdivý. Mená postáv sú zámerne rozhádzané. ************************************************************ Julo vedel už dlho, že má pre server ANTILAB-u nájsť nový domov. Miro mu to v maile napísal už pred tromi mesiacmi. Napriek tomu však nepohol ešte ani prstom. Permanentne sa vyhovára na množstvo školských povinností a nedostupnosť hardvéru, na ktorý by server preniesol. Teraz však nadišla tá chvíľa s veľkým CH. Dostal mail, v ktorom Miro píše, že mašina slúžiaca ako server ANTILAB-u bude o dva dni predaná. Julo je nútený skoncentrovať sa a za veľmi krátky čas vymyslieť niečo natoľko rozumné, aby výpadok servera netrval príliš dlho --- to by bolo z profesionálneho hľadiska pre neho úplné fópá. 'Čo skôr?', rozmýšľa. Napokon si určí postup nasledovne: 'a)' zistiť, kto má na starosti záznam pre doménu `antilab.sk` - pre prípad potreby zmeny (síce mu Miro ponúkol dočasné tunelovanie doterajšej IP adresy), 'b)' pripraviť mašinu, ktorá mu nečinne kysne na vrchu vysokej skrine tak, aby bola schopná prevziať všetky služby starého servera, 'c)' pripraviť miesto na disku a stiahnuť kompletne všetky dáta (čím skôr, o dva dni Miro server vypne!), 'd)' pozmeniť nastavenia a spustiť všetky služby v `chroot`-e, 'e)' riešenie prípadných ďalších komplikácií, ktoré vzniknú. 'Déenesko by nemal byť veľký problém,' vraví si a už spúšťa `dig -t ns antilab.sk`. Následne napíše mail na `hostmaster`-ov všetkých serverov, ktoré mu vypľuvol predošlý príkaz s prosbou o informácie ohľadom poskytovania domény ANTILAB-u. Na odpovede nečaká, čas je drahý. Zapína počítač na skrini. Je to na dnešné pomery ,,šunka'', Pentium III 500MHz, Ulrik mu kvôli tomuto presunu zapožičal 512MB DIMM modul (áno, tá mašina má ešte dimky!), takže dokopy má 640MB čo nie je až také zlé. Tento počítač nemá monitor ani klávesnicu, ale prístup cez sériovú konzolu si našťastie Julo nastavil už skôr. Pomocou webového klikátka sa snaží povoliť si pre mašinu niektoré porty na centrálnom rútri poskytovateľa (áno, aj to sa dnes robí, bezpečnosť nadovšetko!) ale po následnej krátkej mailovej komunikácii so správcom rútra poskytovateľa zisťuje, že dvadsaťpäťka je proste blokovaná ešte skôr, než vôbec dôjde do tejto siete. To znamená, že využiť aktuálnu sieťovú adresu na beh služieb ANTILAB-u nemôže. Pýta sa svojho ochrancu a spovedníka GURU-a, čo ďalej a či má nejaký nápad. GURU navrhuje tunel z Brezovej pod Bradlom, kde robí správcu, k Julovi. Keďže nastavenie zaberie chvíľku a možno aj dve, Julo sa vrhá na ďalší bod: čistenie disku a presun dát. Tá šunka na skrini má v sebe 17.2GB Seagate U8 disk, ktorý má už nejaké tie roky za sebou. 'Nevadí. Hádam ešte poslúži...' dodáva si Julo odvahy. Maže z disku adresár s animovanou rozprávkou Tom a Jerry, ktorú malému bratovi už aj tak odniesol na cédéčku. Tým pádom zisťuje, že je na disku dosť miesta a spúšťa príkaz `ssh root@antilab.sk "tar c /" | tar xvp -C /home/root-antilab` lenže v tej rýchlosti zabúda na limit prenosu dát stanovený poskytovateľom... a uvedomuje si svoj omyl až po tom, čo sa prenos znenazdajky záhadne zastaví. Nič však nie je stratené; pripája sa na linuxovú mašinu u provajdera, kde má užívateľské konto a nastavuje presmerovanie portu esesháčka `antilab`-u (provajder samozrejme nepočíta limity svojim mašinám). Dáta šťastne skopíruje mierne pozmeneným príkazom... A tu sa už ozýva GURU s konfigurákom a kľúčmi pre openvpn. Julo ich v momente umiestni do správneho adresára v `/etc` a sprevádzkuje tunel. Fajn. 'To by bolo z krku. Už len pospúšťať služby, zmeniť nastavenia na novú ip adresu ak treba a hádam by to už mohlo byť aj všetko ...' Hej veru myslel si on. Ale všetko to zďaleka nebolo. LugCon 14 --------- Prosím všetkých, aby brali na vedomie, že sa blíži štrnásty Víkend s Linuxom. Táto akcia je zameraná hlavne na osobné stretnutia ale nie len 'starých známych'. Uvítame nové tváre a netreba sa hanbiť. Neexistuje taký guru aby sa od neho nenašiel väčší... Viac informácií, mapku miesta konania a program prednášok nájdete na adrese http://www.sklug.sk/lugcon14[], kde ešte čoskoro pribudnú fotky miesta konania, ako aj slovný popis prístupu naň. Tiráž ----- .Informácie o Sklovinách `-------------------`------------------------------------ Autor Ján Sáreník Kontakt mailto:jasan@x31.com[] Zdrojový súbor link:skl-2006-05.txt[] - podpísaný link:skl-2006-05.txt.asc[] - bez diakritiky link:skl-2006-05.txt.ascii[] - iso-8859-2 link:skl-2006-05.txt.latin2[] Archív čísel http://www.sklug.sk/~jasan/skloviny[] Záloha archívu http://www.x31.com/~jasan/skloviny[] ------------------------------------------------------