Ú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:

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 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 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 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

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 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 príspevku.

Games for Linux - upgrade portálu

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

Ďalšia obsiahlejšia práca Jána Ostrochovského sa zaoberá praktickým využitím protokolu RADIUS.

Nevydané Skloviny 4/2006

Oznámenie o nevydaní aprílových Sklovín.

Ďalšie info k LugCon-u

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 príspevku Juraja Bednára, za ktorým nasleduje aj vyriešenie, sa dozvieme, aký program použiť v kombinácii s fetchmail-om, aby sme dosiahli mazanie mailov z pop3 servera po istom čase.

Výpadok mailov na serveri SKLUG-u

Od 17. apríla 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):

Skutočný príbeh: Presun servera

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áž

Table: Informácie o Sklovinách
Autor Ján Sáreník
Kontakt jasan@x31.com
Zdrojový súbor skl-2006-05.txt
- podpísaný skl-2006-05.txt.asc
- bez diakritiky skl-2006-05.txt.ascii
- iso-8859-2 skl-2006-05.txt.latin2
Archív čísel http://www.sklug.sk/~jasan/skloviny
Záloha archívu http://www.x31.com/~jasan/skloviny