Školský server a sieť

Školský server

Ako nainštalovať školský server

Zopár slov na úvod

Dnes som sa znenazdania rozhodol, že sa podelím so širokou verejnosťou s tým, ako som inštaloval náš školský server. Než som sa pustil do inštalovania, o Linuxe som nevedel takmer nič. Mal som mizerné skúsenosti s prevádzkou učiteľského počítača, na ktorom ako server bežal Lan Suite a tiež par skúseností s Windows Small Bussines Serverom 2000. Mal som tiež máličko skúseností s desktopovým Linuxom - Ubuntu. Dá sa teda povedať, že o Linuxe som nevedel takmer nič.

Napriek tomu sa mi podarilo linuxový server nainštalovať za cca 2 mesiace (s takýmto návodom by som to zvládol aj za deň) tak, že na ňom funguje Firewall s prekladom adries, Web server, Proxy server s filtrovaním webových stránok na základe obsahu, poštový server sťahujúci poštu z našej poštovej schránky a mnoho ďalších služieb, ako napríklad CMS Drupal, LMS Moodle, Gallery2, Jabber server, PXE boot a podobne.

O všetkom tomto budem hovoriť v nasledujúcich kapitolách. Poviem o jednotlivých serverových aplikáciách - na čo slúžia a ako sa inštalujú. Netvrdím, že jednotlivé postupy sú najsprávnejšie, preto ocením, keď mi pošlete svoje pripomienky.


Čo obsahuje linuxový server

Obsah linuxového servera je rôzny, líši sa podľa distríbúcie linuxu, ktorých je neúrekom. Po nainštalovaní máte k dispozícií niekoľko základných programov, ktoré sa tvorcovia distribúcie rozhodli dať na médium.

Vo väčšine distribúcií však nájdete program (často i niekoľko), ktoré vo vašom serveri vytvoria:

  • Webový server - slúži na publikovanie webových stránok,
  • Poštový server- umožňuje príjímať a odosielať poštu, filtrovať prijaté správy (SPAM) atď.,
  • DNS server - prekladá číselné adresy počítačov na ľahšie zapamätateľné mená,
  • Proxy server - oddeľuje Vašu sieť od zvyšku sveta a môže aj ukladať webové stránky do medzipamäte a tým zrýchľovať ich načítanie,
  • Tlačový server - umožňuje zdielanie tlačiarní, vrátane riadenia prístupu, či spracovania štatistík,
  • Firewall - pomáha brániť prienikom z vonkajšej do vnútornej siete, či riadiť a tvarovať sieťovú prevádzku,
  • DHCP server - umožňuje automatickúé nastavenie siete na klientských staniciach a tiež zavádzanie systému zo siete,
  • Súborový server - umožňuje centrálne zdieľanie súborov,
  • SSH server - umožňuje vzdialenú správu servera,
  • a mnoho ďalších...

Prečo by škola mala mať vlastný linuxový server?

  • môže webovú stránku nahrávať na svoj vlastný počítač cez sieť, čo je rýchlejšie ako ftp prístup,
  • môže využiť webové služby, ktoré stonline neposkytuje ako napríklad MySQL databázu a PHP,
  • môže si tiež na správu webovej stránky nainštalovať CMS systém, ktorý umožňuje tvoriť obsah webových stránok priamo cez prehliadač,
  • môže tiež použiť Systém riadenia vzdelávania (Learning managment system - LMS) systém, ktorý umožňuje vytváranie pracovných listov tak, že sú žiakom dostupné aj doma a netreba ich prefocovať, tiež dovoľuje vytvoriť testy, ktoré žiaci môžu urobiť na počítači a učiteľ ich nemusí opravovať a podobne,
  • môže lepšie spravovať svoju elektronickú poštu tým, že každý učiteľ i žiak môžu mať svoj vlastný poštový účet,
  • môže tiež lepšie filtrovať spam - nevyžiadanú poštu.
Pri linuxovom serveri sú všetky tieto časti voľne dostupné (minimálne zriaďovacie náklady), a nájdu sa i ľudia, ktorý vám poradia ako jednotlivé služby správne nakonfigurovať (minimálne servisné náklady).

Obsah

Výber hardvéru pre školský server

To aké "železo budeme potrebovať" závisí predovšetkým od toho, koľko serverových služieb budeme chcieť na serveri prevádzkovať. Ak ste malá škola s desiatimi počítačmi pravdepodobne nebude chcieť používať služieb veľa. V takomto prípade neplatí, že server musí byť najvýkonnejším počítačom. A v prípade Linuxu to, v porovnaní s Windows, neplatí vôbec. Ale, ako som spomínal, všetko závisí od toho, aké úlohy má server v sieti plniť.

Na gymnáziu v Kremnici sme ako server použili pentium2 600 MHz, len sme do neho dokúpili disk s veľkosťou 250GB. Pri starších počítačoch si musíte dať pozor aby Bios počítača umožňoval taký veľký disk vôbec pripojiť.

Ak ste veľká škola pravdepodobne ste už server mali a pravdepodobne uvažujete nad zakúpením nového servera. Väčšinou nie je problém presvedčiť vedenie školy nad nutnosťou zakúpenia nového PC. Tu odporúčam na hardvéri nešetriť. Server by mal obsahovať dva disky zapojené ako RAID typu 1 - ak sa jeden disk pokazí na druhom je to isté. Ďalej by mal obsahovať dve sieťové karty pre preklad adries NAT - jedna z nich sa zapojí do smerovača a druhá do sieťového prepínača - server potom bude fungovať ako stanica v Čiernej nad Tisou, všetky vagóny prichádzajúce a odchádzajúce sa budú prekladať do iného vlaku a podozrivé vagóny neprejdú.

Ak je problém so zakúpením nového počítača, je možné tiež jednotlivé serverové služby nainštalovať na viacero počítačov. Viac náročnejšie služby na výkonnejší počítač menej náročné služby na menej výkonný počítač. V konečnom dôsledku však školu môže vyjsť takéto riešenie viac ako kúpenie nového počítača za cca 10-15 tisíc - monitor k serveru ani nebude treba. Pri kúpe hardvéru je potrebné dať si pozor na neobvyklí hardvér najmä na sieťové karty zabudované na základných doskách. Pre distribúciu Ubuntu, ktorú sme použili, existuje stránka so zoznamom podporovaného hardvéru.
Minimálne požiadavky pre spomínanú Linuxovú distribúciu Ubuntu Server sú:
  • architektúra procesora Intel x86, AMD64 alebo PowerPC 300Mhz;
  • 64 MB RAM,
  • 500 MB miesta na pevnom disku,
  • Grafická karta kompatibilná s VGA s rozlíšením minimálne 640x480;
  • CD-ROM,
  • sieťová karta
Nám sa podarilo presvedčiť vedenie aby zakúpilo počítač s dvojjadrovým procesorom, 2 GB RAM a dvoma 250 GB diskami. Samozrejmosťou boli dve sieťové karty a CD-ROM.

Výber vhodnej distribúcie pre školský server

Distribúcií linuxu je ako húb po daždi - Slackware, Fedora, OpenSuse, Mandriva, Debian, Ubuntu, Knoppix. Len podotýkam, že tento zoznam ani z ďaleka nie je kompletný a poradie distribúcií je čisto náhodné. Ak dávate prednosť komerčnej podpore, môžete využiť služby spomínaného Mandrake alebo Red Hat Enterprise Linux.

My sme si vybrali Ubuntu server z nasledujúcich dôvodov:

  • je to od roku 2005 najobľúbenejšia distribúcia (podľa stránky distrowatch.com),
  • je založená na Debiane. Niektoré školy dostali od projektu Infovek predkonfigurovaný server s Debianom, takže v prípade problémov sa dá obrátiť na správcov na ostatných školách cez konferenciu Spravca v projekte Infovek,
  • má veľmi dobrú podporu: na českej domovskej stránke, či na jej Wikipédii, ale hlavne na jej fóre
    a existujú dokonca i chaty, či už česko-slovenský Jabber chat, alebo konferenčná miestnosť IRC, navštíviť môžete aj neoficiálnu príručku s vychytávkami a niečo sa nájde aj v slovenčine na domovskej stránke Ubuntu, alebo pre jednotlivé verzie 6.10 a 6.06
  • Ďalšie výhody, ktoré sľubuje Ubuntu:
    • Ubuntu chce byť vždy zadarmo a nikdy nebude žiadna "enterprise verzia" za špeciálny poplatok: "Chceme, aby mali všetci to najlepšie za rovnakých a slobodných podmienok."
    • Ubuntu tím sľubuje pravidelné vydávanie nových verzií (každých 6 mesiacov). Môžete používať súčasnú stabilnú verziu, no nič vám nebráni pomáhať vylepšovať vývojársku verziu. Každá verzia je naďalej podporovaná aspoň 18 mesiacov. Je ale tiež možné vybrať si verziu s dlhodobou podpodou tzv. LTS.

Keďže sme mali k dispozícii dvojjadrový 64 bitový procesor, rozhodli sme sa použiť 64-bitovú distribúciu.

Okrem týchto faktov dávame do pozornosti aj to, že na našej stránke sa nachádza aj kompletne preložená príručka k tomuto systému - Príručka Ubuntu servera. V našom návode sa na ňu budeme niekoľkokrát odvolávať.

Inštalácia základného systému školského servera

I napriek tomu že je táto strana návodu pomerne dlhá, je inštalácia Ubuntu servera veľmi jednoduchá a nezaberie ani veľa času. Návod je doplnený obrázkami, ktoré sa dajú zväčšiť tak, že na ne kliknete.

Pozor!!! Táto kniha je ešte v skorom štádiu, všetky doterajšie časti boli otestované a mali by fungovať, ak však chcete nainštalovať Ubuntu server na server, ktorý práve používate v škole, vytvorte si pre každý prípad zálohu vášho súčasného systému, aby ste mali možnosť vrátiť sa k pôvodnému systému (je tiež možné nainštalovať ubuntu server ako tzv. dual boot). Návod píšeme tak, že každý týždeň pribudne jedna strana, preto vás zatiaľ prosíme o trpezlivosť.

  1. Najskôr je potrebné stiahnuť CD zo stránky Ubuntu: http://www.ubuntu.com/getubuntu/download
  2. Obraz tohto CD napálime na CD.
  3. Nájdeme údaje o našej sieti - Protokol o odovzdaní asymetrického prístupu k službe EDU.SK#NET
  4. Ak máme počítač s dvoma sieťovými kartami, kábel z karty, ktorá je na doske, strčíme do routra Cisco (alebo iného zariadenia, cez ktoré sa pripájate na internet) a druhý kábel do switchu. Ak máte len jednu sieťovú kartu, tak kábel strčte do switchu.
  5. odriekame fungujúcu modlitbu, zapneme PC a vložíme napálené CD do mechaniky
  6. ak po chvíli nabehne táto obrazovka:

    tak je všetko v poriadku a môžeme pokračovať, ak nenabehne, pravdepodobne nie je nastavené bootovanie z CD rom. V takomto prípade je potrebné toto bootovanie nastaviť v BIOSe.

Výber jazyka

  1. nastavte si jazyk stlačením klávesy F2

  2. zvoľte Kontrola CD média na chyby - zabijete tak síce trochu času, no v prípade, že je CD zle napálené alebo bol zle stiahnutý obraz CD, vyhnete sa zbytočným nepríjemnostiam.
  3. zvoľte inštaláciu na pevný disk


Nastavenie siete

  1. Spustí sa inštalácia a prebehne niekoľko obrazoviek (rozpoznávanie zariadení, načítavanie súčastí a rozpoznávanie sieťových zariadení). Potom sa inštalačný program spýta na základné sieťové rozhranie (iba ak máte dve sieťové karty). Ak ste zapojili sieťovú kartu na doske do routra Cisco, zvoľte eth0.

  2. Ak nemáme v sieti iný server, mala by sa sieťovej karte prideliť IP adresa prostredníctvom DHCP (dynamické prideľovanie IP adries), ktoré zabezpečuje CISCO router. Ak však chceme na náš server umiestniť Web stránku, musíme nastaviť sieť ručne. Preto na obrazovke, kde sa inštalačný program pýta na názov počítača, zvolíme Naspäť:

  3. Zvolíme manuálne nastavenie siete

  4. Každá škola by mala mať pridelenú adresu v rámci siete EDU v tvare 10.X.Y.0. Pričom adresa 10.X.Y.1 je adresa Gateway (brána LAN) a 10.X.Y.10 je tlačiareň IBM 1312. Konkrétne X a Y si musíte nájsť v dokumente spomínanom v bode 3. Pre server je možné zvoliť ľubovoľnú adresu zo statického rozsahu tj 10.X.Y.1-99. Odporúčame použiť adresu 10.X.Y.2 (pravdaže, ak ste ju už v minulosti nepriradili inému počítaču).

  5. Masku siete môžeme ponechať takú ako nám inštalačný program ponúkne

  6. Ako bránu opäť ponecháme ponúknutú IP adresu v tvare 10.X.Y.1, kde X a Y zodpovedajú číslam vašej adresy

  7. Adresy DNS nastavte podľa údajov EDU.SK#NET alebo nastavte tie, ktoré vidíte na nasledujúcom obrázku:

  8. Ako meno počítača zadajte ľubovoľné meno napríklad Server1


Rozdelenie disku

  1. Ak máte v počítači len jeden disk, zvoľte si Sprievodca - použiť celý disk (predpoklad je, že inštalujete na čistý disk, resp. že chcete to, čo bolo povodne na disku, vymazať). Ak však máte dva disky ako my, pokračujte podkapitolou Vytvorenie softvérového diskového poľa Raid 1 školského servera


Nastavenie hodín

  1. Ak počítač inštalujte na čistý systém (čo predpokladá tento návod) a nemáte dual boot, tak zvoľte áno



Nastavenie používateľa

  1. Ubuntu nemá správcovský účet, aj preto je potrebné vytvoriť jeden účet, cez ktorý sa bude dať k systému pristúpiť. Je možné vytvoriť ľubovoľný účet a neskôr cez neho vytvoriť účet správcu systému. My sme sa však rozhodli použiť na správu systému bežný účet, preto sme prvého užívateľa pomenovali správca. Takýto účet sa oproti bežnému účtu líši v tom, že pred každým zásahom do systému je potrebné zadať znova heslo. Pozor nie však každý používateľ má takéto oprávnenia! Používatelia, ktorých neskôr vytvoríme nebudú mať oprávnenie prepnúť sa do režimu správcu, ak nebudú zaradený v skupine admin.

  2. Tu zadajte prihlasovacie meno, pomocou ktorého sa budete k serveru prihlasovať.

  3. Zvoľte heslo, čím dlhšie, tým lepšie, vhodné je používať kombináciu veľkých a malých písmen, čísla a netradičné znaky, nie však znaky s diakritikou. Heslo je veľmi dôležité si zapamätať.

  4. Zadajte heslo znova pre potvrdenie


Výber súčastí systému

  1. Tu si popíšeme na čo slúžia jednotlivé ponúkané súčasti
    DNS Server slúži na prevod doménových mien na IP adresy a naopak. Nainštalovaním tohto servera urýchlite zisťovanie IP adries, čiže sa o niečo málo zrýchli prístup k webovým stránkam. Okrem toho však môžete nastaviť DNS záznamy, to znamená, že môžete povedať, ktorý počítač bude mať meno napríklad mail.gymkremnica.edu.sk. Viac o DNS sa dozviete tu.
    LAMP Server, ktorý obsahuje Apache2 - webový server umožňujúci publikovanie na webe, MySQL databázu a PHP. Viac sa dozviete na formax.sk.
    Poštový Server je server umožňujúci prijímanie a odosielanie elektronickej pošty. Viac o jednotlivých službách mailového servera sa dozviete vo Vixovej príručke.
    SSH Server OpenSSH je server umožňujúci pripojiť sa na náš server pomocou šifrovaného spojenia, ktoré sa používa na vzdialenú správu servera. Viac o SSH sa dozviete vo Vixovej príručke.
    Databázový Server PostgreSQL je alternatívnou databázou k MySQL
    Print Server je server na zdieľanie tlačiarní v sieti a správu dokumentov určených na tlač.
    Súborový server Samba je server, ktorý dokáže zdieľať súbory s operačným systémom MS Windows. Dokáže tiež riadiť sieťovú doménu M$ Windows.

    My sme zvolili všetky súčasti okrem alternatívnej databázy PostgreSQL. Nevravím však, že je to nutnosť. Napríklad nebude potrebné inštalovať tlačový server, ak na škole máte iba jednu tlačiareň dodanú Infovekom (IBM 1312), ktorá je sama tlačovým serverom. Naopak OpenSSh odporúčame určite nainštalovať, pretože vzdialená správa je výborná vec. Ostatné služby odporúčame nainštalovať tiež.


Nastavenie súčastí systému

  1. Zadáme heslo pre používateľa "root" k databáze MySQL

  2. Zvolíme typ poštového servera, ak neviete ktorý, ponechajte predvolené Internet site

  3. Zadajte systémové poštové meno v tvare vasadomena.sk v našom prípade gymkremnica.edu.sk

    Ubuntu - Meno poštového servera

  4. Teraz je hotová inštalácia základného systému, spolu s niektorými servermi. Vyberte CD z mechaniky a dajte pokračovať.

Vytvorenie softvérového diskového poľa Raid 1 školského servera

Ak vám záleží na tom aby údaje v serveri boli aspoň trochu zabezpečené, tak je dobré do servera vložiť dva rovnako veľké disky a nastaviť ich zrkadlenie pomocou diskového poľa RAID 1. Táto možnosť zabezpečí, že ak sa jeden z diskov náhodou pokazí, rovnaký obsah bude i na druhom disku. Teda bude stačiť pokazený disk nahradiť novým diskom a údaje opäť zduplikovať i na nový disk.

Ak chceme aby bol náš server výkonnejší je možné použiť diskové pole RAID 0. V takomto prípade sa údaje rozložia na oba disky takže zápis bude skoro dvojnásobne rýchlejší.

Je tiež možné použiť kombináciu oboch metód tzv. RAID 10 - no tu sú potrebné 4 rovnaké disky. Návod ako disk nastaviť sa nachádza v článku Inštalácia Ubuntu so softvérovým RAID 10

  1. Ak máte v počítači dva disky tak ako my zvoľte si manuálne rozdelenie.

    ubuntu12

  2. Pole Raid 1 je také zoskupenie diskov kde sa na všetky disky v tomto zoskupení "zrkadlí" ten istý obsah. V prípade poškodenia jedného z diskov je ten istý obsah uložený aj na ostatných diskoch. Viac o tom, ako funguje pole RAID sa môžete dozvedieť vo Wikipédii.
    Tu je postup ako takéto pole vytvoriť:
  3. Po tom ako ste zvolili manuálne rozdelenie diskov vyberte prvý disk zo zoznamu.

    ubuntu13

  4. Vytvorte novú prázdnu tabuľku oblastí

    ubuntu14

  5. Vyberte voľné miesto

    ubuntu15

  6. Zvoľte automaticky rozdeliť voľné miesto

    ubuntu16

  7. Vyberte pimárnu partíciu ext3

    ubuntu17

  8. Zvolte prvú položku "Použiť ako"

    ubuntu18

  9. Nastavte novú hodnotu "fyzický zväzok pre Raid"

    ubuntu19

  10. Ukončite nastavovanie oblasti.

    ubuntu20

  11. postup 6-9 zopakujte aj pre logickú oblasť swap
  12. postup 2-10 zopakujte aj pre druhý disk
  13. Zvoľte "Nastaviť softvérový Raid"

    ubuntu21

  14. Zapíšte zmeny

    ubuntu22

  15. Vytvorte multidisk zariadenie

    ubuntu23

  16. Ako typ zariadenia zvoľte RAID1

    ubuntu24

  17. Počet aktívnych zariadení ponechajte na 2

    ubuntu25

  18. Počet náhradných zariadení ponechajte na 0

    ubuntu26

  19. Označte prvé partície z oboch diskov

    ubuntu27

  20. postup 14-18 zopakujte aj pre zvyšné oddiely diskov
  21. Ukončite prácu s multidiskom

    ubuntu28

  22. Vyberte prvú RAID oblasť

    ubuntu29

  23. Vyberte prvú položku "Použiť ako"

    ubuntu30

  24. Nastavte žurnálovací súborový systém ext3

    ubuntu31

  25. Zvolte druhú položku "Prípojový bod"

    ubuntu32

  26. Nastavte "/ - koreňový súborový systém"

    ubuntu33

  27. Ukončite nastavenie oblasti

    ubuntu34

  28. Zvoľte Druhú RAID oblasť

    ubuntu35

  29. Vyberte prvú položku "Použiť ako"

    ubuntu36

  30. Nastavte odkladací (swap) priestor

    ubuntu37

  31. Ukončite nastavenie oblasti

    ubuntu38

  32. Ukončite rozdeľovanie oblastí

    ubuntu39

  33. Zapíšte zmeny na disk

    ubuntu40

Teraz môžete prejsť späť na kapitolu Inštalácia základného systému školského servera

Doinštalovanie programov pre správu školského servera

Po reštarte počítača sa na obrazovke objaví niečo takéto:

 

ubuntu51

Kto by čakal dajaký grafický systém podobný MS Windows bohužiaľ alebo skôr vďaka bohu sa nedočká. Keďže my sme boli tiež odporcovia textového režimu, nainštalovali sme si grafické prostredie, no vzápätí sme to oľutovali pretože veľmi vzrástla spotreba pamäte. Potom sme hľadali iné riešenie - neinštalovať celé desktop prostredie ale iba manažéra okien alebo súborového manažéra. Podarilo sa nám sprevádzkovať prostredie Fluxbox, na ktoré sa vďaka x11vnc dá pripojiť pomocou VNC klienta - čo je program na prenos obrazu, takže je možné sa na server pripojiť i v grafike zo vzdialeného počítača.

Teraz z odstupom času (asi 2 mesiace) sa nám zdá i toto riešenie ako zbytočné, pretože ho nepoužívame. Ak vás ešte stále odpudzuje textový režim nebojte sa, o chvíľu vám porozprávame o výborných programoch na správu PC, ktoré sú v grafike. Tieto programy sa však nespúšťajú priamo na serveri ale fungujú ako webové rozhrania. Vlastne ani nebudete potrebovať mať k serveru pripojený monitor.


Prihlásenie sa ku školskému serveru

Aby sme však mohli niečo robiť musíme sa prihlásiť:

  1. Stlačte Enter - Malo by sa zjaviť "Server1 login:" (ak ste ako meno počítača zadali Server1)
  2. zadajte "spravca" (alebo svoj login, ktorý ste pri inštalácii vytvorili)
  3. zadajte svoje heslo

     

    ubuntu52

Midnight commander

Ľudia, ktorý v minulosti ešte pracovali v operačnom systéme MS DOS, určite poznajú program Norton Commander alebo Volcov Commander. Niektorí, tiež používajú v operačnom systéme MS Windows Total Commander alebo iný klon Norton Commandera. Všetkých týchto ľudí určite poteší Midnight Commander, ktorý nainštalujeme takto:

 

sudo apt-get install mc

 

Teraz je znova potrebné znova zadať heslo. Počítač vypíše, ktoré balíčky sa budú okrem mc inštalovať a spýta sa, či to naozaj chcete. Zadajte teda "Y" (ako áno) Midnight commander teraz môžeme spustiť príkazom

 

mc

 

teraz by ste mali vidieť spustený Midnight Commander:

 

ubuntu53

Inštalácia programov

Program Midnight Commander sme nainštalovali pomocou príkazov, ktoré su možno pre vás cudzie preto ich teraz trochu vysvetlíme. Začneme príkazom sudo. Tento príkaz budeme potrebovať veľmi často. Slúži na to aby ste získali oprávnenie správcu. Ak by sme tento príkaz nezadali, operačný systém by tvrdil, že na vykonanie zadaného príkazu nemáme dostatočné oprávnenie. Vždy po zadaní príkazu sudo sa systém spýta na vaše heslo, preto to od teraz budeme brať za samozrejmé a nebudeme uvádzať do postupov aby ste zadali svoje heslo.

Ďalším príkazom je príkaz apt-get. Tento príkaz je určený na prácu s balíčkami. Balíčky sú súbory s príponou .deb - ide o veľmi vzdialené ekvivalenty súborov install.exe či setup.exe známych z MS Windows. Tieto balíčky sú sústredené tzv. repozitároch. To sú akési úložištia balíčkov. Takže všetky balíčky sú uložené "pod jednou strechou" (resp pod niekoľkymi) a nie je ich potrebné hľadať na internete. Je však tiež možné nájsť balíčky, ktoré v týchto repozitároch nie sú, stiahnuť a nainštalovať ručne alebo nájsť ďalšie repozitáre, ktoré a dopísať ich do systému. Na inštalovanie nového programu použijeme príkaz

sudo apt-get install meno_balíčka  

Ak chceme program odinštalovať napíšeme

sudo apt-get remove meno_balíčka

V prípade, že chceme program odinštalovať a chceme i zmazať jeho inštalačný balíček, napíšeme

sudo apt-get purge meno_balíčka

Pomocník (help) k príkazom

Ku každému príkazu v Linuxe môžeme získať pomoc (väčšinou v angličtine) viacerými spôsobmi:

väčšina príkazov na integrovanú stručnú pomocou, ktorú nám program vypíše po zadaní prepínača --help alebo jeho skrátenej verzie -h, napríklad:

 

apt-get -h

 

alebo

 

apt-get --help  

 

podrobnejšiu pomoc poskytujú manuálové stránky. Ich rozsiahlosť a aktuálnosť je rôzna, ale jedno majú spoločné, pre zobrazenie používajú príkaz man a názov príkazu napríklad:

 

man apt-get  

 

Manuálovú stránku zatvoríme stlačením klávesy "q"!!! Najaktuálnejšiu dokumentáciu získate príkazom info, ktorého použitie (a často aj výsledok) je rovnaké ako pri príkaze man, napríklad:

 

info apt-get

 


 

Odstránenie inštalačného CD z repozitárov

V prípade, že máte neobmedzené pripojenie na internet (všetky školy by mali mať), je výhodné systém nastaviť tak, aby nehľadal balíčky na inštalačnom CD, ale iba na internete. Ukončite Midnight Comander (ďalej len MC) sltačením klávesy "F10". Potom ho znova spustite s právami roota (správcu):

 

sudo mc   

 

Od tohto okamihu je MC spustený s právami správcu systému. Dávajte si dobrý pozor čo robíte!!!

 

Teraz pomocou MC vyjdite až do hlavného priečinka. nastavíte kurzor (tyrkysový pásik) na "/.." tak ako je to na nasledujúcom obrázku a stlačíte enter:

 

ubuntu53

Teraz sa nachádzate v priečinku "/home" (môžete ho vidieť v hornej časti obrazovky), to je priečinok v ktorom sú uložené profily používateľov. Ak ste postupovali podľa nášho návodu a vytvorili ste pri inštalácii používateľa s názvom "spravca" tak teraz máte kurzor na priečinku s takýmto názvom.

 

ubuntu54

Teraz znova posuňte kurzor na "/.." a stlačte enter. Ste v koreňovom priečinku systému. Toto je niečo ako c: v operačnom systéme MS Windows.

Teraz presuňte kurzor na adresár "/etc" a stlačte enter. V tomto priečinku sa nachádzajú všetky konfiguračné súbory - veľmi vzdialené ekvivalenty súborov s príponou ini, ktoré používa MS Windows. Toto bude priečinok, ktorý budeme veľmi často otvárať.

Teraz vojdite do adresár "/apt" v hornej časti by mala byť zobrazená cesta "/etc/apt".

Teraz sa prepneme do druhého okna pomocou klávesy "TAB" na klávesnici a rovnakým postupom nastavíme tú istú cestu aj do druhého panelu.

Teraz si vytvoríme zálohu súboru ktorý chceme upravovať. Vytváranie záloh konfiguračných súborov je veľmi dôležité!!! V prípade že niečo pokašleme, môžeme to vrátiť.

Nastavme kurzor na súbor s názvom "sources.list" a stlačte na klávesnici "F5" (kopírovať) a za zobrazovanu cestu "/etc/apt" dopíšte "/sources.list.bak1" a stlačte enter, čím vytvoríte kópiu súboru s takýmto názvom.

 

ubuntu55

Teraz, keď máme zálohu, môžeme editovať súbor. nastavíme kurzor na súbor "sources.list" a stlačíme klávesu "F4" (editovať). Uvidíme pred sebou rôznofarebný text, pričom sa nejedná len o grafický efekt, ale farebne je zvýraznená syntax tohoto súboru. To čo je potrebné urobiť, je vložiť pred riadok začínajúci

deb cdrom... 

znak "#" ten sa na slovenskej klávesnici píše pomocou kombinácie kláves AltGR+x (AltGR je pravý alt). Po doplnení znaku "#" by súbor mal vyzerať takto:

 

ubuntu56

Zmeny v súbore uložíme stlačením klávesy "F2" (Uložiť) a potvrdíme uloženie.

 

ubuntu57

Teraz môžeme opustiť editor klávesou "Esc".


Aktualizácia systému

Teraz môžeme vykonať aktualizáciu systému. Tento krok je veľmi dôležitý, pretože aktualizácie neprinášajú iba nové funkcie ale i odstraňujú chyby. V programe MC je možné skryť panely kombináciou kláves Ctrl+o. Ak tento povel vykonáte uvidíte iba príkazový riadok. Keďže máte MC spustený príkazom sudo, už ho nemusíte pred príkazy písať. Zadajte teda príkaz:

 

apt-get update  

 

Tento príkaz načíta z úložiska distribúcie zoznam najnovších balíčkov. Tento príkaz je vhodné zadať pred každou inštaláciou, ktoréhokoľvek balíčka z úložiska. Samotnú aktualizáciu vykonáte príkazom

 

apt-get upgrade

 

Systém zobrazí zoznam programov ktoré bude aktualizovať. Opäť je potrebné potvrdiť aktulaizáciu zadaním "Y". Po aktualizácii môžete zapnúť panely MC (Ctrl+o).


Inštalácia programu Webmin

Program je veľmi užitočné grafické web rozhranie, slúžiace na správu serverov. Jeho inštalácia je veľmi jednoduchá:

  1. Otvorte súbor /etc/apt/sources.list (vyššie opísaným spôsobom), ktorý obsahuje zoznam zdrojov softvéru
  2. Na koniec pridajte nový zdroj dopísaním riadka deb http://download.webmin.com/download/repository sarge contrib
  3. Uložte súbor(F2) a opustite editor(ESC)
  4. Vypnite panely v MC (CTRL+o)
  5. Stiahnite a nainštalujte Kľúč k zdroju softvéru zadaním príkazov (znak ~ napíšete pomocou Alt Gr + a):
    cd ~
    wget http://www.webmin.com/jcameron-key.asc
    sudo apt-key add jcameron-key.asc 
    
  6. Zaktualizujte zoznam balíčkov zadaním apt-get update
  7. Nainštalujte Webmin príkazom apt-get install webmin
  8. Zapnite zobrazenie panelov

Ak máte v počítači iba jednu sieťovú kartu, môžete sa k programu Webmin pripojiť z iného počítača tak, že zadáte do internetového prehliadača IP adresu počítača, ktorú ste priradili sieťovej karte na začiatku inštalácie a zadaním portu 10000. Teda http://10.x.y.2:10000 kde x a y sú čísla IP adresy vašej školy v sieti EDU#Net.

AK máte dve sieťové karty budete si musieť najskôr nastaviť druhú kartu, podľa postupu v ďalšej kapitole.

Nastavenie druhej sieťovej karty v školskom serveri

Ak máme v počítači dve sieťové karty, musíme nastaviť i druhú sieťovú kartu. Môžeme náš server použiť ako firewall. Túto možnosť odporúčame najmä vtedy ak chcete aby bol server dostupný verejne z internetu. Podstatne tak zvýšite bezpečnosť vašej siete.

Ak má byť vaša sieť bezpečná tak jednu sieťovú kartu zapojíte do Cisco routera, cez ktorý sa pripájate na internet a druhú do switchu do ktorého sú pripojené ostatné počítače siete.

Od Cisco routeru musí byť switch rozvádzajúci sieť odpojený. Server bude fungovať nasledovne:
Internet --> vonkajšia sieťova karta servera --> firewall s prekladom adries --> vnútorná sieťová karta servera -->switch --> ostatné počítače

Najprv pomocou postupu opísaného v predchádzajúcej kapitole, otvoríme súbor /etc/network/interfaces. Po jeho otvorení by ste mali vidieť takýto súbor:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 10.x.y.2
netmask 255.255.255.0
network 10.x.y.0
broadcast 10.x.y.255
gateway 10.x.y.1
#dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 195.146.128.60 195.146.132.59
dns-search vasadomena.edu.sk

kde miesto x a y sú čísla z vašej IP adresy v sieti EDU#Net.

Druhej sieťovej adrese môžeme priradiť adresu, ktorá bude patriť iba v lokálnej školskej sieti. Pre túto sieť je možné vyhradiť adresy napríklad 192.168.1.x.

Prejdeme teda na koniec súboru a nastavíme druhú sieťovú kartu nasledovne:

# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255    

teraz vypnite panlely MC a zadajte príkaz, ktorým sa reštartuje nastavenie siete starým osvedčeným spôsobom:

 invoke-rc.d networking restart

Teraz sa i vy môžete pripojiť na server z hociktorej stanice v sieti, je však potrebné zmeniť jej sieťové nastavenia.

Nastavenie siete v distribúcii Debian

Pri inštalácii distribúcie Debian GNU/Linux sa Vás inštalátor opýta na jednotlivé nastavenia siete, tieto nastaví a všetko funguje . Ak sa však pomýlite alebo neskôr zmeníte topológiu siete, je potrebné nastavenia zmeniť. Možností je viac.

Ručná úprava konfigurácie

Konfigurácia siete je uložená v konfiguračnom súbore interfaces, ktorý nájdete v adresári /etc/network/interfaces. Jeho obsah môže vyzerať napríklad takto:

# The loopback network interface
auto lo
iface lo inet loopback

# Primárne sieťové rozhranie
auto eth0
iface eth0 inet static
hwaddress ether a1:b2:c3:d4:e5:f6
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.253
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.254
dns-search domov.skk

# druhé sieťové rozhranie
auto eth1
iface eth1 inet dhcp


Čo v tomto súbore možno vyčítať? Tak najprv počet a mená rozhraní. V tomto súbore sú definované tri rozhrania lo, eth0 a eth1 a všetky tri sú spúšťané automaticky, čo je definované časťou auto. Časť iface definuje typ rozhrania, možné sú vlastne tri druhy – spätná slučka, statické nastavenie a dynamické nastavenie. Existujú aj ďalšie, ale budem sa venovať len týmto trom možnostiam.

Spätná slučka


Spätná slučka (lopback) je rozhranie, pomocou ktorého počítač komunikuje sám so sebou, pričom vôbec nepoužíva sieťovú kartu. Podľa štandardov je IP adresa spätnej slučky 127.0.0.1, preto ju netreba nastavovať. O určenie, že rozhranie lo je rozhranie spätnej slučky sa stará časť iface:

iface lo inet loopback


vidíte v ňom slovo iface, nasledované menom rozhrania (lo), rodinou adries IPv4 (inet) a metódu spätnej slučky (loopback). Definícia spätnej slučky nemá žiadne ďalšie nastavenia.

Dynamické nastavenie


Dynamické nastavenie sieťových parametrov je možné robiť vtedy, keď máte v sieti DHCP (resp. BOOTP) server. V dnešnej dobe už skôr DHCP server, ktorý je novší a poskytuje pokročilejšie možnosti ako BOOTP, pričom je plne kompatibilný s BOOTP.

V tomto nastavení stačí v časti iface zadať meno rozhrania, rodinu adries a voľbu dhcp. Dynamické nastavenie žiadne ďalšie voľby nepoužíva:

iface eth1 inet dhcp

Statické nastavenie

Toto nastavenie sa používa na nastavenie statickej, čiže pevnej IP adresy rozhrania a ďalších potrebných parametrov. V časti iface túto možnosť nastavuje voľba static:

iface eth0 inet static


Toto nastavenie už potrebuje aj ďalšie voľby: 

  • address – IP adresa rozhrania
  • netmask– maska siete
  • hwaddress – MAC adresarozhrania
  • network– IP adresa siete
  • broadcast– IP adresa všesmerového vysielania
  • gateway– IP adresa predvolenej brány

Nastavenie v súbore /etc/network/interfaces poskytuje aj ďalšie možnosti, ďalšie informácie hľadajte v manuálovej stránke man 5 interfaces.

Ak zmeníte nasatvenia siete v konfiguroačnom súbore interfaces, prejavia sa zmeny až po reštartovaní siete:

invoke-rc.d networking restart

Nastavenie pomocou ifconfig

Na konfiguráciu sieťového rozhrania je určený nástroj ifconfig. Ak ho spustíte bez parametrov, príkaz vypíše nastavenia všetkých všetkých rozhraní, napríklad:

ifconfig
eth1 Zapouzdření:Ethernet HWadr 00:0C:29:95:03:FF
inet adr:192.168.0.10 Všesměr:192.168.0.255 Maska:255.255.255.0
inet6-adr: fe80::20c:29ff:fe95:3ff/64 Rozsah:Linka
AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST MTU:1500 Metrika:1
RX packets:98 errors:0 dropped:0 overruns:0 frame:0
TX packets:129 errors:0 dropped:0 overruns:0 carrier:0
kolizí:0 délka odchozí fronty:1000
RX bytes:10403 (10.1 KiB) TX bytes:10254 (10.0 KiB)
Vstupně/Výstupní port:0x2040 Paměť:e8920000-e8940000

lo Zapouzdření:Místní smyčka
inet adr:127.0.0.1 Maska:255.0.0.0
inet6-adr: ::1/128 Rozsah:Počítač
AKTIVOVÁNO SMYČKA BĚŽÍ MTU:16436 Metrika:1
RX packets:27 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
kolizí:0 délka odchozí fronty:0
RX bytes:1332 (1.3 KiB) TX bytes:1332 (1.3 KiB)

Výpis poskytuje vyčerpávajúce informácie o nastavení rozhrania, vrátane štatistík prijatých (RX) a odoslaných (TX) paketov, bytov, či štatistiku kolízií. Ak ako parameter zadáte meno rozhrania, príkaz zobrazí informácie len o zadanom rozhraní. Pomocou tohoto príkazu môžete aj nastaviť parametre rozhrania, ako IP adresu a sieťovú masku:

ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up

Týmto nastavením nastavíte IP adresu rozhranie eth1 na 192.168.0.1 so sieťovou maskou 255.255.255.0 a rozhranie zároveň zapnete. Sieťové rozhranie eth1 vypnete príkazom:

ifconfig eth1 down

Nastavenie pomocou nástroja ip

Nástroj ip je novší ako ifconfig a jeho použitie je viacúčelové. Môžete pracovať nie len s nastavením rozhrania ale aj smerovania a podobne. Jeho možnosti môžete skúmať pomocou poskytnutej nápovedy:

ip help

a potom pomocou nápovedy jednotlivých objektov, napríkad

ip addr help

Výpis nastavení získate zadaním:

ip address show
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:95:03:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.0.10/24 brd 192.168.0.255 scope global eth1
inet6 fe80::20c:29ff:fe95:3ff/64 scope link
valid_lft forever preferred_lft forever

Rovnako ako pri ifconfig môžete zadať meno rozhrania a obmedziť tak výpis na príslušné rozhranie. Pre zobrazenie štatistík príslušného rozhrania použite príkaz:

ip -s link show eth1
2: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:95:03:ff brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
11857 108 0 0 0 0
TX: bytes packets errors dropped carrier collsns
10490 133 0 0 0 0

Parametre sieťového rozhrania môžete nastaviť pomocou:

ip address add 192.168.0.1/24 brd + dev eth1

čím nastavíte IP adresu rozhrania eth1 na 192.168.0.1 s 24-bitovou sieťovou maskou (255.255.255.0) a automatické nastavenie všesmerovej adresy (voľba brd +).

Pre odstránenie sieťovej adresy/rozhrania, zadajte:

ip address del 192.168.0.1 dev eth1

Spustenie a zastavenie rozhrania

Keď už máte parametre rozhrania nasatvené môžete ho zapnúť, respektíve vypnúť, pomocou príkazov ifup a ifdown:

ifup eth1

respektíve

ifdown eth1

Nastavenie prekladu mien

Zavedenie systému doménových mien bolo veľkým krokom k rozšíreniu internetu. Úlohou tohoto prekladu je preklad mena počítača na jeho IP adresu. V Linuxe (nakoniec vo Windows tiež) existuje súbor, ktorý uchováva lokálny zoznam mien a IP adries počítačov, a nájdete ho v /etc/hosts. Pre preklad mien v internete sa už dávno nepoužíva a nahradil ho systém DNS (Domain Name Service), ktorého konfigurácia je v súbore /etc/resolv.conf a môže vyzerať napríklad takto:

search skk
nameserver 192.168.0.253

Uvedené dva parametre nie sú jedniné, ale sú plne postačujúce. Prvý parameter nastavuje lokálnu doménu, ktorá bude prehľadávaná (skk je moja lokálna doména) a parameter nameserver udáva IP adresu menného servera. V tomto súbore môžete mať nasatvené až tri adresy menných serverov. Ak máte nainštalovaný vlastný menný server, nastavte tu nameserver 127.0.0.1. Ak Vás zaujímajú ďalšie možnosti, pozrite si manuálovú stránku man 5 resolv.conf.

Nastavenie statického smerovania

Nastavenie statických pravidiel smerovanie je možné viacerými spôsobmi. Začnem pomocou príkazu ip:

ip route add 192.168.55.0/24 via 192.168.0.253 dev eth1

čím nastavíte smerovanie do siete 192.168.55.0/24 cez rozhranie eth1 s IP adresou 192.168.0.253. Rovnaký cieľ dosiahnete aj pomocou staršieho príkazu route:

route add -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.0.253 dev eth1

Výpis nastavených smerovacích pravidiel získate zadaním príkazu route bez parametrov alebo pomocou novšieho ip:

ip route show

Môžete tiež vyskúšať nastavenie, ktoré automaticky pridá smerovacie pravidlo pri zapnutí rozhrania a po jeho vypnutí ho zase odstráni. Toto správanie môžete dosiahnuť pridaním do súboru /etc/network/interfaces, do konfigurácie príslušného rozhrania, napríklad:

auto eth1
iface eth1 inet static
...
up route add -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.0.253
down route del -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.0.253

Veľa šťastia s nastavovaním siete.

Ako sa prvýkrát pripojiť ku školskému serveru z lokálneho počítača

Na to aby sme sa mohli pripojiť k novonainštalovanému serveru, je potrebné vykonať niekoľko zmien v sieťovom nastavení.

 


Nastavenie ak je v serveri jedna sieťová karta

Na lokálnej stanici nastavte

IP Adresa : 10.x.y.3 (kde x a y sú čísla ip adresy v siete EDU#Net)
Maska : 255.255.255.0
Brána : 10.x.y.2 (IP adresa novo nainštalovaného servera)
DNS : 10.x.y.2 (IP adresa novo nainštalovaného servera) 


Nastavenie ak sú v serveri dve sieťové karty

Na lokálnej stanici nastavte

IP Adresa : 192.168.1.2
Maska : 255.255.255.0
Brána : 192.168.1.1 (IP adresa novo nainštalovaného servera)
DNS : 192.168.1.1 (IP adresa novo nainštalovaného servera) 


Nastavenie v MS Windows XP

Otvoríme ponuku štart a zvolíme ovládací panel.

Kliknite na sieťové a internetové nastavenia.

Vyberte sieťové pripojenia.

Kliknite na lokálne pripojenie a vyberte Zmeniť nastavenie pripojenia.

Vyberte Internet protocol a tuknite na tlačítko Vlastnosti.

Nastavte parametre siete podla tabuľky vyššie.

Ako sa pripojiť do rozhrania Webmin na školskom serveri

Sadnime si k stanici, ktorú sme už nastavili (Ako sa prvýkrát pripojiť ku školskému serveru z lokálneho počítača) a otvorme webový prehliadač. Ako adresu zadajte (v prípade že ste postupovali podľa predchádzajúcich častí návodu) v prípade, že máte jednu sieťovú kartu (x a y sú čísla z vašej IP adresy v sieti EDU#Net):

https://10.x.y.2:10000 

v prípade, že máte dve sieťové karty

https://192.168.1.1:10000  

v prehliadači by ste mali uvidieť takúto stránku

Pomocou tohto formulára sa môžete prihlásiť k serveru pomocou vášho loginu (ak ste postupovali podľa nášho návodu tak je username "spravca") a hesla. Po zadaní údajov stačí stlačiť tlačidlo Login. Po prihlásení uvidíme takúto obrazovku:


Zmena jazyka rozhrania Webmin na slovenský

Ako prvý krok môžeme rozhranie prepnúť do slovenského jazyka. Po vykonaní tohto kroku bude rozhranie čiastočne preložené do slovenčiny (aspoň v čase písania článku bolo len čiastočne). Rozbaľte teda položku Webmin ťuknite na odkaz Change Language and Theme. Prepnite prepínač do polohy Perosnal choice, v rozbalovacej ponuke vyberte slovenský jazyk a potvrďte tlačidlom Make changes (viď obrázok).

Po vykonaní tohto kroku, už len obnovíme stránku pomocou klávesy F5 na klávesnici.

Ako sa pripojiť ku školskému serveru cez ssh

SSH je skratkou od Secure Shell - zabezpečený príkazový riadok. Je to sieťový protokol, ktorý umožňuje bezpečnú komunikáciu medzi dvoma počítačmi. Tento protokol bol navrhnutý na to, aby odstránil nedostatky nezabezpečených protokolov rlogin, telnet, rsh či ftp. Umožňuje vzdialené pripojenie sa na server a vykonávanie príkazov cez príkazový riadok ale tiež prenos súborov pomocou Secure FTP (ftp cez ssh).

Pripojenie z Linuxového klienta

Ak sa pripájate na server z linuxu, tak pravdepodobne už máte v systéme nainštalovaný klientsky program na pripojenie k SSH.

Ak máte na serveri len jednu sieťovú kartu, stačí otvoriť príkazový riadok a napísať

ssh spravca@10.x.y.2

Kde X a Y sú čísla vašej IP adresy v rámci siete #EDU.NET

Ak sa pripájate z vnútornej siete na server s dvoma sieťovými kartami, napíšte

ssh spravca@192.168.1.1

V prípade, že už máte definovaný DNS (ako zabezpečiť aby bol školský server viditeľný z internetu) záznam môžete použiť

ssh spravca@www.domena_skoly.edu.sk

Ak sa pripájate prvý krát, budete vyzvaní, aby ste potvrdili bezpečnostný certifikát servera. Po jeho potvrdení už zadáte len svoje heslo a pripojenie k serveru sa nadviaže.

Pripojenie z prostredia Windows

Na pripojenie k SSH je možné použiť viacero programov, no my si ukážeme pripojenie pomocou najznámejšieho z nich, ktorý sa nazýva PuTTY. Stiahnuť si ho môžete zo stránky http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html a to buď ako samostatný program alebo ako inštalátor.

Po jeho stiahnutí (v prípade inštalátora i nainštalovaní) stačí vyplniť údaj Host name(or IP address).

Ak máte na serveri len jednu sieťovú, kartu zadáte

spravca@10.x.y.2

Kde X a Y sú čísla vašej IP adresy v rámci siete #EDU.NET

Ak sa pripájate z vnútornej siete na server s dvoma sieťovými kartami, napíšte

spravca@192.168.1.1

V prípade, že už máte definovaný DNS (ako zabezpečiť aby bol školský server viditeľný z internetu) záznam, môžete použiť

spravca@www.domena_skoly.edu.sk

Nastavenie môžeme uložiť zadaním názvu spojenia do poľa Saved Sessions a stlačením tlačidla Save.

Potom otvoríme spojenie tlačidlom Open.

Ak sa pripájate prvý krát, bude potrebné potvrdiť bezpečnostný kľúč servera.

A potom už len zadáte svoje heslo a pripojenie sa nadviaže.

Klient pre SFTP na prenos úborov

Programov na prenos súborov cez protokol SFTP je niekoľko. Najznámejšími z nich sú WinSCP a FileZilla. Nastavenie je podobné ako pri programe PuTTY a práca s nimi je podobná ako s Windows Explorerom.

WinSCP si môžete stiahnuť zo stránky http://winscp.net/eng/download.php a FlieZilla zase zo stránky http://filezilla-project.org/download.php?type=client.

Ukážka programov:

 

 

SSH klient priamo vo vašom internetovom prehliadači

Ak ste postupovali podľa nášho návodu, tak máte na serveri i webserver. Môžete teda integrovať Java aplikáciu ako applet do webovej stránky a potom stránku otvoriť priamo cez internetový prehliadač na lokálnom počítači.

Jedným z Java programov je MindTerm, ktorý si môžete stiahnuť zo stránky http://www.appgate.com/index/products/mindterm. Tento program je zadarmo pre osobné použitie a pre komerčné použite je limitovaný 25 pripojeniami.

Na tejto stránke sa zaregistrujte kliknutím na odkaz contact form a po zaregistrovaní vám príde email s odkazom na stiahnutie.

Po stiahnutí programu môžete zip súbor rozbaliť a nakopírovať na server napríklad pomocou WinSCP alebo FileZilla do priečinka /var/www.

Potom vytvoríte súbor ssh.html s nasledujúcim obsahom, pričom prispôsobte hrubo vytlačené údaje svojím potrebám

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk" dir="ltr">

<head>
<title>ssh</title>
</head>

<body>
<p>
<applet code="com.mindbright.application.MindTerm.class" archive="/mindterm-X.Y/mindterm.jar" height="600" width="620">
<param name="cabinets" value="mindterm.cab" />
<param name="sepframe" value="false" />
<param name="server" value="www.vasa_domena.edu.sk" />
<param name="username" value="spravca" />
<param name="debug" value="true" />
</applet>
</p>
</body>

</html>

 

a uložte ju do priečinka /var/www na serveri. Po jej uložení môžete do prehliadača na klientskom počítači zadať adresu:

Ak máte na serveri len jednu sieťovú kartu, stačí otvoriť príkazový riadok a napísať

http://10.x.y.2/ssh.html

Kde X a Y sú čísla vašej IP adresy v rámci siete #EDU.NET

Ak sa pripájate z vnútornej siete na server s dvoma sieťovými kartami, napíšte

http://192.168.1.1/ssh.html

V prípade že už máte definovaný DNS (ako zabezpečiť aby bol školský server viditeľný z internetu), záznam môžete použiť

http://www.domena_skoly.edu.sk/ssh.html

 

Ako vytvoriť firewall na školskom serveri

 

Firewall

Firewall je sieťové zariadenie a/alebo softvér, ktorý kontroluje tok dát, ktoré cez neho prechádzajú. Táto kontrola údajov prebieha na základe aplikovania pravidiel, ktoré určujú podmienky a akcie. Podmienky sa stanovujú pre údaje (napr. zdrojová, cieľová adresu, zdrojový alebo cieľový port či rozhranie, a rôzne iné). Úlohou firewallu je vyhodnotiť podmienky a ak je podmienka splnená, vykoná sa akcia napríklad povolenie alebo zamietnutie komunikácie (ale sú aj iné akcie).

Existujú tri základné typy firewallov:

  • paketový filter - filtruje dáta v tzv packetoch na základe ich vlastností (IP, rozhranie, port...)
  • stavový - filtruje pakety na základe ich stavu (vytvárajúce spojenie, odpovede na požiadavky, ...)
  • aplikačný - filtruje pakety na základe zdrojovej/cieľovej aplikácie, obsahu stránok a podobne

Linuxový firewall aplikuje len prvé dva typy.

Brána firewall je integrovaná do jadra linuxu, preto ju netreba inštalovať. Na jej nastavenie slúži nástroj iptables, pomocou ktorého sa definujú pravidlá. Prechádzajúce dáta sú zaraďované do troch zabudovaných tzv. reťazí:

  • INPUT - pravidlá pre packety prichádzajúce do počítača
  • OUTPUT - pravidlá pre packety odchádzajúce z počítača počítača
  • FORWARD - pravidlá pre packety prechádzajúce z jednej sieťovej karty na druhú

Ak je v počítači iba jedna sieťová karta firewall filtruje iba prichádzajúce a odchádzajúce dáta. V prípade dvoch sieťových kariet sa z počítača stáva smerovač, ktorý môže filtrovať komunikáciu medzi dvoma sieťovými kartami, a teda medzi dvoma sieťami. Najčastejšie sa takýto spôsob filtrovania používa na riadenie komunikácie medzi vnútornou sieťou, ktorej dôverujeme, a vonkajšou sieťou napr. Internetom.

Nastavenie brány firewal však už nemusíme vykonávať priamo na serveri, ale môžeme využiť nainštalované rozhranie Webmin.


Vytvorenie firewallu pomocou rozhrania Webmin

Otvoríme ponuku Sieť v nej ťukneme na Linux Firewall pomocou prepínača na stavíme Block all except SSH, IDENT, ping and high ports - týmto prepínačom sa zablokuje všetko okrem spomínaných služieb, zafajkneme políčko Enable firewall at boot time a stlačíme tlačidlo Setup Firewall (viď obrázok).

Po vykonaní tohto kroku sa na webstránke zjaví tabuľka s pravidlami:

Teraz môžeme do firewallu doplniť porty služieb, ktoré by mal server dovoľovať. Odporúčame doplniť ešte nasledujúce službywww, https, pop3, smtp, imap, imaps, pop3s, a ak chceme mať prístup k správe servera prostredníctvom rozhrania Webmin doplňme i port 10000 (ak máme v počítači dve sieťové karty a chceme aby sa dalo server spravovať iba z vnätornej siete tak port 10000 nezadáme). Urobíme to tak, že pri pravidle If protocol is TCP and destination port is SSH klikneme na Accept (viď obrázok vyššie). Porty je potrebné napísať bez medzier.

 www,https,pop3,smtp,imap,imaps,pop3s,10000

Na stránke, ktorá sa následne otvorí doplníme všetky spomínané porty a oddelíme čiarkou. Potom už len stlačíme tlačidlo Uložiť.


Vytvorenie NAT pomocou rozhrania Webmin

Ak máme v počítači dve sieťové karty, musíme nastaviť i druhú sieťovú kartu. Môžeme náš server použiť ako firewall s prekladom adries. Ak má byť vaša sieť bezpečná tak jednu sieťovú kartu zapojíte do Cisco routera, cez ktorý sa pripájate na internet a druhú do switchu, do ktorého sú pripojené ostatné počítače siete.

Od Cisco routeru musí byť switch rozvádzajúci sieť odpojený. Server bude fungovať nasledovne:
Internet --> vonkajšia sieťova karta servera --> firewall s prekladom adries --> vnútorná sieťová karta servera -->switch --> ostatné počítače

Firewall je sieťové zariadenie a/alebo softvér, ktorého úlohou je oddeliť siete s rôznymi prístupovými právami (typicky napr. Internet a Intranet) a kontrolovať tok dát medzi týmito sieťami.

AK máte v počítači len jednu sieťovú kartu, kontrola údajov prebieha na základe aplikovania pravidiel, ktoré určujú podmienky a akcie. Podmienky sa stanovujú pre údaje (napr. zdrojová, cieľová adresu, zdrojový alebo cieľový port a rôzne iné). Úlohou firewallu je vyhodnotiť podmienky a ak je podmienka splnená, vykoná sa akcia napríklad povolenie alebo zamietnutie komunikácie (ale suú aj iné akcie).

Ak máte v počítači dve sieťové karty je možné obe siete navzájom oddeliť. Server v takomto prípade bude fungovať tak, že bude rozhodovať o tom, ktoré požiadavky z vonkajšej siete pustí do vnútornej a naopak.

Ak máte v počítači dve sieťové karty, je potrebné pridať ešte jedno pravidlo, ktoré bude vykonávať preklad adries. V hornej časti nastavíme do rozbaľovacieho poľa Network address translation (nat) a stlačíme tlačidlo Showing IPtable. Po jeho stlačení sa zmení obsah stránky, na ktorej klikneme na tlačidlo Add Rule v časti Packet after routing (viď obrázok).

Na stránke s definíciou pravidla nastavíme prepínač do polohy Source NAT, nastavenie IPs and ports for SNAT prepnite do polohy IP range a v riadku, zapíšeme IP adresu vonkajšej siete 10.x.y.2 a nastavíme, že výstupné zariadenie má byť eth0 vybraním hodnoty Equals v riadku Outgoing interface. Potom stlačíme tlačidlo Vytvoriť v spodnej časti stránky.

Teraz vytvoríme tri pravidlá v časti v časti Packet before routing.

Na otvorenej stránke prepneme prepínač do polohy Accept a a nastavíme, že výstupné zariadenie má byť eth1 vybraním hodnoty Equals v riadku Incoming interface. Potom stlačíme tlačidlo Vytvoriť v spodnej časti stránky.

Rovnaké pravidlo vytvoríme i pre zariadenie lo.

Pri vytváraní posledného pravidla prepneme prepínač do polohy Accept a a nastavíme, že výstupné zariadenie má byť eth0 vybraním hodnoty Equals v riadku Incoming interface. Teraz vyberieme v časti Conection states z ponuky Equals a vyberieme hodnoty Existing Conections a Related to conected (pri označovaní týchto hodnôt myšou, držte na klávesnici kláves CTRL). Nakoniec stlačíme tlačidlo Vytvoriť v spodnej časti stránky.

Teraz už stačí len novú zmenu aplikovať stlačením tlačidla Apply Configuration.

Po aplikovaní zmeny sa konfigurácia uluží do súboru iptables.up.rules. Tento súbor je potrebné ešte načítať pri štarte systému.


Vytvorenie spúšťacieho skriptu na zavedenie firewallu

Otvoríme položku Systém a klikneme na Štart a vypnutie. Na stránke ktorá sa otvorí klikneme na odkaz Create a new bootup and shutdown action.

Otvorí sa stránka na vytváranie skriptov, do ktorej zadáme názov nového skriptu webmin-ipt a do poľa Bootup commands napíšeme:

/bin/echo 1 > /proc/sys/net/ipv4/ip_forward 
/sbin/iptables-restore /etc/iptables.up.rules  

a klikneme na tlačítko Vytvor.

Aby sme nemuseli teraz reštartovať server načítame pravidlá ručne. Zo zoznamu skriptov vyberieme Webmin-ipt a spustíme ho pomocou tlačidla Start selected.

Nastavenú konfiguráciu môžeme overiť tak že sa pokúsime na stanici na ktorej práve teraz sme otvoriť ľubovolnú stránku z internetu (napr. www.google.sk). Mala by sa otvoriť.

nový spúštací script

Keď dám vytvorit spúštací script pre webmin-ipt vypíše mi hlásenie "

"Failed to save upstart service : Missing service description".

Čo mám napísať do service description, aby došlo k uloženiu?

Ako nastaviť ukladanie doménových mien na školskom serveri

Domenové mená sú mená počítačov, ktoré sú priradené k číselným adresám počítačov. Doménové mená boli počítačom pridelené kvôli ľuďom, pretože IP adresy sú iste ťažšie zapamätateľné, ako adresa napr. www.google.sk. Pre činnosť Internetu sú však potrebné číselné IP adresy (či už verzie 4 alebo 6), preto musí byť každé meno počítača prevedené na jeho číselnú podobu a na to slúžia menné servery (DNS servery).

Ak do prehliadača zadáme sk.openacademy.eu musí služba DNS nájsť číselnú adresu počítača s takouto mennou adresou poslaním požiadavky na iný menný server. Toto hľadanie trvá určitý čas, no dá sa urýchliť tak, pomocou takzvaného kešovania adries. DNS server si do svojej vyrovnávacej pamäti ukladá jednotlivé doménové mená a k nim prislúchajúce číselné adresy a pri nasledujúcej požiadavke na preklad mena sa už nepýta ostatných DNS serverov, ale poskytne odpoveď zo svojej pamäte.

Toto správanie v konečnom dôsledku zrýchli načítavanie stránok, pretože Váš počítač dostane IP adresu cieľa rýchlejšie a teda skôr začne načítať stránku.

DNS činnosť

Príklad

Pri zisťovaní záznamu pre adresu "www.wikipedia.org" je postup takýto:

  1. používateľ zadá meno www.wikipedia.org, počítač sa obráti na lokálny menný server s požiadavkou o IP adresu www.wikipedia.org,
  2. lokálny menný server túto informáciu nemá, pozná však adresy koreňových serverov. Na jeden z nich sa obráti (napr. na 193.0.14.129) a požiadavku mu prepošle,
  3. ani koreňový server nepozná odpoveď, vie však, že existuje doména najvyššej úrovne org a poskytne žiadateľovi adresy jej autoritatívnych serverov,
  4. lokálny server jeden z nich vyberie (napr. tld1.ultradns.net s IP adresou 204.74.112.1) a pošle mu požiadavok na IP adresu mena www.wikipedia.org,
  5. ani tento server informáciu nepozná, ale poskytne IP adresy autoritativních serverov domény wikipedia.org,
  6. lokálny server si opäť jeden vyberie a pošle mu požiadavok na IP adresu mena www.wikipedia.org
  7. keďže toto meno už je v doméne wikipedia.org, dostane od jej servera autoritatívnu odpoveď, že hľadaná IP adresa je 145.97.39.155
  8. lokálny menný server túto odpoveď odovzdá žiadajúcemu počítaču.

Toto je kompletný postup riešenia daného požiadavku. Môže se však stať, že niektorý z menných serverev (napríklad aj Váš) má hľadanú informáciu vo svojej vyrovnávacej pamäti, pretože príslušnú požiadavku nedávno riešil. V takom prípade poskytne neautoritatívnu odpoveď z vyrovnávacej pamäte a ďalšie požiadavky odpadávajú.



Zmena v nastaveniach siete

Najprv otvorte vetvu Sieť a ťuknite na odkaz Network Configuration. Na stránk, ktorá sa zobrazí ťuknite na Hosname and DNS Client.

Do polí DNS server pridajte adresu 127.0.0.1 na prvé miesto a potom stlačte tlačidlo Uložiť. Týmto nastavením zabezpečíte aby server pozrel najskor svoje záznamy až potom hľadal u nadradených počítačov.

Potom aplikujte nastavenia pomocou tlačidla Apply Configuration.

Webmin - nastavenie siete 3

 


V ďalšom kroku otvorte vetvu Servery a ťuknite na odkaz BIND DNS Server. Na stránke, ktorá sa otvorí vyberte Forwarding and Transfer.



Nastavenie DNS servera

Do polí Servers to forward queries to zadajte IP adresy nadradených DNS serverov a stlačte tlačidlo Uložiť.

Webmin - Ukladanie DNS 2

Nakoniec aplikujte nastavenia pomocou tlačidla Apply Changes.

Ako nastaviť ukladanie webových stránok na školský server

Jednou s ďalších služieb, ktoré je možné nainštalovať na školský server je Proxy server. Proxy server je niečo ako prostredník v komunikácii medzi klientmi a servermi. Pre klientov sa tvári ako server a pre server ako klient.

Situácia bez použitia proxy servera:

+-------------+   požiadavka                           +--------+
| klient      |--------------------------------------> | server |
| (lok. sieť) |<-------------------------------------- |        |
+-------------+                             odpoveď    +--------+

Situácia s použitím proxy servera:

+-------------+ požiadavka  +--------+ požiadavka      +--------+
| klient      |-----------> | proxy  |---------------> | server |
| (lok. sieť) |<----------- | server |<--------------- |        |
+-------------+   odpoveď   +--------+      odpoveď    +--------+

Výhodou takéhoto prístupu je niekoľko:

  1. Oddelenie sietí - bezpečnosť
  2. Ukladanie obsahu (WWW) - zrýchlenie komunikácie
  3. Filtrovanie požiadaviek

O konfigurácii proxy servera Squid priamo v konfiguračnom súbore sa dozviete vo Vixovej príručke Systémového administrátora, tu sa zameriam na popis nastavenia pomocou webového rozhrania Webmin.


Inštalácia proxy servera Squid

Najskôr musíme Proxy server nainštalovať. Otvorte preto v rozhraní Webmin vetvu Others a ťuknite na odkaz Príkazový riadok, do poľa zadajte príkaz

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

sudo apt-get install -f -y --force-yes squid 

a stlačte tlačidlo Vykonaj príkaz. Potom ešte treba chvíľu počkať kým sa proxy server Squid nainštaluje. Potom ako bude inštalácia hotová, zjaví sa priebeh inštalácie.


Nastavenie proxy servera Squid

Po nainštalovaní treba prispôsobiť nastavenieproxy servera Squid podmienkam našej siete:

Načúvací port

Najprv je potrebnénastaviť číslo portu, na ktorom bude Squid očakávať pripojenia od klientov. Štandardné nastavenie je port číslo 3128 a nie je potrebné to meniť - iba ak by ste port 3128 chceli využiť na niečo iné. V rozhraní Webmin otvoríme vetvu Servery a kliknúť na odkaz Squid Proxy Server. Na stránke ktorá sa zobrazí potom klikneme na Ports and Networking. Na stránke ktorá sa otvorí uvidíte prepínač v polohe Default (usually 3128).

Po nastavení príslušného čísla portu, je samozrejme potrebné nastaviť firewall tak, aby požiadavky klientov prepúšťal nášmu proxy serveru - toto už nemusíte nastavovať ak ste sa riadili podľa predchádzajúcich častí návodu.

Nastavenie vyrovnávacej pamäte

Predvolená inštalácia Squid má nastavenú cestu aj veľkosť vyrovnávacej pamäte, ale to nemusí vyhovovať všetkým, preto pomocou webmin zmeňte nastavenia podľa svojich potrieb. Pri nastavovaní veľkosti dajte pozor na to, že čím väčšia vyrovnávacia pamäť, tým viac súborov je v nej uchovaných, čo môže urýchliť zobrazovanie stránok, ale zároveň to zvyšuje počet prístupov na disk, čo zase zobrazovanie stránok môže spomaliť.

Ak chcete zmeniť tieto nastavenia klknite na odkaz Cache Options

V nastaveniach môžete nastaviť umiestnienie vyrovnávacej pamäte jej veľkosť, a ďalšie nastavenia. Nezabudnite prepnúť prepínač do polohy Listed.. a nakoniec nastavenia uložiť kliknutím na tlačítko Save.

Webmin - Ukladanie DNS 5

Nastavenie parametrov vlastnej siete

Squid používa prepracovaný systém riadenia prístupu, ktorý umožňuje precízne nastavenie, ktroré stanice môžu jeho služby využívať, a ktorým bude prístup do vonkajšej siete zamietnutý. V predvolenej konfigurácii po inštalácii však umožňuje prístup všetkým klientom lokálnej siete, jemu však potrebné nastaviť parametre lokálnej siete, a to IP adresu a masku siete. Aj toto nastavenie je potrebné urobiť cez Riadenie prístupu (Access control), takže ťukneme teda na Access Control.

Pod zoznamom pravidiel prístupu v rozbaľovacom poli vyberieme Client Address a ťukneme na tlačidlo Create new ACL.

Na stránke, ktorá sa zobrazí, zadajte do poľa ACL Name názov pravidla (napr. vnutorna_siet) a zadefinujte rozsah IP adries, ktoré budú mocť k proxy serveru pristupovať. Ako som už spomínal, nastavujeme povolenie pre všeky stanice v našej sieti, takže do poľa From IP zadáme IP adresu našej siete (napríklad 192.168.1.0) a do poľa Netmask zadáme hodnotu 24 (čo zodpovdá sieťovej maske 255.255.255.0).

Webmin - nastavenie prístupu k proxy 3

Teraz sa hore prepneme na záložku Proxy restriction a pod zoznamom pravidiel ťukneme na odkaz Add proxy restrictions

V ľavom stĺpci vyberieme pravidlo vnutorna_siet, ktoré sme si pred chvílou vytvorili, prepínač prepneme do polohy Allow a uložíme stlačením tlačidla Save.

Teraz pomocou šipky naše pravidlo posunieme nad pravidlo Denny All.

 

Na koniec ešte reštartujeme Squid.


Nastavenie klientov

Na začiatku sme si nastavili číslo portu, na ktorom proxy server očakáva požiadavky na webové stránky, a to port číslo 3128. Webový klienti však používajú pre komunikáciu iné (štandardné) porty:

  • http komunikácia - 80
  • https komunikácia - 443
  • ftp komunikácia - 21

Všetky tieto služby dokáže Squid obslúžiť, ale je potrebné aby boli posielané na port číslo 3128, to je nutné nastaviť individuálne na každom klientovi. Klientov však ešte nenastavujte, ak chcete používať filtrovanie obsahu stránok, ktorému sa venuje ďalšia kapitola (museli by ste ich potom nastaviť znova).

Napríklad:

Nastavenie v prehliadači Internet Explorer

V hornej ponuke vyberte Nástroje > Možnosti siete internet

Prepnite sa na kartu Pirpojenia a stlačte tlačítko Nastavenie siete LAN.

Proxy server IE 1

V časti Server proxy zaškrtnite pole a vyplnte príslušné údaje. 

Proxy server IE 2

Nastavenie v prehliadači Firefox

V hornej ponuke vyberte Nástroje > Možnosti (MS Windows) alebo Upraviť > Možnosti (Linux)

Prepnite sa na kartu Sieť a ťuknite na tlačítko Nastavenia.

Firefox nastavenie proxy1

Prepínač prepnite do polohy Ručné nastavenie parametrov a do okienok vyplnte príslušné údaje:

Firefox nastavenie proxy2

Nastavenie v prehliadači Opera

V hornej ponuke vyberte Nástroje > Nastavenia. Prepnite sa na kartu Pokročilé voľby, v ľavej časti ťuknite na Pripojenie a potom ťuknite na tlačítko Proxy servery.

Opera nastavenie Proxy

V okne, ktoré sa otvorí nastavte príslušné hodnoty:

Opera nastavenie Proxy


Nastavenie transparentného proxy servera

Nastavenie, ktoré sme si zatiaľ vytvorili funguje a je pripravené na ďalšie vylepšenia, ako riadenie prístupu, či filtrovanie prevádzky. Ale určite sa zhodneme, že je veľmi pracné nastavoavť všetky klienty samostatne. Riešenie (hoci len čiastočné) tohoto problému je využitie tzv. transparentného proxy servera.

Transparentný proxy server nie je priehľadný, ako by to mohlo navádzať slovo transparent, ale taký proxy server, o ktorom klienti ani nevedia. Naďalej posielajú svoje požiadavky na štandardný port číslo 80 a o zvyšok sa postará server. Pozornejší si určite všimli malú drobnosť, a to že protokoly HTTPS a FTP nemožno týmto spôsobom obslúžiť, preto pre nichplatia naďalej nastavenia predchádzajúcich odsekov.

Pre funkčné nastavenie tohoto riešenia proxy servera je potrebné zmeniť nastavenia na dvoch miestach:

  1. nastaviť samotný proxy server
  2. nastaviť preklad portov vo firewalle

Začneme natavením proxy - vo Webmin otvoríme vetvu Servery a kliknúť na odkaz Squid Proxy Server. Na stránke ktorá sa zobrazí potom klikneme na Ports and Networking.

Na stránke ktorá sa otvorí prepneme prepínač Proxy addresses and ports do polohy Listed below.., do poľa Port zadáme 3128 a do poľa Options for port napíšeme transparent. Nakoniec nastavenia uložte ťuknutím na tlačidlo Save.

Webmin - nastavenie transparentného proxy 2

Pokračovať budeme nastavením firewallu - v ľavej časti otvoríme vetvu Sieť a ťukneme na odkaz Linux Firewall. V rozbaľovacom poli vyberieme Network address translation (nat) a ťukneme na tlačidlo Show IPtable. Na stránke, ktorá sa zobrazí v časti PREROUTING ťuknite na modrú šipku v stĺpci Add aby sa nové pravidlo pridalo pred prvé pravidlo.

Teraz zadefinujeme pravidlo, ktoré požiadavky presmeruje:

  1. prepneme prepinač Action to take do polohy Redirect,
  2. do poľa Source address or network nastavíme Equals 192.168.1.0/24,
  3. Incoming interface nastavíme na Equals eth1,
  4. Network protocol na Equals TCP a
  5. Destination TCP or UDP na Equals Port(s) 80.
  6. do poľa Additional parameters zadáme --to-port 3128

a nakoniec nastavenie uložíme ťuknutím na tlačidlo Uložiť.

Teraz je ešte potrebné na stánke firewallu Aplikovať nastavenia

a spustiť script webmin-ipt, aby sa nové pravidlo pre firewall načítalo. Otvoríme položku Systém a klikneme na Štart a vypnutie. Zaškrtneme políčko webmin-ipt a ťukneme na tlačítko Start Selected.


Riadenie prístupu klientov a filtrovanie prevádzky

O tejto možnosti sa dozviete viac v podkapitole

Ako blokovať určité webové stránky v jednotlivých učebniach počas vyučovania

Ako blokovať určité webové stránky v jednotlivých učebniach počas vyučovania

Proxy server okrem toho, že ukladá webové stránky do medzipamäte a urýchľuje komunikáciu, dokáže pomocou kombinácie určitých druhov zoznamov tzv. ACL (access control list) riadiť prístup k internetu. Okrem iného umožňuje pomocou troch pravidiel blokovať niektoré stránky na základe ich adries alebo IP adries a to na konkrétnych počítačoch (s určitými doménovými menami alebo IP adresami) počas trvania vyučovania.

Ak chcete stránky filtrovať podľa obsahu, slúži na to iný nástroj, ktorému sa budeme venovať v kapitole Ako nastaviť na školskom serveri filtrovanie webových stránok podľa obsahu.

Táto časť predpokladá nainštalovaný proxy server Squid na vašom serveri. Návod nájdete na stránke Ako nastaviť ukladanie webových stránok na školský server.

V rozhraní Webmin rozbalíme ponuku Servery a klikneme na odkaz Squid Proxy Server.  Na stránke, ktorá sa otvorí, vyberieme Acces Control.

Ak si spomínate, v predchádzajúcej časti sme tu definovali parametre našej siete. Pod zoznamom pravidiel prístupu v rozbaľovacom poli sme vybrali Client Address a ťukli na tlačidlo Create new ACL. Vysvetlenie ďalších ACL pravidiel, ktoré môžeme použiť, je možné nájsť na konci tohto článku. Teraz si na konkrétnych príkladoch ukážeme ich použitie.

Definovanie zoznamov pre jednotlivé učebne


Za predpokladu, že máme na počítačoch nastavené IP adresy - buď ručne alebo pomocou DHCP servera (Ako nastaviť školský server, aby prideloval IP adresy na základe MAC adries)- môžeme zadefinovať pravidlá pre jednotlivé učebne.

Urobíme to presne tak isto ako keď sme definovali pravidlo pre celú vnútornú sieť, no teraz zadáme len rozsah adries počítačov z učebne.

V našom návode sme si zadefinovali učebňu informatiky v rozsahu 192.168.1.10-192.168.1.20, čo predstavuje 11 počítačov - jeden učiteľský (192.168.1.10) a 10 žiackych.

Pod zoznamom pravidiel prístupu teda v rozbaľovacom poli vyberieme Client Address a ťukneme na tlačidlo Create new ACL a zadáme:

ACL name : ucebna_studenti
From IP : 192.168.1.11
To IP : 192.168.1.20
Netmask :24

A potom zoznam uložíme stlačením tlačidla Save.

Takýmto spôsobom môžme vytvoriť zoznamy pre všetky učebne, kabinety, zborovňu alebo knižnicu - fantázii sa medze nekladú.

Definovanie zoznamov pre časové obdobia


Teraz zadefinujeme čas, počas ktorého prebieha vyučovanie. Pod zoznamom pravidiel prístupu, teda v rozbaľovacom poli, vyberieme Date and Time, ťukneme na tlačidlo Create new ACL a zadáme:

ACL name : vyucovanie
Days of weak : pomocou klávesy CTRL+ kliknutie myšou označíme všetky položky od monday po friday (pondelok až piatok)
Hours of the Day : zadáme začiatok a koniec vyučovania napr.: 7:00 to 15:00

Definovanie zoznamov zakázaných web serverov


Jednou z najnavštevovanejších stránok, ktorá počas vyučovania rozptyľuje žiakov od práce a navyše znižuje priepustnosť interntetu, je stránka youtube. Môžme teda vytvoriť pravidlo problemove_stranky a vypísať do neho všetky adresy problémových serverov (môže ich byť i viac).

Pod zoznamom pravidiel prístupu teda v rozbaľovacom poli vyberieme Web Server Hostname, ťukneme na tlačidlo Create new ACL a zadáme:

ACL Name : problemove_stranky
Domains : .youtube.com

ACL problemove stranky

Ak by ste potrebovali do zoznamu vložiť iba určitú časť webu, napríklad akčné hry na onlinegames na adrese http://www.onlinegames.sk/index.php?cath=2, použite pravidlo URL Regexp (viď zoznam pravidiel na konci kapitoly).

Zadefinovanie obmedzujúceho Proxy pravidla


Samotné zoznamy, ktoré sme vytvorili ešte nezabezpečia, že bude prístup na stránky (spĺňajúce kritéria zoznamu) zablokovaný alebo povolený. Je ešte potrebné vytvoriť obmedzujúce pravidlo:

Prepneme sa teda hore na záložku Proxy restriction a pod zoznamom pravidiel ťukneme na odkaz Add proxy restrictions

Uvidíme dva stĺpce. V ľavom stĺpci Match ACLs vyberieme ACL zoznamy, ktoré sa majú zhodovať s požiadavkou klienta a vpravom stlpci Don't Match ACLs vyberieme ACL zoznamy, ktoré sa nesmú zhodovať s požiadavkou klienta. Vybrať môžeme i viacero ACL zoznamov naraz.

Ak teda chceme zablokovať problemove_stranky počas vyucovanie na počítačoch ucebna_studenti, v ľavom stĺpci vyberieme pomocou CTRL+klik práve tieto ACL zoznamy, prepínač prepneme do polohy Deny a uložíme stlačením tlačidla Save.

Typy zoznamov ACL na riadenie prístupu


Browser Regexp

Regulárny výraz, ktorý sa zhoduje s typom prehliadača klienta v hlavičke. To umožňuje vytvárať ACL na základe používaného prehliadača. Pomocou tohto typu ACL môžete napríklad vytvoriť iné pravidlá pre používateľov Firefoxu a iné pravidlá pre používateľov Internet Explorera. Toto môže byť využité napríklad na presmerovanie používateľov Firefoxu na stránky určené pre Firefox a používateľov IE na stránky určené pre Explorer. Príklad nie je síce rozumné riešenie,  ale dokumentuje flexibilitu Squidu.

Client IP Address

IP adresa vyžiadaného klienta alebo IP adresa klienta. Táto možnosť odkazuje na zdrojové ACL v konfiguračnom súbore Squidu. Je potrebné zadať IP adresu a sieťovú masku, ale je tiež možné zadať rozsah adries.

Client Hostname

Zhoda na základe doménového mena klienta. Táto možnosť korešponduje so srcdomain ACL a môžete zadať jedno meno domény, zoznam doménových mien alebo súbor, ktorý obsahuje zoznam doménových mien. Tento typ ACL môže zvýšiť oneskorenie a významne znížiť priestupnosť nahranej vyrovnávacej pamäte, pretože Squid musí preložiť adresu na meno pre každý záznam, preto sa miesto tohoto pravidla uprednostňuje pravidlo typu Client IP Address.

Client Hostname Regexp

Zhoda na základe doménového mena klienta (s použitím regulárnych výrazov). Táto voľba korešponduje so srcdom_regex ACL a môžete zadať jedno meno domény, zoznam doménových mien alebo súbor, ktorý obsahuje zoznam doménových mien.

Date and Time

Tento typ plne zodpovedá názvu- dátum a čas, čo znamená že umožňuje vytvoriť ACL, ktoré sú aktívne počas zadaného času v príslušných dňoch týždňa. Táto funkcia je často používaná na blokovanie niektorých typov obsahov alebo niektorých častí internetu počas pracovnej doby alebo vyučovania. Veľa spoločností blokuje pornografiu, Many companies block pornography, zábavu, šport a iné mimopracovné stránky počas pracovnej doby, ale po jej skončení sa odblokujú. To môže v niektorých prípadoch zvýšiť efektivitu práce (alebo môže často uraziť a znechutiť žiakov a zamestnancov). Tento typ ACL umožňuje zadať dni v týždni a časové obdobie alebo vybrať všetky hodiny vo vybraných dňoch.

Dest AS Number

Číslo autonómneho systému cieľa je číslo AS servera, na ktorý sa bude odosielať požiadavka. ACL typ Číslo autonómneho systému sa zvyčajne používa pri Cache Peer, alebo ICP obmedzeniach prístupu. Číslo autonómneho systému sa používa v organizáciách, ktoré majú viacero internetových pripojení a routerov pracujúcich pod jednoduchou administračnou autoritou, ktorá používa rovnaký protokol brány. Ak nerozumiete autonómnym systémom, je najlepšie nepoužívať tento druh ACL.

Source AS Number

Číslo autonómneho systému zdroja  je iný typ ACL závislý na AS čísle zdroja odosielajúceho požiadavku.

Ethernet Address

Ethernetová alebo MAC adresa žiadajúceho klienta. Táto možnosť funguje iba pre klientov v rovnakej lokálnej podsieti a iba na určitých platformách. Tento typ ACL je podporovaný v operačných systémoch Linux, Solaris a niektorých variantách BSD. Tento ACL môže poskytnúť o trochu viac bezpečnú metódu na kontrolu prístupu, pretože MAC adresy sú ťažšie podvrhnuteľné ako IP adresy a môžete tým zabezpečiť, že klient bude z lokálnej siete (otherwise no ARP resolution can take place).

External Auth

Tento typ ACL zavolá externý autentifikačný proces, aby určil, či má byť požiadavka povolená. Pre Squid je dostupných mnoho pomocných autentifikačných programov, vrátane PAM, NCSA, Unix passwd, SMB, NTLM (iba pre Squid 2.4), atď. Autentifikačné programy však nemôžu pracovať ak je zapnuté transparentné proxy (tak ako sme to urobili v našom návode) alebo HTTP akcelerátor.

External Auth Regex

Podobne ako predchádzajúce, aj toto ACL volá externý autentifikačný proces, ale umožňuje použiť vzory regulárnych výrazov alebo nerozlišuje malé a veľké písmená.

Proxy IP Address

Lokálna IP adresa, ku ktorej existuje pripojenie od klienta. Toto ACL umožňuje iba jednu fyzickú sieť, ak sú dostupné viaceré proxy rozhrania.

RFC931 User

Meno používateľa je dané démonom ident, ktorý beží na počítači klienta. To  si vyžaduje, aby bol ident spustený na všetkých klientských počítačoch, ktoré sa chcú touto cestou autentifikovať. Ident nemusí byť bezpečný, okrem prípadov privátnych sietí, keď na jeho bezpečnosti veľmi nezáleží. Väčšina Linuxových a BSD distribúcií obsahuje Ident server a pre Windows sa dajú najsť ident servery zadarmo.

Request Method

Tento typ ACL pracuje s HTTP metódami vo vyžiadaných hlavičkách. To zahŕňa i metódy GET, PUT, atď.

URL Path Regex

Toto ACL pracuje s URL cestami bez protokolu, portu a adresy počítača. Napríklad pri zadaní "http://www.swelltech.com/pokus" bude objektom ACL iba /pokus.

URL Port

Toto ACL platí pre cieľový port požiadavky.

URL Protocol

Toto ACL platí pre protokol požiadavky ako napríklad ftp, HTTP, ICP, atď.

URL Regexp

Toto ACL používa regulárne výrazy nad URL adresami. Môže byť použité na poskytnutie prístupu  na základe častí URL alebo porovnávanie bez rozlišovania veľkosti písmen, atď. Regulárne výrazy, ktoré Squid používa, sú z knižnice GNU Regex library.

Web Server Address

Toto ACL pracuje na základe cieľovej IP adresy Web servera. Môže to  byť jedna IP adresa Squidu, sieťová IP adresa s maskou ale tiež rozsah adries.

Web Server Hostname

Toto ACL platí pre meno cieľového webového servera.

Web Server Regexp

Rovnaké ako predchádzajúce len je možné použit regulárne výrazy.

Poznámka: Viac o regulárnych výrazoch sa môžete dozvedieť na stránke http://www.regularnivyrazy.info/

 

Ako nastaviť školský server, aby dynamicky nastavoval sieťové karty ostatných počítačov

Nastavenie sieťových nastavení na lokálnych počítačoch v sieti je možné pomocu DHCP servera. Tento sa stará o to, aby klient na základe vyslanej požiadavky do siete a následného overenia obdržal IP adresu potrebnú pre fungovanie. Klient v sieti obdrží odpoveď od servera a sám nakonfiguruje sieťové zariadenie, sieťovú kartu. Server prenajme klientovi IP adresu na určitý čas. Ten je závislý od nastavenia. Niekedy však potrebujeme, aby server pridelil klientom vždy tú istú IP adresu. No aj to sa dá ukážeme si to v podkapitole Ako nastaviť školský server, aby prideloval IP adresy na základe MAC adries.

Na nastavenie DHCP nám opäť bude stačiť rozhranie Webmin. Konfigurácia DHCP servera nájdeme pod položku Servery a v nej klikneme na odkaz DHCP. Ak tak urobíme, zistíme, že server DHCP nie je ešte nainštalovaný. V texte sa dozviete, že sa DHCP server nainštalovať aj z tejto stránky. NEROBTE TO!!! Je tu zrejme malá chyba, ktorá spôsobuje, že webmin počas inštalácie so serverom prestane komunikovať. Našťastie sa dá server nainštalovať i iným spôsobom.

Webmin - DHCP1


Inštalácia DHCP servera pomocou rozhrania Webmin

Otvorte položku Ostatné a vyberte Príkazový riadok. Do okna zadajte

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

sudo apt-get install -f -y --force-yes dhcp3-server

(prepínače -f -y a --force-yes zabezpečia , že sa inštalácia vykoná automaticky bez nutnosti odpovedať na otázky)

a stlačte tlačidlo Vykonaj príkaz

Webmin - DHCP2


Vytvorenie podsiete pre DHCP

Tento krok nie je až taký potrebný ale ukážeme ho, pre prípad že by ste chceli vytvoriť dve podsiete napríklad pre každú školskú budovu jednu. Po nainštalovaní DHCP servera môžete otvoriť Servery a klinúť na odkaz DHCP Server. V novootvorenom okne pridáme novú podsieť kliknutím na odkaz Pridať novú subnet.

Webmin - DHCP3

Teraz je potrebné zadefinovať rozsah adries, ktoré bude server automaticky prideľovať ostatným počítačom v sieti. Nastavenie sa opäť líši podľa toho, či máte v počítači jednu alebo dve sieťové karty.

Jedna sieťová karta Dve sieťové karty
Sieťová adresa:10.x.y.0 (x a y sú čísla z vašej IP v EDU#Net)
Sieťová maska:255.255.255.0
Address range:10.X.Y.100 - 10.x.y.254
Sieťová adresa: 192.168.1.0
Sieťová maska:255.255.255.0
Address range:192.168.1.100 - 192.168.1.254

Nastavenie, ktoré sme urobili, hovorí, že má server pridelovať počítačom IP adresy s koncovými číslami 100-254. Je samozrejme možné nastaviť celý rozsah napríklad 1-254, no my sme chceli mať možnosť na niektorých počítačoch IP adresu nastaviť ručne. Na ručné nastavenie nám zostal rozsah adries 2-100 resp 3-100 (v prípade jednej sieťovej karty je 1 router a 2 server).

Po zadaní všetkých parametrov stlačíme tlačidlo Vytvor.

Webmin - DHCP4


Nastavenie údajov pre klientov DHCP servera

Na hlavnej stránke DHCP servera sa v spodnej časti nachádza tlačidlo Edit Client Options. V prípade že ste definovali podsieť, nemusíte klientské nastavenia definovať globálne ale iba pre konkrétnu podsieť (alebo môžete časť zadefinovať globálne a časť pre podsieť).

Na stránke DHCP Servera pribudne nová podsieť. Kliknutím na obrázok znova otvorte jej nastavenia.

Webmin - DHCP5

V spodnej časti pribudli ďalšie tlačítka. Stlačte tlačítko Edit Client Options.

Webmin - DHCP6

Do okienok nastavte nasledujúce údaje v závislosti od počtu sieťových kariet na serveri:

Jedna sieťová karta
Dve sieťové karty
Štandardné routre: 10.x.y.2 (x a y sú čísla IP adresy školy v sieti EDU#Net)
Broadcast adresa: 10.x.y.255
DNS servre: 10.x.y.2 195.146.128.60 195.146.132.59
Subnet maska: 255.255.255.0
Doménové meno: domena.edu.sk
(miesto domena zadajte vašu doménu napr. pre nás gymkremnica)
Štandardné routre: 192.168.1.1
Broadcast adresa: 192.168.1.255
DNS servre: 192.168.1.1 195.146.128.60 195.146.132.59
Subnet maska: 255.255.255.0
Doménové meno: domena.edu.sk
(miesto domena zadajte vašu doménu napr. pre nás gymkremnica)

NEZABUDNITE PREPNÚŤ PREPÍNAČE DO POLOHY VEDĽA ZADANÝCH ÚDAJOV!!! Nakoniec stlačte tlačidlo Uložiť a na ďalšej strane zovu stlačte tlačidlo Uložiť.

Webmin - DHCP7


Spustenie DHCP servera

Teraz stačí spustiť DHCP server kliknutím na tlačidlo Spustiť server.

Webmin - DHCP8

Po spustení môžeme funkčnosť otestovať tak, že na klientskej stanici nastavíme v sieťových nastaveniach "Získať IP adresu automaticky" a "Získať adresu DNS automaticky" (Platí pre Windows XP, v ostatných systémoch sú tieto nastavenia podobné). Po reštarte počítača by si počítač mal sám zistiť sieťové nastavenia od DHCP servera. To znamená, že po reštarte by mal fungovať i internet - stačí teda otvoriť internetový prehliadač a ten by mal načítať internetovú stránku (ak v ňom nemáte nastavený iný počítač ako proxy server).

Problém môže nastať v prípade, že máte iba jednu sieťovú kartu. V tom prípade je v sieti ešte jeden DHCP server - Router CISCO. Občas sa teda môže stať, že klienstská stanica získa nastavenia od Routra CISCO miesto od Nášho servera. Preto je potrebné požiadať o vypnutie DHCP servera na Routri Cisco. POZRI ako-zabezpecit-aby-bol-skolsky-server-viditelny-z-internetu

V prípade dvoch sieťových kariet by malo byť všetko v poriadku ak je jedna sieťová karta pripojená do routra a druhá do switchu, pričom router a switch nesmú byť navzájom prepojené.

Ako nastaviť školský server, aby prideloval IP adresy na základe MAC adries

Dôvod prečo by sme mali chcieť prideľovať počítačom IP adresy na základe MAC adries je ten, že to umožňuje riadiť prístup k internetu pre jednotlivé počítače.

Môžeme napríklad všetkým počítačom z učebne informatiky prideliť adresy z rozsahu  192.168.1.10 - 192.168.1.20 a potom im pomocou pravidiel proxy servera zakázať prístup na niektoré stránky počas vyučovania (viac v kapitole Ako blokovať určité webové stránky v jednotlivých učebniach počas vyučovania).

Aby sme mohli nastaviť prideľovanie IP adries na základe MAC - hardvérovej adresy sieťovej karty, musíme túto MAC adresu zistiť na konkrétnom klientskom počítači.

Zistenie fyzickej adresy na MS Windows stanici

Ak je na klientskom počítači Windows XP, môžete IP adresu zistiť v príkazovom riadku (Štart-->Všetky programy-->Príslušenstvo-->Príkazový riadok) zadaním príkazu:

ipconfig /all

na obrazovke uvidíte výpis podobný tomuto:

Konfigurace IP systému Windows 2000

Název hostitele . . . . . . . . . : nazovpc
Primární přípona DNS. . . . . . . :
Typ uzlu. . . . . . . . . . . . . : Vysílání
Používá směrování IP. . . . . . . : Ne
Používá server proxy WINS . . . . : Ne
Seznam vyhledávání přípon DNS . . : vasadomena.edu.sk

Názov hostiteľa. . . . . . . . . . . . . : nazovpc
Primárna prípona názvu DNS . . . . . . . :
Typ uzla . . . . . . . . . . . . . . . . : Neznámy
Smerovanie protokolu IP povolené . . . . : Nie
WINS Proxy Enabled . . . . . . . . . . . : No

Adaptér siete Ethernet Local Area Connection:

Prípona DNS špecifická pre pripojenie . :
Popis. . . . . . . . . . . . . . . . . . : AMD PCNET Family PCI Ethernet Adapter
Fyzická adresa . . . . . . . . . . . . . : 08-00-27-49-EB-DC
DHCP zapnuté . . . . . . . . . . . . . . : Áno
Automatická konfigurácia zapnutá . . . . : Áno
Adresa IP. . . . . . . . . . . . . . . . : 192.168.1.151
Maska podsiete . . . . . . . . . . . . . : 255.255.255.0
Predvolená brána . . . . . . . . . . . . : 192.168.1.1
Server DHCP. . . . . . . . . . . . . . . : 192.168.1.1
DNS Servers. . . . . . . . . . . . . . . : 192.168.1.1
Prenájom získaný . . . . . . . . . . . . : 1. februára 2009 10:38:56
Prenájom uplynie . . . . . . . . . . . . : 2. februára 2009 10:38:56

Zistenie fyzickej adresy na Linux stanici

Na klientskom počítači sa dá mac adresa zistiť rovnako cez príkazový riadok (Na Ubuntu je to Aplikacie-->Príslušenstvo-->Terminál) zadaním príkazu:

 

ifconfig -a

 

Na obrazovke uvidíte výpis podobný tomuto:

eth0      Link encap:Ethernet  HWaddr 00:0e:2e:9e:58:7e  
inet addr:192.168.1.151 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20e:2eff:fe9e:587e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7653 errors:0 dropped:0 overruns:0 frame:0
TX packets:8581 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4679283 (4.6 MB) TX bytes:1459824 (1.4 MB)
Interrupt:18 Base address:0xf400

Priradenie IP adresy k fyzickej MAC adrese

Cez webový prehliadač zadáme adresu rozhrania Webmin (Ako sa pripojiť do rozhrania Webmin na školskom serveri).

Otvoríme vetvu Servery a ťukneme na odkaz DHCP Server a na stránke, ktorása otvorí klikneme na odkaz Pridať novú skupinu hostiteľov.

Nastavenie DHCP

Nastavenie  DHCP

Teraz môžeme začať vytvárať Klientské počítače. Klikneme na odkaz Pridať nového hostiteľa.

Nastavenie DHCP

  • Zadáme Popis hostiteľa napríklad Učiteľský počítač
  • Meno hostiteľa napríklad Ucitel,
  • do poľa Hardvérová adresa zadajte adresu, ktorú ste získali spôsobom opísaným vyššie,
  • do poľa Pevná IP adresa zadajte IP adresu, ktorú chcete priradiť počítaču napr. 192.168.1.20 alebo 10.x.y.20 (ak máte v serveri iba jednu sieťovú kartu, kde x a y sú čísla vašej podsiete vrámci #EDU.Net),
  • v rozbaľovacom poli vyberieme Skupina,
  • kliknutím na ponúkanú skupinu priradíme počítač do príslušnej skupiny,
  • nakoniec klikneme na tlačidlo Vytvoriť.

Nastavenie DHCP

 

Priradenie skupiny do podsiete a hostiteľa do skupiny je dôležité vykonať správne kvôli dedeniu nastavení klienta. Nastavenie klientov môžete pozmeniť proti nadriadenej podsieti alebo nadriadenej skupine, stačí ak znova otvoríte skupinu alebo hostiteľa a potom v spodnej časti ťuknete na tlačidlo Edit Client Options.

Na koniec je ešte potrebné reštartovať DHCP server.

Overenie pridelenia IP adresy

Po reštarte klientského počítača by mu pri štarte mala byť IP adresa pridelená. Môžme to overiť na stránke DHCP servera kliknutím na tlačidlo List Active Leases.

Ako nastaviť na školskom serveri filtrovanie webových stránok podľa obsahu

Ak ste sa rozhodli, že chcete obmedziť žiakom prístup na stánky, na ktorých je nevhodný obsah, môžete využiť tzv. Content filter - filter obsahu. Jedným z takýchto filtrov je DansGuardian. Na rozdiel od bežných webových filtrov, ktoré udržiavajú obrovské zoznamy zakázaných URL adries, tento filter funguje ako skutočný filter obsahu t.j. vážením výrazov určí či je stránka vhodná alebo nevhodná, dokonca dokáže filtrovať aj obrázky a tiež dokáže filtrovať i URL adresy ako bežné filtre.


 

Inštalácia

Najskôr musíme DansGuardian nainštalovať. Otvorte preto v rozhraní Webmin vetvu Others a ťuknite na odkaz Príkazový riadok, do poľa zadajte príkaz

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

sudo apt-get install -f -y --force-yes dansguardian

a stlačte tlačidlo Vykonaj príkaz. Potom ešte treba chvíľu počkať kým sa proxy server Squid nainštaluje. Potom ako bude inštalácia hotová, zjaví sa priebeh inštalácie.

Webmin - Inštalácia DansGuardian


 

Úprava konfiguračného súboru

Aby bol konfiguračný súbor funkčný je potrebné odstrániť riadok 'UNCONFIGURED' (nekonfigurované)

Tento krok je potrebné vykonať priamo na serveri alebo cez SSH prístup (ako sa pripojiť ku školskému serveru cez ssh).

  • Spustíme Midnight commander príkazom
sudo mc 
  • Prejdeme k súboru
/etc/dansguardian.conf
  • Stlačíme F4
  • Pred slovo UNCONFIGURED (tretí riadok) dopíšeme # (pravý alt+x)
  • Uložíme F2
  • Ukončíme editáciu ESC
  • Ukončíme Midnight Commander F10

 


 

Pridanie modulu do rozhrania Webmin

Aby sa dali zmeniť niektoré nastavenia DansGuardianu, je potrebné do rozhrania Webmin doinštalovať nový modul. Do rozhrania webmin ho vložíme tak, že najskôr ťukneme na vetvu Webmin, potom na odkaz Konfigurácia Webminu a na stránke ktorá sa otvorí, ťukneme na Moduly Webminu.

Webmin - pridanie modulu

Na stránke, ktorá sa zobrazí, prepneme prepínač do polohy Moduly tretích strán z a ťukneme na tlačítko Vyber.

Webmin - Inštalácia modulu2

V ponuke, ktorá sa otvorí vyberte Dansguardian.

Webmin - Inštalácia DansGuardian2

Do okienka sa načítala adresa s miestom, kde je modul uložený, takže už stačí ťuknúť iba na Inštaluj modul.

Webmin - Inštalácia DansGuardian3

Nakoniec ešte obnovíme stránku pomocu tlačidla v prehliadači aby sa nám zobrazil odkaz na práve nainštalovaný modul.


 

Nastavenie predávania dát s proxy serverom Squid

Aby DansGuardian správne fungoval, je potrebné zmeniť načúvací port pre Squid a nastaviť Dansguardian aby svoje požiadavky posielal Squidu. To môžeme urobiť keď ťukneme na vetvu Servery, v nej ťukneme na odkaz Dansguardian a na stránke, ktorá sa otvorí, ťukneme na View/Edit Config.

Webmin - Inštalácia DansGuardian4

V tomto nastavení sa dozviete, že DansGuardian načúva na porte 8080 a svoje požiadavky posiela na port 3128, na ktorom načúva proxy server Squid.

Webmin - Inštalácia DansGuardian5


 

Presmerovanie požiadaviek klientov na port dansguardianu

Toto nastavenie vykonáme pomocou nastavení firewallu. V ľavej časti otvoríme vetvu Sieť a ťukneme na odkaz Linux Firewall. V rozbaľovacom poli vyberieme Network address translation (nat) a ťukneme na tlačidlo Show IPtable. Na stránke, ktorá sa zobrazí v časti PREROUTING ťuknite na pravidlo Redirect, ktoré sme vytvorili v minulej časti.

Webmin - Inštalácia DansGuardian6

Do poľa Additional parameters zadáme miesto --to-port 3128 novú hodnotu --to-port 8080

a nakoniec nastavenie uložíme ťuknutím na tlačidlo Uložiť.

Webmin - presmerovanie na Dansguardian

Teraz je ešte potrebné na stánke firewallu Aplikovať nastavenia

a spustiť script webmin-ipt, aby sa nové pravidlo pre firewall načítalo. Otvoríme položku Systém a klikneme na Štart a vypnutie. Zaškrtneme políčko webmin-ipt a ťukneme na tlačítko Start Selected.


 

Nastavenie filtrov DansGuardianu

Filtre DansGuardianu sú veľmi agresívn, takže sa vám spočiatku bude stávať, že dansguardian občas zablokuje i to, čo by nemal. Je v ňom tiež prednastavené, blokovanie sťahovania súborov s určitými príponami. Z tohto dôvodu by na staniciach s operačným systémom nefungovali aktualizácie.

Zlé nastavenie tohto nástroja môže mať za následok, že sa stránky nebudú korektne načítavať!!! Ak zistíte, že vám niečo nefunguje pravdepodobne bude príčina práve v zlom nastavení tohto servera!!!

Ťuknime teda na vetvu Servery, v nej ťukneme na odkaz Dansguardian a na stránke, ktorá sa otvorí, ťuknime na View/Edit Groups.

Webmin - DansGuardian1

Otvorí sa nám zoznam pravideil skupiny. Pravidlá sú rozdelené podľa významu takto:

  • bannedphraselist - zoznam zakázaných fráz
  • exceptionphraselist - zoznam povolených fráz
  • weightedphraselist - zoznam vážených fráz
  • bannedsitelist - zoznam zakázaných stránok
  • greysitelist - zoznam stránok, ktorým nemá byť kontrolovaná adresa ale iba obsah
  • exceptionsitelist - zoznam stránok, ktoré vôbec nemajú byť kontrolované
  • bannedurllist - zoznam zakázaných adries URL
  • greyurllist - zoznam URL adries, ktorým nemá byť kontrolovaná adresa ale iba obsah
  • exceptionurllist - zoznam URL adries, ktoré vôbec nemajú byť kontrolované
  • bannedregexpurllist - zoznam zakázaných výrazov v adresách URL
  • bannedextensionlist - zoznam zakázaných prípon súborov
  • bannedmimetypelist - zoznam zakázaných MIME typov
  • pics - pravidlá načítavania obrázkov
  • contentregexplist - zoznam cenzurovaných výrazov

 


 

Zakázané prípony

Spomedzi pravidiel najskôr vyberieme do zoznamu zakázaných prípon bannedextensionlist.

Webmin - DansGuardian2

Prípony v súbore sú rozdelené na štyri časti:

  1. Súbory so spustiteľným kódom (exe, com, bat, dll...) - to sú súbory v ktorých sa môže nachádzať škodlivý kód ako napr. vírusy
  2. Súbory ktoré síce nie sú spustiteľné, ale môžu obsahovať tzv. makrá, ktoré škodlivý kód obsahovať môžu (doc, xls).
  3. Ostatné súbory, ktoré môžu obsahovať spustiteľný kód (zip, rar)
  4. Súbory, ktoré zahlcujú šírku prenosového pásma (videá, mp3, ...).

Spočiatku sú zakázané takmer všetky prípony. Odporúčame teda veľmi starostlivo zvážiť, ktoré prípony zakážete, a ktoré necháte povolené. minimálne odporúčame povoliť súbory cab, dll a msi, bez ktorých nefunguje automatická aktualizácia MS Windows (samozrejme môžete aktualizáciu na klientoch vykonávať i ručne ak v prehliadač dočasne zmeníte nastavenie proxy servera na port 3128). Povolíte ich tak, že pred príponu dopíšete znak # (na slovenskej klávesnici AltGR + x).

Webmin - DansGuardian3

 


 

Zakázané MIME typy

Súbor bannedmimetypelist obsahuje MIME typy, ktoré určujú aký typ obsahu sa môže prehrať v prehliadači priamo zo stránky. Povolené sú všetky typy ale ak chcete kvôli zrýchleniu komunikácie žiakom zakázať prehrávanie niektorého typu (napr. videa), stačí vymazať znak # pred daným typom.

 


 

Zakázané výrazy v adresách URL

V súbore bannedregexpurllist sa nachádzajú pravidlá, ktoré zablokujú URL adresy, ktoré obsahujú určitý výraz. Pri nastavení pravidiel buďte opatrní, pretože ak napríklad vložíte výraz "sex" nezablokujete len sex.com ale tiež middleesex.com.

 


 

Zakázané adresy URL

V súbore bannedurllist sa nachádza zoznam zakázaných URL adries. Uožňuje zakázať adresy ako napríklad http://www.domena.com/porno

 


 

Zakázané stránky

V súbore bannedsitelist sa nachádza zoznam zakázaných URL adries. Uožňuje zakázať adresy ako napríklad porno.com

 


 

Zakázané frázy

V súbore bannedphraselist môžeme zadefinovať slová alebo výrazy, ktoré spôsobia zablokovanie stránky.

V súbore sa už nachádzajú tri zoznamy

.Include</etc/dansguardian/phraselists/pornography/banned> - pornografia
.Include</etc/dansguardian/phraselists/illegaldrugs/banned> - nelegálne drogy
.Include</etc/dansguardian/phraselists/gambling/banned> - hazard, stávkovanie

Tu odporúčame posledný zoznam zrušiť, pretože je málo pravdepodobné, že žiaci budú vyhľadávať stávkovanie v cudzom jazyku.

Ak chcete zadefinovať nové pravidlá tak sa to robí takto:

  • Každý výraz či slovo je potrebné vložiť do zátvoriek < >
  • < test> bude platiť pre každé slovo začínajúce "test"
  • <test > bude platiť pre každé slovo končiace "test"
  • <test> bude platiť pre každé slovo obsahujúce "test"
  • < test > bude platiť iba pre slovo "test"
  • <presná fráza> bude platiť iba pre presnú frázu
  • <test>,<druhytest> bude platiť iba ak sa na stránke nájdu obe slová
  • samozrejme je možné pravidlá kombinovať napr.:< test>,<druhytest>

Napríklad môžete zadefinovať takéto pravidlá:

<Videa>,<Bradavky>
<Fotky>,<Prsia>

 

Zoznamy s výnimkami

Veľmi užitočné je definovať výnimky spomedzi stránok URL adries a fráz, ktoré Dansguardian nemá blokovať.

Napríklad v súbore so stránkami exceptionsitelist môžete zadefinovať takéto výnimky:

 

dansguardian.org
windowsupdate.microsoft.com
windowsupdate.com
post.sk
pobox.sk
forum.ubuntu.cz
edu.sk

 


 

Šedé zoznamy

Zoznamy greyurllist a greysitelist umožňujú pre určité stránky vypnúť hľadanie zakázaných výrazov v adrese URL ale ponechávajú zapnuté filtrovanie obsahu.


 

Zoznam vážených výrazov

 

V súbore weightedphraselist je možné definovať zlé a dobré výrazy tak, že každemu výrazu sa priradí hodnota. Napríklad výrazom sex a tvrdý priradíme kladnú - zlú hodnotu <sex><20> <tvrdý><10> a výrazu výchova priradíme zápornú - dobrú hodnotu <výchova><-100>. Výsledok bude ten, že ak sa na stránke bude nachádzať "tvrdý sex" tak sa stránka zablokuje ale ak tam bude "sexuálna výchova" spolu s "tvrdý penis" stránka sa povolí. Jediný háčik je diakritika - je potrebné použiť iba slová alebo časti slov bez diakritiky.

Aby sa stránky tak často neblokovali je potrebné práve do tohto súboru definovať niektoré slovenské výrazy a naopak cudzojazyčné zoznamy slov odstránte.

Príklad niekoľkých dobrých slov.

<enstvo><-10>
<kolstvo><-10>
<vzdel><-10>
<chova><-10>
<veda><-10>
<politika><-10>
<zdravie><-10>


 

Zoznam cenzurovaných slov

V súbore contentregexplist môžeme zadefinovať slová, ktoré sa majú nahradiť napríklad slovom "cenzurované". S touto funkciou však narábajte veľmi opatrne, pretože môže spôsobiť že sa nahradia aj HTML značky a ich parametre, čo bude mať za následok nefunkčnosť niektorých stránok.

Tu je príklad ako súbor môže vyzerať (ospravedlňujeme sa za vulgarizmy, ktore sme použili ako ukážku):

" kokot | kokoty | kokot "->" **cenzurované** " 


 

Vypnutie filtra pre určité počítače a používateľov

Samozrejme je možné zadefinovať používateľou ale IP adresy počítačov, ktorým sa stránky nebudú filtrovať. Ale je tiež možné zadefinovať zoznam používateľov a IP adresy počítačov, ktorým sa má uplne zablokovať prístup na internet.

Stačí ťuknúť na odkaz Dansguardian a na stránke, ktorá sa otvorí, ťuknime na View/Edit Files.

Webmin - DansGuardian4

 


 

Aplikovanie nových nastavení

Po tom ako zmeníte pravidlá filtrovania je potrebné reštartovať DansGuardian.

Webmin - DansGuardian5

 


Ochrana Dansguardianu pred neoprávneným prístupom z vonkanšej siete

Dansguardian bohužiaľ nemá možnosť ochrany proti prístupu z vonkajšej siete. Toto je možné zabezpečiť dvoma sôsobmi. Jeden je autentifikácia prebraná od proxyservera Squid a druhým je ochrana pomocou firewallu. Prvý spôsob by vyžadoval aby sa pri každom pokuse pripojiť na internet používateľ zadal svoje heslo, čo je dosť obmedzujúce, preto sme zvolily druhý spôsob.

Otvorte vetvu Sieť a ťuknite na odkaz Linux Firewall. Na stránke ktorá sa otvorí vytvoríme nové pravidlo nad prvé pravidlo Drop (predpokladáme že už máte vytvorené pravidlá firewallu), ťuknutím na modrú šípku smerujúcu nahor.

Nastavíme takéto vlastnosti:

Prepínač Action to take prepneme do polohy Drop
Network Protocol nastavíme na Equals TCP
Destination TCP or UDP port nastavíme na Equals port 8080

Ťukneme na tlačidlo Uložiť.

Na stránke s pravidlami ťukneme na tlačidlo Apply Configuration

Nakoniec ešte musíme znova načítať pravidlá firewallu.

Otvoríme vetvu Systém a ťukneme na odkaz Štart a vypnutie. Zaškrtneme pravidlo webmin-ipt a ťukneme na tlačítko Start.

 

Ako vytvoriť nových používateľov školského servera

Novým používateľom, ktorých vytvoríme na serveri sa automaticky vytvorí ich domovský priečinok, v ktorom budú mať mimo iného i priečinok kam sa bude ukladať pošta.

Otvoríme vetvu Systém a klikneme na Users and Groups. Na otvorenej stránke ťukneme na odkaz Create a new user.

Teraz zadáme pre používateľa prihlasovacie meno do políčka Username, jeho skutočné meno do poľa Real name, do poľa Normal password zadáme pre neho rovnaké heslo ako je jeho prihlasovacie meno. Ak sa jedná o žiaka zaradíme ho do novej skupiny, ktorú nazveme podľa jeho triedy. Nakonies stlačíme tlačidlo Vytvor

Pri vytváraní ďalšieho používateľa z rovnakej skupiny už skupinu stačí do poľa Existing group uviesť už existujúcu skupinu alebo vybrať zo zoznamu pomocou tlačidla za týmto poľom.

Používateľov je tiež možné zaraďovať do viacerých skupín - napríklad pán riaditeľ môže byť súčasne v skupine "ucitel" i v skupine "vedenie". Viacero skupín môžeme vybrať pomocou myši a klávesy CTRL v poli Secondary groups

Ako preberať poštu z doménového koša na vzdialenom serveri na školský server

Teraz, keď už máte vytvorených používateľov, môžeme nastaviť odosielanie a prijímanie pošty. Všetky školy zapojené do projektu Infovek mali zriadený doménový kôš na ST Online. Do doménového koša prichádza všetka pošta určená pre školu. Z tohto koša ho potom školský server môže preberať a triediť svojím používateľom. Školy mali tiež možnosť požiadať miesto doménového koša o tri emailové adresy. Ak je to váš prípad, je možné opätovne požiadať o obnovu doménového koša, no lepšou možnosťou je požiadať o zmenu DNS záznamu aby sa pošta doručovala priamo na váš server. Túto možnosť si ukážeme v nasledujúcej kapitole


Preberanie pošty z doménového koša

Najskôr musíme nainštalovať program, ktorý bude poštu preberať. Otvorte preto v rozhraní Webmin vetvu Others a ťuknite na odkaz Príkazový riadok, do poľa zadajte príkaz

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

sudo apt-get install -f -y --force-yes fetchmail

Otvorte vetvu Servery a ťuknite na odkaz Fetchmail Mail Retrieval. Do poľa zadajte meno používateľa, u ktorého sa bude pošta triediť a nakoniec stlačnte tlačidlo Add Fetchmail server for user.

Na stránke ktorá sa otvorí nastavte nasledujúce parametre:

  • Server name: mail.stonline.sk
  • Protocol: Pop3
  • Authentication method: PASSWORD
  • Remote user: - login k doménovému košu na ST Online
  • Remote password: - heslo k doménovému košu na ST Online
  • Local user(s): *
  • Leave messages on server? Nie
  • Always fetch all messages? Ano

Nakoniec údaje uložte kliknutím na tlačidlo Vytvor.

Teraz si môžete overiť funkčnosť kliknutím na odkaz Check All Servers. Mala by sa prevziať pošta aroztriediť medzi používateľov.


Nastavenie triedenia pošty používateľom

Bohužiaľ cez rozhranie Webmin sa nedá urobiť všetko (aspoň zatiaľ nie). Niektoré veci bude potrebné urobiť ručne. Prihlásime sa teda na server pomocou SSH prístupu (Ako sa pripojiť ku školskému serveru cez ssh) a spustíme Midnight commander (zadaním sudo mc). V domovskom priečinku sa nachádza súbor .fetchmailrc, ktorý otvoríme (F4) a doplníme hrubovyznačené riadky.

poll mail.stonline.sk with
proto POP3
auth password localdomains <domena.edu.sk> envelope 'Original-recipient:' qvirtual 'rfc822;' user <login> pass <heslo> is * nokeep fetchall

Samozrejme výrazy v zátvorkách <> je potrebné nahradiť vašimi hodnotami.

Okrem týchto dvoch riadkov odporúčame na začiato dopísať tieto tri nastavenia:

Nastaviť komu majú byť doručované nedoručiteľné správy.

set postmaster <spravca@domena.edu.sk> 

Zakázanie posielania chabových správ

set no bouncemail

a nastavit aby sa neupravovali hlavičky emailov.

set invisible 

Nakoniec súbor uložíme (F2).


 

Nastavenie pravidelnej kontroly novej pošty v doménovom koši

 

Ako nastaviť doménové mená školskému serveru.

O doménovom serveri sme už hovorili v časti o ukladaní doménových mien. V tejto časti si povieme ako priradiť doménové mená nášmu serveru.

Ak správne nastavíme DNS, potom môžeme k serveru pristupovať miesto IP adresy iba pomocou jeho mena. Rovnako môžeme serveru nastaviť i viacero mien napríklad mail.nasadomena.edu.sk.

Domenové mená sa definujú do zón. Jeden zónový súbor by mal obsahovať údaje o jednej doméne, adresách v rámci tejto domény a umožňuje preklad doménového mena servera na jeho IP adresu. Na opačný preklad slúžia reverzné zónové súbory, ktoré definujú záznamy v špeciálnej doméne "in.addr-arpa". Reverzné DNS záznamy nie sú vo všeobecnosti povinné, mnoho služieb ich však vyžaduje (napr. niektoré konfigurácie mailových serverov neprijímajú maily od serverov bez reverzného záznamu) a preto by ste ich mali používať minimálne pre vaše servery, ktoré komunikujú s Internetom.

Viac informácií nájdete na http://deja-vix.sk/sysadmin/dns.html


 

Vytvorenie hlavnej zóny

Otvorte vetvu Servery a ťuknite na odkaz BIND DNS Server. Na stránke, ktorá sa otvorí, ťuknite na odkaz Create master zone.

DNS vytvorenie zóny 1

  • Do poľa Domain name / Network zadajte vasadomena.edu.sk
  • do poľa Master server zadajte ns.vasadomena.edu.sk
  • do poľa Email address zadajte email spravca@vasadomena.edu.sk

Miesto vasadomena zadajte vašu doménu vašej školy (my sme zadali gymkremnica).

DNS vytvorenie zóny 2

 


 

Vytvorenie hlavnej reverznej zóny

Vrátime sa späť nastránku BIND DNS Server a znova ťukneme na odkaz Create master zone.

Tento raz však prepínač Zone type prepneme do polohy Reverse (Addresses to Names). Ostatné parametre nastavíme takto

  • Do poľa Domain name / Network zadajte začiatok vašej IP adresy v sieti EDU#Net v tvare 10.x.y (bez koncovej bodky)
  • do poľa Master server zadajte ns.vasadomena.edu.sk
  • do poľa Email address zadajte email spravca@vasadomena.edu.sk

 

Webmin - DNS reverzna zona

 


Definovanie adries

Po vytvorení zón, na stránke zóny vasadomena.edu.sk ťuknite na Adress.

DNS vytvorenie zóny 3

Teraz zadefinujeme všetky mená, ktoré chceme priradiť serveru. Meno definujem vždy aj s doménou a na jeho konci vždy dáme bodku. Mená sa automaticky vytvoria i v reverznej zóne.

Zadefinujme teda nasledujúce mená:

Name: Server1.vasadomena.edu.sk.
Address: 10.x.y.2

Name: vasadomena.edu.sk.
Address: 10.x.y.2

Name: mail.vasadomena.edu.sk.
Address: 10.x.y.2

Name: ns.vasadomena.edu.sk.
Address: 10.x.y.2

Kde Server1 je meno servera a x a y sú čísla z IP adresy vašej školy v rámci siete EDU#Net.

DNS vytvorenie adresy


Zadefinovanie menného aliasu pre službu WWW

Menný alias pre www službu zadefinujeme kliknutím na Name Alias.

DNS Alias na www

Zadajte nasledujúce údaje:

Name: www.vasadomena.edu.sk.
Real Name: Server1

Nezabudnite na konci bodku.

DNS Alias na www2


Zadefinovanie mena poštového servara

Na stránke Zéony ťuknite na odkaz Mail Server.

DNS Poštový server

Zadajte nasledujúce údaje:

Name: vasadomena.edu.sk.
Mail Name: mail.vasadomena.edu.sk.
Priority: 10

Nezabudnite na bodku na konci záznamov.

DNS Poštový server2


Vytvorenie reverznej zóny

 

Nakoniec ešte aplikujte nastavenia kliknutím na tlačidlo Apply Changes.

Webmin - Ukladanie DNS 5


 

Týmto sme vytvorili všetky potrebné záznamy pre server. Neskôr však ale ešte pridáme záznamy o ďalších počítačoch v našej sieti. 

Ako vytvoriť Maildir pre IMAP/POP server "Courier IMAP"

    * dokumentácia k adduser 

man adduser

    * pohľadajte zmienku o súbore adduser.local
    * nájdete, že mal by sa mal nacházať v 

/usr/local/sbin/adduser.local

    * ak tam nie je, tak ho vytvorte, argumenty do tohto súboru: username uid gid home-directory
    * to je vlastne nejaký post-adduser skript. Keď vytvoríte usera, adduser na konci zavolá adduser.local (musí byť spusiteľný) a v ňom možete vykonať ďalšie operácie 

V podstate, potrebujete tam dať niečo ako:

maildirmake ${4}/Maildir
chown -R ${2}:${3} ${4}/Maildir

ak

${2} je uid
${3} je gid
${4} je homedir

    * skúste pridať tie dva riadky uvedené vyššie, do adduser.local, potom 

chmod 700 adduser.local

a pridajte nejakého usera. Malo by to vytvoriť aj Maildir v jeho domácom adresári.

ls -la ~peter/Maildir ? 

drwx------  7 peter peter 4096 Dec 22 11:17 .
drwxr-xr-x  3 peter peter 4096 Dec 22 10:48 ..
drwx------  6 peter peter 4096 Dec 22 11:17 .Trash
drwx------  2 peter peter 4096 Dec 22 10:48 courierimapkeywords
-rw-r--r--  1 peter peter   12 Dec 22 11:17 courierimapsubscribed
-rw-r--r--  1 peter peter   15 Dec 22 10:49 courierimapuiddb
drwx------  2 peter peter 4096 Dec 22 10:48 cur
drwx------  2 peter peter 4096 Dec 22 10:48 new
drwx------  2 peter peter 4096 Dec 22 11:19 tmp


TEX v Moodle

Dobry den,

Nainstaloval Moodle na
skolsky server UBUNTU. Funguje az na jednu malickost: neviem pisat
matematicke vzorce. V Moodle som v nastaveniach povolil v Moduloch
Filter TEX, ktory to umoznuje. Ked som to spravil cvicne doma na
pocitaci kde mam XAMPP, vsetko bolo OK. Nahral som to na skolsky
server a tam sa vzorec nepodarilo zobrazit. Ine obrazky, vlozene sa
daju zobrazit. Myslim si, ze chyba bude niekde v nastaveniach servera.
V prilohe pripajam obr.

 

Dakujem za radu.

Navoy.

Ako nastaviť poštový server na školskom serveri

V predchádzajúcej časti sme hovorili ako prevziať poštu z doménového koša. Doménový kôš však nie je najšťastnejšie riešenie, najmä kvôli tomu, že do nej môže prísť aj mail pre neexistujúceho používateľa. Napríklad ak niekto pošle mail abrakadabra@vasadomena.edu.sk tak príde do doménového koša. Navyše niektoré školy si už požiadali o nahradenie doménového koša tromi mailovými adresami. Rozhodne je teda lepšie, požiadať o zmenu DNS záznamov aby sa pošta doručovala priamo na váš server.

Poštový server však potrebujete i v prípade, že používate doménový kôš. Odosiela sa cez neho pošta.


Hlavné nastavenia poštového servera Postfix

Otvorte vetvu Servery a ťuknite na odkaz Postfix Mail Server. Na stránke, ktorá sa otvorí ťukneme na odkaz General Options.

Webmin - Postfix1

Nasledujúce parametre nastavte takto:

  • What domain to use in outbound mail: Use domainname
  • Otvorte vetvu Servery a ťuknite na odkaz Postfix Mail Server. Na stránke, ktorá sa otvorí ťukneme na odkaz
  • What domains to receive mail for: edunet-static-c.87-a-b.telecom.sk, domenaskoly.edu.sk, Server1.domenaskoly.edu.sk, localhost.domenaskoly.edu.sk, Server1.localdomain localhost.localdomain, localhost
  • Internet hostname of this mail system: domenaskoly.edu.sk
  • Local networks: 127.0.0.0/8, 192.168.1.0/24, 87.a.b.c

Kde domenaskoly je názov vašej domény v rámci siete EDU#net a a,b,c sú čísla IP adres, ktorú vám pridelí T-com. Server1 je názov vášho servera, ktorý ste mu dali pri inštalácii.

 


Nastavenie SMTP servera

Webmin - Postfix1

Tu do poľa Restrictions on recipient nastavte obmedzenia permit_mynetworks reject_unauth_destination.

Toto nastavenie je veľmi dôležité, ak ho neurobíte, bude môcť ktokoľvek prostredníctvom vašeho servera odoslať poštu, takže sa stanete rozosielateľmi nevyžiadanej pošty - spamu, čo bude viesť k zápisu vašej adresy do tzv. Blacklistov a ostatné serveri prestanú prijímať od vás poštu.

Nakoniec stlačte tlačidlo Save and Apply.

Webmin - Postfix3

 


Vytvorenie Open SSL certifikátu

Prihláste sa pomocou SSH k serveru (Ako sa pripojiť ku školskému serveru cez ssh). Zadajte príkaz, ktorý vygeneruje certifikáty.

openssl req -new -outform PEM -out ssl-cert-snakeoil.pem -newkey rsa:2048 -nodes -keyout ssl-cert-snakeoil.key -keyform PEM -days 3650 -x509 

V tomto riadku je pre vás užitočné vedieť, že hodnota 3650 je dĺžka platnosti certifikátu. Takže takto nastavenou hodnotou vygenerujeme certifikát, ktorý bude platný približne 10 rokov. Samozrejme ak sa vám zdá, že je to z hľadiska bezpečnosti príliž dlhá doba, tak môžete zvoliť menšiu hodnotu.

Na otázky odpovedajte takto:

Country name: SK
State or Provicne Name: Slovak Republic
Locality Name: Vaše mesto (v našom prípade Kremnica)
Organization Name: Názov vašej školy (v našom prípade Gymnázium)
Organization Unit Name: nechať nevyplnené (iba stlačiť enter)
Comon Nam: mail.vasadomena.edu.sk (v našom prípade mail.gymkremnica.edu.sk)
Email Address: spravca@vasadomena.edu.sk

Súbory s certifikátmi presuňte do správnych priečinkov.

sudo mv ssl-cert-snakeoil.key /etc/ssl/private/
sudo mv ssl-cert-snakeoil.pem /etc/ssl/certs/

Teraz sa znova vrátime do rozhrania Webmin otvoríme vetvu Servery a ťuknite na odkaz Postfix Mail Server. Na stránke, ktorá sa otvorí ťukneme na odkaz SMTP Authentication And Encryption.

Webmin - Postfix2

Na nej skontrolujeme správnu cestu k certifikátom.

Nakoniec je ešte potrebné zastaviť a znova spustiť Postfix.

Rovnako skontrolujeme nastavenia certifikátov v nastaveniach Dovecot IMAP/POP3 Servera.


Nastavenie poštového klienta

Pravdepodobne najvhodnejším klientom pre poštu je Mozilla Thunderbird. Funguje rovnako dobre v operačných systémoch MS Windows i Linux.

Po inštalácii na klientskom počítači zvolíme vytvorenie nového poštového účtu.

Thunderbird 1

Zadáme celé meno používateľa a jeho emailovú adresu (predpokladáme, že ste používateľské kontá na serveri už vytvorili).

Thunderbird 2

Zvolíme Imap prístup a server pre príjem i odosielanie pošty nastavte ako mail.vasadomena.edu.sk (v našom prípade mail.gymkremnica.edu.sk).

Thunderbird 3

Ako používateľksé meno pre príjem pošty zadajte login používateľa.

Thunderbird 4

Nazov účtu môžeme nechať nezmenený.

Thunderbird 5

Na ďalšej obrazovke môžeme skontrolovať správnosť údajov.

Thunderbird 6

Teraz je potrebné nastaviť šifrované spojenie so serverom. Zvolte Nástroje > Nastavenie účtov (MS Windows) alebo Úpravy < Nastavenie účtov.

Thunderbird 7

V ľavej časti ťukneme na Nastavenie servera a prepínač prepneme do polohy TLS, ak je k dispozícii.

Thunderbird 8

Teraz v ľavej časti ťukneme na Server pre odosielanie pošty a ťukneme na tlačidlo Upraviť.

Thunderbird 9

V dialógovom okne opäť prepínač nastavte do polohy TLS, ak je k dispozícii a stlačte tlačidlo OK.

Thunderbird 10

Nakoniec ešte môžeme nastaviť aby Thunderbird dôveroval označenie spamu SpamAssassinom.

Thunderbird 11

Po potvrdení tlačidlom OK Vás Thunderbird upozorní na certifikát a spýta sa či ho chcete akceptovať. Zvolte trvalé akceptovanie.

Thunderbird 12

Pred pripojením na server sa vás Thunderbird spýta na heslo používateľa. Ak sa pripája používateľ z domáceho počítača, môžu zvoliť uloženie hesla. AK sa však pripájajú na verejnom mieste tak je potrebné používateľov poučiť aby túto možnosť nepoužili.

Thunderbird 13

Ako presunuť webovú stránku z webhostingu na školský server

Každá škola má od T-comu pridelený webový priestor s veľkosťou 30MB. Niektorým školám takýto priestor nestačil, a preto si niektoré požiadali o rozšírenie webového priestoru na 100 MB. Tiež je možnosť u T-comu požiadať o dynamicky web s podporou PHP a MySQL, ich server však beží na Windows, preto o každú zmenu nastavení treba žiadať, čo je dosť nepraktické. V prípade, že ste sa rozhodli nainštalovať školský server podľa nášho návodu je celkom dobré premiestniť naň aj webovú stránku.

Pred tým, ako požiadate o zmenu DNS záznamu v T-come aby vasmu serveru pridelil verejnu IP adresu a nastavil preklad adries, je potrebné aby ste celý obsah webu presunuli z webhostingu v T-come na váš server. Je to možné urobiť tak že sa prihlásite na server (pomocou prgramu Putty alebo priamo) a spustíte Midnight Commander (dalej MC).

sudo mc 

V ľavom okne sa nastavte do priečinka /var/www.  Potom sa stlačením F9 sa dostanete do hornej ponuky, v ktorom sa nastavte na vpRavo a stlačte  kláves Enter. Zjaví sa ponuka, v ktorej vyberte FTP pripojenie.

Midnight Commander

Do okna zadajte:

login:heslo@www.vasadomena.edu.sk 

Midnight Commander2

Po pripojeni oznacte vsetky priečinky a súbory vo vašom webpriestore pomocou klávesy Ins (prefarbia sa na žlto) a zvolte kopírovať stlačením F5.

Midnight Commander3

Po prekopírovaní je ešte potrebné zmeniť oprávnenia na súbory aby ich mohli všetci pozerať z internetu. Vypnite panely stlačením Ctrl+o a zadajte príkaz:

chown -R www-data.www-data /var/www 

Teraz môžete otestovať či sa stránka zobrazí, ak na ľubovoľnom klientskom počítači do prehliadača zapíšete ako adresu IP adresu servera 192.168.1.1 (dve sieťové karty) alebo 10.x.y.2 (jedna sieťova karta). 

Ako zabezpečiť aby bol školský server viditeľný z internetu?

Aby bol server viditeľný z internetu, je potrebné požiadať o zmenu DNS záznamov.

Môžete tak urobiť pomocou kontaktného formuláru na stránke

http://skoly.infovek.sk

  1. Na tejto stránke sa prihláste pomocou čísla školy prideleným projektom Infovek a príslušným heslom.
  2. Kliknite na Formulár
  3. Vyberte Žiadosť o zmenu DNS záznamu domény pod EDU.SK
  4. Napíšte žiadosť takéhoto znenia:

IC: vase cislo infoveku
DOMENA: vasa doména
DNS: Presmerovanie záznamov na náš server

Pred požiadaním sa uistite, že ste vykonali všetky potrebné kroky:

prosíme o

  • pridelenie verejnej IP adresy z rozsahu 87.a.b.c
  • preklad adresy z adresy 87.a.b.c na 10.x.y.2 tak aby sa web otváral priamo z nášho servera - kde x a y sú čísla vašej IP adresy v sieti internet a posledné číslo je číslo počítača vo vašej sieti (ak ste postupovali podľa nášho návodu je to 2)
  • vytvorenie resp. zmenu zaznamu, tak aby www.vasadomena.edu.sk smerovala na vas server.
  • vytvorenie nového záznamu mail.vasadomena.edu.sk, ktorý bude ukazovať na adresu nášho servera t.j. s 87.a.b.c pre vonkajší svet a 10.x.y.2 pre vnútornú sieť medzi školami v sieti EDUNET
  • zmenu MX záznamu pre našu doménu tak, aby ukazoval na DNS meno mail.vasadomena.edu.sk (miesto vasadomena zadáte vašu doménu napr. pre nás by bola adresa mail.gymkremnica.edu.sk)
  • Vypnutie DHCP na routeri CISCO
  • Povolenie portov pre sužby www, https, pop3, smtp, imap, imaps, pop3s, a port 10000 (nemusíte žiadať všetky, len tie ktoré budete používať. môžete tiež žiadať i ďalšie porty, alebo ak máte server s dvoma kartami tak môžete požiadať o full trafic - v prípade iba jednej karty full trafic nie je bezpečný)

Infolinka Infoveku

tel: 0800/123369

email: infovek@telecom.sk

IP adresy v školskej sieti s routerom Cisco od ST

Nové verejné IP adresy od Telecomu

Každá škola dostala rozsah 8 verejných IP adries v tvare 87.197.A.B:

1. adresa: číslo B bude celočíselný násobok 8 a čísla A, B su jedinečné pre každú školu. Táto adresa sa nazýva adresou siete (network address) a nie je možné prideliť ju žiadnemu počítaču. Táto adresa je nepoužiteľná.

2. adresa 87.197.A.B+1: budú sa na ňu prekladať všetky vnútorné adresy obyčajných počítačov v škole.

3. - 6. adresu 87.197.A.B+2 až 87.197.A.B+5 možno použiť ako verejné IP adresy pre servery vo vnútri školskej siete. Ak ich chceme použiť, je treba požiadať ST, aby urobili preklad danej verejnej IP adresy na konkrétnu vnútornú adresu servera v školskej sieti.

7. adresa 87.197.A.B+6 je verejná IP adresa, ktorá sa neprekladá. Počítač vo vnútri sieti môže byť priamo prístupný pod touto adresou. Je to pre programy, ktoré nemajú radi preklad adries, napríklad IP telefónia. O túto adresu treba tiež požiadať ST, pretože adresa nie je štandardne aktívna.

8. adresa 87.197.A.B+7 je tzv. broadcastova adresa, ktorá je nepoužiteľná.

DNS servery Telecomu: 195.146.132.59, 195.146.128.60

Brána: 10.1.128.1 

Zrušenie prekladu adries

S ST sa dá dohodnúť, že sa preklad IP adries zruší. Servery vo vnútornej sieti budú mať rovno adresy 87.197.A.B+2 až +6 (+1 bude IP adresa Cisca ako default gateway). Preklad adries si budú servery robiť sami.

Vnútorné adresy pre obyčajné počítače

Lan školy: 10.A.B.0
Brána, DHCP: 10.A.B.1
Maska: 255.255.255.0
Dynamické IP adresy: 10.A.B.100 až 10.A.B.254
Pevné IP adresy: 10.A.B.2 až 10.A.B.99

Niekedy sa nastavovala IP adresa tlačiarne 10.A.B.10. Čísla A, B a adresy si môžete overiť v Linuxe príkazom ifconfig eth0. Vo Windows, keď spustíte príkazový riadok, napíšete cmd a do otvoreného okna napíšete príkaz ipconfig /all.

Kontakt na Telecom

ST je možné kontaktovať na adrese infovek@telecom.sk. Treba uviesť adresu a meno školy, infovekové číslo, druh pripojenia k internetu, svoje existujúce privátne a verejné IP adresy, čo treba zmeniť a ako.

Ako nainštalovať webmail na školskom serveri

V prípade, že požiadate o otvorenie portov pop3, imap a smtp, používatelia si môžu nastaviť svojich emailových klientov i doma. Menej skúsený používatelia však túto možnosť nebudú využívať. Aby sme umožnili používanie mailových schránok používateľom i z domu, je potrebné použiť oveľa bežnejšiu službu internetu - WWW. Služba, ktorá umožňuje používateľom prístup ku svojim emailovým schránkam prostredníctvom služby www sa volá Webmail.

Na výber je niekoľko rozhraní. Najviac rozšírenými su tieto:

  • Squirrelmail
  • Open WebMail
  • Horde
  • RoundCube

Všetky štyri rozhrania majú i podporu slovenského jazyka. Čo sa týka ostatných parametrov tu je stručný prehľad funkcií.

Squirrelmail

Je rozhranie s dlhou tradíciou, jeho výhodou je dostupnosť veľkého množstva rozšírení. Nevýhodou je veľmi jednoducho vyzerajúce grafické rozhranie. Pri inštalácii v Ubntu sme tiež mali problém so slovenským rozhraním.

Open WebMail

Je ďalší populárne rozhranie, kvoli závažným problémom s bezpečnosťou však bolo z repozitárov Ubuntu 7.10 odstránené.

Horde

Je ďalšie z obľubených rozhraní pod Ubuntu však je jeho inštalácia dosť obtiažna.

Roundcube

Je pomerne mladé rozhranie, ktorého najväčšou výhodu je prístup cez AJAX a veľmi jednoduchá inštalácia.

Z toho čo bolo povedané je jasné, že sme si vybrali Roundcube. Tu by sme uvítali keby ste nám napísali viac i ostatných rozhraniach.

 


Inštalácia Roundcube

V rozhraní Webmin otvorte vetvu Others a ťuknite na odkaz Príkazový riadok, do poľa zadajte príkaz

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

sudo apt-get install -f -y --force-yes roundcube php5-mcrypt

Počas inštalácie sa vás inštalátor spýta s akou databázou bude rouncube pracovať, tu vyberte MySQL. Potom zadajte heslo používateľa root tejto databázy a nakoniec zadajte dvakrát heslo pre novú databázu Roundcube. Spolu s Roundcube je potrebné nainľtalovaťi i modul mcrypt pre PHP, ktorý sa stará o bezpečnú komunikáciu.

 


Definovanie aliasu

Aby bol webmail prístupný z internetu je potrebné určiť miesto vo vašom vebe - URL adresu webmailu.

O tvorte teda vetvu Servery a ťuknite na odkaz Apache Webserver. Na stránke, ktorá sa otvorí, potom vyberte Default Server.

Webmin - Apache

Na ďalšej stránke vyberte Aliases and Redirects.

Webmin - Apache alias

Zadefinujte alias. Do prvého poľa zadajte napríklad /roundcube (alebo lubovolný iný napr /posta) a do druhého políčka zadajte skutočnú cestu k roundcube - /var/lib/roundcube/. Po vyplnení oboch polí ťuknite na tlačidlo Uložiť.

Webmin - Apache alias roundcube

Nakoniec ešte aplikujeme nastavenia ťuknutím na na odkaz Apply Changes v pravom hornom rohu.

Webmin - Apache2

Teraz je možné pristúpiť k webamilu pomocu adresy http://www.vasadomena.edu.sk/roundcube/.

Roundcube

 

 


Definovanie predvoleného poštového servera

Ako ste si iste všimli, na stránke sa nachádzajú tri polia. Tretie pole slúži na zadanie servera. V našom prípade však je tento údaj úplne zrejmý preto upravíme konfiguráciu Roundcube.

Pomocou programu Putty sa teda prihlásime na server (alebo sa prihlásime rovno na server) spustíme MC (sudo mc) a upravíme súbor /etc/roundcube/main.inc.php (v MC stlačíme F4) a nastavíme

$rcmail_config['default_host']='vasadomena.edu.sk'

Súbor potom uložíme (F2).

Ako odfiltrovať nevyžiadanú poštu na školskom serveri

Na filtrovanie nevyžiadanej pošty alebo ak chcete SPAMu slúži program s názvom SpamAssassin.


Inštalácia

Program inštalujeme tak ako vždy. V rozhraní Webmin otvoríme vetvu Others a ťukneme na odkaz Príkazový riadok, do poľa zadáme príkaz

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadáme

sudo apt-get install -f -y --force-yes spamassassin

Webmin - Spamassassin1


Klasifikácia nevyžiadanej pošty

Program SpamAssassin podľa určitých kritérií hodnotí každý email. Ak hodnotenie prekročí istú hranicu, je správa vyhodnotená ako nevyžiadaná. Štandardne je program nastavený tak, aby za nevyžiadanú poštu považoval každý mail, ktorý má známku väčšiu ako 5. Táto známka je príliš vysoká a umožňuje sem tam niektorej nevyžiadanej pošte prekĺznuť. Niektorí správcovia preto znižujú hodnotu na 2,5 no z našich skúseností - aby prešli všetky maily z konferencií "Udrzba" a "Garanti" je potrebná hodnota 3,4.

Otvoríme preto vetvu Servery a ťukneme na odkaz SpamAssassin Mail Filter. Na stránke, ktorá sa otvorí potom ťukneme na odkaz Spam Classification.

Webmin - Spamassassin2

V nastaveniach prepnite prepínač Hits above which a message is considered spam a do okienka vedľa neho napíšte 3.4 (s desatinnou bodkou) a potom ťuknite na tlačidlo uložiť.

Webmin - Spamassassin3


Kam s nevyžiadanou poštou?

Aby používatelia alebo postmaster mali možnosť prezrieť či SpamAssassin medzi spam náhodou nezaradil aj dajaký užitočný mail máme možnosť nastaviť aby sa nevyžiadaná pošta niekam presunula. Keďže nepredpokladáme, že máte na škole človeka, ktorý je platený za správu pošty - postmastera, odporúčame aby ste nastavili presúvanie spamu do priečinkov používateľov.

Na stránke SpamAssasina ťuknite na odkaz Procmail Spam Delivery.

Webmin - Spamassassin4

Na stránke s nastaveniami potom prepneme prepínač do polohy Append to mbox-format mail file a do poľa zadáme $HOME/mail/spam.

Webmin - Spamassassin5

Ak používatelia chcú mať možnosť pozrieť si spam stačí aby si vytvorili v emailovom klientovi priečinok s názvom "spam" (s malým s). Alebo to môžete urobiť za nich tak, že slovo spam dopíšete do súboru .subsriptions na serveri (napríklad pomocou MC), ktorý sa nachádza v priečinku /home/pouzivatel/mail/.

 

Ako nastaviť zdieľanie priečinkov na školskom serveri

Priečinky na serveri môžete zdieľať v sieti Linuxových staníc pomocou NFS a v sieti staníc MS Windows pomocou Samby.


Nastavenie zdieľania priečinkov pre stanice s operačným systémom MS Windows.

Zdieľanie priečinkov a tlačiarní v sieti so stanicami MS Windows zabezpečuje server, ktorý sa nazýva Samba.


Konverzia používateľov Linuxu do Samby

Za predpokladu, že sme už na serveri vytvorili používateľov, môžeme naimportovať používateľov do Samba servera.

Otvoríme vetvu Servery a ťukneme na odkaz Samba Windows File Sharing. Na stránke, ktorá sa otvorí ťuknite na odkaz Convert Unix users to Samba users.

Samba import používateľov

V dialógu, ktorý sa otvorí môžete prepínač prepnúť do polohy Use this password a do okienka vedľa neho zadať heslo pre všetkých používateľov alebo môžete prepínač ponechať v pôvodnej polohe a heslo nastavíte neskôr pre každého používateľa zvlášť. Nakoniec stlačte tlačidlo Convert Users.

Samba konverzia používateľov

Heslá pre jednotlivých používateľov môžete nastaviť kliknutím na odkaz Edit Samba users and passwords.


Vytvorenie nového zdieľania

Na stránke ťuknite na odkaz Create a new file share.

Samba nové zdieľanie

Môžete napríklad vytvoriť zdieľanie priečinka, v ktorom je umiestnená webová stránka (ale cez rozhranie Webmin môžete vytvoriť i nový priečinok).

Na stránke nastavíme meno zdieľaného priečinka Share name - v našom prípade www. V druhom poli môžete nastaviť cestu k priečinku ktorý sa má zdielať Directory to share - v našom prípade nastavíme /var/www. Do tretieho poľa zadáme vlastníka zdieľaného priečinka Create with owner - nastavíme spravca.

Samba parametre zdieľania


Nastavenie oprávnení na zdieľaný priečinok

Najskôr ťukneme na novovytvorený priečinok.

Samba oprávnenia na priečinok

Na stránke, ktorá sa otvorí, ťukneme na odkaz Security and Access Control.

Samba oprávnenia na priečinok 2

Na stránke zabezpečenia nastavíme možnosť zápisu do priečinka Writable? na Áno. Do poľa Valid Users vložte všetkých používateľov, ktorý budú mať prístup k zdieľanému priečinku (môžete využiť tlačidlo s troma bodkami "..."). Do poľa Valid groups zasa môžete zadať skupiny používateľov. Je tiež možné určiť, ktorý používatelia a skupiny budú mať právo iba právo na čítanie (Read only users, Read only groups) a ktorí budú mať právo aj na zápis (Read/write users, Read/write groups).

Samba oprávnenia na priečinok 3


Nastavenie Samby pre sieť MS Windows

Na stránke Samba Windows File Sharing klikneme na odkaz Windows Networking.

Samba nastavenie pre Windows

Na stránke nastavení nastavíme najskôr pracovnú skupinu Workgroup - my sme nastavili GYMKREMNICA ale vy môžete nastaviť ľubovoľnú inú, v ktorej sú počítače zoskupené, alebo do ktorej ich chcete zoskupiť. Prepínač WINS mode prepnite do polohy Be WINS server. WINS server je server prekladajúci Netbios mená na ip adresy. Inak povedané toto nastavenie zabezpečí, že server bude udržiavať zoznam dostupných počítačov v sieti, vďaka ktorému počítače uvidíte v MS Windows cez Miesta v sieti. Posledný parameter, ktorý je potrebný nastaviť je meno servera Server name - tu nastavte rovnaké meno ako pri inštalácii - v našom prípade Server1. Nezabudnite nastavenia uložiť.

Samba nastavenie pre Windows

Nakoniec ešte reštartujeme Samba server.

Samba reštart

Pozor, aby boli súbory prístupné, musí sa používateľ nastaviť do MS Windows s rovnakým menom a heslom ako je nastavené v sambe.


Nastavenie zdieľania priečinkou pre stanice s operačným systémom Linux.

Pomocou samby je možné súbory zdieľať i v sieti Linux, no pomocou NFS (Network File System) si môžeme pripojiť zdieľaný priečinok ako linuxový disk napríklad pomocou tabuľky súborových systémov fstab. Takto pripojený priečinok sa potom správa ako keby bol súčasťou súborového systému lokálneho počítača.


Inštalácia NFS na serveri

Najskôr už nám dobre známym spôsobom nainštalujeme NFS.

Otvorte položku Ostatné a vyberte Príkazový riadok. Do okna zadajte

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

apt-get install -f -y --force-yes nfs-common nfs-kernel-server

Export priečinka pre zdieľanie

Otvorte vetvu Sieť a kliknite na odkaz NFS exports. Na stránke, ktorá sa otvorí kliknite na odkaz Add a new export.

NFS exporty

Po otvorení stránky do poľa Directory to export zadajte adresár ktorý chcete zdielať (môžete ho nalistovať pomocou tlačítka s troma bodkami). Prepínač prepnite do polohy IPv4 Network a zadajte IP adresu počítača (počítačov), ktoré budú mať k zdielanému priečinku prístup. Prepínač Read-only, ktorý obmedzuje pístup iba na čítanie môžeme ešte prepnúť od polohy Nie.

NFS export zdielaneho priečinka


Inštalácia NFS na strane klienta

Otvoríme terminál a napíšeme:

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadáme

apt-get install -f -y --force-yes nfs-common nfs-client

 

Import do súborového na Linuxovej stanici.

Na počítači, na ktorom chcete naimportovať zdieľaný priečinok, otvorte súbor /etc/fstab ako používateľ root pomocou ľubovoľného - v prípade že máte Ubuntu môžete do terminálu zapísať príkaz:

sudo nano /etc/fstab

Na koniec súboru dopíšte riadok a na konci riadka stlačte enter

Server1:/programy    /home/Pouzivatel/Plocha/programy   nfs    rsize=8192,wsize=8192,timeo=14,intr 

Pozor na konci súboru musí byť jeden prázdny riadok.

Súbor uložte stlačením CTRL+o a editor ukončíte CTRL+x.

Priečinok do ktorého sa zdielaný priečinok napojí je potrebné vytvoriť - my sme ho vytvorili na ploche /home/Pouzivatel/Plocha/programy

Po reštarte počítača by mal byť priečinok namapovaný. Je ho možné namapovať i pred reštartom pomocou príkazu

 sudo mount /home/Pouzivatel/Plocha/programy 

 

Synchronizovanie času so školským serverom

Nastavovanie času na všetkých počítačoch na škole by asi bolo časovo dosť naročné, MS Windows má síce nastavenú internetovú adresu servera s ktorej MS windows získava čas, ale s týmto serverom je problém nadviazať spojenie. Je však možné nastaviť školský server aby poskytoval informácie o čase cez protokol NTP.


Inštalácia NTP servera

 

Otvorte položku Ostatné a vyberte Príkazový riadok. Do okna zadajte

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

apt-get install -f -y --force-yes ntp ntpdate

 


 

Nastavenie na klientských počítačoch

V linuxe sa čas získa automaticky. V operačnom systéme MS Windows ťukneme pravým tlačítkom myši na hodiny v oznamovacej oblasti a z kontextovej ponuky vyberieme Upraviť dátum a čas.

Nastavenie času

Klikneme na záložku Internetový čas a do poľa Server zadajte názov (ak máte nastavené DNS) alebo IP adresu nášho servera. Potom ešte môžme funkčnosť otestovať kliknutím na tlačítko aktualizovať.

Nastavenie časového servera

 

 

Ako nainštalovať LDAP na školský server

Pozor toto nie je hotový článok. Článok dokončíme neskôr.

LDAP je - TO DO

 


Inštalácia LDAP na server

Najskôr musíme nainštalovať program, ktorý bude poštu preberať. Otvorte preto v rozhraní Webmin vetvu Others a ťuknite na odkaz Príkazový riadok, do poľa zadajte príkaz

sudo apt-get update

aby sa zaktualizovali informácie o dostupných balíkoch a potom zadajte

sudo apt-get install -f -y --force-yes slapd libnet-ldap-perl

 


Inštalácia nástroja na správu LDAP

sudo apt-get install -f -y --force-yes phpldapadmin

 


Prihlásenie sa do phpLDAPadmin

Ako login zadajte nasledovné

 cn=admin,dc=domenaskoly,dc=edu,dc=sk

miesto domenaskoly samozrejme zadate vasu doménu vrámci siete EDUnet.

Ako heslo zadate vase heslo, ktore ste nastavili pri instalacii LDAP a stlacíte tlacidlo Authenticate.

phpLDAPadmin1

 


Vytvorenie nových záznamov v LDAP

TO DO

 

 


Inštalácia na klientoch s os linux (ubuntu, debian)

sudo apt-get install libpam-ldap libnss-ldap nss-updatedb 

Balík libpam-ldap umožňuje autentifikáciu cez LDAP, libnss-ldap umožňuje získať z LDAP informácie o sedení a nss-updatedb umožňuje dočasné lokálne ukladanie databázy aby sa nezahlcovala sieť.

Počas inštalácie dostanete niekoľko otázok:

Shold debconf manage LDAP configuration? Odpovedzete Nie
LDAP client1
URI adresa LDAP servera: Zadajte server1.domenaskoly.edu.sk kde domenaskoly je meno vasej domeny v rámci #EDUnet
LDAP client2
Distinguishe name of the search base: Zadajte dc=domenaskoly, dc=edu, dc=sk
LDAP client3
Verzia LDAP: ponechajte 3
LDAP client4
Make local root databaze admin? (Urobiť lokálneho správcu správcom databázy?) Odpovedzte Nie
LDAP client5
Does LDAP database require login? (Potrebuje databáza login?) Odpvedzte Nie
LDAP client6

 

 


Konfigurácia klientov

Konfigurácia spočíva v troch krokoch

  1. Konfigurácia Name Service,
  2. konfigurácia PAM,
  3. nastavenie dočasného ukladania pričinkov Name Service (voliteľné).

Ubuntu 7.10 má nástroj, ktorým sa dajú prvé dva kroky urobiť zadaním takéhoto príkazu:

sudo auth-client-config -a -p lac_ldap 

Tu sa o nástroji dozviete viac https://wiki.ubuntu.com/AuthClientConfig

Pre staršie verzie Ubuntu a Debianu platí toto:

Konfigurácia Name Service

Pozor tento súbor needitujte ako sudo

V súbore /etc/nsswitch.conf nahraďte compat s files ldap tak aby oba riadky vyzerali takto:

passwd:         files ldap
group:          files ldap

To znamená:

  • Najskôr pozri lokálne uložené loginy (/etc/passwd a /etc/group),

  • ak nenájdeš zodpovedajúci login, použi LDAP.

Pozor BUG: Presvedčte sa či je v súbore /etc/libnss-ldap.conf alebo v novšej verzii ldapu v súbore /etc.ldap.conf nastavený parameter: bind_policy soft. Ak tam nie je spôsobí to zamrznutie pri štarte systému, tak ho tam dopíšte.

Konfigurácia PAM

 

PAM používa na kontrolu LDAP štyri centrálne súbory: common-account, common-auth, common-password a common-session. Všetky sa nachádzajú v priečinku /etc/pam.d.

Upravte súbor /etc/pam.d/common-account aby vyzeral takto:

account sufficient      pam_ldap.so
account required        pam_unix.so

Upravte súbor /etc/pam.d/common-auth aby vyzeral takto:

auth    sufficient      pam_ldap.so
auth    required        pam_unix.so nullok_secure use_first_pass

Upravte /etc/pam.d/common-password aby vyzeral takto:

password        sufficient      pam_ldap.so
password        required        pam_unix.so nullok obscure min=4 max=8 md5

Nastavenie dočasného ukladania pričinkov Name Service.

Tento krok je voliteľný a odporúčame ho robiť iba pri pomalej sieti alebo pri veľkom počte počítačov.

Aby sme predišli spomaleniu siete a urýchlili prihlásenie, môžeme použiť balíček nss-updatedb na vytvorenie lokálnej databázy používateľských mien. Najskôr teda vytvoríme lokálnu databázu a potom nastavíme intervali v akýc sa bude aktualizovať.

Takže zadajte

sudo nss_updatedb ldap

Týmto sa vytvorí databáza v priečinku /var/lib/misc/.

Teraz vytvoríme script, ktorý bude databázu automaticky aktualizovat.

Vytvoríme script nssupdate.sh v priečinku /etc/cron.hourly/ a natavíme ho spustiteľným. Mal by obsahovať toto:

#!/bin/bash
LOCK=/var/run/auth-update.cron
[ "$1" != "0" ] && [ -f $LOCK ] && [ -d /proc/"$(cat $LOCK)" ] && exit 0
echo $$ > $LOCK
RANGE=3600
[ "$1" != "" ] && RANGE=$1
SLEEP=$RANDOM
[ "$RANGE" != "0" ] && let "SLEEP %= $RANGE" || SLEEP=0
sleep $SLEEP
go=true
while $go; do
/usr/sbin/nss_updatedb ldap
[ $? -eq 0 ] && go=false
[ "$go" == "true" ] && sleep 10
done
rm $LOCK
exit 0

Aby sa dočasne uložené dáta začali používať upravme súbor edit /etc/nsswitch.conf, aby vyzeral takto:

passwd:         files ldap [NOTFOUND=return] db
group:          files ldap [NOTFOUND=return] db

To znamená:

  • Najskôr pozri lokálne uložené loginy (/etc/passwd a /etc/group),

  • ak nenájdeš zodpovedajúci login, použi LDAP,

  • ak nie je zodpovedajúci login v LDAP, skonči a neurob nič ([NOTFOUND=return]),

  • ak nie je LDAP dostupný, použi dočasnú databázu.

 

 


Konfigurácia Samby a klientov Windows

TO DO

Ako nainštalovať Gallery2 na školský server

Gallery2 je najrozsiahlejší a najpodporovanejší systém na vytváranie webových fotogalerií.

Ak máte nainštalovaný školský server podľa nášho návodu  Ako nainštalovať školský server, budete mať uľahčenú prácu, pretože už máte nainštalovaný webový server, databázu a PHP. Gallery2 je však možné nainštalovať i na webhosting alebo Windows Server.

Požiadavky Gallery2:

  • Platforma - UNIX (BSD, Linux, ...) or Windows
  • Webserver - Apache, Microsoft IIS, Zeus, ...
  • PHP - PHP 4.3.0 alebo vyššia, PHP safe_mode musí byť vypnutý
  • Knižnica pre spracovanie obrázkov - Aby systém mohol automaticky vytvárať miniatúry a meniť veľkosť obrázkov potrebuje jeden z nástrojov ImageMagick, NetPBM, GD alebo GraphicsMagick
  • Databáza - MySQL 3.x, 4.x alebo 5.x, PostgreSQL 7.x or 8.x, Oracle 9i or 10g, DB2 8.2, MS SQL Server 2005

Inštalácia balíčka Gallery2

Keďže Gallery sa nachádza v repozitároch, stačí zadať príkaz na obnovenie zoznamu balíčkov

sudo apt-get update

a potom systém nainštalujeme príkazom - tento krok je potrebné urobiť priamo na serveri alebo vzdialene cez ssh (ako sa pripojiť ku školskému serveru cez ssh)

sudo apt-get install -f -y --force-yes gallery2

V ďalšom kroku zadáme sieťovú adresu počítača, na ktorom beží databáza MySQL. V našom prípade stačí ponechať

localhost 

Ako správcu databázy ponecháme

root

a zadáme rovnaké heslo pre správcu databázy ako sme zadali pri inštalácii servera (Inštalácia základného systému školského servera).

Na poslednej obrazovke ešte zvolíme Áno pri otázke, či chceme reštartovať Apache.

Inštalácia knižníc pre spracovanie obrázkov

Knižnice pre spracovanie obrázkov nainštalujeme zadaním príkazu

sudo apt-get install -f -y --force-yes dcraw ffmpeg imagemagick zip libgd2-xpm jhead libjpeg-progs
netpbm

Vytvorenie Aliasu

Teraz je potrebné ešte vytvoriť alias, aby sa adresa Gallery2 zahrnula do webovej adresy vašej školy.

Spustite teda Midnight Commander

sudo mc 
  • Prejdite k súboru /etc/apache2/conf.d/gallery2
  • zvoľte editovať (F4)
  • odkomentujte riadok #Alias /gallery2 /usr/share/gallery2 tak, že vymažete znak # na začiatku
  • uložte súbor (F2)
  • vyjdite zo súboru (ESC)

Nastavenie obmedzenia pamäte pre PHP

Po nainštalovaní Ubuntu servera je v PHP nastavené pamäťové obmedzenie na 16MB, s takouto malou pamäťou sa nedokáže spustiť ani inštalátor Gallery. Pre správny chod Gallery je odporúčané použiť aspoň 128MB pamäte.

  • Prejdite k súboru /etc/php5/apache2/config.php
  • otvorte súbor (F4)
  • nádjdite nastavenie memory_limit (F7)
  • zmente nastavenie na 128M a súbor uložte (F2)
  • ukončite editáciu súboru (ESC)

Zapnutie modulu mod_rewrite na vytváranie kratších URL adries

Aby Gallery bolo schopné vytvárať krátke URL adresy je potrebné v Apachi zapnúť modul mod_rewrite:

sudo a2enmod rewrite
Teraz reštartujte Apache zadaním príkazu (vypnutie a opätovné zapnutie panelov Midnight Commandera sa robí pomocou Ctrl+o)

 invoke-rc.d apache2 restart

Stiahnutie a skopírovanie novšej verzie

Repozitár Ubuntu obsahuje Gallery verzie 2.2.  Ak chcete Gallery 2 integrovať napríklad do Drupalu potrebujete verziu aspoň 2.3. Ak teda chcete novšiu verziu, prejdite do domovského priečinka /home/spravca  a stiahnite si novú verziu príkazom

wget http://downloads.sourceforge.net/gallery/gallery-2.X-full.tar.gz

kde X je číslo podverzie (v čase písania tohto návodu to bolo 2.3)

  • V jednom paneli Midnigt Commandera si nechajte otvorený domovský priečinok so stiahnutou novou verziou
  • prepnite sa do druhého panela (Tab)
  • v ňom prejdite do priečinka /usr/share/gallery2
  • označte všetky súbory a priečinky (Ins)
  • zmažte ich(F8)
  • prepnite sa späť do pôvodného panela (Tab)
  • otvorte stiahnutý súbor ako keby bol priečinkom (Enter)
  • označte všetky súbory a priečinky (Ins)
  • prekopírujte ich do priečinka gallery2 (F5)

Inštalácia Gallery2

Teraz na ľubovoľnom počítači zadajte adresu

http://www.vasadomena.edu.sk/gallery2

a spustí sa inštalátor Gallery2 priamo v prehliadači.

Privíta vás Inštalátor.

Inštalácia pozostáva z 11 krokov. Ak máte verziu vyššiu ako 2.3 mal by byť inštalátor po slovensky.

V prvom kroku je potrebné vytvoriť súbor v priečinku s názvom login.txt a obsahom aký vám určí inštalátor.

  • Prejdite do priečinka /usr/share/gallery
  • touch login.txt
  • otvorte súbor (F4)
  • doplňte vygenerovaný reťazec zobrazený na stránke
  • uložte súbor (F2)
  • ukončite editáciu súboru (ESC)

V druhom kroku inštalátor overí, či systém spĺňa všetky požiadavky. Ak tomu tak nie je, povie vám, čo máte robiť.

V treťom kroku si zvolíte, či chcete typickú inštaláciu alebo multiwebovú - tento typ inštalácie umožňuje nainštalovať viacero nezávislých Gallery2 na jeden server.

V štvrtom kroku je potrebné zadať priečinok, do ktorého sa budú ukladať fotografie. Je vhodné zvoliť nejaký priečinok, ktorý nie je prístupný z webu. Môžete ho vytvoriť napríklad vo vašom domovskom priečinku (v Midnight Commanderi pomocou F7)

V piatom kroku zadáte prístupové údaje k databáze. Môžete ponechať všetky ponúkané hodnoty a zadať vaše heslo k databáze.

V šiestom kroku zadajte prihlasovacie údaje pre účet administrátora.

V siedmom kroku je potrebné vytvoriť súbor, do ktorého sa uloží konfigurácia. Stačí prejsť do priečinka /usr/share/gallery2 a riadiť sa pokynmi na obrazovke.

V ôsmom kroku prebehne inštalácia modulov jadra Gallery. Ak ste doterajšie pokyny vykonali správne, nemal by nastať žiaden problém.

V deviatom kroku si môžete vybrať ďalšie moduly, ktoré chcete nainštalovať. Ak sa vám nejaký modul nepodarí nainštalovať, tak to ešte nič neznamená, pretože niektoré moduly potrebujú dodatočnú konfiguráciu.

V desiatom kroku je potrebné zabezpečiť konfiguračný súbor. Opäť stačí iba prejsť do priečinka Gallery2 a riadiť sa pokynmi na stránke.

Posledný krok dokončí inštaláciu.

A takto vyzerá nainštalovaná Gallery2.

 

Apache a PHP

Apache je vynikajúci a flexibilný webový server a PHP je populárny a moderný skriptovací jazyk primárne určený pre tvorbu dynamických webových stránok.

 Príručka v obrazovkovej verzii (SK)

Príručka vznikla ako študentský projekt v rámci predmetu GNU/Linux a jeho prostriedky na Fakulte matematiky fyziky informatiky Univerzity Komenského v Bratislave. Zdrojové súbory príručky (LaTeX) sú prístupné v svn úložisku. Príručku je možné meniť a dopĺňať.

Príručka Ubuntu servera

Prispievatelia a licencia
Abstrakt

 

Vitajte v Príručke Ubuntu servera! Obsahuje informácie o  tom, ako sa inštalujú a konfigurujú rôzne aplikačné servery v systéme Ubuntu. Príručka je zameraná na konkrétne úlohy a krok po kroku popisuje, ako sa konfiguruje a prispôsobuje systém Ubuntu.


Obsah

Úvod

Vitajte v Príručke Ubuntu servera!

Nájdete tu informácie o tom, ako sa inštalujú a spravujú rôzne serverové aplikácie. Príručka je zameraná na konkrétne úlohy a  krok po kroku popisuje ako sa konfiguruje a prispôsobuje systém Ubuntu.

Táto príručka predpokladá, že máte základné vedomosti o systéme Ubuntu. Niektoré detaily inštalácie sú síce uvedené v časti Inštalácia, ale ak potrebujete podrobnejší návod o inštalácii Ubuntu, nájdete ho na adrese Inštalačná príručka Ubuntu.

HTML verzia tejto príručky je tiež dostupná online v anglickom jazyku na stránke Dokumentácia Ubuntu. HTML súbory sú tiež dostupné v balíčku ubuntu-serverguide. Detaily o inštalácii balíkov nájdete v časti Správa balíkov.

 

Ak si nainštalujete ubuntu-serverguide, môžete si tento dokument z konzoly zobraziť príkazom:

w3m /usr/share/ubuntu-serverguide/html/C/index.html
[Note]

Časť cesty C nahraďte vaším jazykovým kódom (napr.: sk).

Podpora

Existuje niekoľko rôznych druhov podpory edície Ubuntu Server. Komerčná podpora a podpora komunity. Hlavná komerčná podpora (a platený vývoj) je k dispozícii od spoločnosti Canonical Ltd. Spoločnosť poskytuje zmluvnú komerčnú podporu pre každý desktop alebo na server. Viac informácií získate na adrese Canonical Services.

Podpora komunity je poskytovaná zanietenými spoločnosťami a jednotlivcami, ktorí chcú urobiť z Ubuntu najlepšiu možnú distribúciu. Podpora je poskytovaná prostredníctvom rôznych emailových konferencií, IRC kanalov, fór, wiki stránok, atď. Veľké množstvo dostupných informácií môže byť spracované vyhľadávačmi, ktoré zvyčajne poskytnú správne odpovede na vaše otázky. Viac informácii sa nachádza na stránke Podpora Ubuntu.

Inštalácia

Táto kapitola obsahuje rýchly prehľad o inštalácii vydania Ubuntu 10.04 LTS Server Edition. Viac informácií sa nachádza na stránke Inštalačná príručka Ubuntu.

Príprava na inštaláciu

Táto časť hovorí o rôznych aspektoch, ktoré je potrebné zvážiť pred začatím inštalácie.

Systémové požiadavky

Vydanie Ubuntu 10.04 LTS Server Edition podporuje dve hlavné architektúry: Intel x86 a AMD64. Nasledujúca tabuľka zobrazuje odporúčané hardvérové požiadavky. V závislosti od toho, čo potrebujeme, môže postačovať aj menšie vybavenie ako je uvedené. Avšak ak tieto požiadavky odignorujeme, môže sa stať, že budeme sklamaní.

Tabuľka:  Odporúčané minimálne požiadavky

Typ inštalácie

Operačná pamäť

Voľné miesto na disku

Základný systém

Úplná inštalácia

Server

128 megabajtov

500 megabajtov

1 gigabajt


Vydanie Server Edition poskytuje základný systém pre všetky ostatné serverové aplikácie. Jeho minimalistický návrh poskytuje platformu pre požadované služby, ako sú napríklad súborové a tlačové služby, web hosting, email hosting, atď.

Požiadavky pre UEC sú dosť odlišné. Požiadavky pre koncové rozhranie sa nachádzajú v časti “požiadavky na rozhranie” a požiadavky pre uzly UEC zasa v časti “Požiaqdavky uzlov”.

Rozdiely medzi vydaniami Server a Desktop

Existuje niekoľko rozdielov medzi vydaniami Ubuntu Server Edition (vydanie určené pre servery) a Ubuntu Desktop Edition (vydanie určené stolné počítače). Je potrebné poznamenať, že obe verzie používajú rovnaké apt zdroje softvéru. Takže je rovnako jednoduché nainštalovať serverové aplikácie vo vydaní Desktop Edition, ako aj vo vydaní Server Edition.

Rozdiely medzi oboma vydaniami je ten, že vo vydaní Server Edition nie je grafické prostredie X window, ďalej v inštalačnom procese a v tom, že používajú rozdielne jadrá Kernel.

Rozdiely v jadrách:

  • Vydanie Server Edition používa V/V plánovač Deadline miesto plánovača CFQ, ktorý používa vydanie Desktop Edition.
  • Vo vydaní Server Edition je vypnutá Preempcia.
  • Frekvencia prerušení časovača je vo vydaní Server Edition 100Hz a vo vydaní Desktop Edition 250Hz.
[Note]

Ak ste sa rozhodli použiť 64-bitovú verziu Ubuntu pre 64-bitové procesory, nebudete obmedzený adresným priestorom pamäte.

Ak chceme vidieť všetky nastavenia jadra, môžeme ich nájsť v súbore /boot/config-2.6.31-server. Stránka v anglickom jazyku Linux Kernel in a Nutshell je tiež výborným zdrojom, kde sa dá dozvedieť viac o nastaveniach jadra.

Vytvorenie zálohy

Pred inštalovaním Ubuntu Server Edition by sme sa mali presvedčiť, či máme všetky dáta zo systému odzálohované. Informácie o zálohovaní sa nachádzajú v časti Zálohovanie.

Ak neinštalujeme operačný systém na čistý počítač, bude potrebné zmeniť rozdelenie diskových oddielov na našom disku, aby sa vytvorilo miesto pre Ubuntu.

Pri rozdeľovaní nášho disku, by sme mali byť pripravený na možnosť straty všetkých dát, ktorá môže nastať v dôsledku chyby počas prerozdeľovania diskových. Programy používané v inštalácii sú celkom spoľahlivé, väčšina z nich je preverená rokmi používania, ale vykonávajú aj deštruktívne činnosti.

Inštalácia z CD

Základné kroky inštalácie vydania Ubuntu Server Edition z CD sú rovnaké ako pri inštalovaní ktoréhokoľvek iného operačného systému z CD. Na rozdiel od vydania Desktop Edition, vydanie Server Edition neobsahuje grafický inštalačný program. Vydanie Server Edition miesto neho používa textový režim.

  • Najskôr si stiahneme a napálime príslušný ISO súbor zo stránky Ubuntu.
  • Zavedieme systém z CD-ROM mechaniky.
  • Na začiatku zavádzania vyberieme jazyk. Potom sa začne inštalačný proces dialógom nastavenia klávesnice.
  • V hlavnej ponuke zavádzania je aj niekoľko prídavných možností pre inštaláciu vydania Ubuntu Server Edition. Môžeme nainštalovať základný Ubuntu Server alebo nainštalovať Ubuntu Server ako súčasť tzv. Ubuntu Enterprise Cloud. Viac informácií o UEC sa nachádza v časti UEC. Zvyšok tejto časti bude hovoriť o základnej inštalácii systému Ubuntu Server.
  • Potom inštalátor preskúma hardvérovú konfiguráciu a nastaví sieť pomocou DHCP. Na ďalšej obrazovke môžeme zvoliť  "Vrátiť späť" a potom zvoliť "Nastaviť sieť ručne".
  • Ako ďalšie je potrebné zadať názov počítača a časové pásmo.
  • Budeme si môcť zvoliť z niekoľkých možností konfigurácie pevného disku. Viac o rozdeľovaní disku sa dozvieme v časti Pokročilá inštalácia.
  • Potom sa nainštaluje základný systém Ubuntu. 
  • Bude nastavený nový používateľ, ktorý bude môcť získať práva používateľa root prostredníctvom nástroja sudo.
  • Po tom, ako sa nastaví používateľ, inštalátor sa opýta, či má zašifrovať jeho domovský priečinok home.
  • Ďalším krokom inštalácie je výber spôsobu aktualizácie. Na výber máte tri možnosti:
    • Bez automatických aktualizácií: toto bude vyžadovať, aby sa správca prihlásil do systému a aktualizácie nainštaloval ručne. 
    • Automatická inštalácia bezpečnostných aktualizácií: nainštaluje balíček unattended-upgrades, ktorý bude inštalovať bezpečnostné aktualizácie bez nutnosti zásahu správcu. Viac informácií sa dozviete v časti Automatické aktualizácie.
    • Správa systému pomocou Landscape: Landscape je platená služba spoločnosti Canonical, ktorá pomáha spravovať počítače s Ubuntu. Viac informácií sa nachádza na stránke Landscape.
  • Teraz sa zobrazí výber súčastí systému. Viac sa dozvieme v časti Súčasti systému. Je tu tiež možnosť spustiť aptitude so zvolenými súčasťami, ktorý ich nainštaluje. Viac informácii sa dozviete v časti Aptitude
  • Posledný krok pred reštartom je nastavenie hodín na UTC.
[Note]

Ak nie ste v akomkoľvek bode inštalácie spokojný s predvoleným nastavením, použite "Vrátiť späť" a získate detailnú inštalačnú ponuku, ktorá Vám umožní upraviť predvolené nastavenia.

Na niektorých miestach v inštalačnom procese si môžeme vyvolať pomocníka poskytovaného inštalačným systémom. Ak tak chceme urobiť, stlačíme F1.

Znovu zdôrazňujeme, že detailnejšie inštrukcie sa nachádzajú na stránke Inštalačná príručka Ubuntu.

Súčasti systému

Počas inštalácie vydania Server Edition sa nám zobrazí možnosť nainštalovať ďalšie súčasti z CD. Balíky súčastí sú zoskupené podľa typu služby, ktoré poskytujú.

  • Cloud computing: Walrus storage service  - služba poskytujúca úložisko

  • Cloud computing: all-in-one cluster - klaster typu všetko v jednom

  • Cloud computing: Cluster controller - Správca klastra

  • Cloud computing: Node controller - Správca uzla

  • Cloud computing: Storage controller - Správca úložiska

  • Cloud computing: top-level cloud controller - Hlavný správca mraku

  • DNS server: Vyberie BIND DNS server a jeho dokumentáciu.  

  • LAMP server: Vyberie zostavu Linux/Apache/MySQL/PHP server. 

  • Mail server: Táto súčasť vyberie rôzne užitočné balíčky pre bežne používaný poštový server. 

  • OpenSSH server: Vyberie balíčky potrebné pre OpenSSH server. 

  • PostgreSQL databáza: Táto súčasť vyberie balíčky klienta a servera databázy PostgreSQL. 

  • Print server: Táto súčasť nastaví systém ako tlačový server. 

  • Samba File server: Táto súčasť nastaví váš systém tak, aby sa stal súborovým serverom Samba, čo je užitočné najmä v sieťach s kombináciou systémov Windows a Linux. 

  • Tomcat server: Nainštaluje Apache Tomcat a ďalšie potrebné súčasti Java, gcj, atď. 

  • Virtual machine host: Obsahuje balíčky potrebné pre spustenie virtuálnych počítačov KVM.

  • Ručný výber balíčkov: Spustí nástroj apptitude umožňujúci vybrať balíčky jednotlivo.

Inštalovanie skupín balíčkov je vykonávané pomocou nástroja tasksel. Jeden z najvýznamnejších rozdielov medzi Ubuntu (alebo Debianom) a ostatnými GNU/Linux distribúciami je to, že inštalované balíky sa zároveň nakonfigurujú pomocou rozumných predvolených hodnôt, poprípade si vyžiadajú potrebné informácie. Preto, keď inštalujeme súčasť, balíky sa nielen nainštalujú, ale i nakonfigurujú tak, aby poskytovali ucelenú službu.

Viac informácií o Výpočtovom mraku (Cloud Computing) sa nachádza v časti UEC.

Po ukončení inštalačného procesu môžeme zobraziť zoznam dostupných súčastí zadaním nasledujúceho príkazu do príkazového riadka:

tasksel --list-tasks
[Note]

Výstup zobrazí zoznam súčastí z iných distribúcií založených na Ubuntu ako napríklad Kubuntu a Edubuntu. Príkaz tasksel môžete spustiť aj bez parametrov, čím sa otvorí ponuka rôznych dostupných súčastí.

Zoznam balíčkov, ktoré boli nainštalované danou súčasťou môžeme zobraziť zadaním parametra --task-packages. Napríklad, ak chceme zobraziť zoznam balíčkov nainštalovaných súčasťou DNS Server, zadáme toto:

tasksel --task-packages dns-server

Výstupom príkazu by mal byť zoznam:

bind9-doc
bind9

Takže ak sme nenainštalovali niektorú zo súčastí počas inštalácie systému, a neskôr sme zistili, že pre nový LAMP server potrebujeme aj DNS server, jednoducho vložíme CD a zadáme príkaz:

sudo tasksel install dns-server

Prechod na novú verziu

Existuje niekoľko spôsobov ako prejsť zo staršej verzie Ubuntu na novšiu. Táto časť poskytuje prehľad odporúčaných metód.

do-release-upgrade

Odporúčaným spôsobom, ako prejsť na novšiu verziu vydania Server Edition, je použite nástroja do-release-upgrade. Je to časť balíka update-manager-core, ktorá nemá žiadne grafické závislosti a je súčasťou základnej inštalácie.

Systémy založené na Debiane môžu byť tiež aktualizované pomocou príkazu apt-get dist-upgrade. Avšak je odporučené použiť príkaz do-release-upgrade, pretože dokáže vykonať zmenu konfigurácie systému, ktorá je niekedy potrebná pri prechode na novšiu verziu.

Ak chceme prejsť na novú verziu, do príkazového riadka zadáme príkaz:

do-release-upgrade

Pomocou príkazu do-release-upgrade je tiež možné prejsť na vývojovú verziu Ubuntu. Ak to chceme urobiť, použijeme prepínač -d:

do-release-upgrade -d
[Warning]

Prechod na vývojovú verziu nie je odporúčaný pri ostrej prevádzke.

Pokročilá inštalácia

Softvérový RAID

RAID je metóda, akou sa nastavuje viacero pevných diskov tak, aby sa správali ako jeden, pričom sa redukuje pravdepodobnosť katastrofickej straty dát pri zlyhaní disku. RAID je implementovaný buď ako softvérový (keď operačný systém vie o oboch diskoch a aktívne oba spravuje) alebo hardvérový (keď špeciálny radič vytvorí dojem, že v systéme je iba jeden disk a jednotlivé disky spravuje bez toho, aby o tom vedel operačný systém).

Softvérový RAID zahrnutý v aktuálnych verziách Linuxu (a Ubuntu) je založený na ovládači 'mdadm'  a pracuje veľmi dobre, lepšie ako niektoré takzvané 'hardverové' RAID radiče. Táto časť vás prevedie inštaláciou vydania Ubuntu Server s použitím dvoch diskových oddielov RAID1 na dvoch fyzických diskoch, jedného oddielu pre / a druhého pre swap

Rozdelenie diskových oddielov

Budeme nasledovať inštalačné kroky, až kým sa nedostanete ku kroku Rozdelenie diskov. Potom:

  1. Vyberieme manuálny spôsob rozdelenia diskových oddielov. 
  2. Vyberieme prvý disk a odsúhlasíme otázku "Vytvoriť na tomto zariadení novú prázdnu tabuľku oblastí?".
    Tento krok zopakujeme na každom disku, ktorý chceme zaradiť do poľa RAID.
  3. Označíme "VOĽNÉ MIESTO" na prvom disku a potom zvolíme "Vytvoriť novú oblasť".
  4. Následne zvolíme veľkosť oblasti. Táto oblasť bude swap a vo všeobecnosti platí, že veľkosť swap je dvojnásobok RAM. Zadáme veľkosť, zvolíme Primárna a potom Začiatok.
  5. Vyberieme "Použiť ako:" v hornom riadku a zmeňíme predvolenú hodnotu "žurnálovací súborový systém Ext4", na "fyzický zväzok pre RAID", a potom zvolíme "Nastavenie oblasti ukončené".
  6. Pre partíciu / znova vyberieme "Voľné miesto" na prvom disku a potom vyberieme "Vytvoriť novú oblasť".
  7. Použijeme zvyšok voľného miesta na disku a zvolíme Pokračovať, a potom Primárna.
  8. Tak, ako pri oblasti swap, vyberieme "Použiť ako:" v hornom riadku, zmeníme voľbu na "fyzický zväzok pre RAID", a potom zvolíme  "Nastavenie oblasti ukončené".
  9. Zopakujeme kroky tri až osem pre ostatné disky a oblasti.

Nastavenie poľa RAID

Vďaka nastaveniu oblastí teraz môžme nastaviť diskové pole:

  1. Vrátime sa späť na "Rozdelenie diskov" a vyberieme "Nastaviť softvérový RAID"
  2. Vyberieme "áno", aby sa zmeny zapísali na disk.
  3. Zvolíme "Vytvoriť MD zariadenie".
  4. V našom prípade vyberieme "RAID1", ale ak by sme chceli iné nastavenie, môžeme zvoliť jemu prislúchajúci typ (RAID0 RAID1 RAID5).
    [Note]

    Ak chcete použiť RAID5, potrebujete najmenej tri disky. Použitie RAID0 alebo RAID1, vyžaduje iba dva disky.

  5. Zadáme počet aktívnych zariadení "2", alebo iný počet pevných diskov, ktoré máme pre pole k dispozícii. Potom zvolíme "Pokračovať"
  6. Ďalej zadáme počet náhradných zariadení "0" a zvolíme "Pokračovať".
  7. Označíme, ktoré oblasti chceme použiť. Najčastejšie to bývajú oblasti sda1, sdb1, sdc1, atď. Čísla sa väčšinou zhodujú, písmená sa odlišujú a prislúchajú rozdielnym pevným diskom. 
  8. Pre oblasť swap vyberieme sda1 a sdb1 a prejdeme na ďalší krok voľbou "Pokračovať".
  9. Kroky trisedem zopakujeme pre oblasť /, pričom vyberieme sda2 a sdb2.
  10. Ak sme skončili, zvolíme "Dokončiť".

Formátovanie

Teraz by sme mali vidieť zoznam diskov a RAID zariadení. Ďalším krokom je formátovanie a nastavenie ich bodu pripojenia. Zariadenie RAID budeme považovať za bežný lokálny disk, ktorý môžeme rovnako naformátovať a pripojiť.

  1. Vyberieme č. 1 oblasť RAID1 zariadenie č. 0
  2. Zvolíme "Použiť ako:". Potom vyberieme "odkladací swap priestor", a následne "Nastavenie oblasti ukončené".
  3. Potom vyberieme č. 1 oblasť RAID1 zariadenie č. 1.
  4. Zvolíme "Použiť ako:". Potom vyberieme "žurnálovací súborový systém Ext4".
  5. Teraz zvolíme "Bod pripojenia" a vyberieme "/ - koreňový súborový systém". Zmeníme ostatné nastavenia podľa potreby a vyberieme "Nastavenie oblasti ukončené".
  6. Nakoniec vyberieme "Ukončiť rozdeľovanie a zapísať zmeny na disk".

Ak nastavíme, že koreňová oblasť má byť v poli RAID, inštalátor sa nás opýta, či chceme systém zavádzať v degradovanom stave. Podrobnosti sa nachádzajú v časti “Degradované pole RAID”.

Inštalačný proces bude potom normálne pokračovať.

Degradované pole RAID

Počas dlhej prevádzky počítača môže nastať porucha disku. Ak je takýto disk súčasťou softvérového poľa RAID, operačný systém prepne pole do tzv. degradovaného stavu.

Ak pole prejde do degradovaného stavu kvôli možnosti poškodenia dát, Ubuntu Server sa po 30 sekundách reštartuje do tzv. initramfs režimu. Keď je initramfs zavedený, objaví sa na pätnásť sekúnd výzva umožňujúca opustiť tento režim a zaviesť systém alebo sa pokúsiť o ručnú opravu. Naštartovanie do initramfs môže ale aj nemusí byť želaným správaním, najmä ak ide o vzdialený počítač. Zavedenie systému do degradovaného poľa môže byť nastavené rôznymi spôsobmi:

  • Nástroj dpkg-reconfigure môže byť použitý na nakonfigurovanie základného správania. Počas tohto procesu budeme môcť zadať dodatočné nastavenia týkajúce sa poľa. Napríklad monitorovanie, upozorňovanie emailom, atď. Ak chceme zmeniť nastavenie mdadm zadáme príkaz:
    sudo dpkg-reconfigure mdadm

  • Proces dpkg-reconfigure mdadm zmení konfiguračný súbor /etc/initramfs-tools/conf.d/mdadm. Tento súbor má tú výhodu, že pomocou neho dokážeme predkonfigurovať správanie systému a môžeme ho ručne upravovať:
    BOOT_DEGRADED=true
    [Note]

    Nastavenie v súbore môže byť prevážené parametrom jadra Kernel.

  • Pomocou parametra jadra Kernel sa systém tiež dá zaviesť do degradovaného poľa:
    • Keď sa server začína zavádzať, stlačíme Shift, čím otvoríme ponuku zavádzacieho systému Grub
    • Stlačením "e" zvolíme možnosť úpravy parametrov jadra Kernel.
    • Stlačíme šípku DOLE, aby sa označil riadok s Kernelom.
    • Znova stlačíme "e", aby sme mohli riadok upravovať.
    • Na koniec riadka dopíšeme "bootdegraded=true" (bez úvodzoviek).
    • Stlačíme "ENTER".
    • Nakoniec stlačíme kombináciu kláves "Ctrl+x", aby sa systém zaviedol.

Po zavedení systému môžeme pole buď opraviť, ako sa hovorí v časti “Údržba poľa RAID”, alebo skopírovať dôležité dáta na iný počítač kvôli neopraviteľnému zlyhaniu hardvéru.

Údržba poľa RAID

Nástroj mdadm sa dá použitý na zobrazenie stavu poľa, pridanie diskov do poľa, odobranie diskov, atď:

  • Ak chceme zobraziť stav poľa, do príkazového riadka zadáme príkaz:
    sudo mdadm -D /dev/md0
    Voľba -D hovorí mdadm, aby zobrazil detailné informácie o zariadení /dev/md0. Cestu /dev/md0 nahradíme prislúchajúcou cestou zariadenia RAID.
  • Ak chceme vidieť stav disku v poli, zadáme:
    sudo mdadm -E /dev/sda1
    Výstup bude veľmi podobný príkazu mdadm -D. Ak chceme iný disk, zmeníme /dev/sda1.
  • Ak disk zlyhá a je ho potrebné odobrať z poľa, zadáme:
    sudo mdadm --remove /dev/md0 /dev/sda1
    Cesty /dev/md0 a /dev/sda1 zmeníme na prislúchjúce cesty k zariadeniu RAID a disku.
  • Podobne pridáme nový disk:
    sudo mdadm --add /dev/md0 /dev/sda1

Niekedy disk prejde do chybného stavu, aj keď nie je fyzicky poškodený. Takýto disk zvyčajne stačí z poľa odstrániť a znova ho pridať. Pole sa potom znova zosynchronizuje. Ak sa disk nezosynchronizuje s poľom, znamená to, že je asi chybný.

Súbor /proc/mdstat tiež obsahuje užitočné informácie o systémových zariadeniach RAID:

cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
10016384 blocks [2/2] [UU]

unused devices: <none>

Nasledujúci príkaz je výborný na sledovanie stavu synchronizácie diskov:

watch -n1 cat /proc/mdstat

Ak chceme sledovanie pomocou nástroja watch prerušiť, stlačíme Ctrl+c.

Ak bolo potrebné vymeniť disk kvôli chybe, po výmene a zosynchronizovaní disku je ešte potrebné nainštalovať grub. Ak chceme grub nainštalovať na nový disk, zadáme príkaz:

sudo grub-install /dev/md0

Cestu /dev/md0 nahradíme prislúchajúcou cestou k poľu RAID.

Zdroje

Problematika diskových polí RAID je vďaka množstvu spôsobov, akým môžu byť nastavené, veľmi rozsiahla. Viac informácií sa nachádza v anglickom jazyku na nasledujúcich stránkach:

Správca logických zväzkov (LVM)

Správca logických zväzkov (LVM) umožňuje správcom vytvoriť logické zväzky z jedného alebo viacerých fyzických diskov. LVM zväzky môžeme vytvoriť na štandardných oddieloch vytvorených na fyzických diskoch, ale aj na oddieloch diskového poľa RAID. Zväzky môžu byť aj rozšírené, čo systémom poskytuje väčšiu flexibilitu, keď potrebujeme niečo zmeniť.

Prehľad

Vedľajším efektom sily a flexibility LVM je jeho väčšia komplikovanosť. Pred tým, ako sa pustíme do inštalácie LVM, bude lepšie, ak sa oboznámime s niektorými termínmi.

  • Skupina zväzkov (VG - Volume Group): obsahuje jeden alebo viaceré logické zväzky (LV).
  • Logický zväzok (LV - Logical Volume): je podobný ako oddiel v systéme bez LVM. Viacero fyzických zväzkov (PV) môže tvoriť jeden LV, na ktorom sídli aktuálny súborový systém EXT3, XFS, JFS, atď.
  • Fyzický zväzok (PV - Physical Volume): fyzický disk alebo oddiel diskového poľa RAID. Skupina zväzkov môže byť rozšírená pridaním viacerých PV.

Inštalácia

Použitie LVM si ukážeme na na príklade, v ktorom  pripojíme priečinok /srv k zväzku LVM. Počas počiatočnej inštalácie použijeme iba jeden  fyzický zväzok (PV), ktorý bude časťou skupiny zväzkov (VG). Ďalší PV pridáme po skončení inštalácie, aby sme demonštrovali, ako sa dá VG rozšíriť.

Pri inštalácii systému máte k dispozícii niekoľko možností, ktoré nastavia LVM. Možnosť "Sprievodca - použiť celý disk a nastaviť LVM", ktorá Vám umožní použiť časti voľného priestoru pre LVM, "Sprievodca - použiť celý disk a nastaviť šifrované LVM", alebo Manuálne nastaviť oddiely a nastaviť LVM. Ak chceme nastaviť systém tak, aby súčasne používal LVM aj štandardné diskové oddiely, musíme vybrať manuálny spôsob.

  1. Na obrazovke Rozdelenie diskov zvolíme "Manuálne".
  2. Vyberieme disk a výberom "áno" odsúhlasíme otázku "Vytvoriť na tomto zariadení novú prázdnu tabuľku oblastí?".
  3. Potom vytvoríme bežné oddiely pre priečinky /boot, swap a / so súborovým systémom aký nám vyhovuje.
  4. Pre LVM  priečinok /srv, vytvoríme novú logickú oblasť. Potom zmeníme "Použiť ako" na "fyzický zväzok pre LVM" a zvolíme "Nastavenie oblasti ukončené".
  5. Teraz vyberieme "Nastavenie správcu logických zväzkov (LVM)" v hornej časti ponuky a výberom Áno potvrdíme zápis zmien na disk.
  6. V časti "Krok nastavenia LVM" na ďalšej obrazovke zvolíme "Vytvoriť skupinu zväzkov". Ako názov skupiny zväzkov zadáme napríklad vg01 alebo niečo viacvravnejšie. Po zadaní mena označíme oddiel, ktorý sme nastavili pre LVM a zvolíme "Pokračovať".
  7. Na obrazovke s ponukou "Krok nastavenia LVM" vyberieme "Vytvoriť logický zväzok". Vyberieme novovytvorenú skupinu zväzkov a zadáme názov nového logického zväzku, napríklad srv podľa miesta, kam ho chceme pripojiť. Potom zvolíme veľkosť, ktorá môže pokojne obsiahnuť celé dostupné miesto, pretože sa dá neskôr rozšíriť. Zvolíme "Ukončiť", čím sa vrátime späť na hlavnú obrazovku "Rozdelenie diskov".
  8. Teraz priradíme súborový systém novému LVM. Vyberieme oddiel "LVM VG vg01, LV srv" (resp. s menami, aké sme použili) a potom zmeníme Použiť ako. Nastavíme súborový systém a vyberieme /srv ako bod pripojenia. Po skončení zvolíme "Nastavenie oblasti ukončené".
  9. Nakoniec vyberieme "Ukončiť rozdeľovanie a zapísať zmeny na disk". Potvríme zmeny a dokončíme inštaláciu systému.

Existuje niekoľko užitočných nástrojov, ktoré zobrazujú informácie o LVM:

  • vgdisplay: zobrazí informácie o zviazaných zväzkoch.
  • lvdisplay: zobrazí informície o logických zväzkoch.
  • pvdisplay: zobrazí podrobé informácie o fyzických zväzkoch.

Rozširovanie skupiny zväzkov

Teraz, keď sme úspešne použili srv ako LVM zväzok, pridáme druhý disk, vytvoríme fyzický zväzok (PV), pridáne ho do skupiny zväzkov (VG), rozšírime logický zväzok srv a nakoniec rozšírime súborový systém. V tomto príklade teda predpokladáme, že sme do systému už pripojili druhý disk. Tento pevný disk bude mať označenie /dev/sdb. UPOZORNENIE: pred tým, ako začnete skúšať tieto príkazy, presvedčte sa, či už náhodou nemáte /dev/sdb priradené k inému disku. Ak tieto príkazy vykonáte nad diskom, ktorý nie je prázdny, môžete stratiť všetky dáta. V našom príklade použijeme celý disk ako fyzický zväzok (Vy však môžete urobiť na disku najskôr oddiely a potom ich použiť ako samamostatné fyzické zväzky)

  1. Najskôr vytvoríme fyzický zväzok zadaním príkazu:
    sudo pvcreate /dev/sdb
  2. Teraz rozšírime skupinu zväzkov:
    sudo vgextend vg01 /dev/sdb
  3. Použijeme príkaz vgdisplay na zistenie počtu voľných tzv. physical extents (PE), ktoré predstavujú počet voľných alokovateľných blokov. Dostaneme napríklad veľkosť 511 PE (čo zodpovedá 2GB, kde každý PE bude mať veľkosť 4MB) a použijeme celé dostupné voľné miesto. Vy môžete použiť vlastný počet PE.
    Teraz sa dá logický zväzok rôznymi spôsobmi rozšíriť. My si ukážeme, ako sa to dá pomocou PE:
    sudo lvextend /dev/vg01/srv -l +511
    Voľba -l umožní rozšíriť logický zväzok pomocou PE. Voľba -L umožňuje logický zväzok rozšíriť pomocou jednotiek Mega, Giga, Tera bajty.
  4. Aj napriek tomu, že súborové systémy ext3 a ext4 je možné zväčšiť aj bez odpojenia, je dobré ich aj napriek tomu odpojiť a skontrolovať súborový systém. Ak chcete logický zväzok zmenšiť, musíte súborový systém najskôr odpojiť.
    Nasledujúce príkazy sú určené iba pre súborové systémy EXT3 alebo EXT4. Ak používate iný súborový systém, môžete použiť niektoré iné dostupné nástroje.
    sudo umount /srv
    sudo e2fsck -f /dev/vg01/srv
    Voľba -f nástroja e2fsck skontroluje disk aj napriek tomu, že vyzerá byť prázdny.
  5. Zväčšíme súborový systém:
    sudo resize2fs /dev/vg01/srv
  6. A nakoniec oddiel pripojíme a skontrolujeme jeho veľkosť.
    mount /dev/vg01/srv /srv && df -h /srv

Zdroje

RAID je metóda, akou sa nastavuje viacero pevných diskov tak, aby sa správali ako jeden, pričom sa redukuje pravdepodobnosť katastrofickej straty dát pri zlyhaní disku.

Správa balíkov

Ubuntu ponúka komplexný systém pre správu balíkov, t.j. pre inštaláciu, aktualizáciu, konfiguráciu a odobratie softvéru. Okrem toho, že nám Ubuntu poskytne prístup k vyše 24 000 zotriedených softvérových balíkov pre náš počítač, systém pre správu balíkov vyrieši aj vzájomné závislosti balíkov a kontrolu aktualizácií softvéru.

Existujú viaceré nástroje, ktoré spolupracujú so správcom balíkov Ubuntu od jednoduchých príkazov príkazového riadka, ktoré môžu byť jednoducho zautomatizované správcom systému, až po jednoduché grafické rozhranie, ktoré je ľahko ovládateľné aj pre nováčikov.

Úvod

Systém správy balíkov Ubuntu je odvodený od rovnakého, ako používa GNU/Linux distribúcia Debian. Súbory balíkov obsahujú všetky potrebné súbory, metadáta a inštrukcie pre implementáciu jednotlivých funkcionalít alebo softvérových aplikácií pre náš počítač. 

Súbory balíkov Debianu majú väčšinou príponu '.deb' a sú väčšinou uložené v Zdrojoch softvéru (repozitároch), ktoré predstavujú zbierku balíkov nachádzajúcich sa na rôznych médiách ako napríklad disky CD-ROM alebo Internet. Balíky sú väčšinou prekompilované do binárneho tvaru, preto je ich inštalácia rýchla a nevyžadujú ďalší softvér pre kompilovanie softvéru.

Mnoho komplexnejších balíkov používa koncept závislostí. Závislosti sú prídavné baliky, ktoré sú požadované hlavným balíkom k tomu, aby správne fungoval. Napríklad balík pre syntézu hlasu Festival závisí od balíka libasound2, čo je balík obsahujúci zvukovú knižnicu ALSA, ktorá je potrebná na prehrávanie zvuku. Aby Festival správne fungoval, musí byť tento balík a ostatné závislé balíky nainštalované. Systém správy balíkov Ubuntu to urobí automaticky.

dpkg

dpkg je správca balíkov pre systémy postavené na Debiane. Umožňuje inštalovať, odstraňovať a zostavovať balíky, ale na rozdiel od ostatných systémov na správu balíkov nemôže automaticky sťahovať a nainštalovať balíky a ich závislosti. Táto časť príručky hovorí o tom, ako sa dá dpkg využiť na správu lokálne nainštalovaných balíkov:

  • Ak chceme zobraziť zoznam všetkých nainštalovaných balíkov v systéme, zadáme do príkazového riadka príkaz:
    dpkg -l
  • V systéme je zvyčajne nainštalované veľké množstvo balíkov, preto výstup tohto príkazu bude rozsiahly. Príkaz však môžeme pomocou zvislého lomítka prepojiť s príkazom grep a obmedziť tak výstup iba na určitý typ nainštalovaných balíkov:
    dpkg -l | grep apache2
    Výraz apache2 môžeme nahradiť menom akéhokoľvek iného balíka, časťou mena alebo môžeme použiť tzv. regulárny výraz.
  • Ak chceme zobraziť súbory, ktoré boli nainštalované nejakým balíkom (v našom prípade balíkom ufw), zadáme:
    dpkg -L ufw
  • Ak potrebujeme vedieť, ktorý balík nainštaloval nejaký súbor, príkaz dpkg -S nám to možno prezradí. Napríklad:
    dpkg -S /etc/host.conf
    base-files: /etc/host.conf

    Výstup hovorí, že súbor /etc/host.conf je súčasťou balíka base-files.

    [Note] Mnoho súborov je počas inštalačného procesu automaticky vygenerovaných. Preto o niektorých súboroch v systéme súborov príkaz dpkg -S nevie zistiť, ku ktorému balíku prislúchajú.
  • Ak chceme nainštalovať .deb balík, ktorý sa už nachádza v počítači, zadáme:
    sudo dpkg -i zip_2.32-1_i386.deb
    Názov zip_2.32-1_i386.deb zmeníme na príslušný názov .deb súboru.
  • Tento balík je tiež možné odinštalovať príkazom:
    sudo dpkg -r zip
    [Caution] Odinštalovanie balíkov pomocou dpkg vo väčšine prípadov NEODPORÚČAME. Je lepšie použiť správcu balíkov, ktorý rieši závislosti, aby bol systém stále v konzistentnom stave. Napríklad ak odinštalujete balík pomocou dpkg -r, odstránite síce balík zip, ale iné balíčky, ktoré sú od neho závislé nemusia potom správne fungovať.

Viac o možnostiach dpkg sa dozvieme na stránkach man: man dpkg.

Apt-Get

Príkaz apt-get je mocný nástroj príkazového riadka, ktorý pracuje s Advanced Packaging Tool (APT) - rozšíreným balíkovacím nástrojom a vykonáva také funkcie ako inštalovanie nových softvérových balíkov, aktualizáciu existujúcich softvérových balíkov, aktualizáciu zoznamu balíkov a dokonca aj prechod na novú verziu celého systému Ubuntu.

Vďaka tomu, že sa jedná o jednoduchý nástroj príkazového riadka, apt-get poskytuje správcom servera mnoho výhod oproti ostatným nástrojom na správu balíkov. Niektoré z výhod sú napríklad jednoduché použitie pri terminálovom (SSH) pripojení a možnosť použitia v skriptoch, čo umožňuje jeho automatické naplánované spúšťanie pomocou nástroja cron.

Príklady najčastejšieho použitia nástroja apt-get:

  • Inštalácia balíka: Inštalácia balíkov pomocou nástroja apt-get je veľmi jednoduchá. Napríklad, ak chceme nainštalovať skener siete nmap, zadáme toto:
    sudo apt-get install nmap
  • Odstránenie balíka: Odstránenie balíka je tiež priamočiary a jednoduchý proces. Ak chceme odstrániť balík nmap, ktorý sme nainštalovali v predchádzajúcom príklade, zadáme nasledujúci príkaz:
    sudo apt-get remove nmap
    [Tip]

    Viaceré balíky: Pri inštalovaní alebo odstraňovaní môžete zadať viaceré balíky oddelené medzerami.

    Pridaním voľby --purge k príkazu apt-get remove, odstránime aj súbory s nastaveniami, ktoré boli vytvorené balíkom. To môže, ale nemusí mať za následok želaný efekt, preto je túto voľbu potrebné používať opatrne.
  • Aktualizácia zoznamu balíkov: Zoznam balíkov APT je v podstate databáza dostupných balíkov zo zdrojov softvéru definovaných v  súbore /etc/apt/sources.list. Ak chceme aktualizovať lokálne uložený zoznam balíkov a zahrnúť do neho posledné zmeny v zdrojoch softvéru, zadáme príkaz:
    sudo apt-get update
  • Aktualizácia balíkov: Časom sa v zdrojoch softvéru objavia novšie verzie balíkov, ktoré sú práve nainštalované v počítači (napríklad bezpečnostné aktualizácie). Ak chceme aktualizovať náš systém, najskôr aktualizujeme zoznam balíkov a potom zadáme:
    sudo apt-get upgrade
      Informácie o tom, ako prejsť na novú verziu Ubuntu sa nachádzajú v časti Prechod na novú verziu.

Akcie príkazu apt-get ako inštalovanie a odstraňovanie balíkov súzaznamenávané do súboru /var/log/dpkg.log.

Ďalšie informácie o používaní APT sa dozvieme v anglickom jazyku na stránke Debian APT User Manual alebo zadaním:

apt-get help

Aptitude

Aptitude je nadstavba systému Advanced Packaging Tool (APT) s textovým rozhraním. Poskytuje mnoho funkcií na správu balíkov, ako inštalovanie, odstraňovanie a aktualizovanie, ktoré sa väčšinou vykonávajú stlačením jedného malého písmena.

Nástroj Aptitude je prispôsobený na použitie v textovom prostredí terminálu, aby správne fungovali všetky kľúčové príkazy. Aptitude môžeme spustiť zadaním nasledujúceho príkazu do príkazového riadka:

sudo aptitude

Po spustení Aptitude uvidíme ponuku v hornej časti obrazovky a dve ďalšie časti okna pod ním. Horná časť obsahuje kategórie balíkov ako napríklad Nové balíky alebo Nenainštalované balíky. Dolná časť obsahuje informácie, ktoré sa vzťahujú na balíky a kategórie balíkov.

Používanie Aptitude na správu balíkov je relatívne jednoduché, pretože používateľské rozhranie umožňuje jednoducho vykonať bežné úlohy.  Nasledujúce príklady demonštrujú, ako sa tieto bežné úlohy spojené so správou balíkov dajú urobiť pomocou Aptitude:

  • Inštalácia balíkov: Ak chceme nainštalovať balík, vyhľadáme ho v kategórii Nenainštalované balíky, napríklad pomocou šipiek klávesnice a klávesy ENTER a presuíeme sa na balík, ktorý chceme nainštalovať. Potom stlačíme na klávesnici + a názov balíka by sa mal zafarbiť zelenou farbou, čo indikuje, že balík je vybraný na inštaláciu. Teraz stlačíme g, aby sa zobrazil sumár akcií, ktoré sa budú vykonávať s balíkmi. Stlačíme g znova, čím spustíme správu balíkov. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Nakoniec stlačíme ešte raz g a systém sa opýta, či naozaj chceme vykonať požadované zmeny. Stlačíme ENTER na Pokračovať a sťahovanie a inštalácia balíkov prebehne.
  • Odstraňovanie balíkov: Ak chceme odstrániť balík, vyhľadáme ho v kategórii Nainštalované balíky, napríklad pomocou pomocou šipiek klávesnice a klávesy ENTER a presunieme sa na balík, ktorý chceme odstrániť. Potom stlačíme na klávesnici - a názov balíka by sa mal zafarbiť ružovou farbou, čo indikuje, že balík je vybraný na odstránenie. Teraz stlačíme g, aby sa zobrazil sumár akcií, ktoré sa budú vykonávať s balíkmi. Stlačíme g znova, čím spustíme správu balíkov. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Nakoniec stlačíme ešte raz g a systém sa opýta, či naozaj chceme vykonať požadované zmeny. Stlačíme ENTER na Pokračovať a balíky sa odstránia.
  • Aktualizácia zoznamu balíkov: Ak chceme aktualizovať zoznam balíkov, jednoducho stlačíme na klávesnici u. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Po tomto kroku prebehne aktualizácia zoznamu balíkov. Stlačíme ENTER na OK, keď sa zobrazí dialóg o dokončení sťahovania.
  • Aktualizácia balíkov: Ak chceme aktualizovať balíky, najskôr zaktualizujeme zoznam balíkov podľa vyššie uvedeného postupu a potom stlačíme na klávesnici veľké U, čím sa vyberú balíky na aktualizáciu. Stlačíme g, aby sa zobrazil sumár akcií, ktoré sa budú vykonávať s balíkmi. Stlačíme g znova, čím spustíme správu balíkov. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Nakoniec stlačíme ešte raz g a systém sa opýta, či naozaj chceme vykonať požadované zmeny. Stlačíme ENTER na Pokračovať a sťahovanie a aktualizácia balíkov prebehne.

Pri prezeraní zoznamu balíkov vo vrchnej časti okna je v prvom stĺpci zobrazený aktuálny stav balíka, ktorý môže obsahovať tieto skratky opisujúce stav balíka:

  • i: Nainštalovaný balík
  • c: Balík nie je nainštalovaný, ale konfigurácia balíka sa nachádza v systéme
  • p: Odstránený zo systému
  • v: Virtuálny balík
  • B: Poškodený balík
  • u: Súbory sú rozbalené, ale balík ešte nie je nakonfigurovaný
  • C: Čiastočne nakonfigurovaný - konfigurácia zlyhala a vyžaduje opravu
  • H: Čiastočne nainštalovaný - odstraňovanie zlyhalo a vyžaduje opravu

Ak chceme ukončť Aptitude, jednoducho stlačíme na klávesnici q a potvrdíme, že chceme skončiť. V ponuke Aptitude sa nachádza mnoho ďalších funkcií, vyvoláme ju stlačením F10 na klávesnici.

Automatická aktualizácia

Balík unattended-upgrades môžeme použiť na automatickú inštaláciu aktualizovaných balíkov. Môžeme ho nastaviť tak, aby aktualizoval všetky balíky alebo iba inštaloval bezpečnostné aktualizácie. Nainštalujeme ho zadaním príkazu do príkazového riadka:

sudo apt-get install unattended-upgrades

Nástroj unattended-upgrades sa konfiguruje pomocou súboru /etc/apt/apt.conf.d/50unattended-upgrades. Otvoríme ho a upravíme nasledujúce nastavenia tak, ako potrebujeme:

Unattended-Upgrade::Allowed-Origins {
"Ubuntu jaunty-security";
// "Ubuntu jaunty-updates";
};

Niektoré balíky môžeme dať na čiernu listinu, aby sa neaktualizovali automaticky. Ak chceme zakázať automatickú aktualizáciu niektorého balíka, dopíšeme ho do zoznamu:

Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};
[Note]

Dve lomítka // znamenajú poznámku, čokoľvek za "//" sa nebude spracovávať.

Keď chceme povoliť automatické aktualizácie, otvoríme súbor /etc/apt/apt.conf.d/10periodic a nastavíme príslušné konfiguračné voľby apt:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Predchádzajúca konfigurácia aktualizácii zoznamu balíkov určuje, že sa dostupné aktualizácie stiahnu a nainštalujú každý deň. Lokálne stiahnuté archívy sa vymažú každý týždeň.

Viac informácií o konfigurácii periodických volieb apt sa nachádza v hlavičke sktiptu /etc/cron.daily/apt.

Výstupy unattended-upgrades budú zaznamenávané do súboru /var/log/unattended-upgrades.

Oznamovanie

Nastavením hodnoty Unattended-Upgrade::Mail v súbore /etc/apt/apt.conf.d/50unattended-upgrades povolíme nástroju unattended-upgrades, aby posielal správcovi emaily obsahujúce podrobnosti o balíkoch, ktoré je potrebné aktualizovať alebo majú iný problém.

Iný užitočný nástroj je apticron. Nástroj apticron nastaví úlohu pre plánovač cron, ktorá bude emailom odosielať správcovi informácie o balíkoch, ktoré je potrebné aktualizovať spolu so sumárom zmien každého balíka.

Ak chceme nainštalovať nástroj apticron, zadáme príkaz:

sudo apt-get install apticron

Keď je nástroj nainštalovaný, môžeme nastaviť emailovú adresu v súbore /etc/apticron/apticron.conf, na ktorú sa budú odosielať emaily:

EMAIL="spravca@nieco.sk"

Nastavenie zdrojov softvéru

Konfigurácia zdrojov softvéru systému Advanced Packaging Tool (APT) je uložená v súbore /etc/apt/sources.list. V tejto časti si ukážeme, ako sa do tohto súboru pridávajú a odstraňujú zdroje softvéru.

Jednoduchý príklad súboru /etc/apt/sources.list nájdete na tejto stránke príklad konfiguračného súboru APT.

Súbor môžeme otvoriť a pridať alebo odobrať zdroje softvéru. Napríklad, ak chceme vypnúť požiadavku na vloženie Ubuntu CD-ROM disku, ktorá sa zjavuje pri operáciách s balíkmi, jednoducho zapoznámkujeme príslušný riadok pre CD-ROM, ktorý sa nachádza hneď na začiatku tohto súboru:

# no more prompting for CD-ROM please
# deb cdrom:[Ubuntu 10.04_Lucid_Lynx - Release i386 (20070419.1)]/ lucid main restricted

Prídavné zdroje softvéru

Ako dodatok ku oficiálnym zdrojom podporovaných balíkov pre Ubuntu existujú prídavné, komunitami spravované zdroje softvéru, ktoré môžu pridať tisíce ďalších balíkov. Dva najpopulárnejšie zdroje softvéru sú Universe a Multiverse. Tieto zdroje nie sú oficiálne podporované Ubuntu, ale pretože sú spravované komunitou, poskytujú balíky, ktoré môžeme bezpečne používať na našom počítači.

[Note]

Balíky v zdroji Multiverse majú často licenčné obmedzenia, ktoré bránia v ich distribúcii spolu so slobodným operačným systémom, a ich použitie je v niektorých krajinách nelegálne.

[Warning]

Upozorňujeme, že ani jeden zo zdrojov Universe a Multiverse neobsahujú oficiálne podporované balíky. Preto pre tieto balíky nemusia byť dostupné bezpečnostné aktualizácie.

Existuje ešte mnoho ďalších dostupných zdrojov, z ktorých niektoré obsahujú len jeden balík, napríklad ak ho poskytuje vývojár vyvýjajúci iba jednu aplikáciu. Pred použitím takéhoto neštandardného zdroja by sme mali byť vždy veľmi opatrní. Pred použitím takéhoto zdroja je potrebné dôkladne preskúmať zdrojové kódy jeho balíkov, pretože takéto balíky môžu spôsobiť nestabilitu alebo nefunkčnosť nášho systému.

V základnom stave sú zdroje softvéru Universe a Multiverse zapnuté, ale ak ich chcete vypnúť, zakomentujte v súbore /etc/apt/sources.list tieto riadky:

deb http://archive.ubuntu.com/ubuntu lucid universe multiverse
deb-src http://archive.ubuntu.com/ubuntu lucid universe multiverse

deb http://sk.archive.ubuntu.com/ubuntu/ lucid universe
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid universe
deb http://sk.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid-updates universe

deb http://sk.archive.ubuntu.com/ubuntu/ lucid multiverse
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid multiverse
deb http://sk.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid-updates multiverse

deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse

Zdroje

Väčšina informácií, ktoré sme použili v tejto kapitole, je dostupná na stránkach man a veľa je tiež dostupných online.

Sieť

Sieť pozostáva z dvoch alebo viacerých zariadení, ako napríklad počítače, tlačiarne a ďalšie a súvisiace zariadenia, ktoré sú prepojené buď fyzickou kabelážou alebo bezdrôtovým prepojením, kvôli zdieľaniu a distribúcii informácií medzi jednotlivými pripojenými zariadeniami.

Táto časť obsahuje všeobecné a špecifické informácie týkajúce sa sietí, vrátane prehľadu sieťových konceptov a podrobnej diskusie o populárnych sieťových protokoloch.

Sieťové nastavenia

Ubuntu sa dodáva s množstvom grafických nástrojov, ktoré konfigurujú sieťové zariadenia. Tento dokument je určený pre správcov servera a zameriava sa na správu siete cez príkazový riadok.

Ethernetové rozhrania

Ethernetové rozhrania systém rozlišuje podľa dohodnutého označovania ethX, kde X predstavuje číselnú hodnotu. Prvé ethernetové rozhranie sa zvyčajne označuje eth0, druhé eth1 a ďalšie by mali mať nasledujúcu hodnotu v poradí.

Rozpoznanie ethernetových rozhraní

Na rýchle rozpoznanie všetkých dostupný ethernetových rozhraní môžeme použiť príkaz ifconfig.

ifconfig -a | grep eth
eth0      Link encap:Ethernet  HWaddr 00:15:c5:4a:16:5a

Ďalšou aplikáciou, ktorá nám môže pomôcť rozpoznať všetky dostupné sieťové rozhrania, je lshw. V nasledujúcom príklade príkaz lshw zobrazil jedno ethernetové rozhranie s logickým názvom eth0 spolu s informáciami o zbernici, podrobnosťami o ovládači a všetkých podporovaných funkciách.

sudo lshw -class network
 *-network
       description: Ethernet interface
       product: BCM4401-B0 100Base-TX
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: eth0
       version: 02
       serial: 00:15:c5:4a:16:5a
       size: 10MB/s
       capacity: 100MB/s
       width: 32 bits
       clock: 33MHz
       capabilities: (snipped for brevity)
       configuration: (snipped for brevity)
       resources: irq:17 memory:ef9fe000-ef9fffff

Logické názvy ethernetových rozhraní

Názvy logických rozhraní sú nastavené v súbore /etc/udev/rules.d/70-persistent-net.rules. Keď chceme určiť, ktoré zariadenie dostane určitý logický názov, nájdeme zodpovedajúce rozhranie podľa fyzickej MAC adresy a upravíme hodnotu NAME=ethX na požadované logické meno. Aby sa zmeny prejavili, reštartujeme systém.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:15:c5:4a:16:5a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:15:c5:4a:16:5b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Nastavenia ethernetového rozhrania

ethtool je program, ktroý zobrazuje zmeny v nastaveniach ethernetovej karty ako napríklad automatické zladenie (auto-negotiation), rýchlosť portu, duplexný režim a zapnutie cez sieť (Wake-on-LAN). Program v predvolenom stave nie je nainštalovaný, ale dá sa doinštalovať z úložísk.

sudo apt-get install ethtool

V nasledujúcej ukážke môžeme vidieť, ako si môžeme na ethernetovom rozhraní pozrieť podporované funkcie a nakonfigurované nastavenia.

sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Current message level: 0x000000ff (255)
Link detected: yes

Zmeny, ktoré vykonáme pomocou príkazu ethtool sú dočasné a po reštarte počítača sa stratia. Ak chceme zmeny zachovať, stačí ak do konfiguračného súboru rozhraní /etc/network/interfaces pridáme požadovaný príkaz ethtool za príkaz pre-up.

Nasledujúci príklad hovorí, ako môžeme rozhranie identifikované ako eth0 trvalo nastaviť tak, aby rýchlosť jeho portu bola 1000Mb/s a aby pracovalo v režime full duplex.

auto eth0
iface eth0 inet static
pre-up /usr/sbin/ethtool -s eth0 speed 1000 duplex full
[Note]

Aj keď sme v predchádzajúcom príklade použili rozhranie staticky nastavené rozhranie, tento príkaz funguje aj s inak nastaveným rozhraním, ako napríklad DHCP. Príklad iba demonštruje správne umiestnenie príkazu pre-up vzhľadom na zvyšok konfigurácie rozhrania.

Nastavenie IP adries

Nasledujúca časť opisuje proces konfigurácie IP adresy a predvolenej brány v systéme, čo sú nastavenia potrebné na komunikáciu s lokálnou sieťou a Internetom.

Dočasné nastavenie IP adresy

Na dočasnú konfiguráciu siete, môžeme použiť bežné príkazy ako ip, ifconfig a route, ktoré sa nachádzajú vo väčšine operačných systémov GNU/Linux. Tieto príkazy umožňujú konfigurovať nastavenia, ktoré sa prejavia okamžite, avšak nepretrvajú navždy a po reštartovaní počítača sa stratia.

Keď chceme IP adresu nastaviť iba dočasne, môžeme použiť príkaz ifconfig nasledujúcim spôsobom. Zmeníme iba IP adresu a masku podsiete aby súhlasila s požiadavkami siete.

sudo ifconfig eth0 10.0.0.100 netmask 255.255.255.0

Aby sme preverili správnosť nastavenia IP adresy na eth0, môžeme opäť použiť príkaz ifconfig nasledujúcim spôsobom.

ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5a
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:c5ff:fe4a:165a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:466475604 errors:0 dropped:0 overruns:0 frame:0
TX packets:403172654 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2574778386 (2.5 GB) TX bytes:1618367329 (1.6 GB)
Interrupt:16

Keď chceme zmeniť predvolenú bránu, použijeme príkaz route nasledujúcim spôsobom. Upravíme adresu predvolenej brány tak, aby súhlasila s požiadavkami siete.

sudo route add default gw 10.0.0.1 eth0

Aby sme overili nastavenie predvolenej brány, opäť použijeme príkaz route nasledujúcim spôsobom.

route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0

Ak kvôli dočasnému nastaveniu siete potrebujeme zmeniť aj DNS servery, môžeme IP adresy DNS serverov pridať do súboru /etc/resolv.conf. Nasledujúci príklad zobrazuje, ako môžeme do súboru /etc/resolv.conf zadať adresy dvoch DNS serverov, kroté si môžeme zmeniť na adresy serverov potrebných pre našu sieť. Detailnejší popis nastavení DNS klienta sa nachádza v nasledujúcej časti.

nameserver 8.8.8.8
nameserver 8.8.4.4

Ak už naďalej nepotrebujeme túto konfiguráciu a chceme ju z rozhrania odstrániť, môžeme použiť príkaz ip s voľbou flush tak, ako sme to uviedli nižšie.

ip addr flush eth0
[Note]

Odstránenie IP konfigurácie pomocou príkazu ip nezmaže obsah súboru /etc/resolv.conf. Záznamy v tomto súbore musíte odstrániť alebo zmeniť ručne.

Pridelenie dynamickej IP adresy (DHCP klient)

Keď chceme nastaviť server tak, aby využil DHCP na dynamické nastavenie adresy, pridáme dhcp za príkaz intet na príslušnom rozhraní v súbore /etc/network/interfaces. Nasledujúci príklad predpokladá, že prvé ethernetové rozhranie sa volá eth0.

auto eth0
iface eth0 inet dhcp

Po pridaní predchádzajúcej konfigurácie rozhrania, môžeme ručne zapnúť rozhranie pomocou príkazu ifup, ktorý inicializuje DHCP proces prostredníctvom príkazu dhclient.

sudo ifup eth0

Ak chceme rozhranie ručne vypnúť, použijeme príkaz ifdown, ktorý následne inicializuje uvoľňovací DHCP proces a vypne rozhranie.

sudo ifdown eth0

Pridelenie statickej IP adresy

Keď chceme nastaviť v našom systéme statickú IP adresu, pridáme za príkaz inet zápis static na príslušnom rozhraní v súbore /etc/network/interfaces. Nasledujúcim príkazom nastavíme naše prvé ethernetové rozhranie s názvom eth0. Adresu, sieťovú masku a bránu zmeníme na hodnoty, ktoré potrebujeme v našej sieti.

auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
gateway 10.0.0.1

Po pridaní predchádzajúcej konfigurácie môžeme rozhranie ručne zapnúť pomocou príkazu ifup.

sudo ifup eth0

Keď chceme rozhranie ručne vypnúť, použijeme príkaz ifdown.

sudo ifdown eth0

Rozhranie spätnej väzby - Loopback

Rozhranie spätnej väzby sa v systéme volá lo a v predvolenom stave má pridelenú IP adresu 127.0.0.1. Môžeme si ho prezrieť pomocou príkazu ifconfig.

ifconfig lo

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2718 errors:0 dropped:0 overruns:0 frame:0
TX packets:2718 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:183308 (183.3 KB) TX bytes:183308 (183.3 KB)

V predvolenom stave sú v súbore /etc/network/interfaces dva riadky, ktoré rozhranie spätnej väzby automaticky nastavia. Odporúča sa, aby sme tieto riadky ponechali, pokiaľ nemáme konkrétny dôvod toto nastavenie zmeniť. Spomínané dva riadky sa nachádzajú v nasledujúcom príklade.

auto lo
iface lo inet loopback

Preklad názvov

Preklad názvov týkajúci sa internetových sietí je proces priradenia číselných IP adries k menným adresám hostiteľských staníc, aby bolo pre človeka jednoduchšie určiť sieťový zdroj. Nasledujúca časť hovorí o tom, ako správne nakonfigurovať systém tak, aby prekladal adresy pomocou systému DNS a statických záznamov o hostiteľských staniciach.

Konfigurácia DNS klienta

Keď chceme nakonfigurovať systém tak, aby na preklad adries použil systém DNS, pridáme IP adresy DNS serverov vhodných pre našu sieť, do súboru /etc/resolv.conf. Môžeme tiež voliteľne za príkaz search pridať DNS príponu, ktorá sa bude automaticky pridávať ku skráteným názvom staníc našej siete.

Nasledujúci príklad predstavuje typickú konfiguráciu v súbore /etc/resolv.conf pre server v doméne "nieco.sk", ktorý používa na preklad adries dva verejné DNS servery.

search nieco.sk
nameserver 8.8.8.8
nameserver 8.8.4.4

Voľba search sa dá použiť aj pre viacero domén, ktoré sa budú postupne pridávať k DNS požiadavkám v tom poradí, v akom sú zadané. Napríklad môže mať naša doména niekoľko poddomén - hlavná doména bude nieco.sk, a dve poddomény budú predaj.nieco.sk a vyvoj.nieco.sk.

Pri viacerých doménach naša konfiguráciu môžeme zapísať nasledujúcim spôsobom.

search nieco.sk predaj.nieco.sk vyvoj.nieco.sk
nameserver 8.8.8.8
nameserver 8.8.4.4

Ak sa pokúsime cez sieť osloviť hostiteľskú stanicu s názvom server1, systém DNS požiadavku bude automaticky doplňovať na tzv. Fully Qualified Domain Name (FQDN) - úplnú doménovú adresu v nasledujúcom poradí:

  1. server1.nieco.sk

  2. server1.predaj.nieco.sk

  3. server1.vyvoj.nieco.sk

Ak DNS server nenájde ani jednu z týchto adries, na DNS požiadavku odpovie chybovým hlásením.

Statické záznamy o hostiteľských staniciach

Statické záznamy o hostiteľských staniciach sú je lokálne uložený zoznam priradení menných adries k číselným IP adresám, ktorý je uložený v súbore /etc/hosts. Záznamy v súbore hosts majú v predvolenom stave prednosť pred DNS. To znamená, že ak sa systém pokúša preložiť mennú adresu a nájde záznam v súbore /etc/hosts, nebude sa ďalej pokúšať nájsť záznam v systéme DNS. V niektorých prípadoch (najmä ak nie je nutné pripojenie na Internet) sa servery, ktoré komunikujú s obmedzeným počtom staníc, zvyčajne nastavujú pomocou statických záznamov a nie pomocou DNS.

V nasledujúcom príklade súboru hosts je niekoľko adries lokálnych serverov, pre ktoré sú v súbore definované jednoduché názvy spolu s aliasmi a ich úplnými doménovými adresami (FQDN).

127.0.0.1	localhost
127.0.1.1 ubuntu-server
10.0.0.11 server1 vpn server1.nieco.sk
10.0.0.12 server2 mail server2.nieco.sk
10.0.0.13 server3 www server3.nieco.sk
10.0.0.14 server4 file server4.nieco.sk
[Note]

Všimnite si, že v predchádzajúcom príklade má každý server alias aj príslušnú doménovú adresu FQDN. Server1 má priradený aj názov vpn, server2 sa dá adresovať pomocou názvu mail, server3 ako www a server4 ako file.

Konfigurácia prepínania služieb pre preklad názvov

Poradie v akom si systém vyberá spôsob, akým preloží mennú adresu hostiteľskej stanice na číselnú IP adresu, je určený pomocou Name Service Switch (NSS) v konfiguračnom súbore /etc/nsswitch.conf. Tak ako sme to už, spomenuli v predchádzajúcej časti, statické záznamy definované v súbore /etc/hosts majú zvyčajne prednosť pred DNS. Nasledujúci príklad predstavuje poradie v súbore /etc/nsswitch.conf v akom sa budú hľadať menné adresy.

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
  • files najskôr sa systém pokúsi nájsť adresu v súbore /etc/hosts.

  • mdns4_minimal pokúsi sa preložiť meno pomocou Multicast DNS.

  • [NOTFOUND=return] znamená, že každá odpoveď procesu mdns4_minimal o nenájdení záznamu sa vyhodnotí ako neautorizovaná aby sa systém nepokúšal ďalej pátrať po odpovedi.

  • dns reprezentuje pravú unicast požiadavku DNS.

  • mdns4 reprezentuje požiadavku Multicast DNS.

Keď chceme zmeniť poradie spomínaných spôsobov prekladu názvov, stačí jednoducho zameniť reťazce za slovom hosts: podľa toho, ako nám to vyhovuje. Napríklad ak chceme použiť pravý Unicast DNS skôr ako Multicast DNS, zmeníme poradie reťazcov v súbore /etc/nsswitch.conf nasledujúcim spôsobom.

hosts:          files dns [NOTFOUND=return] mdns4_minimal mdns4

Premostenie

Premostenie (Bridging) viacerých rozhraní patrí k pokročilej konfigurácii, ale je v mnohých prípadoch veľmi užitočné. Jedno z využití je premostenie viacerých sieťových rozhraní a následné použitie firewallu na filtrovanie dvoch sieťových segmentov. Iné využitie je použitie premostenia v systémoch s jedným rozhraním, aby virtuálne počítače mali priamy prístup do siete. Nasledujúci príklad predvedie práve tento druhý spôsob využitia.

Pred tým, ako budeme môcť nastaviť premostenie, je potrebné nainštalovať balík bridge-utils. Ak ho chceme nainštalovať, zadáme:

sudo apt-get install bridge-utils

Potom nastavíme premosťujúce rozhranie (br0) v súbore /etc/network/interfaces:

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
[Note]

Ďalej zadajte príslušné hodnoty vášho fyzického rozhrania (eth0) a siete.

Teraz reštartujte sieť a aktivujte premosťujúce rozhranie:

sudo /etc/init.d/networking restart

Nové premostené rozhranie je teraz aktivované a funkčné. Nástroj brctl nám poskytne užitočné informácie o stave premostenia, umožňuje riadiť, ktoré rozhrania budú súčasťou premostenia, atď. Viac informácií získame po zadaní príkazu man brctl.

Zdroje

Sieťový protokol TCP/IP

Transmission Control Protocol and Internet Protocol (TCP/IP) je štandardná sada protokolov (dohovorov o komunikácii), ktorá bola vyvinutá koncom sedemdesiatych rokov armádnou agentúrou Defense Advanced Research Projects Agency (DARPA) ako prostriedok na komunikáciu medzi rôznymi typmi počítačov a počítačových sietí. TCP / IP je hnacou silou Internetu, a preto je najpopulárnejším súborom sieťových protokolov na Zemi.

Úvod do TCP/IP

Dve súčasti protokolu TCP/IP sa zaoberajú rôznymi aspektami počítačových sietí. Internet Protocol -"IP" je protokol, ktorý sa nezaoberá pripojením, ale iba smerovaním sieťových paketov pomocou IP Datagramov a packety považuje za základnú jednotkou sieťovej informácie. IP Datagram obsahuje hlavičku, za ktorou nasleduje správa. Transmission Control Protocol - "TCP" umožňuje sieťovým hostiteľom (zariadeniam v sieti, ktoré majú svoju sieťovú adresu) nadviazať spojenie, ktoré sa použije na výmenu dát. TCP tiež zaručuje, že dáta budú doručené a že do cieľa prídu v rovnakom tvare, v akom boli odoslané.

Konfigurácia TCP/IP

Konfigurácia TCP/IP protokolu pozostáva z niekoľkých prvkov, ktoré sa nastavujú v príslušných konfiguračných súboroch alebo nasadením riešenia, akým je napríklad DHCP server (protokol na dynamickú konfiguráciu staníc), ktorý môže byť nakonfigurovaný tak, aby správnu konfiguráciu TCP/IP poskytoval sieťovým klientom automaticky. Tieto konfiguračné hodnoty musia byť správne nastavené, aby systém Ubuntu mohol vykonávať sieťové operácie.

Bežnými konfiguračnými prvkami TCP/IP sú tieto:

  • IP adresa IP adresa je jedinečný identifikačný reťazec vyjadrený štyrmi dekadickými číslami v rozsahu 0 až 255 oddelených bodkami, z ktorých každé číslo reprezentuje 8 bitov adresy s celkovou dĺžkou 32 bitov. Tento formát sa nazýva dotted quad notation.
  • Sieťová maska Maska podsiete (alebo jednoducho sieťová maska) je lokálna bitová maska určujúca, ktorá časť IP adresy prislúcha sieti a ktorá časť IP adresy patrí podsieti. Napríklad sieť triedy C má štandardnú sieťovú masku 255.255.255.0, ktorá zamaskuje prvé tri bajty (24 bitov) IP adresy a zostávajúci bajt (8 bitov) IP adresy umožňuje prideliť klientom v podsieti.
  • Adresa siete Adresa siete je reprezentovaná bajtami IP adresy, ktoré prislúchajú sieti. Napríklad stanica 12.128.1.2 v sieti triedy A používa adresu siete 12.0.0.0, pričom číslo 12 reprezentované prvým bajtom IP adresy prislúcha sieti a nuly reprezentované zvyšnými troma bajtami prislúchajú hodnotám potenciálnych staníc. Klient inej siete používajúci privátnu IP adresu 192.168.1.100 používa sieťovú adresu 192.168.1.0, ktorá je určená prvými troma bajtami 192.168.1, pretože ide o sieť tried C a nulu pre potencionálnych staníc siete.
  • Broadcast adresa Broadcast adresa je IP adresa, ktorá umožňuje poslať dáta naraz všetkým klientom siete v danej podsieti. Štandardná všeobecná broadcast adresa pre IP siete je 255.255.255.255, táto broadcast adresa sa však samozrejme nedá použiť na odoslanie broadcast správy každému klientovi v sieti Internet, pretože to smerovač nedovolí. Vhodnejšia broadcast adresa je nastavená tak, aby zodpovedala konkrétnej podsieti. Napríklad v privátnej sieti triedy C s adresou 192.168.1.0 bude brodacat adresa 192.168.1.255. Broadcast správy sú väčšinou vytvárané sieťovými protokolmi ako napríklad Address Resolution Protocol (ARP) a Routing Information Protocol (RIP).
  • Adresa brány Adresa brány je IP adresa, cez ktorú sa dá pripojiť do určitej siete alebo ku klientovi siete. Ak jedna stanica chce komunikovať s inou stanicou, ktorá nie je umiestnená v rovnakej sieti, potom je potrebné použiť bránu. V mnohých prípadoch je adresa brány zároveň adresou smerovača, ktorý prepúšťa komunikáciu do iných sietí - napríklad do Internetu. Adresa brány musí byť nastavená správne, inak sa váš systém nebude schopný pripojiť na žiadne stanice okrem tých, ktoré sú v rovnakej sieti.
  • DNS adresa DNS adresy predstavújú IP adresy systémov Domain Name Service (DNS), ktoré prekladajú menné adresy staníc na IP adresy. Existujú tri úrovne DNS adries, ktoré môžu byť zadané v tomto poradí: primárny DNS server, sekundárny DNS server a terciárny DNS server. Aby bol váš systém schopný získavať IP adresy prislúchajúce menným adresám staníc, musíte zadať správne adresy DNS serverov, ktoré ste oprávnený používať vo Vašom nastavení TCP/IP. V mnohých prípadoch vám tieto adresy poskytne Váš dodávateľ sieťových služieb, ale existujú tiež verejne prístupné DNS servery, ako napríklad servery Level3 (Verizon) IP adresami od 4.2.2.1 po 4.2.2.6.
    [Tip]

    IP adresa, sieťová maska, adresa siete, broadcast adresa a adresa brány sú nastavené v konfiguračnom súbore /etc/network/interfaces. DNS adresy sú väčšinou nastavené pomocou direktív nameserver v súbore /etc/resolv.conf. Viac informácií sa dozviete na stránkach systémového manuálu pre interfaces a resolv.conf zadaním nasledujúcich príkazov do príkazového riadka:

    Pre zobrazenie systémového manuálu pre interfaces použijeme nasledujúci príkaz:

    man interfaces

    Pre zobrazenie systémového manuálu pre resolv.conf použijeme nasledujúci príkaz:

    man resolv.conf

IP smerovanie

IP smerovanie alebo tiež IP routing predstavuje spôsob určenia alebo nájdenia cesty v sieti TCP/IP, po ktorej sa budú posielať dáta. Smerovanie používa na posielanie dátových paketov od odosielateľa k príjemcovi smerovacie tabuľky. Odoslanie pritom často prebieha cez mnoho medzičlánkov, ktorým hovoríme smerovače alebo tiež routre. Existujú dva hlavné spôsoby smerovania: statické smerovanie a dynamické smerovanie.

Statické smerovanie spočíva v manuálnom pridávaní IP trás do smerovacej tabuľky. Najčastejšie sa to vykonáva pomocou príkazu route. Statické smerovanie má oproti dynamickému smerovaniu mnoho výhod, ako napríklad jednoduchú implementáciu v malých sieťach, predvídateľnosť (smerovacia tabuľka sa určí vopred a preto je cesta rovnaká pri každom jej použití) a nízka záťaž ostatných smerovačov a sieťových prepojení vďaka tomu, že sa nepoužíva protokol dynamického smerovania. Statické smerovanie má však aj svoje nevýhody. Statické smerovanie je obmedzené na malé siete a nie je dobre prispôsobiteľné. Statické smerovanie sa tiež nedokáže prispôsobiť výpadkom pripojení kvôli nemennej povahe smerovania.

Dynamické smerovanie sa používa vo veľkých sieťach s viacerými možnými spôsobmi pripojenia od zdroja k cieľu, pričom využíva špeciálne protokoly smerovania, ako napríklad Router Information Protocol (RIP), ktorý automatický robí zmeny v smerovacej tabuľke, aby umožnil dynamické smerovanie. Dynamické smerovanie má niekoľko výhod oproti statickému smerovaniu, akými sú napríklad vynikajúca prispôsobiteľnosť a schopnosť prispôsobiť sa výpadkom pripojenia v sieti. Taktiež nevyžaduje toľko ručného nastavovania smerovacích tabuliek, pretože smerovače sa navzájom informujú o svojej prítomnosti a dostupných trasách. Táto vlastnosť tiež vylučuje chyby spôsobené ľudským faktorom. Dynamické smerovanie nie je dokonalé, pretože má aj určité nevýhody akými sú vyššia zložitosť a záťaž pri komunikácii smerovačov, čo následne pocítia koncoví používatelia zníženou šírkou prenosového pásma.

TCP a UDP

TCP je protokol, poskytujúci korekciu chýb a garanciu doručenia dát, čo je známe ako riadenie toku alebo flow control. Riadenie toku určuje, kedy je potrebné prerušiť tok dát a vyžiadať o znovuzaslanie dátových paketov kvôli problémom, akými sú napríklad tzv. kolízie, a tak zabezpečiť správne doručenie údajov. TCP sa využíva najmä na výmenu dôležitých informácii, akými sú napríklad databázové transakcie.

UDP protokol (User Datagram Protocol) je naopak protokolom, ktorý sa len zrieka zaoberá prenosom dôležitých dát, pretože nepoužíva riadenie toku ani žiadnu ďalšiu metódu, aby zabezpečil spoľahlivý prenos dát. UDP sa najčastejšie používa všade tam, kde strata zopár paketov nie je žiadna katastrofa, ako napríklad pri tzv. audio a video streamingu, pri ktorom je neporovnateľne rýchlejší ako TCP, pretože sa nezaoberá opravou chýb a riadením toku.

ICMP

ICMP protokol  (Internet Control Messaging Protocol) je rozšírením IP protokolu podľa definície Request For Comments (RFC) číslo 792 a umožňuje riadenie obsahu paketov, chýbových a informačných správ. Prokol ICMP je využívaný takými sieťovými aplikáciami, akou je napríklad nástroj ping, ktrorý vie overiť dostupnosť stanice. Príkladmi niektorých chybových hlásení užitočných pre obe komunikujúce strany, ktoré posiela ICMP, sú hlásenia Destination Unreachable (cieľ nedostupný) a Time Exceeded (vypršal čas na spojenie).

Démoni

Daemons alebo démoni sú špeciálne systémové aplikácie, ktoré sú zvyčajne spustené v pozadí a čakajú na požiadavky o služby, ktoré poskytujú z iných aplikácií. Mnoho démonov je sieťovo zameraných. Aj v Ubuntu je na pozadí spustených veľa démonov, ktoré poskytujú sieťovo zamerané služby. Medzi nich patria aj démoni: Hyper Text Transport Protocol Daemon (httpd), ktorý poskytuje služby webového servera, Secure SHell Daemon (sshd), ktorý poskytuje rozhranie pre vzialenú správu a funkcie na prenos súborov a Internet Message Access Protocol Daemon (imapd), ktorý poskytuje e-mailové služby.

Zdroje

Protokol dynamickej konfigurácie staníc DHCP

Dynamic Host Configuration Protocol (DHCP) je sieťová služba, ktorá umožňuje, aby klientom siete boli automaticky pridelené nastavenia zo servera, miesto ručného nastavovania každej stanice samostatne. Počítače, ktoré sú nastavené ako DHCP klienti nepotrebujú žiadne ďalšie nastavenia. Získajú ich od DHCP servera a tieto nastavenia sú neviditeľné pre bežného používateľa.

Najčastejšími nastaveniami, ktoré poskytuje DHCP server DHCP klientom sú:

  • IP adresa a sieťová maska 
  • DNS
  • WINS

Avšak DHCP server môže poskytovať aj nastavenia, akými sú:

  • Názov hostiteľa
  • Názov domény
  • Predvolená brána
  • Časový server
  • Tlačový server

Výhodou použitia DHCP je to, že mení nastavenia v celej sieti. Ak chceme napríklad zmeniť DNS server, stačí ho zmeniť iba na DHCP serveri a všetci klienti siete zmenia nastavenie hneď po tom, ako sa ich DHCP klient spojí s DHCP serverom. Ďalšou výhodou je tiež ľahšie začlenenie nového počítača do siete, pretože nepotrebujeme zisťovať, ktorá IP adresa je voľná. Vylúči sa tiež riziko priradenia rovnakej IP adresy dvom počítačom.

DHCP server môže byť nastavený dvoma spôsobmi:

MAC adresa

Táto metóda použitia DHCP vyžaduje zadefinovanie všetkých fyzických adries sieťových kariet pripojených do siete, pomocou ktorých sa budú klienti identifikovať a následne im bude poskytnuté nemenné nastavenie vždy, keď pošlú požiadavku DHCP serveru.

Rozsah adries

Táto metóda vyžaduje zadefinovanie rozsahu IP adries, z ktorého budú dynamicky poskytované DNS klientom systémom "kto prv príde, ten skôr melie". Keď sa DHCP klient zo siete odpojí na určitý čas, jeho konfigurácia sa zruší a adresa bude vrátená späť do zoznamu voľných adries, aby mohla byť pridelená inému DHCP klientovi.

Ubuntu sa dodáva s DHCP serverom aj klientom. Serverom je dhcpd (dynamic host configuration protocol daemon). Klient, ktorý je súčasťou Ubuntu, je dhclient a mal by byť nainštalovaný na každom počítači, ktorý chceme automaticky nakonfigurovať. Oba programy sa dajú jednoducho nainštalovať a sú nastavené tak, aby sa spúšťali pri zavádzaní systému.

Inštalácia

Ak chceme dhcpd nainštalovať, zadáme do príkazového riadka nasledujúci príkaz:

sudo apt-get install dhcp3-server

Konfiguráciu DHCP servera môžeme podľa potrieb zmeniť v konfiguračnom súbore  /etc/dhcp3/dhcpd.conf.

Bude tiež potrebné v súbore /etc/default/dhcp3-server určiť, na ktorom rozhraní bude dhcpd načúvať. Predvolené je rozhranie eth0.

POZNÁMKA: výstupy dhcpd sa zaznamenávajú v syslogu. V ňom môžeme nájsť diagnostické správy.

Konfigurácia

Chybová správa na konci inštalácie môže byť trochu mätúca, ale nasledujúce kroky nám pomôžu službu nakonfigurovať:

Najčastejšie sa DHCP server nastavuje tak, aby IP adresy prideľoval náhodne. Toto môžeme urobiť pomocou takýchto nastavení:

# Príklad /etc/dhcpd.conf
# (sem pridajte váš komentár)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mojadomena.nieco";

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}

Toto nastavenie spôsobí, že DHCP server bude poskytovať klientom IP adresy z rozsahu 192.168.1.10-192.168.1.100 alebo 192.168.1.150-192.168.1.200. IP adresa bude zapožičaná na dobu 600 sekúnd, ak klient nepožiada o iné časové obmedzenie. Maximálna (povolená) doba zapožičania je 7200 sekúnd. Server tiež "poradí" klientovi, že by mal použiť masku siete 255.255.255.0, broadcast adresu 192.168.1.255, bránu/smerovač 192.168.1.254 a DNS servery 192.168.1.1 a 192.168.1.2.

Ak potrebujeme nastaviť WINS server pre klientov Windows, je potrebné zapísať aj riadok netbios-name-servers, napríklad takto:

option netbios-name-servers 192.168.1.1; 

Konfiguračné nastavenia Dhcpd sme prevzali z DHCP mini-HOWTO.

Zdroje

Synchronizácia času pomocou NTP

Táto stránka hovorí o tom, ako na počítači udržať presný čas. Presný čas je pri serveroch dôležitý, ale na bežných počítačoch na ňom až tak nezáleží.

NTP je súčasťou TCP/IP protokolu a slúži na synchronizáciu času cez sieť. V princípe si klient vyžiada od servera a použije ho na nastavenie svojich hodín.

Za týmto jednoduchým opisom sa však nachádza dosť komplikovaný systém: Existuje niekoľko úrovní NTP serverov, pričom NTP servery prvej úrovne sú pripojené k atómovým hodinám (často prostredníctvom GPS) a servery na úrovniach dva a tri slúžia na rozloženie záťaže a spracovávajú požiadavky prichádzajúce z celého Internetu. Tiež softvér na strane klienta je o niečo zložitejší, ako sa na prvý pohľad javí - je tu problém oneskorenia komunikácie a nastavenia času tak, aby sa to neprejavilo na chode ostatných procesov, ktoré sú na serveri spustené. Všetky tieto komplikované veci sú však našťastie skryté pred naším zrakom!

Ubuntu umožňuje automaticky nastavovať čas dvoma spôsobmi: pomocou ntpdate a ntpd.

ntpdate

Ubuntu je štandardne dodávané s ntpdate, ktoré spustí jednorázovo pri zavádzaní systému a nastaví čas podľa prednastaveného NTP servera. Keďže medzi jednotlivými reštartami servera sa môžu hodiny stať veľmi nepresnými, je dôležité upraviť čas aj počas behu servera. Najjednoduchším spôsobom, akým sa to dá urobiť, je naplánovať denné spúšťanie ntpdate pomocou plánovača cron. Otvoríme náš obľúbený editor s právami root (pri spustení použijeme sudo) a vytvoríme súbor /etc/cron.daily/ntpdate s nasledujúcim obsahom:

ntpdate ntp.ubuntu.com

Súbor /etc/cron.daily/ntpdate musíme nastaviť ako spustiteľný:

sudo chmod 755 /etc/cron.daily/ntpdate

ntpd

ntpdate je trochu obmedzený nástroj - môže nastavovať čas iba raz za deň a vykonať jednu veľkú korekciu. Démon ntpd je oveľa presnejší. Vypočíta, o koľko sa hodiny oneskorujú/predbiehajú a nepretržite ich opravuje, takže nenastane žiadny veľký posun, ktorý by mohol viesť k nekonzistencii záznamov. Je to síce za cenu malého zníženia výkonu procesora a kapacity pamäte, ale pri moderných serveroch je to zanedbateľné.

Nástroj ntpd nainštalujeme pomocou príkazu:

sudo apt-get install ntp

Zmena časových serverov

V oboch uvedených prípadoch systém použije predvolený NTP server ntp.ubuntu.com. To je OK, ale môžeme používať viacero serverov a zvýšiť tak presnosť a odolnosť. Môžeme použiť servery, ktoré sú geograficky blízke a máme k nim rýchlejšie pripojenie. Ak chceme servery zmeniť, pre ntpdate to môžeme urobiť v súbore /etc/cron.daily/ntpdate napríklad takto:

ntpdate ntp.ubuntu.com pool.ntp.org 

Pre ntpd to zase môžeme urobiť v súbore /etc/ntp.conf napríklad takto:

server ntp.ubuntu.com
server pool.ntp.org

Všimnime si adresu pool.ntp.org použitú v príkladoch. Je to naozaj veľmi dobrý nápad, pri ktorom DNS server systémom Round-Robin (ide Pešek okolo) vráti adresu NTP servera zo zoznamu dostupných NTP serverov, a tak rozdeľuje záťaž medzi všetky servery. Ešte lepším riešením je použiť zoznam len určitého regiónu - napríklad, ak sa nachádzame na Slovensku, môžete použiť sk.pool.ntp.org miesto pool.ntp.org . Viac informácii sa dozvieme na stránke http://www.pool.ntp.org/.

Môžeme tiež pomocou Google skúsiť nájsť NTP servery v našom regióne a pridať ich do našej konfigurácie. Ak chceme otestovať, či server funguje, stačí zadať sudo ntpdate meno.ntp.servera a sledovať, čo sa bude diať.

Podobné stránky

Vzdialená správa

Existuje mnoho spôsobov ako spravovať Linuxový server na diaľku. Táto kapitola bude hovoriť o najpopulárnejšom spôsobe pomocou SSH ale tiež aj o webovom rozhraní eBox.

OpenSSH server

Úvod

Táto časť príručky Ubuntu servera hovorí o mocnej kolekcii nástrojov, určených na vzdialenú správu počítačov v sieti a na prenos dát medzi počítačmi, ktorá sa nazýva OpenSSH. V tejto časti sa tiež naučíme, ako sa dá prispôsobiť konfigurácia aplikácií OpenSSH servera a ako ju môžeme zmeniť v systéme Ubuntu.

OpenSSH je voľne dostupná verzia Secure Shell (SSH) protokola obsahujúceho nástroje pre vzdialenú správu počítača a prenos súborov. Tradičné nástroje, ktoré sa často používajú na tento účel, ako napríklad telnet alebo rcp, nie sú bezpečné a prenášajú heslo používateľa ako bežný text. OpenSSH poskytuje serverového démona a klientské nástroje, ktoré umožňujú bezpečnú šifrovanú vzdialenú správu a prenos súborov, a ktoré dokážu efektívne nahradiť bežné nástroje.

Súčasť OpenSSH servera - sshd, nepretržite čaká na spojenie niektorého z klientských nástrojov. Keď nastane požiadavka na spojenie, sshd nastaví správny typ spojenia v závislosti od toho, ktorý z nástrojov sa chce pripojiť. Napríklad. ak sa vzdialený počítač snaží pripojiť pomocou klientskej aplikácie ssh, OpenSSH server pripraví po autentifikácii reláciu so vzdialenou správou. Ak sa vzdialený používateľ pokúša pripojiť k OpenSSH serveru pomocou scp, démon OpenSSH servera sa po autentifikácii pripraví na bezpečný prenos súborov medzi serverom a klientom. OpenSSH môže použiť mnoho spôsobov autentifikácie, vrátane bežného hesla, verejného kľúča, či tzv. vstupeniek systému Kerberos.

Inštalácia

Inštalácia OpenSSH klientských a serverových aplikácií je jednoduchá. Ak chceme nainštalovať klientske aplikácie v systéme Ubuntu, zadáme nasledujúci príkaz do príkazového riadka:

sudo apt-get install openssh-client

Ak chceme nainštalovať serverové aplikácie OpenSSH a podporu bezpečného prenosu súborov, do príkazového riadka zadáme:

sudo apt-get install openssh-server

Balík openssh-server si môžeme vybrať už pri inštalácii systému Ubuntu Server.

Konfigurácia

Predvolené správanie serverovej aplikácie OpenSSH - sshd môžeme zmeniť v konfiguračnom súbore /etc/ssh/sshd_config. Informácie o direktívach použitých v tomto konfiguračnom súbore získame na stránkach man-u zadaním nasledujúceho príkazu:

man sshd_config

Konfiguračný súbor sshd obsahuje mnoho direktív, ktoré riadia také veci ako je komunikácia či autentifikácia. Ukážeme si niekoľko príkladov nastavenia direktív, ktoré môžeme vykonať v súbore /etc/ssh/sshd_config.

[Tip]

Pred tým, ako začnete meniť akýkoľvek konfiguračný súbor, mali by ste si vytvoriť kópiu pôvodného súboru a nastaviť ho iba na čítanie, aby ste mohli pôvodné nastavenia použiť kvôli porovnaniu a v prípade potreby sa ku nim vrátiť.

Vytvorte kópiu súboru /etc/ssh/sshd_config a nastavte ju iba na čítanie zadaním nasledujúcich príkazov:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original

Tu sú sľúbené konfiguračné direktívy, ktoré môžeme zmeniť:

  • Ak chceme zmeniť, aby OpenSSH démon načúval na TCP porte 2222 miesto štandardného TCP portu 22, zmeníme direktívu Port takto:
    Port 2222
  • Ak chceme sshd povoliť prihlásenie pomocou verejného kľúča, jednoducho pridáme alebo zmeníme riadok:
    PubkeyAuthentication yes
    Ak riadok v súbore /etc/ssh/sshd_config už existuje, uistíme sa, že nie je zapoznámkovaný.
  • Ak chceme, aby náš OpenSSH server zobrazil pri prihlásení obsah súboru /etc/issue.net, jednoducho pridáme alebo upravíme riadok:
    Banner /etc/issue.net
    v súbore /etc/ssh/sshd_config.

Po vykonaní zmien v súbore /etc/ssh/sshd_config, súbor uložíme a reštartujeme serverovú aplikáciu sshd, aby sa zmeny prejavili. Urobíme to zadaním nasledujúceho príkazu do príkazového riadka:

sudo /etc/init.d/ssh restart
[Warning]

Pre sshd existuje mnoho ďalších nastavení, ktoré zmenia správanie serverovej aplikácie podľa vašich potrieb. Mali by ste však vedieť, že ak je ssh jediný spôsob, akým sa viete dostať na server a urobíte chybu pri nastavovaní sshd pomocou konfiguračného súboru /etc/ssh/sshd_config, po reštarte serverovej aplikácie sa môže stať, že sa nebudete vedieť prihlásiť alebo že sa serverová aplikácia sshd kvôli chybe v konfiguračnom súbore ani nespustí. Pri úprave nastavení na vzdialenom serveri buďte preto obzvlášť opatrní.

SSH kľúče

SSH kľúče umožňujú autentifikáciu medzi dvoma stanicami bez potreby použitia hesla. Autentifikácia pomocou SSH kľúčov používa dva kľúče, súkromný kľúč a verejný kľúč.

Ak chceme kľúče vygenerovať, zadáme do príkazového riadka príkaz:

ssh-keygen -t dsa

Tento príkaz vygeneruje kľúče za pomoci DSA autentifikačnej identity používateľa. Počas procesu sa systém opýta na heslo. Pri tejto výzve stlačíme iba Enter a kľúč sa vytvorí.

Za normálnych okolností sa verejný kľúč uloží do súboru ~/.ssh/id_dsa.pub a súkromný kľúč zasa do súboru ~/.ssh/id_dsa. Teraz nakopírujeme súbor id_dsa.pub na vzdialenú stanicu a pripojíme ho do súboru ~/.ssh/authorized_keys zadaním príkazu:

ssh-copy-id pouzivatel@vzdialena_stanica

Nakoniec pre istotu dvakrát skontrolujeme práva k súboru authorized_keys, aby ho mohli čítať a zapisovať do neho iba oprávnení používatelia. Ak práva nie sú správne nastavené, zmeníme ich pomocou príkazu:

chmod 644 .ssh/authorized_keys

Teraz sa budeme môcť pripojiť cez SSH k vzdialenému počítaču bez nutnosti zadania hesla.

eBox

eBox je webové rozhranie, ktoré sa používa na vzdialenú správu a konfiguráciu serverových aplikácií. Modulárne zostavenie eBoxu umožňuje vybrať a nainštalovať iba tie moduly, ktorými budeme systém spravovať pomocou eBoxu.

Inštalácia

Jednotlivé moduly systému eBox sú rozdelené do samostatných balíčkov, čo nám umožní nainštalovať len tie, ktoré budeme naozaj potrebovať. Jeden zo spôsobov, akým sa dajú zobraziť všetky dostupné balíky, je pomocou príkazu:

apt-cache rdepends ebox | uniq

Ak chceme nainštalovať balík ebox, ktorý obsahuje základný modul, zadáme nasledujúci príkaz:

sudo apt-get install ebox

Počas inštalácie bude potrebné zadať heslo pre používateľa systému eBox. Po nainštalovaní eBoxu bude webové rozhranie dostupné na adrese: https://vasserver/ebox.

Konfigurácia

Dôležitá vec, ktorú je si potrebné pamätať pri používaní systému eBox je to, že keď zmeníme konfiguráciu, vo väčšine modulov je tlačítko Change, ktoré zmenenú konfiguráciu implementuje. Po kliknutí na tlačítko Change väčšinu modulov (nie všetky), je potrebné uložiť. Ak chceme novú konfiguráciu uložiť, klikneme na odkaz v pravom hornom rohu s nápisom “Save changes”.

[Note]

Ak vykonáte zmenu, ktorú je potrebné uložiť, odkaz zmení farbu zo zelenej na červenú.

eBox moduly

V základnom stave eBox moduly nie sú zapnuté. Ani po nainštalovaní nového modulu sa modul automaticky nezapne.

Ak chceme zapnúť modul, klikneme na odkaz Module status v ponuke na ľavej strane. Potom označíme, ktoré moduly chceme zapnúť, a potom klikneme na odkaz “Save”.

Základné moduly

Toto je stručný prehľad základných eBox modulov.

  • System: obsahuje možnosti na konfigurovanie základných položiek rozhrania eBox.
    • General (všeobecné nastavenia): umožňuje nastaviť jazyk, číslo portu a zmeniť heslo.
    • Disk Usage (využitie disku): zobrazí graficky spracované informácie o využití diskového priestoru.
    • Backup (zálohovanie): sa používa na zálohovanie konfiguračných volieb rozhrania eBox. Voľba Full Backup umožňuje uložiť všetky nastavenia rozhrania eBox, ktoré sa neukladajú pri voľbe Configuration vrátane log súborov.
    • Halt/Reboot (vypnutie/reštart): vypne alebo reštartuje systém.
    • Bug Report (nahlasovanie chýb): vytvorí súbor obsahujúci detaily pri nahlasovaní chýb rozhrania eBox jeho vývojárom.
  • Logs (záznamy): umožňuje nastaviť vytváranie záznamov systému eBox a nastaviť pravidelné mazanie starých záznamov.
  • Events (udalosti): tento modul má schopnosť odoslať upozornenia prostredníctvom rss, jabberu a log súboru.
    • Upozorňovanie:
      • Free Storage Space: odošle upozornenie ak voľné miesto klesne pod nastavenú hranicu 10%.
      • Log Observer: táto funkcia rozhrania eBox bohužiaľ nefungovala v Ubuntu 7.10. (pozn. prekladateľa: Aký je stav v Ubuntu 9.04 neviem.)
      • RAID: monitoruje diskové pole RAID a odošle varovanie ak nastane nejaký problém.
      • Service: odošle upozornenie, ak sa niektorá služba počas krátkej doby viackrát po sebe reštartuje.
      • State: upozorní na stav rozhrania eBox, či je naštartované alebo nie.
    • Dispatchers (hlásiče):
      • Log: tento hlásič odošle správy do log súboru rozhrania eBox s názvom /var/log/ebox/ebox.log
      • Jabber: pred zapnutím tohto hlásiča ho musíte najskôr nastaviť kliknutím na ikonu “Configure”.
      • RSS: po nastavení tohto hlásiča sa môžete prihlásiť k odberu upozornení prostredníctvom kanála RSS.

Ďalšie moduly

Toto je stručný prehľad ostatných dostupných modulov pre rozhranie eBox:

  • Network (sieť): umožňuje nastavenie sieťových nastavení servera prostredníctvom rozhrania eBox. 
  • Firewall: nastavuje možnosti firewallu pre hosta s rozhraním eBox.
  • UsersandGroups (používatelia a skupiny): tento modul umožňuje spravovať používateľov a skupiny, ktoré sa nachádzajú v LDAP adresári OpenLDAP .
  • DHCP: poskytuje rozhranie pre konfiguráciu DHCP servera.
  • DNS: poskytuje rozhranie pre konfiguráciu DNS servera BIND9.
  • Objects (objekty): umožňuje pomocou rozhrania eBox nastaviť Network Objects (sieťové objekty), ktoré umožňujú priradiť meno IP adrese alebo skupine IP adries.
  • Services (služby): zobrazí informácie o nastavení služieb dostupných zo siete.
  • Squid: poskytuje rozhranie pre konfiguráciu proxy servera Squid.
  • CA: nastaví Certifikačnú Autoritu pre server.
  • NTP: nastavuje možnosti protokolu Network Time Protocol.
  • Printers (tlačiarne): umožňuje konfigurovať tlačiarne.
  • Samba: umožňuje konfigurovať Samba server.
  • OpenVPN: umožňuje nastaviť Virtuálnu privátnu sieť OpenVPN.

Zdroje

Sieťová autentifikácia

Táto časť hovorí o rôznych protokoloch sieťovej autentifikácie.

OpenLDAP Server

LDAP je skratka pre Lightweight Directory Access Protocol (protokol odľahčeného prístupu k adresárom), ktorý je zjednodušenou verziou protokolu X.500. Nastavenie adresárov v tejto časti použijeme na autentifikáciu. LDAP sa však dá použiť aj na rôzne ďalšie účely, ako napríklad zdielaný adresár (pre mailových klientov), adresár kontaktov, atď.

Ak by sme chceli zjednodušene povedať, čo je LDAP, povedali by sme, že sú to informácie usporiadané do stromovej štruktúry (označuje sa cn=nazov_stromu). V  OpenLDAP môžeme slobodne určiť rozvetvenie adresárov (tzv. DIT – Directory Information Tree). My začneme vytvorením dvoch organizačných jednotiek (označuje sa ou=nazov_jednotky) na najvyššej úrovni:

  • "Ludia": uzol, do ktorého budeme zadávať používateľov.
  • "Skupiny": uzol, do ktorého budeme zadávať skupiny.

Pred tým, ako začneme, mali by sme zistiť, ako sa volá uzol najvyššej úrovne LDAP adresára. Za normálnych okolností je meno stromu určené tzv. Fully Qualified Domain Name (FQDN) – úplným menom domény (označuje sa dc=nazov_domeny). Ak je vaša doména nieco.sk (ktorú budeme v tomto príklade používať), názov hlavného uzla bude dc=nieco,dc=sk.

Inštalácia

Najskôr nainštalujeme démon OpenLDAP servera slapd a balík ldap-utils, ktorý obsahuje nástroje pre správu LDAP:

sudo apt-get install slapd ldap-utils

V predvolenom stave je slapd nastavený s minimálnymi voľbami potrebnými na beh démona slapd.

Príklad konfigurácie v nasledujúcich častiach sa zhoduje s doménovým názvom servera. Napríklad počítač s FQDN adresou ldap.nieco.sk bude mať príponu dc=nieco,dc=sk.

Naplnenie LDAP

Adresár na pozadí cn=config má len minimálnu konfiguráciu a bude potrebné nastaviť ďalšie voľby, aby bolo možné naplniť adresár v popredí. Adresár v popredí napliníme pomocou schémy "classical", ktorá je kompatibilná s adresármi v aplikáciách a s kontami Unix Posix. Kontá Posix umožňujú autentifikáciu do rôznych aplikácií, vrátane webových aplikácií, emailových aplikácií Mail Transfer Agent (MTA), atď.

[Note]

Ak chcete, aby externé aplikácie používali LDAP pri autentifikácii, je potrebné každú z nich nastaviť osobitne. Viac informácii získate v dokumentácii konkrétnej aplikácie.

Nezabudnite zmeniť dc=nieco,dc=sk v nasledujúcich príkladoch, na zodpovedajúce vašej konfigurácii LDAP.

Najskôr je potrebné načítať niektoré prídavné schémy. Do príkazového riadka zadáme:

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif

Teraz niekde v systéme vytvoríme súbor s názvom pozadie.nieco.sk.ldif a skopírujeme do neho nasledujúci ukážkový obsah LDIF súboru:

# Načítanie dynamických modulov pozadia
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb

# Nastavenia databázy
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=nieco,dc=sk
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=nieco,dc=sk
olcRootPW: tajne
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword,shadowLastChange by dn=\"cn=admin,dc=nieco,dc=sk\" write by anonymous auth by self write by * none
olcAccess: to dn.base=\"\" by * read
olcAccess: to * by dn=\"cn=admin,dc=nieco,dc=sk\" write by * read
[Note]

Zmeňte olcRootPW: tajne na vami vybrané heslo.

Teraz pridáme LDIF do adresára:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f pozadie.nieco.sk.ldif

Teraz môžeme naplniť adresár v popredí. Vytvoríme súbor popredie.nieco.sk.ldif s nasledujúcim obsahom:

# Vytvorenie najvrchnejšieho objektu v doméne
dn: dc=nieco,dc=sk
objectClass: top
objectClass: dcObject
objectclass: organization
o: Organizácia Nieco
dc: Nieco
description: Ukážka LDAP

# Používateľ Admin.
dn: cn=admin,dc=nieco,dc=sk
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: tajne

dn: ou=ludia,dc=nieco,dc=sk
objectClass: organizationalUnit
ou: ludia

dn: ou=skupiny,dc=nieco,dc=sk
objectClass: organizationalUnit
ou: skupiny

dn: uid=jozef,ou=ludia,dc=nieco,dc=sk
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: jozef
sn: Mrkva
givenName: Jozef
cn: Jozef Mrkva
displayName: Jozef Mrkva
uidNumber: 1000
gidNumber: 10000
userPassword: heslo
gecos: Jozef Mrkva
loginShell: /bin/bash
homeDirectory: /home/jozef
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: jozef.mrkva@nieco.sk
postalCode: 81100
l: Bratislava
o: Nieco
mobile: +421 (0)9xx xx xx xx
homePhone: +421 (0)2 xx xx xx xx
title: Systemový administrátor
postalAddress:
initials: JM

dn: cn=priklad,ou=skupiny,dc=nieco,dc=sk
objectClass: posixGroup
cn: priklad
gidNumber: 10000

V tomto príklade je nastavená štruktúra adresára, používateľ a skupina. V iných príkladoch konfigurácie môžeme naraziť na nastavenie objectClass: top, ktoré býva pridané ku každému záznamu. Toto nastavenie však nemusíme pridávať explicitne, pretože je predvolené.

Pridáme záznamy do LDAP adresára :

sudo ldapadd -x -D cn=admin,dc=nieco,dc=sk -W -f popredie.nieco.sk.ldif

Pomocou nástroja ldapsearch môžeme overiť, či bol obsah správne pridaný. Spustíme vyhľadávanie v LDAP adresári:

ldapsearch -xLLL -b "dc=nieco,dc=sk" uid=jozef sn givenName cn
dn: uid=jozef,ou=ludia,dc=nieco,dc=sk
cn: Jozef Mrkva
sn: Mrkva
givenName: Jozef

Rýchle vysvetlenie:

  • -x: nepoužije SASL metódu autentifikácie, ktorá je predvolená.
  • -LLL: zabráni vypísaniu informácií o LDIF schéme.

Ďalšie nastavenia

Strom cn=config sa dá upravovať pomocou nástrojov z balíka ldap-utils. Napríklad takto:

  • Ak chceme strom zobraziť, použijeme príkaz ldapsearch a zadáme heslo správcu, ktoré sme zadali pri inštalácii:
    sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn

    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    dn: cn=config

    dn: cn=module{0},cn=config

    dn: cn=schema,cn=config

    dn: cn={0}core,cn=schema,cn=config

    dn: cn={1}cosine,cn=schema,cn=config

    dn: cn={2}nis,cn=schema,cn=config

    dn: cn={3}inetorgperson,cn=schema,cn=config

    dn: olcDatabase={-1}frontend,cn=config

    dn: olcDatabase={0}config,cn=config

    dn: olcDatabase={1}hdb,cn=config
    Výpis, ktorý sa nám zobrazil, predstavuje aktuálnu konfiguráciu databázy na pozadí cn=config. Výpis sa môže líšiť.
  • Aby sme ukázali, ako sa strom cn=config upravuje, pridáme pomocou ldapmodify ďalší atribút do zoznamu indexov: 
    sudo ldapmodify -Y EXTERNAL -H ldapi:///

    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    dn: olcDatabase={1}hdb,cn=config
    add: olcDbIndex
    olcDbIndex: entryUUID eq

    modifying entry "olcDatabase={1}hdb,cn=config"
    Po ukončení pridávania nástroj ukončíme stlačením Ctrl+D. 
  • ldapmodify môže zmeny prečítať aj zo súboru. Nasledujúci text skopírujeme do súboru s názvom uid_index.ldif:
    dn: olcDatabase={1}hdb,cn=config
    add: olcDbIndex
    olcDbIndex: uid eq,pres,sub
    Potom spustíme ldapmodify:
    sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f uid_index.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    modifying entry "olcDatabase={1}hdb,cn=config"
    Tento spôsob s nastavením v súbore sa používa najmä pri rozsiahlych zmenách.
  • Ak chceme pridať do slapd ďalšiu schému (definíciu atribútov pre organizačnú jednotku), je potrebné ju prekonvertovať do LDIF formátu. Priečinok /etc/ldap/schema obsahuje niektoré schémami v súboroch, ktoré sú už skonvertované do LDIF formátu podobne ako sme to demonštrovali v predchádzajúcej časti. Našťastie sa program slapd dá použiť na zautomatizovanie konverzie. V nasledujúcom príklade pridáme schému dyngoup.schema:
    1. Najskôr vytvoríme konverzný súbor schema_convert.conf a uložíme do neho nasledujúce riadky:
      include /etc/ldap/schema/core.schema
      include /etc/ldap/schema/collective.schema
      include /etc/ldap/schema/corba.schema
      include /etc/ldap/schema/cosine.schema
      include /etc/ldap/schema/duaconf.schema
      include /etc/ldap/schema/dyngroup.schema
      include /etc/ldap/schema/inetorgperson.schema
      include /etc/ldap/schema/java.schema
      include /etc/ldap/schema/misc.schema
      include /etc/ldap/schema/nis.schema
      include /etc/ldap/schema/openldap.schema
      include /etc/ldap/schema/ppolicy.schema
    2. V ďalšom kroku vytvoríme dočasný priečinok pre ukladanie výstupov:
      mkdir /tmp/ldif_output
    3. Teraz pomocou slapcat skonvertujeme súbor schémy do LDIF formátu:
      slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={5}dyngroup,cn=schema,cn=config" > /tmp/cn=dyngroup.ldif

      Ak by sme použili iný názov konfiguračného súboru a priečinka, bolo by potrebné prispôsobiť aj príkaz. Priečinok ldif_output nemusíme mazať, môžeme ho využiť neskôr, keď budeme pridávať ďalšie schémy.
    4. Otvoríme súbor /tmp/cn\=dyngroup.ldif, zmeníme nasledujúce atribúty:
      dn: cn=dyngroup,cn=schema,cn=config
      ...
      cn: dyngroup
      a odstránime nasledujúce riadky z konca súboru:
      structuralObjectClass: olcSchemaConfig
      entryUUID: 10dae0ea-0760-102d-80d3-f9366b7f7757
      creatorsName: cn=config
      createTimestamp: 20080826021140Z
      entryCSN: 20080826021140.791425Z#000000#000#000000
      modifiersName: cn=config
      modifyTimestamp: 20080826021140Z
      [Note]

      Hodnoty atribútov môžu byť iné, preto si pri mazaní dajte pozor, aby ste zmazali všetky uvedené atribúty.

    5. Nakoniec pomocou nástroja ldapadd pridáme novú schému do adresára:
      sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/cn\=dyngroup.ldif

Teraz by sme v strome cn=config mali mať záznam dn: cn={4}misc,cn=schema,cn=config.

Replikácia LDAP

LDAP sa veľmi rýchlo stane kľúčovou službou v našej sieti. Viaceré systémy budú závislé od LDAP autentifikácie, autorizácie, konfigurácie, atď. Z tohto dôvodu je dobré systém nastaviť tak, aby bol redundantný.

Replikácia sa vykonáva pomocou Syncrepl. Syncrepl umožňuje synchronizáciu adresára buď pomocou modelu výrobca - spotrebiteľ. Výrobca poskytuje zmeny v adresári spotrebiteľovi

Konfigurácia výrobcu

My použijeme tzv. Single-Master konfiguráciu. V našom príklade bude jeden OpenLDAP server výrobca a druhý spotrebiteľ

  1. Najskôr nastavíme server výrobcu. Skopírujeme nasledujúce riadky do súboru s názvom provider_sync.ldif:
    # Pridá indexy do databázy popredia.
    dn: olcDatabase={1}hdb,cn=config
    changetype: modify
    add: olcDbIndex
    olcDbIndex: entryCSN eq
    -
    add: olcDbIndex
    olcDbIndex: entryUUID eq

    #Načíta moduly syncprov a accesslog.
    dn: cn=module{0},cn=config
    changetype: modify
    add: olcModuleLoad
    olcModuleLoad: syncprov
    -
    add: olcModuleLoad
    olcModuleLoad: accesslog

    # Definície databázy accesslog
    dn: olcDatabase={2}hdb,cn=config
    objectClass: olcDatabaseConfig
    objectClass: olcHdbConfig
    olcDatabase: {2}hdb
    olcDbDirectory: /var/lib/ldap/accesslog
    olcSuffix: cn=accesslog
    olcRootDN: cn=admin,dc=nieco,dc=sk
    olcDbIndex: default eq
    olcDbIndex: entryCSN,objectClass,reqEnd,reqResult,reqStart

    # Accesslog db syncprov.
    dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
    changetype: add
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov
    olcSpNoPresent: TRUE
    olcSpReloadHint: TRUE

    # syncrepl Výrobcu pre primárnu db
    dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
    changetype: add
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov
    olcSpNoPresent: TRUE

    # Prekryje definície accesslog pre primárnu db
    dn: olcOverlay=accesslog,olcDatabase={1}hdb,cn=config
    objectClass: olcOverlayConfig
    objectClass: olcAccessLogConfig
    olcOverlay: accesslog
    olcAccessLogDB: cn=accesslog
    olcAccessLogOps: writes
    olcAccessLogSuccess: TRUE
    # Prehľadá accesslog DB každý deň a odstráni záznamy staršie ako 7 dní
    olcAccessLogPurge: 07+00:00 01+00:00
  2. Teraz je potrebné upraviť profil AppArmor pre slapd a zadať do neho umiestnenie databázy accesslog. Otvoríme súbor /etc/apparmor.d/usr.sbin.slapd a pridáme:

      /var/lib/ldap/accesslog/ r,
    /var/lib/ldap/accesslog/** rwk,

    Potom vytvoríme priečinok, znova načítame profil apparmor a skopírujeme súbor DB_CONFIG:

    sudo -u openldap mkdir /var/lib/ldap/accesslog
    sudo -u openldap cp /var/lib/ldap/DB_CONFIG /var/lib/ldap/accesslog/
    sudo /etc/init.d/apparmor reload
    [Note]

    Pomocou voľby -u openldap za príkazom sudo odstránime potrebu nastavovania práv pre novovytvorený priečinok.

  3. Otvoríme súbor a zmeníme nastavenie olcRootDN tak, aby sa zhodoval s naším adresárom:
    olcRootDN: cn=admin,dc=nieco,dc=sk
  4. Potom LDIF súbor pridáme pomocou nástroja ldapadd utility:

    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f provider_sync.ldif
  5. Reštartujeme slapd:

    sudo /etc/init.d/slapd restart
Server v úlohe výrobcu je teraz nakonfigurovaný a teraz je čas nakonfigurovať server v úlohe spotrebiteľa.

Konfigurácia spotrebiteľa

  1. Na serveri v úlohe spotrebiteľa nastavíme to isté ako na serveri v úlohe výrobcu s výnimkou konfiguračných krokov pre Syncrepl.

    Pridáme dodatočné súbory schém:

    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif

    Tiež vytvoríme alebo z výrobcu skopírujeme súbor pozadie.nieco.sk.ldif

    # Načítanie dynamických modulov pozadia
    dn: cn=module,cn=config
    objectClass: olcModuleList
    cn: module
    olcModulepath: /usr/lib/ldap
    olcModuleload: back_hdb

    # Nastavenia databázy
    dn: olcDatabase=hdb,cn=config
    objectClass: olcDatabaseConfig
    objectClass: olcHdbConfig
    olcDatabase: {1}hdb
    olcSuffix: dc=nieco,dc=sk
    olcDbDirectory: /var/lib/ldap
    olcRootDN: cn=admin,dc=nieco,dc=sk
    olcRootPW: tajne
    olcDbConfig: set_cachesize 0 2097152 0
    olcDbConfig: set_lk_max_objects 1500
    olcDbConfig: set_lk_max_locks 1500
    olcDbConfig: set_lk_max_lockers 1500
    olcDbIndex: objectClass eq
    olcLastMod: TRUE
    olcDbCheckpoint: 512 30
    olcAccess: to attrs=userPassword,shadowLastChange by dn=\"cn=admin,dc=nieco,dc=sk\" write by anonymous auth by self write by * none
    olcAccess: to dn.base=\"\" by * read
    olcAccess: to * by dn=\"cn=admin,dc=nieco,dc=sk\" write by * read

    a pridáme LDIF zadaním príkazu:

    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.nieco.sk.ldif
  2. To isté urobíme so súborom popredie.nieco.sk.ldif zobrazeným vyššie a tiež ho pridáme:

    sudo ldapadd -x -D cn=admin,dc=nieco,dc=sk -W -f frontend.nieco.sk.ldif

    Oba servery by teraz mali mať rovnakú konfiguráciu až na voľby Syncrepl.

  3. Teraz vytvoríme súbor s názvom consumer_sync.ldif obsahujúci:

    #Načítanie modulu syncprov.
    dn: cn=module{0},cn=config
    changetype: modify
    add: olcModuleLoad
    olcModuleLoad: syncprov

    # Ukazovatele špecifické pre syncrepl
    dn: olcDatabase={1}hdb,cn=config
    changetype: modify
    add: olcDbIndex
    olcDbIndex: entryUUID eq
    -
    add: olcSyncRepl
    olcSyncRepl: rid=0 provider=ldap://ldap01.example.com bindmethod=simple binddn="cn=admin,dc=nieco,dc=sk"
    credentials=tajne searchbase="dc=nieco,dc=sk" logbase="cn=accesslog"
    logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on
    type=refreshAndPersist retry="60 +" syncdata=accesslog
    -
    add: olcUpdateRef
    olcUpdateRef: ldap://ldap01.nieco.sk

    Bude pravdepodobne potrebné zmeniť tieto atribúty:

    • ldap01.nieco.sk na adresu nášho servera.

    • binddn

    • credentials

    • searchbase

    • olcUpdateRef:

  4. Pridáme LDIF súbor do konfiguračného stromu:

    sudo ldapadd -c -Y EXTERNAL -H ldapi:/// -f consumer_sync.ldif

Databáza popredia by teraz mala byť synchronizovaná medzi oboma servermi. Podľa predchádzajúcich krokov môžeme v prípade potreby pridať aj ďalšie servery.

[Note]

Démon slapd bude v predvolenom stave odosielať záznamy do súboru /var/log/syslog. Takže ak niečo neprebehne tak, ako má, nájdeme v ňom zapísané zaznamy o chybách a ďalšie informácie potrebné pre vyriešenie problému. Je potrebné sa tiež uistiť, či sú všetky servery známe pod úplnou doménovou adresou - Fully Qualified Domain Name (FQDN). V súbore /etc/hosts by malo byť zapísané niečo podbné tomuto:

127.0.0.1	ldap01.nieco.sk ldap01

.

Nastavenie prístupových práv

Autentifikácia vyžaduje prístup k poľu s heslom, ktoré by nemalo byť prístupné bežným spôsobom. Aby si používatelia po prihlásení mohli zmeniť svoje heslo pomocou passwd alebo iných nástrojov, potrebujú prístup k shadowLastChange.

Ak chceme zobraziť tzv. Access Control List (ACL) - zoznam prístupových práv, použijeme nástroj ldapsearch:

ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase=hdb olcAccess

Enter LDAP Password: 
dn: olcDatabase={1}hdb,cn=config
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=nieco
,dc=sk" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=nieco,dc=sk" write by * read

TLS a SSL

Ak sa prihlasujeme k OpenLDAP serveru, je vhodné to robiť pomocou šifrovaného pripojenia. Toto je možné zabezpečiť pomocou použitia Transport Layer Security (TLS) a/alebo Secure Sockets Layer (SSL).

Prvý krok, ktorý je potrebné vykonať, je získanie alebo vytvorenie certifikátu. Pretože démon slapd je kompilovaný pomocou knižnice gnutls, na vytvorenie certifikátu je potrebné použiť nástroj certtool.

  1. Najskôr nainštalujeme balík gnutls-bin zadaním nasledujúceho príkazu:

    sudo apt-get install gnutls-bin
  2. Potom vytvoríme súkromný kľúč pre Certifikačnú autoritu (CA):

    sudo sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
  3. Vytvoríme súbor /etc/ssl/ca.info s podrobnosťami pre sebou podpísaný certifikát CA obsahujúci:

    cn = Spoločnosť Niečo
    ca
    cert_signing_key
  4. Teraz vytvoríme sebou podpísaný certifíkát CA:

    sudo certtool --generate-self-signed --load-privkey /etc/ssl/private/cakey.pem \ 
    --template /etc/ssl/ca.info --outfile /etc/ssl/certs/cacert.pem

  5. Vytvoríme súkromný kľúč pre server:

    sudo sh -c "certtool --generate-privkey > /etc/ssl/private/ldap01_slapd_key.pem"
    [Note]

    V názve súboru nahraďte ldap01 vami používaným názvom hostiteľskej stanice. Správne pomenovanie certifikátu a kľúča pre stanicu a službu, ktorú používame, je dôležité kvôli poriadku.

  6. Keď chceme podpísať serverový certifikát pomocou CA, vytvoríme súbor /etc/ssl/ldap01.info obsahujúci:

    organization = Spoločnosť Niečo
    cn = ldap01.nieco.sk
    tls_www_server
    encryption_key
    signing_key
  7. Vytvoríme serverový certifikát:

    sudo certtool --generate-certificate --load-privkey /etc/ssl/private/x01-test_slapd_key.pem \
    --load-ca-certificate /etc/ssl/certs/cacert.pem --load-ca-privkey /etc/ssl/private/cakey.pem \
    --template /etc/ssl/x01-test.info --outfile /etc/ssl/certs/x01-test_slapd_cert.pem

Keď máme nainštalovaný certifikát, kľúč a certifikát CA, pomocou nástroja ldapmodify pridáme nové voľby konfigurácie:

sudo ldapmodify -Y EXTERNAL -H ldapi:///
Enter LDAP Password:
dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap01_slapd_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_slapd_key.pem


modifying entry "cn=config"

[Note]

Zmeňte názvy ldap01_slapd_cert.pem, ldap01_slapd_key.pem a cacert.pem ak ste použili iné.

Teraz otvoríme súbor /etc/default/slapd a odpoznámkujeme voľbu SLAPD_SERVICES:

SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

 

Teraz povolíme používateľovi menom openldap prístup k certifikátu:

sudo adduser openldap ssl-cert
sudo chgrp ssl-cert /etc/ssl/private/ldap01_slapd_key.pem
sudo chmod g+r /etc/ssl/private/ldap01_slapd_key.pem
[Note]

Ak /etc/ssl/private a /etc/ssl/private/server.key majú rozdielne nastavené práva, prispôsobte podľa toho príkazy.

Nakoniec reštartujeme slapd:

sudo /etc/init.d/slapd restart
Odteraz démon slapd bude akceptovať aj šifrované LDAPS pripojenia a bude môcť použiť STARTTLS počas autentifikácie.
[Note]

Ak nastane problém a server sa nedá naštartovať, skontrolujeme /var/log/syslog. Ak zbadáme chybu podobnú: TLS init def ctx failed: -1, je pravdepodobné, že sme urobili chybu v konfigurácii. Skontrolujeme, či je certifikát podpísaný autoritou aká je nastavená v konfiguračných súboroch, a či má skupina ssl-cert právo na čítanie súkromného kľúča.

 

TLS Replikácia

Ak sme medzi servermi nastavili Syncrepl, je rozumné zašifrovať replikačnú komunikáciu pomocou Transport Layer Security (TLS). Viac informácii o replíkácii nájdeme v časti “Replikácia LDAP”.

Za predpokladu, že sme sa pomocou predchádzajúcich inštrukcií dostali až sem, vytvorili sme certifikát CA  a certifikát pre server v úlohe výrobcu. Pomocou nasledujúcich krokov teraz vytvoríme certifikát a kľuč pre server v úlohe spotrebiteľa.

  1. Vytvoríme nový kľúč pre server v úlohe spotrebiteľa:

    mkdir ldap02-ssl
    cd ldap02-ssl
    certtool --generate-privkey > ldap02_slapd_key.pem
    [Note]

    Vytvorenie nového priečinka nie je nevyhnutne potrebné, ale pomôže nám to udržať poriadok a budú sa nám ľahšie kopírovať súbory na server v úlohe spotrebiteľa.

  2. Teraz vytvoríme súbor ldap02.info s informáciami pre server v úlohe spotrebiteľa, pričom zmeníme parametre aby súhlasili s našou lokalitou a serverom:

    country = SK
    state = Slovakia
    locality = Bratislava
    organization = Spoločnosť Niečo
    cn = ldap02.filialka.sk
    tls_www_client
    encryption_key
    signing_key
  3. Vytvoríme certifikát:

    sudo certtool --generate-certificate --load-privkey ldap02_slapd_key.pem \
    --load-ca-certificate /etc/ssl/certs/cacert.pem --load-ca-privkey /etc/ssl/private/cakey.pem \
    --template ldap02.info --outfile ldap02_slapd_cert.pem

  4. Skopírujeme cacert.pem do priečinka:

    cp /etc/ssl/certs/cacert.pem .
  5. Poslednú vec, ktorú musíme urobiť, je skopírovať priečinok ldap02-ssl dna server v úlohe spotrebiteľa, potom skopírovať súbory ldap02_slapd_cert.pem a cacert.pem do priečinka /etc/ssl/certs a súbor ldap02_slapd_key.pem do priečinka /etc/ssl/private.

  6. Keď sú súbory na správnom mieste, uprevíme vetvu cn=config zadaním:

    sudo ldapmodify -Y EXTERNAL -H ldapi:///
    Enter LDAP Password:
    dn: cn=config
    add: olcTLSCACertificateFile
    olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
    -
    add: olcTLSCertificateFile
    olcTLSCertificateFile: /etc/ssl/certs/ldap02_slapd_cert.pem
    -
    add: olcTLSCertificateKeyFile
    olcTLSCertificateKeyFile: /etc/ssl/private/ldap02_slapd_key.pem


    modifying entry "cn=config"

  7. Tak, ako pri výrobcovi, teraz môžeme otvoriť súbor /etc/default/slapd a pridať parameter ldaps:/// do voľby SLAPD_SERVICES.

Teraz, keď je TLS nastavené na každom serveri, ešte raz upravíme vetvu cn=config na spotrebiteľovi zadaním:

sudo ldapmodify -Y EXTERNAL -H ldapi:///
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
 

dn: olcDatabase={1}hdb,cn=config
replace: olcSyncrepl
olcSyncrepl: {0}rid=0 provider=ldap://ldap01.example.com bindmethod=simple binddn="cn=ad
min,dc=example,dc=com" credentials=secret searchbase="dc=example,dc=com" logbas
e="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" s
chemachecking=on type=refreshAndPersist retry="60 +" syncdata=accesslog starttls=yes
 

modifying entry "olcDatabase={1}hdb,cn=config"

 

Ak adresa stanice LDAP servera nesúhlasí s FQDN v certifikáte, mali by sme otvoriť súbor /etc/ldap/ldap.conf a pridať nasledujúce TLS nastavenia:

TLS_CERT /etc/ssl/certs/ldap02_slapd_cert.pem
TLS_KEY /etc/ssl/private/ldap02_slapd_key.pem
TLS_CACERT /etc/ssl/certs/cacert.pem

Nakoniec reštartujeme slapd na každom serveri:

sudo /etc/init.d/slapd restart

LDAP autentifikácia

Keď máme funkčný LDAP server, balíky auth-client-config a libnss-ldap nám pomôžu prekonať ťažkosti pri nastavovaní Ubuntu klientov tak, aby sa prihlasovali pomocou LDAP. Ak chceme balíky nainštalovať, zadáme:

sudo apt-get install libnss-ldap

Počas inštalácie bude potrebné zadať parametre pripojenia k LDAP serveru.

Ak sa pomýlime pri zadávaní informácií, môžeme dialóg vyvolať znova pomocou príkazu:

sudo dpkg-reconfigure ldap-auth-config

Hodnoty, ktoré zadáme do dialógu, môžeme vidieť v súbore /etc/ldap.conf. Ak náš server vyžaduje nastavenie, ktoré sa nenachádza v dialógu, môžeme ho v tomto súbore doplniť.

Teraz, keď je libnss-ldap nakonfigurované, zapneme pomocou auth-client-config LDAP profil:

sudo auth-client-config -t nss -p lac_ldap
  • -t: zmení iba /etc/nsswitch.conf.
  • -p: meno profilu, ktoré sa má zapnúť alebo vypnúť.
  • lac_ldap: profil auth-client-config, ktorý je časťou balíka ldap-auth-config.

Použitím nástroja pam-auth-update nastavíme systém tak, aby používal na autentifikáciu LDAP:

sudo pam-auth-update

Z ponuky pam-auth-update vyberieme LDAP a ktorékoľvek ďalšie autentifikačné mechanizmy, ktoré ešte potrebujeme.

Teraz by sme mali byť schopný prihlásiť používateľa, ktorý je uložený v LDAP adresáre.

[Note]

Ak sa chystáte použiť LDAP na uloženie používateľov systému Samba, bude potrebné nastaviť server tak, aby na autentifikáciu využíval LDAP. Viac informácii sa dozviete v časti “Samba a LDAP”.

Správa používateľov a skupín

Balík ldap-utils obsahuje viacero nástrojov na správu adresára, ale pri potrebe nastavenia dlhších reťazcov môže byť ich použitie ťažkopádne. Balík ldapscripts obsahuje konfiguračné skripty na správu LDAP používateľov a skupín.

Ak tento balíček chceme nainštalovať, zadáme:

sudo apt-get install ldapscripts

Potom otvoríme konfiguračný súbor /etc/ldapscripts/ldapscripts.conf a odkomentujeme a zmeníme nasledujúce riadky tak, aby zodpovedali nášmu prostrediu:

SERVER=localhost
BINDDN='cn=admin,dc=nieco,dc=sk'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=nieco,dc=sk'
GSUFFIX='ou=Skupiny'
USUFFIX='ou=Ludia'
MSUFFIX='ou=Pocitace'
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000

Teraz vytvoríme súbor ldapscripts.passwd, aby sme umožnili autentifikovaný prístup k adresáru:

sudo sh -c "echo -n 'tajne' > /etc/ldapscripts/ldapscripts.passwd"
sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd
[Note]

Slovo “tajne” nahraďte aktuálnym heslom LDAP administrátora.

Odteraz sú skripty ldapscripts pripravené pomôcť nám pri správe adresára. Nasledujúce príklady hovoria o tom, ako sa skripty používajú:

  • Vytvorenie nového používateľa:
    sudo ldapadduser juro pokus
    Tento príkaz vytvorí používateľa s uid juro a nastaví jeho hlavnú skupinu (gid) na pokus
  • Zmena hesla:
    sudo ldapsetpasswd juro
    Changing password for user uid=juro,ou=Ludia,dc=nieco,dc=sk
    New Password:
    New Password (verify):
  • Odstránenie používateľa:
    sudo ldapdeleteuser juro
  • Pridanie skupiny:
    sudo ldapaddgroup qa
  • Odstránenie skupiny:
    sudo ldapdeletegroup qa
  • Pridanie používateľa do skupiny:
    sudo ldapaddusertogroup juro qa
    Teraz sa môžeme presvedčiť, že atribút memberUid skupiny qa bude obsahovať hodnotu juro.
  • Odstránenie používateľa zo skupiny:
    sudo ldapdeleteuserfromgroup juro qa
    Z atribútu memberUid skupiny qa by mal byť juro teraz odstránený.
  • Skript ldapmodifyuser umožňuje pridať, odstrániť alebo nahradiť atribúty používateľa. Skript používa rovnakú syntax ako nástroj ldapmodify. Napríklad:
    sudo ldapmodifyuser juro

    # About to modify the following entry :
    dn: uid=juro,ou=Ludia,dc=nieco,dc=sk
    objectClass: account
    objectClass: posixAccount
    cn: juro
    uid: juro
    uidNumber: 1001
    gidNumber: 1001
    homeDirectory: /home/juro
    loginShell: /bin/bash
    gecos: juro
    description: User account
    userPassword:: e1NTSEF9eXFsTFcyWlhwWkF1eGUybVdFWHZKRzJVMjFTSG9vcHk=

    # Enter your modifications here, end with CTRL-D.
    dn: uid=juro,ou=Ludia,dc=nieco,dc=sk

    replace: gecos
    gecos: Juraj Jánošík

    Atribút gecos by mal mať teraz hodnotu “Juraj Jánošík”.
  • Ďalšou obrovskou výhodou balíka ldapscripts je využívanie systémových šablón. Šablóny umožňujú prispôsobiť atribúty používateľa, skupiny a počítača. Ak chceme napríklad použiť šablónu user, otvoríme súbor /etc/ldapscripts/ldapscripts.conf a pridáme riadok:
    UTEMPLATE="/etc/ldapscripts/ldapadduser.template"
    Vzorové šablóny sa nachádzajú v priečinku /etc/ldapscripts. Skopírujeme súbor  ldapadduser.template.sample do /etc/ldapscripts/ldapadduser.template:
    sudo cp /etc/ldapscripts/ldapadduser.template.sample /etc/ldapscripts/ldapadduser.template
    Otvoríme novú šablónu a upravíme príslušné atribúty. Nasledujúca šablóna slúži na vytváranie nových používateľov s prednastaveným atribútom objectClass na hodnotu inetOrgPerson:
    dn: uid=<user>,<usuffix>,<suffix>
    objectClass: inetOrgPerson
    objectClass: posixAccount
    cn: <user>
    sn: <ask>
    uid: <user>
    uidNumber: <uid>
    gidNumber: <gid>
    homeDirectory: <home>
    loginShell: <shell>
    gecos: <user>
    description: User account
    title: Employee
    Všimnime si použitie <otázky> pre cn hodnoty. Použitím <otázky> prinútime nástroj ldapadduser aby sa opýtal na hodnotu atribútu pri vytváraní používateľa.

Existuje viac užitočných skriptov. Ak chceme zobraziť ich zoznam, zadáme príkaz: dpkg -L ldapscripts | grep bin

Zdroje

\n
dn: cn=dyngroup,cn=schema,cn=config\n
...\n
cn: dyngroup\n

OpenLDAP Server starý návod

LDAP je skratka pre Lightweight Directory Access Protocol (protokol odľahčeného prístupu k adresárom), ktorý je zjednodušenou verziou protokolu X.500. Nastavenie adresárov v tejto časti použijeme na autentifikáciu. LDAP sa však dá použiť aj na rôzne ďalšie účely, ako napríklad zdielaný adresár (pre mailových klientov), adresár kontaktov, atď.

Ak by sme chceli zjednodušene povedať, čo je LDAP, povedali by sme, že sú to informácie usporiadané do stromovej štruktúry (označuje sa cn=nazov_stromu). V OpenLDAP môžeme slobodne určiť rozvetvenie adresárov (tzv. DIT - Directory Information Tree). My začneme vytvorením dvoch organizačných jednotiek (označuje sa ou=nazov_jednotky) na najvyššej úrovni:

  • "Ludia": uzol, do ktorého budeme zadávať používateľov.
  • "Skupiny": uzol, do ktorého budeme zadávať skupiny.

Pred tým, ako začneme, mali by sme zistiť, ako sa volá uzol najvyššej úrovne LDAP adresára. Za normálnych okolností je meno stromu určené tzv. Fully Qualified Domain Name (FQDN) - úplným menom domény (označuje sa dc=nazov_domeny). Ak je vaša doména nieco.sk (ktorú budeme v tomto príklade používať), názov hlavného uzla bude dc=nieco,dc=sk.

Inštalácia

Najskôr nainštalujeme démon OpenLDAP servera slapd a balík ldap-utils, ktorý obsahuje nástroje pre správu LDAP:

sudo apt-get install slapd ldap-utils

Pri inštalácii bude potrebné zadať heslo správcu pre LDAP adresár a potvrdiť ho.

Za normálnych okolností bude prípona mena adresára zhodná s nastaveným menom domény servera. Napríklad, ak je úplné doménové meno (FQDN) počítača ldap.nieco.sk, prípona bude dc=nieco,dc=sk. Ak by sme chceli inú príponu, môžeme ju zmeniť prostredníctvom dpkg-reconfigure. Stačí zadať nasledujúci príkaz do príkazového riadka:

sudo dpkg-reconfigure slapd

Zobrazí sa nám dialóg, ktorý nám umožní zmeniť rôzne možnosti slapd.

Konfigurácia

OpenLDAP používa samostatnú databázu, ktorá obsahuje stromovú štruktúru cn=config adresárov (DIT). Databáza cn=config DIT sa používa na dynamické konfigurovanie démona slapd a umožňuje bez nutnosti zastavenia služby upravovať schémy definícii, indexov, prístupových práv atď.

Strom cn=config sa dá upravovať pomocou nástrojov z balíka ldap-utils. Napríklad takto:

  • Ak chceme strom zobraziť, použijeme príkaz ldapsearch a zadáme heslo správcu, ktoré sme zadali pri inštalácii:
    ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb
    Enter LDAP Password: 
    dn: olcDatabase={1}hdb,cn=config
    objectClass: olcDatabaseConfig
    objectClass: olcHdbConfig
    olcDatabase: {1}hdb
    olcDbDirectory: /var/lib/ldap
    olcSuffix: dc=nieco,dc=sk
    olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=nieco
    ,dc=sk" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=admin,dc=nieco,dc=sk" write by * read
    olcLastMod: TRUE
    olcDbCheckpoint: 512 30
    olcDbConfig: {0}set_cachesize 0 2097152 0
    olcDbConfig: {1}set_lk_max_objects 1500
    olcDbConfig: {2}set_lk_max_locks 1500
    olcDbConfig: {3}set_lk_max_lockers 1500
    olcDbIndex: objectClass eq
    Výpis, ktorý sa nám zobrazil, predstavuje aktuálnu konfiguráciu v databáze hdb, ktorá v našom prípade obsahuje príponu dc=nieco,dc=sk.
  • Výpis môžeme zúžiť pomocou filtra, ktorý zobrazí iba požadovanú hodnotu Index:
    ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb olcDbIndex
    Enter LDAP Password: 
    dn: olcDatabase={1}hdb,cn=config
    olcDbIndex: objectClass eq
  • Aby sme ukázali, ako sa strom cn=config upravuje, pridáme pomocou ldapmodify ďalší atribút do zoznamu indexov:
    ldapmodify -x -D cn=admin,cn=config -W
    Enter LDAP Password:

    dn: olcDatabase={1}hdb,cn=config
    add: olcDbIndex
    olcDbIndex: entryUUID eq


    modifying entry "olcDatabase={1}hdb,cn=config"
    Po ukončení pridávania nástroj ukončíme stlačením Ctrl+D.
  • ldapmodify môže zmeny prečítať aj zo súboru. Nasledujúci text skopírujeme do súboru s názvom uid_index.ldif:
    dn: olcDatabase={1}hdb,cn=config
    add: olcDbIndex
    olcDbIndex: uid eq,pres,sub
    Potom spustíme ldapmodify:
    ldapmodify -x -D cn=admin,cn=config -W -f uid_index.ldif
    Enter LDAP Password: 
    modifying entry "olcDatabase={1}hdb,cn=config"
    Tento spôsob s nastavením v súbore sa používa najmä pri rozsiahlych zmenách.
  • Ak chceme pridať do slapd ďalšiu schému (definíciu atribútov pre organizačnú jednotku), je potrebné ju prekonvertovať do LDIF formátu. Priečinok /etc/ldap/schema obsahuje niektoré schémami v súboroch, ktoré sú už skonvertované do LDIF formátu podobne ako sme to demonštrovali v predchádzajúcej časti. Našťastie sa program slapd dá použiť na zautomatizovanie konverzie. V nasledujúcom príklade pridáme schému dyngoup.schema:
    1. Najskôr vytvoríme konverzný súbor schema_convert.conf a uložíme do neho nasledujúce riadky:
      include /etc/ldap/schema/core.schema
      include /etc/ldap/schema/collective.schema
      include /etc/ldap/schema/corba.schema
      include /etc/ldap/schema/cosine.schema
      include /etc/ldap/schema/duaconf.schema
      include /etc/ldap/schema/dyngroup.schema
      include /etc/ldap/schema/inetorgperson.schema
      include /etc/ldap/schema/java.schema
      include /etc/ldap/schema/misc.schema
      include /etc/ldap/schema/nis.schema
      include /etc/ldap/schema/openldap.schema
      include /etc/ldap/schema/ppolicy.schema
    2. V ďalšom kroku vytvoríme dočasný priečinok pre ukladanie výstupov:
      mkdir /tmp/ldif_output
    3. Teraz pomocou slaptest skonvertujeme súbor schémy do LDIF formátu:
      slaptest -f schema_convert.conf -F /tmp/ldif_output
      Ak by sme použili iný názov konfiguračného súboru a priečinka, bolo by potrebné prispôsobiť aj príkaz. Priečinok ldif_output nemusíme mazať, môžeme ho využiť neskôr, keď budeme pridávať ďalšie schémy.
    4. Otvoríme súbor /tmp/ldif_output/cn=config/cn=schema/cn={8}misc.ldif, zmeníme nasledujúce atribúty:
      dn: cn=misc,cn=schema,cn=config
      ...
      cn: misc
      a odstránime nasledujúce riadky z konca súboru:
      structuralObjectClass: olcSchemaConfig
      entryUUID: 10dae0ea-0760-102d-80d3-f9366b7f7757
      creatorsName: cn=config
      createTimestamp: 20080826021140Z
      entryCSN: 20080826021140.791425Z#000000#000#000000
      modifiersName: cn=config
      modifyTimestamp: 20080826021140Z
      [Note]

      Hodnoty atribútov môžu byť iné, preto si pri mazaní dajte pozor, aby ste zmazali všetky uvedené atribúty.

    5. Nakoniec pomocou nástroja ldapadd pridáme novú schému do adresára:
      ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{8\}misc.ldif

    Teraz by sme v strome cn=config mali mať záznam dn: cn={4}misc,cn=schema,cn=config.

Naplnenie LDAP

Adresár sme už vytvorili a nakonfigurovali a teraz je čas ho naplniť. Naplníme ho pomocou schémy "classical", ktorá je kompatibilná s adresármi v aplikáciách a s kontami Unix Posix. Kontá Posix umožňujú autentifikáciu do rôznych aplikácií, vrátane webových aplikácií, emailových aplikácií Mail Transfer Agent (MTA), atď.

[Note]

Ak chcete, aby externé aplikácie používali LDAP pri autentifikácii, je potrebné každú z nich nastaviť osobitne. Viac informácii získate v dokumentácii konkrétnej aplikácie.

Adresáre LDAP môžeme naplniť pomocou súborov vo formáte LDIF (LDAP Directory Interchange Format). Vytvoríme niekde v systéme nový súbor s názvom nieco.sk.ldif a nakopírujeme do neho nasledujúcu vzorovú konfiguráciu:

dn: ou=ludia,dc=nieco,dc=sk
objectClass: organizationalUnit
ou: ludia

dn: ou=skupiny,dc=nieco,dc=sk
objectClass: organizationalUnit
ou: skupiny

dn: uid=jozef,ou=ludia,dc=nieco,dc=sk
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: jozef
sn: Mrkva
givenName: Jozef
cn: Jozef Mrkva
displayName: Jozef Mrkva
uidNumber: 1000
gidNumber: 10000
userPassword: heslo
gecos: Jozef Mrkva
loginShell: /bin/bash
homeDirectory: /home/jozef
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: jozef.mrkva@nieco.sk
postalCode: 81100
l: Bratislava
o: Firma
mobile: +421 (0)90x xxx xxx
homePhone: +421 (0)2 xxxx xxx
title: Systemový administrátor
postalAddress:
initials: JM

dn: cn=priklad,ou=skupiny,dc=nieco,dc=sk
objectClass: posixGroup
cn: priklad
gidNumber: 10000

V tomto príklade je nastavená štruktúra adresára, používateľ a skupina. V iných príkladoch konfigurácie môžeme naraziť na nastavenie objectClass: top, ktoré býva pridané ku každému záznamu. Toto nastavenie však nemusíme pridávať explicitne, pretože je predvolené.

Ak chceme pridať záznamy do LDAP adresára, použijeme na to nástroj ldapadd:

ldapadd -x -D cn=admin,dc=nieco,dc=sk -W -f nieco.sk.ldif

Ak chceme overiť, či obsah bol správne pridaný, urobíme to jedným z nástrojov balíka ldap-utils. Spustíme vyhľadávanie v LDAP adresáre:

ldapsearch -xLLL -b "dc=nieco,dc=sk" uid=jozef sn givenName cn
dn: uid=jozef,ou=ludia,dc=nieco,dc=sk
cn: Jozef Mrkva
sn: Mrkva
givenName: Jozef

Rýchle vysvetlenie:

  • -x: nepoužije SASL metódu autentifikácie, ktorá je predvolená.
  • -LLL: zabráni vypísaniu informácií o LDIF schéme.

Replikácia LDAP

LDAP sa veľmi rýchlo stane kľúčovou službou v našej sieti. Viaceré systémy budú závislé od LDAP autentifikácie, autorizácie, konfigurácie, atď. Z tohto dôvodu je dobré systém nastaviť tak, aby bol redundantný.

Replikácia sa vykonáva pomocou Syncrepl. Syncrepl umožňuje synchronizáciu adresára buď pomocou systému push alebo systému pull. Pri použití systému push “primárny” server naraz pošle adresár “sekundárnym” serverom, zatiaľčo systém pull  umožňuje replikáciu serverov synchronizovaním v určitých časových intervaloch.

My použijeme tzv. Multi-Master konfiguráciu. V našom príklade budú OpenLDAP servery používať oba spôsoby replikácie push aj pull.

  1. Najskôr pripravíme server na synchronizovanie databázy cn=config. Skopírujeme nasledujúce riadky do súboru s názvom syncrepl_cn-config.ldif:
    dn: cn=module{0},cn=config
    changetype: modify
    add: olcModuleLoad
    olcModuleLoad: syncprov

    dn: cn=config
    changetype: modify
    replace: olcServerID
    olcServerID: 1 ldap://ldap01.nieco.sk
    olcServerID: 2 ldap://ldap02.nieco.sk

    dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
    changetype: add
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov

    dn: olcDatabase={0}config,cn=config
    changetype: modify
    add: olcSyncRepl
    olcSyncRepl: rid=001 provider=ldap://ldap01.nieco.sk binddn="cn=admin,cn=config" bindmethod=simple
    credentials=tajne searchbase="cn=config" type=refreshAndPersist
    retry="5 5 300 5" timeout=1
    olcSyncRepl: rid=002 provider=ldap://ldap02.nieco.sk binddn="cn=admin,cn=config" bindmethod=simple
    credentials=tajne searchbase="cn=config" type=refreshAndPersist
    retry="5 5 300 5" timeout=1
    -
    add: olcMirrorMode
    olcMirrorMode: TRUE
  2. Otvoríme súbor a upravíme nastavenia
    • ldap://ldap01.nieco.sk a ldap://ldap02.nieco.sk na mená staníc našich LDAP serverov.
      [Note]

      Môžete mať viac ako dva LDAP servery. Keď urobíte zmenu na jednom z nich, synchronizáciou sa dostane na ostatné. Na každom ďalšom serveri však musíte pridať záznam s vyššou hodnotou olcServerID, a tiež záznam olcSyncRepl s vyššou hodnotou rid.

    • a zmeníme credentials=tajne na naše administrátorské heslo.
  3. Potom pridáme LDIF súbor pomocou nástroja ldapmodify:
    ldapmodify -x -D cn=admin,cn=config -W -f syncrepl_cn-config.ldif
  4. Skopírujeme súbor syncrepl_cn-config.ldif na ďalší LDAP server a zopakujeme vyššie použitý príkaz ldapmodify.
  5. Pretože bol pridaný nový modul, je potrebné na replikačných serveroch reštartovať slapd démon:
    sudo /etc/init.d/slapd restart
  6. Teraz je nastavenie databázy rovnaké na všetkých serveroch, rovnako je však potrebné  synchronizovať rozhranie samotnej databázy. Skopírujeme nasledujúce riadky do ďalšieho LDIF súboru s názvom syncrepl_backend.ldif:
    dn: olcDatabase={1}hdb,cn=config
    changetype: modify
    add: olcRootDN
    olcRootDN: cn=admin,dc=nieco,dc=sk
    -
    add: olcSyncRepl
    olcSyncRepl: rid=003 provider=ldap://ldap01.nieco.sk binddn="cn=admin,dc=nieco,dc=sk"
    bindmethod=simple credentials=tajne searchbase="dc=nieco,dc=sk" type=refreshOnly
    interval=00:00:00:10 retry="5 5 300 5" timeout=1
    olcSyncRepl: rid=004 provider=ldap://ldap02.nieco.sk binddn="cn=admin,dc=nieco,dc=sk"
    bindmethod=simple credentials=tajne searchbase="dc=nieco,dc=sk" type=refreshOnly
    interval=00:00:00:10 retry="5 5 300 5" timeout=1
    -
    add: olcMirrorMode
    olcMirrorMode: TRUE

    dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
    changetype: add
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov
  7. Tak ako predchádzajúci súbor LDIF, aj tento otvoríme a zmeníme:
    • searchbase="dc=nieco,dc=sk" na naše hodnoty searchbase.
    • Ak by sme chceli iného používateľa ako admin, zmenili by sme binddn="cn=admin,dc=nieco,dc=sk".
    • Zmeníme aj credentials=tajne na heslo správcu.
  8. Pridáme LDIF súbor:
    ldapmodify -x -D cn=admin,cn=config -W -f syncrepl_backend.ldif
    Vďaka tomu, že konfigurácia databáz je už synchronizovaná, nie je potrebné tento LDIF súbor kopírovať na ostatné servery.

Konfigurácia a rozhrania databáz by teraz mali byť synchronizované s ostatnými servermi. Ďalšie servery môžeme podľa potreby pridať pomocou nástroja ldapmodify. Viac informácií o tejto možnosti nájdeme v časti “Konfigurácia”.

[Note]

Démon slapd zaznamenáva svoje výstupy do súboru /var/log/syslog. Takže ak niečo nefunguje tak ako má, môžete v ňom nájsť chybové hlásenia a informácie pre ich odstránenie. Tiež sa uistite, že každý server pozná svoje plné doménové meno (FQDN). Je nastavené v súbore /etc/hosts pomocou riadka podobného tomuto:

127.0.0.1	ldap01.nieco.sk ldap01

Nastavenie prístupových práv

Autentifikácia vyžaduje prístup k poľu s heslom, ktoré by nemalo byť prístupné bežným spôsobom. Aby si používatelia po prihlásení mohli zmeniť svoje heslo pomocou passwd alebo iných nástrojov, potrebujú prístup k shadowLastChange.

Ak chcete zobraziť tzv. Access Control List (ACL) - zoznam prístupových práv, použite nástroj ldapsearch:

ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase=hdb olcAccess

Enter LDAP Password: 
dn: olcDatabase={1}hdb,cn=config
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=nieco
,dc=sk" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=nieco,dc=sk" write by * read

TLS a SSL

Ak sa prihlasujeme k OpenLDAP serveru, je vhodné to robiť pomocou šifrovaného pripojenia. Toto je možné zabezpečiť pomocou použitia Transport Layer Security (TLS) a/alebo Secure Sockets Layer (SSL).

Prvý krok, ktorý je potrebné vykonať, je vytvorenie certifikátu. Viac informácii o tejto téme nájdeme v časti “Certifikáty” a v časti “Certifikačná autorita”.

Keď máme nainštalovaný certifikát, kľuč a certifikát CA, použijeme nástroj ldapmodify, ktorým pridáme nové nastavenia:

ldapmodify -x -D cn=admin,cn=config -W
Enter LDAP Password:

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/server.crt
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/server.key


modifying entry "cn=config"
[Note]

Upravte názvy server.crt, server.key a cacert.pem na také, aké používate.

Ako ďalšie otvoríme súbor /etc/default/slapd a odpoznámkujeme riadok SLAPD_SERVICES:

SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"

Teraz povolíme používateľovi menom openldap prístup k certifikátu:

sudo adduser openldap ssl-cert
sudo chgrp ssl-cert /etc/ssl/private/server.key
[Note]

Ak /etc/ssl/private a /etc/ssl/private/server.key majú rozdielne nastavené práva, prispôsobte podľa toho príkazy.

Nakoniec reštartujeme slapd:

sudo /etc/init.d/slapd restart

Odteraz démon slapd bude akceptovať aj šifrované LDAPS pripojenia a bude môcť použiť STARTTLS počas autentifikácie.

TLS Replikácia

Ak sme medzi servermi nastavili Syncrepl, je rozumné zašifrovať replikačnú komunikáciu pomocou Transport Layer Security (TLS). Viac informácii o replíkácii nájdeme v časti “Replikácia LDAP”.

Po nastavení replikácie pokračujeme inštrukciami v časti “TLS a SSL”. Z oboch častí vyplývajú dôsledky, ktoré by sme mali mať na zreteli:

  • Konfiguráciu stačí upraviť len na jednom serveri.
  • Cesta k certifikátu a kľúču musí byť na všetkých serveroch rovnaká.

Na každom replikačnom serveri teda: nainštalujeme certifikát, upravíme súbor /etc/default/slapd a reštartujeme slapd.

Keď sme TLS nastavili na každom serveri, zmeníme replikáciu cn=config zadaním nasledujúceho príkazu:

ldapmodify -x -D cn=admin,cn=config -W
Enter LDAP Password: 

dn: olcDatabase={0}config,cn=config
replace: olcSyncrepl
olcSyncrepl: {0}rid=001 provider=ldap://ldap01.nieco.sk binddn="cn=admin,cn
=config" bindmethod=simple credentials=tajne searchbase="cn=config" type=refre
shAndPersist retry="5 5 300 5" timeout=1 starttls=yes
olcSyncrepl: {1}rid=002 provider=ldap://ldap02.nieco.sk binddn="cn=admin,cn
=config" bindmethod=simple credentials=tajne searchbase="cn=config" type=refre
shAndPersist retry="5 5 300 5" timeout=1 starttls=yes


modifying entry "olcDatabase={0}config,cn=config"

Teraz upravíme replikáciu rozhrania databázy:

ldapmodify -x -D cn=admin,cn=config -W
Enter LDAP Password:

dn: olcDatabase={1}hdb,cn=config
replace: olcSyncrepl
olcSyncrepl: {0}rid=003 provider=ldap://ldap01.nieco.sk binddn="cn=admin,dc=nieco,dc=
sk" bindmethod=simple credentials=tajne searchbase="dc=nieco,dc=sk" type=r
efreshOnly interval=00:00:00:10 retry="5 5 300 5" timeout=1 starttls=yes
olcSyncrepl: {1}rid=004 provider=ldap://ldap02.nieco.sk binddn="cn=admin,dc=nieco,dc=
sk" bindmethod=simple credentials=tajne searchbase="dc=nieco,dc=sk" type=r
efreshOnly interval=00:00:00:10 retry="5 5 300 5" timeout=1 starttls=yes


modifying entry "olcDatabase={1}hdb,cn=config"

Ak adresa stanice LDAP servera nesúhlasí s FQDN v certifikáte, mali by sme otvoriť súbor /etc/ldap/ldap.conf a pridať nasledujúce TLS nastavenia:

TLS_CERT /etc/ssl/certs/server.crt
TLS_KEY /etc/ssl/private/server.key
TLS_CACERT /etc/ssl/certs/cacert.pem

Nakoniec reštartujeme slapd na každom serveri:

sudo /etc/init.d/slapd restart

LDAP autentifikácia

Keď máme funkčný LDAP server, balíky auth-client-config a libnss-ldap nám pomôžu prekonať ťažkosti pri nastavovaní Ubuntu klientov tak, aby sa prihlasovali pomocou LDAP. Ak chceme balíky nainštalovať, zadáme:

sudo apt-get install libnss-ldap

Počas inštalácie bude potrebné zadať parametre pripojenia k LDAP serveru.

Ak sa pomýlime pri zadávaní informácií, môžeme dialóg vyvolať znova pomocou príkazu:

sudo dpkg-reconfigure ldap-auth-config

Hodnoty, ktoré zadáme do dialógu, môžeme vidieť v súbore /etc/ldap.conf. Ak náš server vyžaduje nastavenie, ktoré sa nenachádza v dialógu, môžeme ho v tomto súbore doplniť.

Teraz, keď je libnss-ldap nakonfigurované, zapneme pomocou auth-client-config LDAP profil:

sudo auth-client-config -t nss -p lac_ldap
  • -t: zmení iba /etc/nsswitch.conf.
  • -p: meno profilu, ktoré sa má zapnúť alebo vypnúť.
  • lac_ldap: profil auth-client-config, ktorý je časťou balíka ldap-auth-config.

Použitím nástroja pam-auth-update nastavíme systém tak, aby používal na autentifikáciu LDAP:

sudo pam-auth-update

Z ponuky pam-auth-update vyberieme LDAP a ktorékoľvek ďalšie autentifikačné mechanizmy, ktoré ešte potrebujeme.

Teraz by sme mali byť schopný prihlásiť používateľa, ktorý je uložený v LDAP adresáre.

[Note]

Ak sa chystáte použiť LDAP na uloženie používateľov systému Samba, bude potrebné nastaviť server tak, aby na autentifikáciu využíval LDAP. Viac informácii sa dozviete v časti “Samba a LDAP”.

Správa používateľov a skupín

Balík ldap-utils obsahuje viacero nástrojov na správu adresára, ale pri potrebe nastavenia dlhších reťazcov môže byť ich použitie ťažkopádne. Balík ldapscripts obsahuje konfiguračné skripty na správu LDAP používateľov a skupín.

Ak tento balíček chceme nainštalovať, zadáme:

sudo apt-get install ldapscripts

Potom otvoríme konfiguračný súbor /etc/ldapscripts/ldapscripts.conf a odkomentujeme a zmeníme nasledujúce riadky tak, aby zodpovedali nášmu prostrediu:

SERVER=localhost
BINDDN='cn=admin,dc=nieco,dc=sk'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=nieco,dc=sk'
GSUFFIX='ou=Skupiny'
USUFFIX='ou=Ludia'
MSUFFIX='ou=Pocitace'
GIDSTART=10000
UIDSTART=10000
MIDSTART=10000

Teraz vytvoríme súbor ldapscripts.passwd, aby sme umožnili autentifikovaný prístup k adresáru:

sudo sh -c "echo -n 'tajne' > /etc/ldapscripts/ldapscripts.passwd"
sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd
[Note]

Slovo “tajne” nahraďte aktuálnym heslom LDAP administrátora.

Odteraz sú skripty ldapscripts pripravené pomôcť nám pri správe adresára. Nasledujúce príklady hovoria o tom, ako sa skripty používajú:

  • Vytvorenie nového používateľa:
    sudo ldapadduser juro pokus
    Tento príkaz vytvorí používateľa s uid juro a nastaví jeho hlavnú skupinu (gid) na pokus
  • Zmena hesla:
    sudo ldapsetpasswd juro
    Changing password for user uid=juro,ou=Ludia,dc=nieco,dc=sk
    New Password:
    New Password (verify):
  • Odstránenie používateľa:
    sudo ldapdeleteuser juro
  • Pridanie skupiny:
    sudo ldapaddgroup qa
  • Odstránenie skupiny:
    sudo ldapdeletegroup qa
  • Pridanie používateľa do skupiny:
    sudo ldapaddusertogroup juro qa
    Teraz sa môžeme presvedčiť, že atribút memberUid skupiny qa bude obsahovať hodnotu juro.
  • Odstránenie používateľa zo skupiny:
    sudo ldapdeleteuserfromgroup juro qa
    Z atribútu memberUid skupiny qa by mal byť juro teraz odstránený.
  • Skript ldapmodifyuser umožňuje pridať, odstrániť alebo nahradiť atribúty používateľa. Skript používa rovnakú syntax ako nástroj ldapmodify. Napríklad:
    sudo ldapmodifyuser juro

    # About to modify the following entry :
    dn: uid=juro,ou=Ludia,dc=nieco,dc=sk
    objectClass: account
    objectClass: posixAccount
    cn: juro
    uid: juro
    uidNumber: 1001
    gidNumber: 1001
    homeDirectory: /home/juro
    loginShell: /bin/bash
    gecos: juro
    description: User account
    userPassword:: e1NTSEF9eXFsTFcyWlhwWkF1eGUybVdFWHZKRzJVMjFTSG9vcHk=

    # Enter your modifications here, end with CTRL-D.
    dn: uid=juro,ou=Ludia,dc=nieco,dc=sk

    replace: gecos
    gecos: Juraj Jánošík

    Atribút gecos by mal mať teraz hodnotu “Juraj Jánošík”.
  • Ďalšou obrovskou výhodou balíka ldapscripts je využívanie systémových šablón. Šablóny umožňujú prispôsobiť atribúty používateľa, skupiny a počítača. Ak chceme napríklad použiť šablónu user, otvoríme súbor /etc/ldapscripts/ldapscripts.conf a pridáme riadok:
    UTEMPLATE="/etc/ldapscripts/ldapadduser.template"
    Vzorové šablóny sa nachádzajú v priečinku /etc/ldapscripts. Skopírujeme súbor  ldapadduser.template.sample do /etc/ldapscripts/ldapadduser.template:
    sudo cp /etc/ldapscripts/ldapadduser.template.sample /etc/ldapscripts/ldapadduser.template
    Otvoríme novú šablónu a upravíme príslušné atribúty. Nasledujúca šablóna slúži na vytváranie nových používateľov s prednastaveným atribútom objectClass na hodnotu inetOrgPerson:
    dn: uid=<user>,<usuffix>,<suffix>
    objectClass: inetOrgPerson
    objectClass: posixAccount
    cn: <user>
    sn: <ask>
    uid: <user>
    uidNumber: <uid>
    gidNumber: <gid>
    homeDirectory: <home>
    loginShell: <shell>
    gecos: <user>
    description: User account
    title: Employee
    Všimnime si použitie <otázky> pre cn hodnoty. Použitím <otázky> prinútime nástroj ldapadduser aby sa opýtal na hodnotu atribútu pri vytváraní používateľa.

Existuje viac užitočných skriptov. Ak chceme zobraziť ich zoznam, zadáme príkaz: dpkg -L ldapscripts | grep bin

Zdroje

  • Viac informácii je na stránke OpenLDAP Home Page
  • Možte si tiež pozrieť slovenský preklad domovskej stránky OpenLDAP
  • Aj napriek svojmu veku je významným zdrojom podrobných informácii o LDAP O'Reillyho LDAP System Administration
  • Kniha vydavateľstva Packt - Mastering OpenLDAP je skvelou príručkou, ktorá obsahuje informácie o novších verziách OpenLDAP.
  • Viac informácii o auth-client-config je na man stránke: man auth-client-config.
  • Ďalšie detaily o balíku ldapscripts sú na man stránkach: man ldapscripts, man ldapadduser, man ldapaddgroup, etď.

Samba a LDAP

Táto časť hovorí o tom, ako nakonfigurovať systém Samba tak, aby na autentifikáciu používal informácie o kontách používateľov, skupín a počítačov z adresára LDAP. Predpoklad je, že už máme funkčnú inštaláciu adresára OpenLDAP a že server je nastavený tak, aby adresár využíval pri autentifikácii. Viac informácií o nastavovaní OpenLDAP nájdeme v častiach “OpenLDAP Server” a “LDAP autentifikácia”. Viac informácií o inštalácii a konfigurácii servera Samba sa nachádza v kapitole Sieť Windows.

Inštalácia

Na prepojenie systému Samba s adresárom LDAP sú potrebné tri balíky: samba, samba-doc a smbldap-tools. Nainštalujeme ich zadaním nasledujúceho príkazu:

sudo apt-get install samba samba-doc smbldap-tools

Presnejšie povedané, balík smbldap-tools nepotrebujeme, ale namiesto neho by sme museli použiť iný balík alebo vlastné skripty, aby sme mohli spravovať kontá používateľov, skupín a počítačov.

Konfigurácia OpenLDAP

Aby Samba mohla použiť OpenLDAP ako pozadie pre autentifikáciu, k používateľským objektom v adresári je potrebné pridať ďalšie atribúty. V tejto časti predpokladáme, že chceme systém Samba nastaviť ako tzv. radič domény Windows NT a že chceme podľa toho pridať príslušné objekty a atribúty do adresára LDAP.

  • Atribúty systému Samba sú definované v súbore schémy samba.schema, ktorá je súčasťou balíka samba-doc. Súbor schémy je potrebné rozzipovať a skopírovať do priečinka /etc/ldap/schema. Do príkazového riadka teda zadajme:
    sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
    sudo gzip -d /etc/ldap/schema/samba.schema.gz

  • Schému samba je potrebné pridať do vetvy cn=config. Postup, ako pridať novú schému do slapd, je detailne popísaný v časti “Konfigurácia”.
    1. Najskôr vytvoríme konfiguračný súbor, ktorý pomenujeme schema_convert.conf alebo iným viacvravnejším názvom a vložíme do neho tieto riadky:
      include /etc/ldap/schema/core.schema
      include /etc/ldap/schema/collective.schema
      include /etc/ldap/schema/corba.schema
      include /etc/ldap/schema/cosine.schema
      include /etc/ldap/schema/duaconf.schema
      include /etc/ldap/schema/dyngroup.schema
      include /etc/ldap/schema/inetorgperson.schema
      include /etc/ldap/schema/java.schema
      include /etc/ldap/schema/misc.schema
      include /etc/ldap/schema/nis.schema
      include /etc/ldap/schema/openldap.schema
      include /etc/ldap/schema/ppolicy.schema
      include /etc/ldap/schema/samba.schema
    2. Teraz použijeme nástroj slapcat na skonvertovanie súborov schém:
      slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/cn=samba.ldif
      
      Ak by sme použili iné meno súboru a cestu k priečinku, je potrebné ich zmeniť aj v predchádzajúcom príkaze.
    3. Otvoríme vygenerovaný súbor /tmp/cn=samba.ldif, zmeníme nasledujúce atribúty:
      dn: cn=samba,cn=schema,cn=config
      ...
      cn: samba
      a odstránime nasledujúce riadky z konca súboru:
      structuralObjectClass: olcSchemaConfig
      entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95
      creatorsName: cn=config
      createTimestamp: 20080827045234Z
      entryCSN: 20080827045234.341425Z#000000#000#000000
      modifiersName: cn=config
      modifyTimestamp: 20080827045234Z
      [Note]

      Hodnoty atribútov sa môžu líšiť, preto si pri mazaní dajte pozor, aby ste zmazali všetky uvedené atribúty.

    4. Nakoniec pomocou nástroja ldapadd pridáme novú schému do adresára:
      ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn=samba.ldif
      

    Teraz by sme mali mať vo vetve cn=config záznam dn: cn={X}misc,cn=schema,cn=config, kde "X" poradové číslo sekvenčnej schémy.

  • Nasledujúce riadky nakopírujeme do súboru samba_indexes.ldif:
    dn: olcDatabase={1}hdb,cn=config
    changetype: modify
    add: olcDbIndex
    olcDbIndex: uidNumber eq
    olcDbIndex: gidNumber eq
    olcDbIndex: loginShell eq
    olcDbIndex: uid eq,pres,sub
    olcDbIndex: memberUid eq,pres,sub
    olcDbIndex: uniqueMember eq,pres
    olcDbIndex: sambaSID eq
    olcDbIndex: sambaPrimaryGroupSID eq
    olcDbIndex: sambaGroupType eq
    olcDbIndex: sambaSIDList eq
    olcDbIndex: sambaDomainName eq
    olcDbIndex: default sub
    Pomocou nástroja ldapmodify načítame nové indexy:
    ldapmodify -x -D cn=admin,cn=config -W -f samba_indexes.ldif
    Ak všetko prebehne dobre, môžeme si nové indexy prezrieť pomocou ldapsearch:
    ldapsearch -xLLL -D cn=admin,cn=config -x -b cn=config -W olcDatabase={1}hdb
  • Ako ďalšie nakonfigurujeme balík smbldap-tools, aby bol v súlade s naším rozhraním. Balík je dodávaný spolu s konfiguračným skriptom, ktorý sa nás bude pýtať na potrebné nastavenia. Ak chceme skript spustiť, zadáme:
    sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
    sudo perl /usr/share/doc/smbldap-tools/configure.pl

    Keď odpovieme na všetky otázky, zapíšu sa do súborov /etc/smbldap-tools/smbldap.conf a /etc/smbldap-tools/smbldap_bind.conf. Tieto súbory sú generované konfiguračnými skriptami, takže ak sa pomýlime, niekedy je jednoduchšie opraviť nastavenie v súboroch, ako spúšťať skript odznova.
  • Skript smbldap-populate pridá potrebných používateľov, skupiny a LDAP objekty potrebné pre systém Samba. Pred tým, ako spustíme tento príkaz, môžeme si pomocou slapcat odzálohovať súbor LDAP Data Interchange Format (LDIF):
    sudo slapcat -l backup.ldif
  • Po dokončení zálohovania môžeme spustiť smbldap-populate zadaním príkazu:
    sudo smbldap-populate
    [Note]

    LDIF súbor obsahujúci nové objekty systému Samba môžete vytvoriť spustením príkazu sudo smbldap-populate -e samba.ldif. V tomto súbore sa môžete pozrieť na vykonané zmeny a uistiť sa, či je všetko správne.

Náš LDAP adresár teraz obsahuje všetky potrebné informácie na to, aby mohol autentifikovať používateľov systému Samba.

Konfigurácia systému Samba

Existuje viacero spôsobov, akými sa dá nakonfigurovať Samba. Viac informácii o najčastejších spôsoboch sa dozvieme v časti Sieť Windows. Ak chceme nastaviť systém Samba tak, aby používal LDAP, otvoríme hlavný konfiguračný súbor systému Samba /etc/samba/smb.conf zakomentujeme možnosť passdb backend a pridáme nasledujúce riadky:

#   passdb backend = tdbsam

# LDAP Settings
passdb backend = ldapsam:ldap://hostname
ldap suffix = dc=nieco,dc=sk
ldap user suffix = ou=Ludia
ldap group suffix = ou=Skupiny
ldap machine suffix = ou=Pocitace
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=nieco,dc=sk
ldap ssl = start tls
ldap passwd sync = yes
...
add machine script = sudo /usr/sbin/smbldap-useradd -t 0 -w "%u"

Aby sa nové nastavenia prejavili, reštartujeme službu samba:

sudo /etc/init.d/samba restart

Teraz Samba potrebuje vedieť, aké je heslo administrátora LDAP. Do príkazového riadka zadáme:

sudo smbpasswd -w tajne
[Note]

Slovo tajne nahraďte heslom LDAP administrátora.

Ak už v adresári LDAP máme vložených používateľov a chceme, aby sa vedeli autentifikovať v systéme Samba, je potrebné vyplniť niekoľko Samba atribútov, ktoré sú zadefinované v súbore samba.schema. Samba atribúty k existujúcim používateľom pridáme pomocou nástroja smbpasswd, tak že použijeme používateľské meno aktuálneho používateľa:

sudo smbpasswd -a menopouzivatela

Po spustení nástroja bude potrebné zadať heslo používateľa.

Ak chceme pridať nové kontá používateľov, skupín a počítačov. použijeme nástroje balíčka smbldap-tools. Tu je niekoľko príkladov:

  • Nového používateľa do adresára LDAP pridáme cez Samba atribúty zadaním nasledujúceho príkazu, v ktorom nahradíme menopouzivatela aktuálnym menom používateľa:
    sudo smbldap-useradd -a -P menopouzivatela
    Prepínač -a pridá Samba atribúty a prepínač -P spustí nástroj smbldap-passwd po tom, ako je používateľ vytvorený a umožní nám zadať heslo pre používateľa.
  • Ak chceme používateľa z adresára odstrániť, zadáme:
    sudo smbldap-userdel menopouzivatela
    Nástroj smbldap-userdel má aj prepínač -r. ktorý súčasne odstráni aj domovský priečinok používateľa.
  • Ak chceme pridať skupinu, použijeme smbldap-groupadd a nahradíme menoskupiny prislúchajúcim menom skupiny:
    sudo smbldap-groupadd -a menoskupiny
    Podobne aj pri smbldap-useradd prepínač -a pridá Samba atribúty.
  • Ak chceme pridať používateľa do skupiny, použijeme smbldap-groupmod:
    sudo smbldap-groupmod -m menopouzivatela menoskupiny
    Nesmieme zabudnúť menopouzivatela nahradiť menom skutočného používateľa. Prepínač -m umožňuje pridať viacero používateľov oddelených čiarkami naraz.
  • smbldap-groupmod sa používa na odstránenie používateľa zo skupiny:
    sudo smbldap-groupmod -x menopouzivatela menoskupiny
  • Pomocou nástroja smbldap-useradd môžeme pridať do systému Samba aj účet pre počítač:
    sudo smbldap-useradd -t 0 -w menopocitaca
    V príkaze nahradíme menopocitaca skutočným menom pracovnej stanice. Prepínač -t 0 vytvorí konto počítača bez zdržania, zatiaľčo prepínač -w hovorí o tom, že sa jedná o účet počítača. Tiež si môžeme všimnúť, že sa v súbore /etc/samba/smb.conf zmenilo nastavenie add machine script tak, aby sa použil nástroj smbldap-useradd.

V balíku smbldap-tools sú aj ďalšie užitočné nástroje. Viac sa o nich dozvieme na man stránkach.

Zdroje

  • Existuje viacero stránok, kde sú zdokumentované LDAP a Samba. Napríklad Samba HOWTO Collection.
  • Konkrétne odporúčame passdb section.
  • Ďalšia výborná stránka je Samba OpenLDAP HOWTO.
  • Viac informácii o smbldap-tools opäť nájdete na man stránkach: man smbldap-useradd, man smbldap-groupadd, man smbldap-populate, atď.
  • Okrem toho je tu ešte zoznam článkov na stránke Ubuntu wiki.

Kerberos

Kerberos je sieťový autentifikačný systém založený na princípe dôveryhodnej tretej strany. Na zvyšných dvoch stranách sa nachádza používateľ a služba, kvôli ktorej sa chce používateľ autentifikovať. Nie všetky služby a aplikácie môžu použiť Kerberos, ale pre tie, ktoré môžu, Kerberos ponúkne sieťové rozhranie, ktoré je o jeden krok bližšie k tzv. Single Sign On (SSO) - jeden podpis na všetko.

Táto časť hovorí o inštalácii a konfigurácii Kerberos servera a uvádza i niekoľko príkladov konfigurácie klienta.

Prehľad

Ak ešte Kerberos nepoznáme, bude dobré sa najskôr oboznámiť s niektorými dôležitými pojmami skôr, ako začneme nastavovať server Kerberos. Väčšina pojmov je odvodená od vecí, ktoré sú podobné v iných rozhraniach:

  • Principal (splnomocniteľ): všetci používatelia, počítače a služby poskytované servermi musia byť zadefinované ako splnomocnitelia systému Kerberos.
  • Instances (rozhrania): používajú sa na obsluhu splnomocniteľov a pre špeciálnych administratívnych splnomocniteľov.
  • Realms (pôsobiská): jedinečná sféra pôsobenia inštalácie systému Kerberos. Zvyčajne to je DNS doména prevedená na veľké písmená (NIECO.SK).
  • Key Distribution Center (distribučné centrum kľúčov): (KDC) sa skladá z troch častí, databázy všetkých splnomocniteľov, autentifikačného servera a servera poskytujúceho vstupenky. Pre každé pôsobisko musí existovať aspoň jedno KDC.
  • Ticket Granting Ticket (vstupenka poskytujúca vstupenku): je poskytovaný Autentifikačným serverom (AS). Ticket Granting Ticket (TGT) je zašifrované heslo používateľa, ktoré je známe iba používateľovi a KDC.
  • Ticket Granting Server (server poskytujúci vstupenku): (TGS) služba poskytujúca vstupenky klientom, ktorí o ne žiadajú.
  • Tickets (vstupenky): potvrdzujú identitu dvoch splnomocniteľov. Prvým splnomocniteľom - používateľom a druhým splnomocniteľom - službou, ktorú používateľ chce použiť. Vstupenky vytvoria šifrovací kľúč, ktorý bude použitý počas autentifikovaného pripojenia.
  • Keytab Files (súbory tabuliek kľúčov): sú súbory extrahované KDC databázy splnomocniteľov a obsahujú zašifrované kľúče pre služby a stanice.

Aby sme jednotlivé pojmy dali do súvisu, vedzme, že pôsobisko - Realm má najmenej jedno distribučné centrum kľúčov KDC (odporúčajú sa však dve kvôli redundacii), ktoré obsahuje a databázu splnomocniteľov - Principal. Keď sa používateľ - splnomocniteľ prihlasuje k pracovnej stanici, ktorá je nakonfigurovaná na autentifikáciu pomocou systému Kerberos, KDC vydá vstupenku poskytujúcu vstupenku (TGT), ktorá obsahuje zašifrované heslo. Ak sa heslo zhoduje s tým, ktoré zadal používateľ, používateľ je autentifikovaný a môže dostať vstupenky od servera poskytujúceho vstupenky (TGS). Vstupenky tejto služby umožnia používateľovi autentifikovať sa do ostatných služieb bez ďalšieho zadávania používateľského mena a hesla.

Kerberos Server

Inštalácia

Pred tým, ako sa pustíme do inštalácie servera Kerberos, je potrebné mať pre našu doménu správne nakonfigurovaný DNS server. Pretože pôsobisko systému Kerberos by sa podľa zvyklostí malo zhodovať s menom domény, budeme používať doménu nieco.sk, ktorej konfigurácia je popísaná v časti “Primárny hlavný menný server”.

Kerberos je protokol citlivý na čas. Preto, ak je časový rozdiel medzi lokálnym systémom a počítačom klienta väčší ako päť minút (predvolená hodnota), pracovná stanica sa nebude môcť autentifikovať. Aby sme tomuto problému zabránili, je potrebné zosynchronizovať čas použitím protokolu Network Time Protocol (NTP). Viac informácii o NTP sa nachádza v časti “Synchronizácia času pomocou NTP”.

Prvým krokom pri inštalácii Pôsobiska systému Kerberos je nainštalovanie balíkov krb5-kdc a krb5-admin-server. V príkazovom riadku zadáme:

sudo apt-get install krb5-kdc krb5-admin-server

Na konci inštalácie bude potrebné zadať názov servera Kerberos a názov Admin servera, ktoré môžu, ale nemusia byť pre pôsobisko zhodné.

Ako ďalšie vytvoríme nové pôsobisko pomocou nástroja kdb5_newrealm:

sudo krb5_newrealm

Konfigurácia

Parametre, ktoré sme zadali pri inštalácii, sa uložili do konfiguračného súboru /etc/krb5.conf. Ak budeme chcieť zmeniť nastavenia Distribučného centra kľúčov (KDC), jednoducho zmeníme nastavenia v súbore a reštartujeme démon krb5-kdc.

  1. Teraz, keď je KDC spustené, je potrebné vytvoriť používateľa s administrátorskými právami. Odporúčame použiť iné meno, ako bežne používate. Použijeme na to nástroj kadmin.local:
    sudo kadmin.local
    Authenticating as principal root/admin@NIECO.SK with password.
    kadmin.local:
    addprinc stefan/admin

    WARNING: no policy specified for stefan/admin@NIECO.SK; defaulting to no policy
    Enter password for principal "stefan/admin@NIECO.SK":
    Re-enter password for principal "stefan/admin@NIECO.SK":
    Principal "stefan/admin@NIECO.SK" created.
    kadmin.local:
    quit
    V predchádzajúcom príklade je ako Splnomocniteľ - Principal nastavený stefan, /admin je Rozhranie - Instance a @NIECO.SK predstavuje pôsobisko. "Každodenný" splnomocniteľ bude stefan@NIECO.SK a mal by mať iba normálne používateľské práva.
    [Note]

    Nahraďte NIECO.SK a stefan, pôsobiskom a menom používateľa, ktoré chcete použiť.

  2. Teraz novému používateľovi pridelíme práva (ACL). Práva sú nastavené v súbore /etc/krb5kdc/kadm5.acl:
    stefan/admin@NIECO.SK        *
    Tento záznam poskytne používateľovi stefan/admin schopnosť vykonávať ľubovoľnú operácie so všetkými splnomocniteľmi v pôsobisku.
  3. Aby sa nové ACL oprávnenia prejavili, je potrebné reštartovať krb5-admin-server :
    sudo /etc/init.d/krb5-admin-server restart
  4. Novovytvoreného splnomocniteľa môžeme otestovať pomocou nástroja kinit:
    kinit stefan/admin
    stefan/admin@NIECO.SK's Password:
    Po zadaní hesla, použijeme nástroj  klist, ktorý zobrazí informácie o TGT:
    klist
    Credentials cache: FILE:/tmp/krb5cc_1000
    Principal: stefan/admin@NIECO.SK

    Issued Expires Principal
    Jul 13 17:53:34 Jul 14 03:53:34 krbtgt/NIECO.SK@NIECO.SK
    Pre KDC je potrebné pridať záznam aj do súboru /etc/hosts. Napríklad:
    192.168.0.1   kdc01.nieco.sk       kdc01
    Adresu 192.168.0.1 nahradíme IP adresou nášho KDC.
  5. Aby klienti vedeli nájsť KDC v pôsobisku, je potrebné pridať niekoľko DNS SRV záznamov. Pridáme ich do súboru /etc/named/db.nieco.sk:
    _kerberos._udp.NIECO.SK.     IN SRV 1  0 88  kdc01.nieco.sk.
    _kerberos._tcp.NIECO.SK. IN SRV 1 0 88 kdc01.nieco.sk.
    _kerberos._udp.NIECO.SK. IN SRV 10 0 88 kdc02.nieco.sk.
    _kerberos._tcp.NIECO.SK. IN SRV 10 0 88 kdc02.nieco.sk.
    _kerberos-adm._tcp.NIECO.SK. IN SRV 1 0 749 kdc01.nieco.sk.
    _kpasswd._udp.NIECO.SK. IN SRV 1 0 464 kdc01.nieco.sk.
    [Note]

    Nahraďte NIECO.SK, kdc01 a kdc02 názvom domény a názvami primárneho a sekundárneho KDC.

    Podrobné inštrukcie o nastavovaní DNS nájdete v kapitole Služba prekladu doménových mien (DNS).

Nové pôsobisko systému Kerberos je teraz pripravené na autetifikovanie klientov.

Sekundárny KDC

Ak už máme funkčné jedno Distribučné centrum kľúčov (KDC), je dobrým zvykom vytvoriť aj sekundárne KDC pre prípad, že primárne sa stane nedostupným.

  1. Najskôr nainštalujeme balíky. Pri otázke inštalátora na Kerberos server a Admin server zadáme meno primárneho KDC:
    sudo apt-get install krb5-kdc krb5-admin-server
  2. Po nainštalovaní balíkov vytvoríme splnomocniteľa "host" (stanica) pre sekundárny KDC. V príkazovom riadku zadáme:
    kadmin -q "addprinc -randkey host/kdc02.nieco.sk"
    [Note]

    Vždy po zadaní príkazu kadmin bude potrebné zadať heslo pre pouzivatel/admin@NIECO.SK.

  3. Extrahujeme súbor tabuľky kľúčov:
    kadmin -q "ktadd -k keytab.kdc02 host/kdc02.nieco.sk"
  4. Teraz by v priečinku kde sa nachádzame mal pribudnúť súbor keytab.kdc02. Presunieme ho do priečinka /etc/krb5.keytab:
    sudo mv keytab.kdc02 /etc/krb5.keytab
    [Note]

    Ak ste použili inú cestu k súboru keytab.kdc02, použite tú.

    Z tabuľky kľúčov sa pomocou nástroja klist dá vypísať aj zoznam splnomocniteľov, čo môže byť užitočné pri riešení problémov:
    sudo klist -k /etc/krb5.keytab
  5. Ako ďalšie je potrebné vytvoriť súbor kpropd.acl, ktorý bude obsahovať zoznam všetkých KDC v pôsobisku. Na oboch serveroch - primárnom aj sekundárnom, vytvoríme súbor /etc/krb5kdc/kpropd.acl s takýmto obsahom:
    host/kdc01.nieco.sk@NIECO.SK
    host/kdc02.nieco.sk@NIECO.SK
  6. Vytvoríme databázu na sekundárnom KDC:
    sudo kdb5_util -s create
  7. Teraz spustíme démona kpropd, ktorý bude načúvať pripojeniam nástroja kprop. Nástroj kprop sa používa na prenos vyexportovaných súborov:
    sudo kpropd -S
  8. V príkazovom riadku primárneho KDC, vyexportujeme súbor so splnomocniteľmi:
    sudo kdb5_util dump /var/lib/krb5kdc/dump
  9. Vyextrahujeme súbor tabuľky kľúčov primárneho KDC a skopírujeme ho do /etc/krb5.keytab:
    kadmin -q "ktadd -k keytab.kdc01 host/kdc01.nieco.sk"
    sudo mv keytab.kdc01 /etc/kr5b.keytab
    [Note]

    Pred extrahovaním tabuľky kľúčov sa uistite, či existuje host pre kdc01.nieco.sk.

  10. Nástroj kprop vloží databázu do sekundárneho KDC:
    sudo kprop -r NIECO.SK -f /var/lib/krb5kdc/dump kdc02.nieco.sk
    [Note]

    Ak operácia prebehne správne, program vypíše SUCCEEDED. Ak nastane chyba, viac informácii sa dozviete v súbore /var/log/syslog na sekundárnom KDC.

    Môžeme tiež naplánovať úlohu pre cron, ktorá bude periodicky aktualizovať databázu sekundárneho KDC. Napríklad, ak chceme aktualizáciu vykonávať každú hodinu, pridáme do súboru /etc/crontab nasledujúce riadky:
    # m h  dom mon dow   command
    0 * * * * /usr/sbin/kdb5_util dump /var/lib/krb5kdc/dump && /usr/sbin/kprop -r NIECO.SK -f /var/lib/krb5kdc/dump kdc02.nieco.sk
  11. Vrátime sa na sekundárne KDC, kde vytvoríme súbor stash, ktorý bude obsahovať hlavný kľúč systému Kerberos:
    sudo kdb5_util stash
  12. Nakoniec spustíme démon krb5-kdc na sekundárnom KDC:
    sudo /etc/init.d/krb5-kdc start

Sekundárne KDC by teraz malo byť schopné vydávať vstupenky pre pôsobisko. Môžeme to otestovať stopnutím démona krb5-kdc na primárnom KDC a následným požiadaním o vstupenku pomocou nástroja kinit. Ak sme všetko urobili správne, mala by nám byť vstupenka poskytnutá zo sekundárneho KDC.

Linuxový klient systému Kerberos

V tejto časti si povieme, ako nastaviť operačný systém Linux tak, aby bol klientom systému Kerberos. To umožní používateľovi, ktorý sa úspešne do systému prihlási, prístup ku všetkým kerberizovaným službám bez toho, aby musel zakaždým zadať heslo.

Inštalácia

Aby bolo možné prihlásiť sa do pôsobiska systému Kerberos, sú potrebné balíky krb5-user a libpam-krb5 spolu s ďalšími, ktoré síce nie sú nutné, ale uľahčia nám prácu. Ak chceme tieto balíky nainštalovať, do príkazového riadka zadáme:

sudo apt-get install krb5-user libpam-krb5 libpam-ccreds auth-client-config

Balík auth-client-config umožňuje jednoduchú konfiguráciu PAM pre autentifikáciu z viacerých zdrojov a libpam-ccreds dočasne uchováva údaje o prihlásení, ktoré nám umožnia prihlásiť sa, aj keď je distribučné centrum kľúčov (KDC) nedostupné. Tento balík je tiež užitočný pre notebooky, ktoré sa musia vedieť prihlásiť do firemnej siete pomocou systému Kerberos, ale musia používateľovi umožniť prístup aj vtedy, ak nie sú pripojené do siete.

Konfigurácia

Ak chceme nastaviť klienta, zadáme:

sudo dpkg-reconfigure krb5-config

Pri konfigurácii bude potrebné zadať meno pôsobiska systému Kerberos a ak nemáte nastavené v DNS Kerberos SRV záznamy, bude potrebné zadať i adresu distribučného centra kľúčov (KDC) a adresu Admin servera pôsobiska.

Nástroj dpkg-reconfigure tieto zadané údaje o pôsobisku uloží do súboru /etc/krb5.conf. Záznamy v súbore budú vyzerať asi takto:

[libdefaults]
default_realm = NIECO.SK
...
[realms]
NIECO.SK = }
kdc = 192.168.0.1
admin_server = 192.168.0.1
}

Nastavenie môžeme otestovať požiadaním o vstupenku pomocou nástroja kinit. Napríklad takto:

kinit stefan@NIECO.SK
Password for stefan@NIECO.SK:

Ak nám bude vstupenka poskytnutá, detail môžeme zobraziť pomocou klist:

klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: stefan@NIECO.SK

Valid starting Expires Service principal
07/24/08 05:18:56 07/24/08 15:18:56 krbtgt/NIECO.SK@NIECO.SK
renew until 07/25/08 05:18:57


Kerberos 4 ticket cache: /tmp/tkt1000
klist: You have no tickets cached

Potom použijeme nástroj auth-client-config, ktorým nastavíme modul libpam-krb5, aby žiadal o vstupenku pri prihlasovaní:

sudo auth-client-config -a -p kerberos_example

Teraz by sme po úspešnom prihlásení mali obdržať vstupenku.

Zdroje

  • Viac informácii o systéme Kerberos sa nachádza na stránke MIT Kerberos.
  • Viac podrobností sa nachádza na stránke Ubuntu Wiki Kerberos.
  • Dobrou príručkou o nastavovaní systému Kerberos je O'Reillyho Kerberos: The Definitive Guide.
  • Na niektoré otázky o systéme Kerberos nám určite niekto odpovie aj na IRC kanále #ubuntu-server na Freenode.

Kerberos a LDAP

Replikovanie databázy splnomocniteľov systému Kerberos medzi dvoma servermi môže byť komplikované a navyše to pridáva do systému ďalšiu databázu používateľov. Našťastie sa dá systém Kerberos nakonfigurovať tak, aby použil pre uloženie databázy splnomocniteľov adresár  LDAP. V tejto časti si ukážeme, ako nastaviť primárny a sekundárny server Kerberosu tak, aby používali  OpenLDAP pre uloženie databázy splnomocniteľov.

Konfigurácia OpenLDAP

Ako prvé je potrebné nahrať príslušnú schému do OpenLDAP servera, ktorá bude zabezpečovať sieťové pripojenie k primárnemu a sekundárnemu KDC. Vo zvyšku tejto časti predpokladáme, že už máme nastavenú replikáciu LDAP adresára aspoň medzi dvoma servermi. Viac informácií o nastavení OpenLDAP sa nachádza v časti "OpenLDAP Server".

Je tiež potrebné nastaviť OpenLDAP server tak, aby prijímal TLS a SSL pripojenia, aby komunikácia medzi KDC a LDAP serverom bola šifrovaná. Viac informácií je v časti “TLS a SSL”.

  •  Schému do LDAP nahráme tak, že na LDAP serveri nainštalujeme balík krb5-kdc-ldap. Do príkazového riadka zadáme:

    sudo apt-get install krb5-kdc-ldap
  • Potom rozbalíme súbor kerberos.schema.gz:

    sudo gzip -d /usr/share/doc/krb5-kdc-ldap/kerberos.schema.gz
    sudo cp /usr/share/doc/krb5-kdc-ldap/kerberos.schema /etc/ldap/schema/
  • Schému kerberos je potrebné pridať do stromu cn=config. Postup ako pridávať schému do slapd je vysvetlený  v časti “Konfigurácia”.

    1. Najskôr vytvoríme konfiguračný súbor, ktorý pomenujeme schema_convert.conf, alebo podobným viacvravnejším názvom a prekopírujeme do neho tieto riadky:

      include /etc/ldap/schema/core.schema
      include /etc/ldap/schema/collective.schema
      include /etc/ldap/schema/corba.schema
      include /etc/ldap/schema/cosine.schema
      include /etc/ldap/schema/duaconf.schema
      include /etc/ldap/schema/dyngroup.schema
      include /etc/ldap/schema/inetorgperson.schema
      include /etc/ldap/schema/java.schema
      include /etc/ldap/schema/misc.schema
      include /etc/ldap/schema/nis.schema
      include /etc/ldap/schema/openldap.schema
      include /etc/ldap/schema/ppolicy.schema
      include /etc/ldap/schema/kerberos.schema
    2. Vytvoríme dočasný priečinok, do ktorého sa uložia LDIF súbory:

      mkdir /tmp/ldif_output
    3. Teraz použijeme nástroj slapcat na skonvertovanie súborov schém:

      slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}kerberos,cn=schema,cn=config\" > /tmp/cn=kerberos.ldif
      

      Keby sme použili iné meno konfiguračného súboru, je potrebné ho zmeniť aj v predchádzajúcom príkaze.

    4. Otvoríme vygenerovaný súbor /tmp/cn\=kerberos.ldif a zmeníme nasledujúce atribúty:

    5. dn: cn=kerberos,cn=schema,cn=config
      ...
      cn: kerberos

      a odstránime nasledujúce riadky z konca súboru:

      structuralObjectClass: olcSchemaConfig
      entryUUID: 18ccd010-746b-102d-9fbe-3760cca765dc
      creatorsName: cn=config
      createTimestamp: 20090111203515Z
      entryCSN: 20090111203515.326445Z#000000#000#000000
      modifiersName: cn=config
      modifyTimestamp: 20090111203515Z
      [Note]

      Hodnoty atribútov sa môžu líšiť, preto si pri mazaní dajte pozor, aby ste zmazali všetky uvedené atribúty.

    6. Načítame novú schému pomocou ldapadd:

      ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\\=kerberos.ldif
      
    7. Pridáme index pre atribút krb5principalname:

      ldapmodify -x -D cn=admin,cn=config -W
      Enter LDAP Password:
      dn: olcDatabase={1}hdb,cn=config
      add: olcDbIndex
      olcDbIndex: krbPrincipalName eq,pres,sub


      modifying entry "olcDatabase={1}hdb,cn=config"

    8. Nakoniec aktualizujeme zoznamy prístupových práv (ACL):

      ldapmodify -x -D cn=admin,cn=config -W
      Enter LDAP Password:
      dn: olcDatabase={1}hdb,cn=config
      replace: olcAccess
      olcAccess: to attrs=userPassword,shadowLastChange,krbPrincipalKey by dn="cn=admin,dc=exampl
      e,dc=com" write by anonymous auth by self write by * none
      -
      add: olcAccess
      olcAccess: to dn.base="" by * read
      -
      add: olcAccess
      olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read


      modifying entry "olcDatabase={1}hdb,cn=config"

Teraz by LDAP adresár mal byť schopný spracovať zoznam splnomocniteľov systému Kerberos.

Konfigurácia primárneho KDC

Ak už máme nakonfigurovaný OpenLDAP, môžme sa pustiť do konfigurácie KDC.

  • Najskôr nainštalujeme potrebné balíky:

    sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldap
    
  • Potom otvoríme súbor /etc/krb5.conf a pridáme nasledujúce nastavenia do príslušnej časti súboru:

    [libdefaults]
    default_realm = NIECO.SK

    ...

    [realms]
    NIECO.SK = {
    kdc = kdc01.nieco.sk
    kdc = kdc02.nieco.sk
    admin_server = kdc01.neico.sk
    admin_server = kdc02.nieco.sk
    default_domain = nieco.sk
    database_module = openldap_ldapconf
    }

    ...

    [domain_realm]
    .nieco.sk = NIECO.SK


    ...

    [dbdefaults]
    ldap_kerberos_container_dn = dc=nieco,dc=sk

    [dbmodules]
    openldap_ldapconf = {
    db_library = kldap
    ldap_kdc_dn = "cn=admin,dc=nieco,dc=sk"

    # this object needs to have read rights on
    # the realm container, principal container and realm sub-trees
    ldap_kadmind_dn = "cn=admin,dc=nieco,dc=sk"

    # this object needs to have read and write rights on
    # the realm container, principal container and realm sub-trees
    ldap_service_password_file = /etc/krb5kdc/service.keyfile
    ldap_servers = ldaps://ldap01.nieco.sk ldaps://ldap02.nieco.sk
    ldap_conns_per_server = 5
    }
    [Note]

    Hodnoty nieco.sk, dc=nieco,dc=sk, cn=admin,dc=nieco,dc=sk a ldap01.nieco.sk zmeňte za hodnoty zodpovedajúce doméne, LDAP objektom a LDAP serveru, ktoré používate v sieti.

  • Ďalej použijeme nástroj kdb5_ldap_util a vytvoríme pôsobisko:

    sudo kdb5_ldap_util -D  cn=admin,dc=nieco,dc=sk create -subtrees dc=nieco,dc=sk -r NIECO.SK -s -H ldap://ldap01.nieco.sk
    
  • Vytvoríme obtlačok hesla, ktorý bude potrebný na prístup k LDAP serveru. Toto heslo použijeme pre nastavenie ldap_kdc_dn a ldap_kadmin_dn v súbore /etc/krb5.conf:

    sudo kdb5_ldap_util -D  cn=admin,dc=nieco,dc=sk stashsrvpw -f /etc/krb5kdc/service.keyfile cn=admin,dc=nieco,dc=sk
    
  • Nakopírujeme certifikáty CA z LDAP serveru:

    scp ldap01:/etc/ssl/certs/cacert.pem .
    sudo cp cacert.pem /etc/ssl/certs
    

     a nastavíme ich použitie v súbore /etc/ldap/ldap.conf:

    TLS_CACERT /etc/ssl/certs/cacert.pem
    
    [Note]

    Aby bolo možné pripojiť sa k LDAP serverom pomocou LDAPS, je potrebné certifikáty prekopírovať aj na sekundárne KDC.

Teraz je možné pridať splnomocniteľov systému Kerberos do LDAP databázy a tá sa automaticky replikuje na ostatné LDAP servery. Splnomocniteľov môžeme pridať pomocou nástroja kadmin.local zadaním:

sudo kadmin.local
Authenticating as principal root/admin@NIECO.SK with password.
kadmin.local: addprinc -x dn="uid=stefan,ou=ludia,dc=nieco,dc=sk" stefan
WARNING: no policy specified for stefan@NIECO.SK; defaulting to no policy
Enter password for principal "stefan@NIECO.SK":
Re-enter password for principal "stefan@NIECO.SK":
Principal "stefan@NIECO.SK" created.

Teraz by sme mali mať v objekte používateľa uid=stefan,ou=ludia,dc=nieco,dc=sk pridané atribúty krbPrincipalName, krbPrincipalKey, krbLastPwdChange a krbExtraData. Na otestovanie toho, či bude používateľovi pridelaná vstupenka použijeme nástroje kinit a klist.

[Note]

Ak objekt používateľa už existuje, je potrebné k atribútom systému Kerberos pridať ešte -x dn="...". Inak sa vytvorí nový objekt splnomocniteľa v strome pôsobiska.

Konfigurácia sekundárneho KDC

Konfigurácia sekundárneho KDC s použitím LDAP je podobná konfigurácii s normálnou Kerberos databázou.

  • Najskôr nainštalujeme potrebné balíky. V príkazovom riadku zadáme:

    sudo apt-get install krb5-kdc krb5-admin-server krb5-kdc-ldap
    
  • Potom otvoríme súbor /etc/krb5.conf a nastavíme použitie LDAP databázy:

    [libdefaults]
    default_realm = NIECO.SK

    ...

    [realms]
    NIECO.SK = {
    kdc = kdc01.nieco.sk
    kdc = kdc02.nieco.sk
    admin_server = kdc01.nieco.sk
    admin_server = kdc02.nieco.sk
    default_domain = nieco.sk
    database_module = openldap_ldapconf
    }

    ...

    [domain_realm]
    .nieco.sk = NIECO.SK

    ...

    [dbdefaults]
    ldap_kerberos_container_dn = dc=nieco,dc=sk

    [dbmodules]
    openldap_ldapconf = {
    db_library = kldap
    ldap_kdc_dn = "cn=admin,dc=nieco,dc=sk"

    # this object needs to have read rights on
    # the realm container, principal container and realm sub-trees
    ldap_kadmind_dn = "cn=admin,dc=nieco,dc=sk"

    # this object needs to have read and write rights on
    # the realm container, principal container and realm sub-trees
    ldap_service_password_file = /etc/krb5kdc/service.keyfile
    ldap_servers = ldaps://ldap01.nieco.sk ldaps://ldap02.nieco.sk
    ldap_conns_per_server = 5
    }
  • Vytvoríme obtlačok LDAP hesla:

    sudo kdb5_ldap_util -D  cn=admin,dc=nieco,dc=sk stashsrvpw -f /etc/krb5kdc/service.keyfile cn=admin,dc=nieco,dc=sk
    
  • Teraz na primárnom KDC skopírujeme Master kľúč /etc/krb5kdc/.k5.NIECO.SK na sekundárny KDC. Súbor je kvôli bezpečnosti potrebné kopírovať cez zašifrované spojenie akým je napríklad scp alebo prostredníctvom fyzického média.

    sudo scp /etc/krb5kdc/.k5.NIECO.SK stefan@kdc02.nieco.sk:~
    sudo mv .k5.NIECO.SL /etc/krb5kdc/
    [Note]

    Rovnako nahraďte NIECO.SK pôsobiskom, ktoré používate.

  • Nakoniec spustíme démon krb5-kdc:

    sudo /etc/init.d/krb5-kdc start
    

Teraz by sme mali mať v našej sieti redundantdé distribučné centrá kľúčov KDC a vďaka redundantným LDAP serverom by sa mali používatelia vedieť prihlásiť aj po výpadku jedného LDAP servera a jedného Kerberos servera.

Zdroje

Služba prekladu doménových mien (DNS)

Služba prekladu doménových mien (DNS - Domain Name Service) je internetová služba, ktorá ku sebe navzájom priraďuje IP adresy a úplne kvalifikované doménové mená (FQDN - fully qualified domain names). V tomto smere nám DNS uľahčuje to, aby sme si nemuseli pamätať číselné  IP adresy. Počítače, na ktorých je spustená služba DNS sa nazývajú menné servery. Systém Ubuntu je vybavený programom BIND (Berkley Internet Naming Daemon), ktorý je najčastejšie používaný na poskytovanie tejto služby v systémoch Linux.

Inštalácia DNS

Ak chceme nainštalovať dns zadáme do príkazového riadka nasledujúci príkaz:

sudo apt-get install bind9

Veľmi užitočný balík na testovanie a riešenie problémov s DNS je balík dnsutils. Ak chceme nainštalovať balík dnsutils zadáme toto:

sudo apt-get install dnsutils

Konfigurácia DNS

Je mnoho spôsobov, akými sa dá nakonfigurovať BIND9. Najčastejšie sa jedná o konfiguráciu v podobe menného servera s dočasným úložiskom mien (caching nameserver), primárneho hlavného menného servera (primary master) a sekundárneho hlavného menného servera (secondary master).

  • V prípade servera s dočasným úložiskom mien BIND9 nájde odpoveď na požiadavku a zapamätá si ju a poskytuje ju pri ďalších požiadavkách.

  • Ako primárny hlavný menný server BIND9 číta zo súboru dáta o staniciach zóny a je autoritatívnym serverom pre celú zónu.

  • Sekundárny hlavný menný server BIND9 získava dáta o zóne z iného autoritatívneho menného servera zóny.

Prehľad

Konfiguračné súbory DNS sú uložené v priečinku /etc/bind. Hlavný konfiguračný súbor je /etc/bind/named.conf.

Riadok include hovorí o súbore, ktorý obsahuje nastavenia DNS. Riadok directory v súbore /etc/bind/named.conf.options hovorí o priečinku, v ktorom bude DNS hľadať súbory. Všetky súbory, ktoré BIND používa, sú zapísané pomocou relatívnej cesty ku tomuto priečinku.

V súbore /etc/bind/db.root sú zapísané hlavné koreňové menné servery z celého sveta. Zoznam serverov sa mení, preto je potrebné súbor /etc/bind/db.root občas aktualizovať. To sa zvyčajne udeje pri aktualizácii balíka bind9. Riadky zone definujú hlavný server, ktorého nastavenia sú uložené v súbore definovanom riadkom file.

Je možné konfigurovať server aj tak, aby bol súčasne menným serverom s dočasným úložiskom mien, primárnym hlavným serverom a sekundárnym hlavným serverom. Server môže poskytovať štartovaciu autoritu - Start of Authority (SOA) pre jednu zónu a zároveň poskytovať sekundárnu službu inej zóne. Súčasne môže všetkým staniciam v lokálnej sieti LAN poskytovať službu dočasného úložiska mien.

Menný server s dočasným úložiskom

Predvolená konfigurácia je nastavená na server s dočasným úložiskom. Všetko čo potrebujeme urobiť, je pridanie IP adries DNS serverov, ktoré získame od poskytovateľa internetového pripojenia. V súbore /etc/bind/named.conf.options odpoznámkujeme a zmeníme nasledujúce nastavenie:

forwarders {
1.2.3.4;
5.6.7.8;
};
[Note]

Adresy 1.2.3.4 a 5.6.7.8 nahraďte IP adresami menných serverov od poskytovateľa internetového spojenia.

Teraz reštartujeme DNS server, aby sa zmeny uplatnili. Do príkazového riadka zadáme:

sudo /etc/init.d/bind9 restart

Informácie o tom, ako nastavenie otestujeme, sa nachádzajú v časti “dig” .

Primárny hlavný menný server

V tejto časti BIND9 nastavíme ako primárny hlavný server pre doménu nieco.sk. Jednoducho nahradíme nieco.sk naším FQDN (úplným kvalifikovaným menom domény).

Priamy zónový súbor

Ak chceme v BIND9 vytvoriť DNS zónu a premeniť ho na primárny hlavný menný server, najskôr upravíme súbor /etc/bind/named.conf.local:

zone "nieco.sk" {
type master;
file "/etc/bind/db.nieco.sk";
};

Teraz použijeme vzorový zónový súbor ako šablónu na vytvorenie nášho súboru /etc/bind/db.nieco.sk:

sudo cp /etc/bind/db.local /etc/bind/db.nieco.sk

Otvoríme nový zónový súbor /etc/bind/db.nieco.sk, zmeníme localhost. na FQDN nášho servera spolu s bodkou "." na konci. Zmeníme 127.0.0.1 na IP adresu menného servera a root.localhost na platnú emailovú adresu, ale miesto znaku zavináč "@" použijeme bodku "." a bodku "." necháme aj na konci adresy.

Vytvoríme tiež A záznam pre ns.nieco.sk. - adresu menného servera:

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.nieco.sk. spravca.nieco.sk. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.nieco.sk.
@ IN A 127.0.0.1
@ IN AAAA ::1
ns IN A 192.168.1.10

Číslo označené poznámkou Serial je potrebné zvýšiť po každej úprave zónového súboru. Ak urobíme viacero zmien pred tým, ako reštartujeme  BIND9, stačí číslo Serial zvýšiť len raz.

Teraz stačí pridať DNS záznamy na koniec zónového súboru. Viac informácii o pridávaní záznamov sa nachádza v časti “Najčastejšie typy záznamov”.

[Note]

Mnoho administrátorov používa v čísle Serial dátum zmeny súboru, napríklad 0107200700 čo predstavuje ddmmyyyyss (kde ss je poradové číslo zmeny v danom dni)

Po vykonaní zmien v zónovom súbore, je potrebné BIND9 reštartovať, aby sa zmeny prejavili:

sudo /etc/init.d/bind9 restart

Reverzný zónový súbor

Teraz keď sme nastavili preklad mien na IP Adresy, je potrebné zadefinovať aj reverznú zónu. Reverzná zóna umožňuje systému DNS prekladať adresy na mená.

Otvoríme súbor /etc/bind/named.conf.local a pridáme nasledujúce nastavenia:

zone "1.168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.192";
};
[Note]

Čísla 1.168.192 prvými troma oktetmi adresy siete, ktorú používate. Tiež podľa toho upravte aj meno zónového súboru /etc/bind/db.192. Na konci by mal byť posledný oktet siete, ktorú používate.

Teraz vytvoríme súbor /etc/bind/db.192 podľa vzorového súboru:

sudo cp /etc/bind/db.127 /etc/bind/db.192

Teraz súbor /etc/bind/db.192 otvoríme a zmeníme tie isté nastavenia ako v súbore /etc/bind/db.nieco.sk:

;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ns.nieco.sk. spravca.nieco.sk. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
10 IN PTR ns.nieco.sk.

Číslo Serial v reverznej zóne je potrebné tiež zvýšiť pri každej zmene. Pre každý A záznam, ktorý sme vytvorili /etc/bind/db.nieco.sk je potrebné vytvoriť PTR záznam v /etc/bind/db.192.

Po dokončení úpravy reverzného zónového súboru reštartujeme BIND9:

sudo /etc/init.d/bind9 restart

Sekundárny hlavný menný server

Ak sme už nakonfigurovali primárny hlavný server, môžeme nakonfigurovať aj sekundárny hlavný server, ktorý zaistí dostupnosť menného servera v prípade, že sa primárny server stane nedostupným.

Najskôr na primárnom serveri povolíme prenos zóny. Pridáme nastavenie allow-transfer do definície priamej aj reverznej zóny v súbore /etc/bind/named.conf.local:

zone "nieco.sk" {
type master;
file "/etc/bind/db.nieco.sk";
allow-transfer { 192.168.1.11; };
};

zone "1.168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/db.192";
allow-transfer { 192.168.1.11; };
};
[Note]

Adresu 192.168.1.11 nahraďte IP Adresou sekundárneho menného servera.

Potom na sekundárnom servery nainštalujeme balík bind9 rovnaký spôsobom ako na primárnom serveri. Otvoríme súbor /etc/bind/named.conf.local a pridáme nasledujúce deklarácie priamej a reverznej zóny:

zone "nieco.sk" {
type slave;
file "/var/cache/bind/db.nieco.sk";
masters { 192.168.1.10; };
};

zone "1.168.192.in-addr.arpa" {
type slave;
file "/var/cache/bind/db.192";
masters { 192.168.1.10; };
};
[Note]

Adresu 192.168.1.10 nahraďte IP adresou primárneho menného servera.

Reštartujeme BIND9 na sekundárnom serveri:

sudo /etc/init.d/bind9 restart

V súbore /var/log/syslog by sme mali vidieť niečo podobné tomuto:

slave zone "nieco.sk" (IN) loaded (serial 6)
slave zone "100.18.172.in-addr.arpa" (IN) loaded (serial 3)
[Note]

Poznámka: Zóna sa prenesie iba vtedy, ak číslo Serial na primárnom serveri je väčšie ako na sekundárnom.

[Note]

Predvolený priečinok pre súbory neautoritatívnej zóny je /var/cache/bind/. Tento priečinok je tiež nastavený v AppArmor tak, aby do neho démon named mohol zapisovať. Viac informácií o AppArmor sa nachádza v časti “AppArmor”.

Riešenie problémov s DNS

Táto časť hovorí o spôsoboch, akými môžeme zistiť príčiny vzniknutých problémov s DNS a BIND9.

Testovanie

resolv.conf

Ak chceme začať testovať BIND9, je potrebné pridať servery do zoznamu  menných serverov. Pre istotu primárny menný server nakonfigurujeme rovnako ako ostatné stanice. Otvoríme súbor /etc/resolv.conf a pridáme nasledujúce riadky:

nameserver	192.168.1.10
nameserver 192.168.1.11
[Note]

Môžete tiež pridať IP adresu sekundárneho servera pre prípad, že primárny nebude fungovať.

dig

Ak máme nainštalovaný balík dnsutils, môžeme otestovať nastavenie dns pomocou nástroja dig:

  • Po nainštalovaní BIND9 použijeme dig ako rozhranie so spätnou väzbou, aby sme sa uistili, či server načúva na porte 53. V príkazovom riadku zadáme:

    dig -x 127.0.0.1
    

    Mali by sme uvidieť riadky podobné týmto:

    ;; Query time: 1 msec
    ;; SERVER: 192.168.1.10#53(192.168.1.10)
  • Ak máme BIND9 nastavený ako menný server s dočasnou pamäťou, môžeme príkaz "dig" použiť na otestovanie rýchlosti odpovede na požiadavku:

    dig ubuntu.com
    

    Všimneme si čas požiadavky na konci výstupu:

    ;; Query time: 49 msec

    Po opätovnom zadaní tej istej požiadavky by sme mali dostať oveľa kratší čas:

    ;; Query time: 1 msec

ping

Teraz si ukážeme, ako môžeme otestovať DNS, či správne prekladá mená staníc. Použijeme na to nástroj ping, ktorý odošle ICMP echo požiadavku. Do príkazového riadka zadáme:

ping nieco.sk

V prípade, že menný server bude vedieť preložiť adresu ns.nieco.sk na IP adresu, mal by výstup vyzerať takto:

PING ns.nieco.sk (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.800 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.813 ms

named-checkzone

Výborný spôsob, akým sa dajú otestovať zónové súbory, je použitie nástroja named-checkzone, ktorý sa nainštaloval pri inštalácii balíka bind9. Tento nástroj umožňuje zistiť, či je konfigurácia pred reštartovaním BIND9 správna a umožňuje robiť zmeny za behu.

  • Ak chceme otestovať náš priamy zónový súbor, zadáme toto:

    named-checkzone nieco.sk /etc/bind/db.nieco.sk
    

    Ak je všetko nastavené správne, mal by výstup vyzerať takto:

    zone nieco.sk/IN: loaded serial 6
    OK
  • Podobne môžeme otestovať aj reverzný zónový súbor:

    named-checkzone nieco.sk /etc/bind/db.192
    

    Výstup by mal vyzerať takto:

    zone nieco.sk/IN: loaded serial 3
    OK
[Note]

Čísla Serial sa budú vo Vašom prípade pravdepodobne odlišovať.

Záznamy

BIND9 má veľa rôznych nastavení týkajúcich sa zaznamenávania. Hlavné nastavenia sú dve. Nastavenie channel (kanál) hovorí o tom, kam pôjdu záznamy a nastavenie category (kategória) určuje, aké informácie budú zaznamenávané.

Ak nie sú nakonfigurované žiadne nastavenia, použije sa predvolené nastavenie:

logging {
category default { default_syslog; default_debug; };
category unmatched { null; };
};

Táto časť hovorí o tom, ako nakonfigurovať BIND9 tak, aby odosielal debug (ladiace) správy súvisiace s DNS požiadavkami do samostatného súboru.

  • Najskôr nastavíme kanál tak, aby systém vedel kam má správy odosielať. Otvoríme súbor /etc/bind/named.conf.local a pridáme nasledujúce riadky:

    logging {
    channel query.log {
    file "/var/log/query.log";
    severity debug 3;
    };
    };
  • Potom nastavím kategóriu, aby systém odosielal všetky DNS požiadavky do súboru query.log:

    logging {
    channel query.log {
    file "/var/log/query.log";
    severity debug 3;
    };
    category queries { query.log; };
    };
[Note]

Poznámka: nastavenie debug môžete meniť v rozsahu 1 až 3. Ak ho nezadáte, použije sa úroveň 1.

  • Pretože démon named je spustený pod používateľom bind po vytvorení súboru /var/log/query.log musíme zmeniť jeho vlastníctvo:

    sudo touch /var/log/query.log
    sudo chown bind /var/log/query.log
    
  • Pred tým, ako bude môcť démon named zapisovať do nového log súboru, musíme aktualizovať profil AppArmor. Najskôr otvoríme súbor /etc/apparmor.d/usr.sbin.named a pridáme:

    /var/log/query.log w,

    Potom nanovo načítame profil:

    cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser -r
    

    Viac informácii o AppArmor sa dozviete v časti  “AppArmor”

  • Teraz reštartujeme BIND9 aby sa zmeny prejavili:

    sudo /etc/init.d/bind9 restart
    

Teraz by sme mali vidieť v súbore /var/log/query.log informácie o požiadavkách. Toto je len veľmi jednoduchá ukážka toho, ako sa konfigurujú nastavenia zaznamenávania systému BIND9. Podrobnejšie informácie sa dozviete v časti “Viac informacií”.

Zdroje

Najčastejšie typy záznamov

Táto časť obsahuje niektoré z najbežnejších typov DNS záznamov.

  • A záznam: Tento záznam priraďuje IP adresu k názvu stanice.

    www      IN    A      192.168.1.12
  • CNAME záznam: Používa sa na vytvorenie aliasu k existujúcemu A záznamu. CNAME záznam sa ale nedá vytvoriť tak, aby odkazoval na iný CNAME záznam.

    web     IN    CNAME  www
  • MX záznam: Definuje miesto, kam majú byť posielané emaily. Musí odkazovať na záznam typu A, nie na CNAME.

            IN    MX      mail.nieco.sk.
    mail IN A 192.168.1.13
  • NS záznam: Používa sa na definovanie serverov, ktoré riadia kópie zóny. Musí odkazovať na A záznam, nie na CNAME. Sú to miesta, na ktorých je definovaný primárny a sekundárny server.

            IN    NS     ns.nieco.sk.
    IN NS ns2.nieco.sk.
    ns IN A 192.168.1.10
    ns2 IN A 192.168.1.11

Ďalšie informácie

Na stránke DNS HOWTO sa nachádzajú podrobnejšie informácie o konfigurácii BIND9.

Podrobné informácie o DNS a BIND9 sa nachádzajú na stránke Bind9.net.

Kniha DNS and BIND je veľmi obľúbená, teraz bolo vydané jej piate vydanie.

Skvelým miestom, kde môžete prediskutovať problémy s BIND9 s komunitou Ubuntu Servera, je IRC kanál #ubuntu-server na freenode.

Za pozretie stojí aj Ubuntu wiki stránka BIND9 Server HOWTO.

Z českých kníh je to napríklad Velký průvodce protokoly TCP/IP a systémem DNS od autorov Alena Kabelová, Libor Dostálek

Bezpečnosť

Pri inštalácii, nasadení a používaní akéhokoľvek druhu počítačového systému, je vždy potrebné myslieť na bezpečnosť. Hoci nová inštalácia Ubuntu je relatívne bezpečná na okamžité použitie v sieti Internet, je dôležité vedieť, ako v Ubuntu jednotlivé bezpečnostné systémy fungujú, aby sme ich mohli prispôsobiť na konkrétne nasadenie.

Táto kapitola poskytuje prehľad tém súvisiacich s bezpečnosťou, ktoré sa týkajú Ubuntu 9.04 Server Edition a hovorí o jednoduchých opatreniach, ktoré môžeme použiť na ochranu nášho servera a siete pred ľubovoľným počtom potenciálnych bezpečnostných hrozieb.

Správa používateľov

Správa používateľov je najdôležitejšou časťou pri udržiavaní bezpečného systému. Nesprávne nastavenie  používateľov a ich privilégií často v mnohých systémoch vedie k ich napadnutiu. Preto je dôležité, aby sme pochopili, ako môžeme chrániť náš server pomocou jednoduchých a efektívnych techník správy používateľských účtov.

Kde je root?

Vývojári Ubuntu sa rozhodli kvôli bezpečnosti zakázať účet root (používateľ s najvyššími právami) v predvolenom nastavení pre všetky inštalácie Ubuntu. To neznamená, že účet root bol zrušený alebo že sa do neho nedá prihlásiť. Iba mu bolo pridelené heslo, ktoré nie je možné porovnať so zašifrovanou hodnotu, a preto sa k tomuto účtu nedá prihlásiť priamo.

Miesto priameho prihlásenia k účtu root používatelia môžu na vykonávanie administrátorských činností použiť nástroj sudo. Sudo umožňuje autorizovaným používateľom na istý čas získať práva root po zadaní svojho vlastného hesla miesto toho, aby museli zadať heslo prislúchajúce k účtu root. Táto jednoduchá, ale účinná metóda umožňuje zistiť pôvodcu každej vykonanej akcie a poskytuje administrátorovi podrobnejšie určiť, ktoré akcie môže používateľ s takýmito oprávneniami vykonať.

  • Ak kvôli nejakým dôvodom potrebujete povoliť účet používateľa root, stačí mu prideliť heslo:

    sudo passwd

    Sudo nás vyzve, aby sme zadali naše heslo a potom budeme môcť nastaviť nové heslo pre používateľa root tak, ako v nasledujúcom príklade:

    [sudo] password for username: (zadáme naše vlastné heslo)
    Enter new UNIX password: (zadáme nové heslo pre používateľa root)
    Retype new UNIX password: (znova zadáme heslo pre používateľa root)
    passwd: password updated successfully
  • Ak chceme účet používateľa root zablokovať, použijeme nasledujúci príkaz:

    sudo passwd -l root
  • Viac o nástroji sudo sa môžeme dozvedieť na man stránkach:

    man sudo

Prvý používateľ vytvorený inštalátorom Ubuntu je členom skupiny "admin", ktorá je v súbore /etc/sudoers zadefinovaná ako oprávnený používateľ príkazu sudo. Ak chceme niektorému ďalšiemu používateľovi povoliť prístup k oprávneniam používateľa root prostredníctvom príkazu sudo, jednoducho ho pridáme do skupiny admin.

Pridávanie a odstraňovanie používateľov

Proces správy lokálnych používateľov a skupín je jednoduchý, ale trochu sa odlišuje od ostatných operačných systémov GNU/Linux. Ubuntu a ostatné distribúcie založené na systéme Debian uprednostňujú na správu účtov balík "adduser".

  • Ak chceme pridať používateľský účet, použijeme nasledujúci príkaz a budeme odpovedať na otázky o názve účtu, hesle a ďalších identifikačných parametroch, akými sú napríklad celé meno, číslo telefónu, atď.

    sudo adduser meno_pouzivatela
  •  Ak chceme odstrániť používateľský účet a jeho primárnu skupinu, použijeme nasledujúci príkaz:

    sudo deluser meno_pouzivatela

    Odstránenie účtu nie je podmienené odstránením domovského priečinka. Je na nás, či priečinok zmažeme ručne alebo si ho ponecháme pre opätovné použitie.

    Každý používateľ, ktorý bude mať rovnaké číslo UID alebo GID ako predchádzajúci majiteľ, bude mať do tohto priečinka prístup, ak tomu nezabránime.

    AK budeme chcieť zmeniť hodnoty UID/GID na nejaké presnejšie, napríklad na rovnaké ako má root, a presunúť priečinok inam, aby v budúcnosti nenastali konflikty, zadáme tieto príkazy:

    sudo chown -R root:root /home/meno_pouzivatela/
    sudo mkdir /home/archivovani_pouzivatelia/
    sudo mv /home/meno_pouzivatela /home/archivovani_pouzivatelia/
  • Ak chceme dočasne uzamknúť alebo odomknúť používateľský účet, použijeme tieto príkazy:

    sudo passwd -l meno_pouzivatela
    sudo passwd -u meno_pouzivatela
  • Ak chceme pridať alebo vytvoriť skupinu, použijeme nasledujúce príkazy:

    sudo addgroup meno_skupiny
    sudo delgroup meno_skupiny
  • Ak chceme pridať používateľa do skupiny, použijeme nasledujúci príkaz:

    sudo adduser meno_pouzivatela meno_skupiny

Bezpečnosť používateľských profilov

Pri vytváraní nového používateľského účtu nástroj adduser vytvorí nový domovský priečinok  /home/meno_pouzivatela. Profil sa vymodeluje podľa obsahu priečinka /etc/skel, ktorý obsahuje všetky základné komponenty profilu.

Ak náš server bude domovom pre viacero používateľov, mali by sme venovať zvýšenú pozornosť nastaveniu oprávnení k používateľským priečinkom. V predvolenom stave sú domovské priečinky v Ubuntu vytvorené s všeobecnými právami pre čítanie/spúšťanie. To znamená, že všetci používatelia môžu prezerať a pristupovať k obsahu domovských priečinkov ostatných používateľov. To pre naše prostredie nemusí byť vhodné.

  • Ak chceme overiť, aké sú k priečinku pridelené oprávnenia, použijeme nasledujúci príkaz:

    ls -ld /home/meno_pouzivatela

    Nasledujúci výstup nás informuje, že priečinok /home/username je prístupný na čítanie všetkým:

    drwxr-xr-x  2 meno_pouzivatela meno_pouzivatela    4096 2007-10-02 20:03 meno_pouzivatela
  • Práva čítania priečinka pre všetkých môžeme zrušiť nasledujúcim príkazovom:

    sudo chmod 0750 /home/meno_pouzivatela
    [Note]

    Niektorí ľudia majú tendenciu bez uváženia používať rekurzívny prepínač  (-R), ktorý zmení práva aj všetkým podriadeným priečinkom a súborom. Toto však nie je nevyhnutné a môže to viesť k nežiaducim problémom. Zmena oprávnení k rodičovskému priečinku zabráni neautorizovanému prístupu aj ku všetkému čo je v ňom.

    Oveľa efektívnejším spôsobom je, ak globálne zmeníme predvolené oprávnenia k domovským priečinkom pre nástroj adduser. Otvoríme súbor /etc/adduser.conf a upravíme premennú DIR_MODE na také práva, aké chceme priradiť všetkým novovytvoreným domovským priečinkom.

    DIR_MODE=0750
  • Po úprave oprávnení priečinka použitím niektorej z uvedených techník opäť overíme oprávnenia k priečinku pomocou príkazu:

    ls -ld /home/meno_pouzivatela

    Výpis nižšie nám potvrdil, že priečinok už nemajú právo čítať všetci:

    drwxr-x---   2 meno_pouzivatela meno_pouzivatela    4096 2007-10-02 20:03 meno_pouzivatela

Politika hesiel

Používanie silných hesiel je jedným z najdôležitejších aspektov bezpečnosti. Mnoho napadnutí systému uskutočnených hrubou silou (vyskúšanie všetkých možností) alebo slovníkovým útokom bolo úspešných kvôli slabým heslám. Ak sa rozhodneme používať niektorú formu vzdialeného prístupu, ktorá vyžaduje lokálne heslá, je potrebné adekvátne nastaviť dolnú hranicu zložitosti hesla, maximálnu dĺžku platnosti hesla a časté auditovanie nášho autentifikačného systému.

Minimálna dĺžka hesla

V predvolenom stave je minimálna dĺžka hesla, ktorú Ubuntu vyžaduje, 4 znaky, a tiež je nastavené základné overenie náhodnosti. Táto hodnota sa nastavuje v súbore /etc/pam.d/common-password, spôsobom uvedeným nižšie.

password   required   pam_unix.so nullok obscure min=4 max=8 md5

Ak by sme chceli zvýšiť minimálnu dĺžku hesla na 6 znakov, zmeníme hodnotu príslušnej premennej na min=6.

password   required   pam_unix.so nullok obscure min=6 max=8 md5
[Note]

Premenná max=8 neznamená maximálnu dĺžku hesla. Hovorí o tom, že zložitosť hesla sa nebude kontrolovať pri heslách, ktoré sú dlhšie ako 8 znakov. Ak chcete pomôcť s náhodnosťou hesiel, môžete použiť balík libpam-cracklib.

Platnosť hesla

Pri vytváraní používateľských účtov by sme mali nastaviť minimálnu a maximálnu životnosť hesla a to, aby bol po jej uplynutí používateľ prinútený zadať nové heslo.

  • Ak chceme zobraziť stav účtu používateľa, použijeme nasledujúci príkaz:

    sudo chage -l meno_pouzivatela

    Výstup nižšie zobrazuje zaujímavé fakty o používateľskom účte, konkrétne to, že nie je aplikovaná žiadna politika:

    Last password change                                    : Jan 20, 2008
    Password expires : never
    Password inactive : never
    Account expires : never
    Minimum number of days between password change : 0
    Maximum number of days between password change : 99999
    Number of days of warning before password expires : 7
  • Ak chceme nastaviť niektorú z týchto hodnôt, použijeme nasledujúci príkaz a budeme sa riadiť interaktívnymi otázkami:

    sudo chage meno_pouzivatela

    V nasledujúcom príklade ručne nastavíme dátum vypršania platnosti hesla (-E) na 31.1.2008, minimálnu dobu platnosti hesla (-m) na 5 dní, maximálnu dobu platnosti hesla (-M) na 90 dní, dĺžku neaktívnosti, po ktorej heslo nebude platné (-I) na 5 dní a čas varovania pred skončením platnosti hesla (-W) na 14 dní.

    sudo chage -E 01/31/2008 -m 5 -M 90 -I 30 -W 14 meno_pouzivatela
  • Ak chceme zmeny overiť, použijeme znova príkaz:

    sudo chage -l meno_pouzivatela

    Výstup nižšie zobrazuje novú politiku, ktorá je odteraz platná pre daný účet:

    Last password change                                    : Jan 20, 2008
    Password expires : Apr 19, 2008
    Password inactive : May 19, 2008
    Account expires : Jan 31, 2008
    Minimum number of days between password change : 5
    Maximum number of days between password change : 90
    Number of days of warning before password expires : 14

Ďalšie možnosti zabezpečenia

Mnoho aplikácií používa alternatívne autentifikačné mechanizmy, ktoré môžu byť ľahko prehliadnuté dokonca aj skúsenými správcami systémov. Preto je dôležité pochopiť a riadiť spôsob, akým sa budú používatelia autentifikovať k jednotlivým službám a aplikáciám na serveri.

SSH prístup zablokovaných používateľov

Jednoduché zablokovanie/uzamknutie používateľského účtu nezabráni pred vzdialeným pripojením používateľov k serveru, ak mali pred tým nastavenú autentifikáciu pomocou verejného RSA kľúča. Budú sa môcť stále pripojiť a budú mať k dispozícii príkazový riadok bez potreby zadávania akéhokoľvek hesla. Nesmieme preto zabudnúť skontrolovať domovský priečinok používateľa, či neobsahuje súbor, ktorý umožňuje tento typ autentifikovaného prístupu napr. /home/meno_pouzivatela/.ssh/authorized_keys.

Odstránime alebo premenujeme priečinok .ssh/ v domovskom priečinku používateľa, čím predídeme ďalšiemu využitiu možnosti SSH autentifikácie.

Uistíme sa, či so zablokovaným používateľom nie sú nadviazané SSH spojenia. Je možné, že bude mať nadviazané prichádzajúce alebo odchádzajúce pripojenia. Zrušíme všetky, ktoré nájdeme.

SSH prístup povolíme iba používateľom, ktorí by ho mali mať. Napríklad môžeme vytvoriť skupinu s názvom "sshlogin" a pridať názov skupiny do premennej AllowGroups v súbore /etc/ssh/sshd_config.

AllowGroups sshlogin

Potom používateľov, ktorí majú mať prístup k SSH, pridáme do skupiny "sshlogin" a reštartujeme službu SSH.

sudo adduser meno_pouzivatela sshlogin
sudo /etc/init.d/ssh restart

Autentifikácia pomocou externej databázy používateľov

Väčšina vyspelejších sietí používa centralizovanú autentifikáciu a riadenie prístupu ku všetkým systémovým zdrojom. Ak ste nakonfigurovali server tak, aby autentifikoval používateľov pomocou externej databázy, uistíme sa, či sme účet zablokovali lokálne aj externe, a tým zaistíme, že nebude možné ani núdzové lokálne prihlásenie.

Zabezpečenie konzoly

Tak ako pri iných bezpečnostných barierach, ktorými chránime náš server, zistíme, že ochrániť server pred niekym, kto má fyzický prístup k serveru, ako napríklad zlodejmi, narušiteľmi napájania alebo prevádzky atď, nie je vôbec jednoduché. Preto by zabezpečenie konzoly malo byť tiež jednou zložkou celkovej bezpečnostnej stratégie. Uzamknutie "obrazovkových dverí" môže odradiť páchateľa od príležitostnej kriminality alebo ho aspoň spomaliť. Odporúčame preto vykonať základné bezpečnostné opatrenia zamerané na zabezpečenie konzoly.

Nasledujúce inštrukcie nám pomôžu zabezpečiť server pred problémami, ktoré by inak mohli mať veľmi vážne následky.

Zablokovanie Ctrl+Alt+Delete

Najprv je potrebné používateľom, ktorí majú fyzický prístup ku klávesnici terminálu, zablokovať trojkombináciu Ctrl+Alt+Delete, pomocou ktorej sa dá server reštartovať bez prihlásenia. Aj keď niekto môže jednoducho vytiahnuť napájací kábel, pri produkčných serveroch je dobré túto trojkombináciu zakázať. Prinúti to útočníka použiť komplikovanejší spôsob reštartu servera a zabráni to nechcenému náhodnému reštartu. 

  • Ak chceme zablokovať reštart servera po stlačení trojkombinácie Ctrl+Alt+Delete, zapoznámkujeme nasledujúci riadok v súbore /etc/event.d/control-alt-delete.

    #exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

Zabezpečenie zavádzača GRUB heslom

Spolu s Ubuntu sa ako predvolený zavádzač nainštaluje GNU GRUB, ktorý je veľmi prispôsobiteľný a má možnosti na obnovu. Napríklad, ak nainštalujeme ďalšie jadro, automaticky sa pridá ako nová možnosť do ponuky zavádzača grub. Pre každé jadro sa v ponuke vytvorí aj alternatívna položka označená nápisom (recovery mode), ktorú je možné použiť na obnovu systému. Recovery mode - obnovovací mód zavedie príslušné jadro do jednopoužívateľského módu (init 1), ktorý zodpovedá administrátorovi a sprístupní príkazový riadok s právami používateľa root bez vyžiadania akéhokoľvek hesla.

Preto je veľmi dôležité mať kontrolu nad tým, kto bude môcť  pristupovať k položkám ponuky grub, ktoré su za normálnych okolností prístupné každému, čo umožňuje vykonanie nebezpečných akcií:

  • Zmeniť parametre jadra pri zavádzaní.

  • Zaviesť server do jednopoužívateľského módu.

Týmto akciám môžeme zabrániť tak, že nastavíme heslo pre vstup do konfigurácie GRUBu v súbore /boot/grub/menu.lst, ktoré bude potrebné na odomknutie použitia rozšírených možností GRUBu.

  • Ak chceme použiť s nástrojom grub heslo, najskôr si musíme vygenerovať md5 odtlačok hesla pomocou nástroja grub-md5-crypt:

    grub-md5-crypt

    Po spustení príkazu zadáme heslo a zobrazí sa nám zodpovedajúca hodnota odtlačku:

    Password: (zadáme heslo)
    Retype password: (potvrdíme heslo)
    $1$s3YiK$M3lxAbqA6JLm2FbDWnClQ0

  • Výsledný odtlačok zadáme do súboru /boot/grub/menu.lst v nasledujúcom tvare:

    password --md5 $1$s3YiK$M3lxAbqA6JLm2FbDWnClQ0
  • Aby sme zaheslovali aj prístup do jednouživateľského módu, nastavíme hodnotu premennej lockalternative v súbore /boot/grub/menu.lst na true tak, ako v nasledujúcom príklade.

    # lockalternative=true
[Note]

Toto nezabráni niekomu zaviesť systém z iného média. Útočník by mohol jednoducho naštartovať svoje vlastné prostredie, prepísať hlavný zavádzací záznam, pripojiť a skopírovať fyzické disky, zničiť dáta alebo čokoľvek iné. Tomuto problému sa dá zabrániť správnym nastavením BIOSu počítača, preto si preštudujte o ďalších protiopatreniach, ktoré môžu tomuto typu útoku zabrániť v príručke k biosu alebo na Internete.

Firewall

Úvod

Linuxové jadro obsahuje podsystém Netfilter, ktorý sa používa na riadenie prevádzky smerujúcej do servera alebo prechádzajúcej cez server. Všetky moderné Linuxové firewally používajú tento systém na filtrovanie paketov.

Systém filtrovania paketov kernelom je pre administrátorov ťažko použiteľný bez používateľského rozhrania, ktoré ho spravuje. Toto je úlohou iptables (ip tabuliek). Keď sa paket dostane na náš server, je odovzdaný do podsystému Netfilter aby ho prijal, spracoval alebo odmietol na základe pravidiel, ktoré mu zadáme pomocou iptables. Tieto ip tabuľky sú všetko, čo potrebujeme pre riadenie firewallu. Kvôli uľahčeniu práce však vznikli aj ďalšie rozhrania.

ufw - nekomplikovaný Firewall

Predvolený konfiguračný nástroj na konfiguráciu firewallu v systéme Ubuntu je ufw. Bol vyvinutý na jednoduché nastavenie iptables firewallu. Nástroj ufw poskytuje používateľsky prívetivý spôsob, ako vytvoriť firevall založený na staniciach typu IPv4 alebo IPv6.

Nástroj ufw je v základnom stave vypnutý. Na man stránkach ufw sa píše:

ufw nie je určený na poskytnutie úplnej funkcionality firewallu cez príkazový riadok, slúži na jednoduché pridávanie a odstraňovanie jednoduchých pravidiel. Je zameraný najmä na firewall na báze staníc.

V ďalšej časti ukážeme niekoľko príkladov použitia ufw:

  • Najskôr je potrebné zapnúť ufw. Do príkazového riadka zadáme:

    sudo ufw enable
    
  • Otvorenie portu (v našom prípade port ssh):

    sudo ufw allow 22
    
  • Pravidlá sa dajú pridávať pomocou číslovaného formátu:

    sudo ufw insert 1 allow 80
    
  • Podobne zatvoríme otvorený port:

    sudo ufw deny 22
    
  • Ak chceme pravidlo odstrániť, zadáme delete a za ním pravidlo:

    sudo ufw delete deny 22
    
  • Je tiež možné povoliť prístup z konkrétnych staníc alebo siete k portu. V nasledujúcom príklade povolíme ssh prístup zo stanice 192.168.0.2 na ktorúkoľvek adresu na tejto stanici:

    sudo ufw allow proto tcp from 192.168.0.2 to any port 22
    

    Ak nahradíme adresu 192.168.0.2 adresou 192.168.0.0/24, povolíme ssh prístup z celej podsiete.

  • Pridaním prepínača --dry-run k príkazu ufw budú vytvorené pravidlá, ale neaplikujú sa. V nasledujúcom príklade môžeme vidieť čo sa stane, ak otvoríme HTTP port:

    sudo ufw --dry-run allow http
    
    *filter
    :ufw-user-input - [0:0]
    :ufw-user-output - [0:0]
    :ufw-user-forward - [0:0]
    :ufw-user-limit - [0:0]
    :ufw-user-limit-accept - [0:0]
    ### RULES ###

    ### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0
    -A ufw-user-input -p tcp --dport 80 -j ACCEPT

    ### END RULES ###
    -A ufw-user-input -j RETURN
    -A ufw-user-output -j RETURN
    -A ufw-user-forward -j RETURN
    -A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT]: "
    -A ufw-user-limit -j REJECT
    -A ufw-user-limit-accept -j ACCEPT
    COMMIT
    Rules updated
  • ufw môžeme vypnúť zadaním:

    sudo ufw disable
    
  • Ak chceme vidieť stav firewallu, zadáme:

    sudo ufw status
    
  • Podrobnejšie informácie zobrazíme takto:

    sudo ufw status verbose
    
  • Na zobrazenie v číslovanom formáte použijeme:

    sudo ufw status numbered
    
[Note]

Ak je port, ktorý chcete otvoriť alebo zatvoriť, definovaný v súbore /etc/services, môžete miesto čísla portu použiť jeho názov. V predchádzajúcich príkladoch môžete 22 nahradiť ssh.

Toto bol krátky úvod o používaní nástroja ufw. Viac informácií sa dozviete na man stránkach ufw.

Integrácia aplikácií s ufw

Aplikácie, ktoré otvárajú porty, môžu zahrnúť do ufw profilu, detaily o portoch, ktoré potrebujú ku svojej správnej činnosti. Profily sa uchovávajú v priečinku /etc/ufw/applications.d, v ktorom ich môžeme upravovať ak chceme zmeniť predvolené nastavenie portov.

  • Ak chceme vidieť, ktoré aplikácie majú nainštalovaný profil, zadáme nasledujúci príkaz:

    sudo ufw app list
    
  • Rovnako, ako sme povoľovali port, môžeme povoliť aj profil aplikácie:

    sudo ufw allow Samba
    
  • Rovnako je možné použiť rozšírenú syntax:

    sudo ufw allow from 192.168.0.0/24 to any app Samba
    

    Aplikáciu Samba a adresu 192.168.0.0/24 môžeme nahradiť za profil inej aplikácie a rozsah IP adries našej siete.

    [Note]

    Nie je potrebné pre aplikáciu dodatočne určovať  protokol, pretože tieto informácie sú uložené v profile. Všimnite si, že slovom app môžeme nahradiť port.

  •  Ak chceme zobraziť, ktoré porty, protokoly, atď sú definované pre aplikáciu, zadáme:

    sudo ufw app info Samba
    

Nie všetky aplikácie, pre ktoré je potrebné otvoriť sieťové porty, sa dodávajú s ufw profilom, ale ak si sami vytvoríme profil a chceme aby bol začlenený do inštalačného balíka, môžeme poslať súbor spolu s hlásením chyby k balíku do systému Launchpad.

Zamaskovanie IP adries

Cieľom zamaskovania IP (masquerade) adries je umožnenie pridelenia súkromnej nedosiahnuteľnej IP adresy v našej sieti, z ktorej sa budeme môcť  dostať na Internet prostredníctvom zariadenia, ktoré robí maskovanie. Komunikácia z našej privátnej siete smerujúca do siete Internet musí byť pozmenená tak, aby odpovede dorazili na zariadenie, ktoré si ich vyžiadalo. Aby sa tak stalo, kernel musí upraviť zdrojovú IP adresu každého paketu tak, aby odpoveď dorazila na počítač robiaci maskovanie a nie priamo na súkromnú IP adresu, na ktorú sa nie je možné dostať priamo z Internet. Linux používa Sledovanie spojenia - Connection Tracking (conntrack) aby odsledoval, ktoré spojenie smeruje do ktorého stroja a mohol správne presmerovať vracajúce sa pakety. Komunikácia opúšťa privátnu sieť ako "zamaskovaná" tak, ako keby pochádzala priamo z nášho Ubuntu servera tvoriaceho bránu (gateway). Tento proces je v dokumentácii od firmy Microsoft popísaný ako Zdieľanie internetového pripojenia.

Maskovanie pomocou ufw

Maskovanie IP adries sa dá vytvoriť pomocou vlastných pravidiel ufw. Je to možné vďaka aktuálnemu koncovému rozhraniu ufw s názvom iptables-restore s pravidlami uloženými v súboroch /etc/ufw/*.rules. Tieto súbory sú skvelým miestom, kde sa dajú pridávať pravidlá pre iptables bez ufw a pravidlá, ktoré sú zamerané pre sieťovú bránu alebo premostenia.

Pravidlá sú rozdelené do dvoch rozdielnych súborov. Pravidlá, ktoré by mali byť spustené pred príkazmi ufw zadanými z príkazového riadka a pravidlá, ktoré by mali byť spustené za príkazmi ufw zadanými z príkazového riadka.

  • Najskôr je potrebné zapnúť smerovanie paketov v ufw. Je potrebné upraviť dva konfiguračné súbory. V súbore /etc/default/ufw zmeníme DEFAULT_FORWARD_POLICY na “ACCEPT”:

    DEFAULT_FORWARD_POLICY="ACCEPT"
    

    Potom otvoríme súbor /etc/ufw/sysctl.conf a odkomentujeme:

    net.ipv4.ip_forward=1
    

    Podobne pre IPv6 smerovanie odkomentujeme:

    net.ipv6.conf.default.forwarding=1
    
  • Teraz pridáme pravidlá do súboru /etc/ufw/before.rules. Predvolené pravidlá konfigurujú iba tabuľku filter a ak chceme zapnúť maskovanie, je potrebné nakonfigurovať tabuľku nat. Nasledujúce riadky pridáme na začiatok súboru za komentár hlavičky:

    # pravidlá nat tabuľky
    *nat
    :POSTROUTING ACCEPT [0:0]

    # Presmerovanie komunikácie z eth1 na eth0.
    -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

    # nemažte riadok 'COMMIT' inak sa pravidlá tejto tabuľky nevykonajú
    COMMIT

    Komentáre nie sú povinné, ale je dobrým zvykom okomentovať našu konfiguráciu. Ak upravujeme akékoľvek pravidlá v súboroch v priečinku /etc/ufw je potrebné sa uistiť, či na konci týchto riadkov každej tabuľky sa nachádzajú tieto riadky:

    # don't delete the 'COMMIT' line or these rules won't be processed
    COMMIT

     V každej Tabuľke je potrebný príkaz COMMIT. V tomto článku boli zobrazené len tabuľky nat a filter, ale pravidlá je možné pridať aj do tabuliek raw a mangle.

    [Note]

    V uvedenom príklade nahraďte eth0, eth1 a 192.168.0.0/24 sieťovými rozhraniami a rozsahom IP adries, ktoré používate vo vašej sieti.

  • Nakoniec vypneme a znovu zapneme ufw aby sa prejavili zmeny:

    sudo ufw disable && sudo ufw enable
    

Maskovanie IP adries by teraz malo byť zapnuté. Môžeme pridať ešte niekoľko dodatočných FORWARD pravidiel do súboru /etc/ufw/before.rules. Dodatočné pravidlá je odporúčané pridávať do zreťazenia ufw-before-forward.

Maskovanie pomocou iptables

Na maskovanie IP adries je možné použiť aj iptables.

  • Podobne ako pri ufw, najskôr musíme povoliť smerovanie paketov IPv4 úpravou súboru /etc/sysctl.conf odkomentovaním nasledujúceho riadka

    net.ipv4.ip_forward=1
    

    Ak by sme chelí zapnúť aj IPv6 smerovanie odkomentujeme aj riadok:

    net.ipv6.conf.default.forwarding=1
    
  • Potom spustíme príkaz sysctl, ktorý zapne nové nastavenia v konfigurácii:

    sudo sysctl -p
    
  • IP maskovanie teraz môžeme nastaviť pomocou jedného pravidla iptables, ktoré je potrebné prispôsobiť konfigurácii našej siete:

    sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
    

    Uvedený príkaz považuje za privátne adresy tie, ktoré sú z rozsahu 192.168.0.0/16 a za zariadenie, ktorým sa pripájame na internet považuje ppp0. Význam ďalších častí príkazu je takýto:

    • -t nat -- pravidlo patrí do tabuľky nat

    • -A POSTROUTING -- pravidlo sa pridá (-A) do zreťazenia POSTROUTING

    • -s 192.168.0.0/16 -- pravidlo platí pre komunikáciu pochádzajúcu zo zadaného rozsahu adries

    • -o ppp0 -- pravidlo sa aplikuje iba na komunikáciu, ktorá je nasmerovaná von cez zadané sieťové zariadenie

    • -j MASQUERADE -- komunikácia spĺňajúca toto pravidlo "preskočí" (-j) na cieľ MASQUERADE, ktorý s ňou bude zaobchádzať vyššie uvedeným spôsobom

  • Každé zreťazenie v tabuľke filter (predvolená tabuľka, v ktorej je definovaná väčšina pravidiel filtrujúcich pakety) má v základnom stave nastavenú policy (politiku) na ACCEPT (prijať), ale ak chceme vytvoriť firewall s prídavnou funkciou brány, mali by sme politiky nastaviť na DROP (zahodiť) alebo REJECT (odmietnuť), ktorá spôsobí, že maskovaná komunikácia bude musieť prejsť cez zreťazenie FORWARD, v ktorom zadefinujeme pravidlá pre filtrovanie:

    sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT
    sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT

    Predchádzajúce príkazy povolia pripojenie prichádzajúce z vnútornej siete do siete Internet a komunikáciu, ktorá súvisí s týmito pripojeniami, presmeruje na počítače, ktoré spojenia nadviazali.

  • Ak chceme, aby bolo maskovanie aktívne aj po reštarte, otvoríme súbor /etc/rc.local a pridáme príkazy, ktoré sme použili vyššie. Napríklad prvý príkaz bez filtrovania:

    iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
    

Záznamy

Záznamy Firewallu slúžia na rozpoznanie útokov, riešenie problémov s pravidlami a upozorňovanie na nezvyčajné aktivity v sieti. Aby bol záznam vygenerovaný, je potrebné ho začleniť do pravidla, pretože pravidlá pre zaznamenávanie musia byť známe pred aplikovaním koncového pravidla (pravidlo, ktoré rozhodne o osude paketu ako ACCEPT (prijať), DROP (zahodiť) alebo REJECT (odmietnuť)).

Ak používame ufw, môžeme zaznamenávanie zapnúť zadaním nasledujúceho príkazu:

sudo ufw logging on

Ak chceme zaznamenávanie vypnúť ufw, jednoducho v príkaze slovo on nahradíme za off.

Ak používame iptables miesto ufw, zadáme:

sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

Požiadavky smerujúce na port 80 z lokálny staníc budú zaznamenané do dmesg a budú vyzerať takto:

[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=58288 DF PROTO=TCP SPT=53981 DPT=80 WINDOW=32767 RES=0x00 SYN URGP=0

Predchádzajúci záznam sa objaví v súboroch /var/log/messages, /var/log/syslog a /var/log/kern.log. Toto chovanie sa dá zmeniť v súbore /etc/syslog.conf alebo nainštalovaním a nastavením nástroja ulogd a použitím slova ULOG miesto slova LOG v pravidle. Démon ulogd načúva, logovacím inštrukciám z jadra špeciálne pre firewall a môže ich zaznamenať buď do súboru, aký mu zadáme alebo do databázy PostgreSQL či MySQL. Analýzu záznamov firewallu si môžeme zjednodušiť analyzačnými nástrojmi fwanalog, fwlogwatch alebo lire.

Ostatné nástroje

Existuje mnoho nástrojov, ktoré uľahčujú vytvorenie kompletného firewallu bez toho, aby sme poznali iptables. Pre klientov s grafickým rozhraním sú to:

  • Firestarter je veľmi populárny a ľahko sa používa.

  • fwbuilder je veľmi mocný a priateľsky vyzerajúci program pre administrátorov, ktorí sú zvyknutí používať komerčné nástroje, ako napríklad Checkpoint FireWall-1.

Ak uprednostňujeme nástroje, ktoré sa zadávajú v príkazovom riadku s textovými konfiguračnými súbormi, môžeme použiť:

  • Shorewall je veľmi možný riešenie, ktoré umožňuje nakonfigurovať firewall pre akúkoľvek sieť.

  • ipkungfu nám poskytne funkčný firewall bez nutnosti akejkoľvek konfigurácie a umožní nám jednoducho nastaviť pokročilejší fierewall, pomocou veľmi dobre zdokumentovaných konfiguračných súborov.

  • fireflier je navrhnutý tak, aby bol desktopovou aplikáciou. Skladá sa zo serverovej aplikácie (fireflier-server) a grafického klienta, akého si zvolíte (GTK alebo QT) a chová sa ako väčšina interaktívnych firewall aplikácií pre Windows.

Zdroje

  • Wiki stránka Ubuntu Firewall obsahuje informácie o vývoji ufw.

  • Manuálové stránky ufw tiež obsahujú veľmi užitočné informácie: man ufw.

  • Na stránke packet-filtering-HOWTO sa nachádza viac informácií o použití iptables.

  • Stránka nat-HOWTO obsahuje detaily o maskovaní.

  • Výborným zdrojom je aj IPTables HowTo na Ubuntu wiki.

AppArmor

AppArmor je implementácia bezpečnostného modulu Linuxu (Linux Security Module) riadenia prístupu na základe mandátov založených na menách. AppArmor zabraňuje jednotlivým programom meniť súbory, ktoré sú definované v zozname dokumentu posix 1003.1e.

AppArmor sa nainštaluje spolu so systémom a hneď sa aj aktivuje. Používa profily aplikácií, aby určil, ktoré súbory a s akými právami daná aplikácia vyžaduje. Niektoré balíky nainštalujú svoje vlastné profily a niektoré ďalšie dodatočné profily sa nachádzajú v balíku apparmor-profiles.

Ak chceme nainštalovať balík apparmor-profiles, do príkazového riadka zadáme:

sudo apt-get install apparmor-profiles

Profily AppArmor majú dva módy spustenia:

  • Upozorňovací/Učiaci: umožňuje porušiť pravidlá v profile, porušenia sú však zaznamenané. Toto je užitočné pri testovaní a tvorbe nových profilov.

  • Prinucovací/Zákazový: striktne presadzuje politiku profilu a pokus o jej porušenie zaznamená.

Použitie AppArmor

Balík apparmor-utils obsahuje nástroje pre príkazový riadok, ktorými môžeme pre AppArmor zmeniť mód spustenia, nájsť stav profilu, vytvoriť nové profily, atď.

  • apparmor_status sa používa na zobrazenie aktuálneho stavu profilov AppArmor.

    sudo apparmor_status
  • aa-complain prepne profil do upozorňovacieho módu.

    sudo aa-complain /cesta/k/programu
  • aa-enforce prepne profil do prinucovacieho módu.

    sudo aa-enforce /cesta/k/programu
  • Profily AppArmor sa nachádzajú v priečinku /etc/apparmor.d. Tento priečinok môžeme použiť na zmenu módu všetkých profilov naraz.

    Ak chceme všetky profily naraz prepnúť do upozorňovacieho módu, zadáme:

    sudo aa-complain /etc/apparmor.d/*

    Keby sme ich chceli prepnúť do prinucovacieho módu, zadáme:

    sudo aa-enforce /etc/apparmor.d/*
  • apparmor_parser sa používa na načítanie profilu do jadra. Môžeme ho použiť aj na obnovenie už načítaných profilov použitím prepínača -r. Profil načítame takto:

    cat /etc/apparmor.d/neno.profilu | sudo apparmor_parser -a

    Obnovenie profilu urobíme takto:

    cat /etc/apparmor.d/meno.profilu | sudo apparmor_parser -r
  • /etc/init.d/apparmor môže byť použitý na obnovenie všetkých profilov:

    sudo /etc/init.d/apparmor reload
  • Priečinok /etc/apparmor.d/disable môže byť použitý pomocou príkazu apparmor_parser -R na vypnutie profilu.

    sudo ln -s /etc/apparmor.d/meno.profilu /etc/apparmor.d/disable/
    sudo apparmor_parser -R /etc/apparmor.d/meno.profilu

    Ak chceme znova zapnúť vypnutý profil, odstránime symbolické prepojenie na profil v /etc/apparmor.d/disable/. Potom načítame profil spolu s prepínačom -a.

    sudo rm /etc/apparmor.d/disable/meno.profilu
    cat /etc/apparmor.d/meno.profilu | sudo apparmor_parser -a
  • AppArmor môžeme vypnúť a zrušiť aj načítanie modulu jadra zadaním príkazu:

    sudo /etc/init.d/apparmor stop
    sudo update-rc.d -f apparmor remove
  • Ak chceme znova obnoviť AppArmor, zadáme:

    sudo /etc/init.d/apparmor start
    sudo update-rc.d apparmor defaults
[Note]

Spojenie meno.profilu nahraďte menom profilu, s ktorým chcete manipulovať. Nahraďte tiež cestu /cesta/k/programu/ aktuálnou cestou spustiteľného súboru. Napríklad príkaz ping má cestu /bin/ping

Profily

Profily AppArmor sú jednoduché textové súbory umiestnené v priečinku /etc/apparmor.d/. Súbory sú nazvané podľa celej cesty k spustiteľnému súboru pričom znak "/" je nahradený znakom ".". Napríklad /etc/apparmor.d/bin.ping je AppArmor profil pre príkaz /bin/ping.

Existujú dva hlavné typy pravidiel použitých v profiloch:

  • Záznamy ciest: hovoria, ku ktorým súborom aplikácie je možné pristupovať v súborovom systéme.

  • Capability entries: určujú, aké právomoci budú môcť použiť neoprávnené procesy.

Napríklad sa môžeme pozrieť na profil /etc/apparmor.d/bin.ping:

#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>

capability net_raw,
capability setuid,
network inet raw,

/bin/ping mixr,
/etc/modules.conf r,
}
  • #include <tunables/global>: príkaz include znamená začleniť z iných súborov. Tento umožňuje nastaviť chovanie viacerých aplikácií, ktoré nastavíme v spoločnom súbore.

  • /bin/ping flags=(complain): cesta k profilovanému programu a nastavenie upozorňovacieho módu.

  • capability net_raw,: umožňuje aplikáciám pristupovať k funkcionalite CAP_NET_RAW Posix.1e.

  • /bin/ping mixr,: umožňuje aplikáciám čítať a spúšťať súbor.

[Note]

Ak upravíte profil, musíte ho znova načítať. Viac informácii sa dozviete v časti “Použitie AppArmor”.

Vytvorenie profilu

  • Návrh testovacieho plánu: Skúsme porozmýšlať, ako by aplikácia mala byť spúšťaná. Testovací plán si rozdelíme na malé testovacie prípady. Každý testovací prípad by mal mať krátky opis a zoznam krokov podobných týmto.

    Niektoré štandardné testovacie prípady sú:

    • Štartovanie programu.

    • Vypínanie programu.

    • Obnovenie programu.

    • Testovanie všetkých príkazov, ktoré podporuje init skript.

  • Generovanie nového profilu: Na vygenerovanie nového profilu použijem nástroj aa-genprof. Do príkazového riadka zadáme:

    sudo aa-genprof program

    Napríklad:

    sudo aa-genprof slapd
  • Ak chceme náš nový profil začleniť do balíka apparmor-profiles, súbor odošleme ako chybové hlásenie k balíku AppArmor do systému Launchpad:

    • Napíšeme testovací plán a testovacie prípady.

    • Pripojíme nový profil k hláseniu o chybe.

Aktualizácia profilov

Keď sa program nespráva tak ako by sa mal, odošle sa správa do log súborov. Na hľadanie v súboroch so záznamami AppArmor môžeme použiť nástroj aa-logprof, prezrieť si ich a aktualizovať profily. Do príkazového riadka zadáme:

sudo aa-logprof

Zdroje

  • Popis ďalších konfiguračných možností je na stránke AppArmor Administration Guide.
  • Detaily o používaní AppArmor s ostatnými vydaniami Ubuntu sa nachádzajú na stránke AppArmor Community Wiki.
  • Stránka OpenSUSE AppArmor je iná verzia úvodu do AppArmor.
  • Skvelým miestom, kde môžete získať pomoc ku AppArmor a spojiť sa s ostatnými členmi komunity Ubuntu Servera, je na IRC kanále #ubuntu-server na freenode.

Certifikáty

Jednou z najčastejších foriem kryptografie je v súčasnosti kryptografia pomocou dvojice kľúčov. Kryptografia dvojice kľúčov je  založená na verejnom kľúči a súkromnom kľúči. Systém informáciu zašifruje verejným kľúčom. Táto informácia sa potom dá dešifrovať pomocou súkromného kľúča.

Tento obľúbený spôsob šifrovania sa používa i pri komunikácii cez pripojenia Secure Socket Layer (SSL) alebo Transport Layer Security (TLS). Napríklad môžeme nakonfigurovať systém Apache, aby poskytol HTTPS - HTTP protokol cez SSL. Toto umožňuje zašifrovať komunikáciu pri protokoloch, ktoré samy o sebe neposkytujú šifrovanie.

Certifikát je spôsob, akým sa distribuuje verejný kľúč a ostatné informácie o serveri a organizácii, ktorá je za ne zodpovedná. Certifikáty môžu byť digitálne podpísané Certifikačnými autoritami (CA). CA je dôveryhodná tretia strana, ktorá potvrdzuje, že informácie, ktoré sa nachádzajú v certifikáte sú pravdivé.

Typy certifikátov

Ak chceme nastaviť bezpečný server, ktorý bude používať šifrovanie pomocou dvojice kľúčov, vo väčšine prípadov je potrebné zaslať požiadavku na podpísanie certifikátu (vrátane nášho verejného kľúča), doklad o firemnej identite a poplatok do CA. CA porovná požiadavku na vydanie certifikátu s našou identitou a pošle nám späť certifikát pre náš server. Druhá možnosť je, že si vytvoríme sebou podpísaný certifikát.

[Note]

Upozornenie - sebou podpísané certifikáty sa vo väčšine produkčných prostredí nedajú použiť.

Ak napríklad zoberieme spomínanú HTTPS komunikáciu, certifikáty podpísané CA poskytujú dve významné funkcie, ktoré sebou podpísané certifikáty nemôžu poskytnúť:

  • Prehliadače (zvyčajne) automaticky rozpoznajú certifikát a povolia šifrované spojenie bez toho, aby si žiadali potvrdenie od používateľa.

  • Pri certifikátoch podpísaných CA je garantovaná identita organizácie, ktorá poskytuje webové stránky prehliadaču.

Väčšina webových prehliadačov a počítačov, ktoré podporujú SSL, má zoznam certifikovaných autorít, ktorým automaticky dôverujú. Ak prehliadač zistí, že certifikát je podpísaný CA, ktorá nie je v zozname, spýta sa používateľa či má prijať alebo odmietnuť pripojenie. Niektoré aplikácie môžu generovať chybové hlásenie oznamujúce, že certifikát je sebou podpísaný.

Proces získania certifikátu od CA je celkom jednoduchý. Postupuje sa podľa nasledujúcich krokov:

  1. Vytvoríme dvojicu kľúčov - súkromný a verejný.

  2. Vytvoríme požiadavku na podpísanie verejného kľúča. Požiadavka bude obsahovať informácie o serveri a spoločnosti, ktorá server prevádzkuje.

  3. Odošleme požiadavku s dokumentom o našej identite do CA. Vyberieme si niektorú z certifikačných autorít. Náš výber môže byť na základe predchádzajúcich skúseností alebo skúseností od priateľov alebo na základe finančných faktorov.

    Keď sme sa rozhodli pre niektorú z CA, je potrebné ďalej sa riadiť jej pokynmi pre získanie certifikátu.

  4. Ak sa CA dôkladne uistí, že sme ten, za ktorého sa vydávame, vydá nám digitálny certifikát.

  5. Nainštalujeme certifikát na náš server a nastavíme aplikácie, aby tento certifikát použili.

Generovanie požiadavky na podpísanie certifikátu - Certificate Signing Request (CSR)

Či už chceme získať certifikát od CA alebo vytvoriť sebou podpísaný certifikát, najskôr musíme vygenerovať kľúče.

Ak má byť certifikát využívaný démonmi služieb ako napríklad Apache, Postfix, Dovecot, atď., je potrebné vygenerovať kľúč, ktorý nebude vyžadovať vstupnú frázu (passphrase). Ak nepoužijeme vstupnú frázu, služby sa budú vedieť naštartovať bez manuálneho vstupu, čo je preferovaný spôsob spúšťania démonov.

V tejto časti sa dozvieme, ako vytvoriť kľúče so vstupnou frázou aj bez nej. Kľúče bez vstupnej frázy potom použijeme na vygenerovanie certifikátu a potom ich budeme môcť použiť s rôznymi démonmi služieb.

[Warning]

Spúšťanie bezpečných služieb bez vstupnej frázy je bežné, inak by bolo potrebné vstupnú frázu ručne zadať pri každom spustení služby. Je to však menej bezpečné a v prípade, že niekto neoprávnene získa kľúč, získa tiež neobmedzený prístup k službám servera.

Ak chceme vygenerovať kľúče pre požiadavku o podpísanie certifikátu (CSR), spustíme nasledujúci príkaz v príkazovom riadku:

openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
.....................++++++
.................++++++
unable to write 'random state'
e is 65537 (0x10001)
Enter pass phrase for server.key:

Teraz môžeme zadať vstupnú frázu. Pre najlepšiu bezpečnosť by mala obsahovať aspoň osem znakov. Minimálna dĺžka pri použití -des3 je štyri znaky. Môže obsahovať čísla aj interpunkciu a nemala by byť slovom zo slovníka. Nezabudnite tiež, že vo vstupnej fráze sa rozlišuje veľkosť písmen.

Vstupnú frázu je potrebné kvôli kontrole zadať dvakrát. Ak ju po druhýkrát zadáte rovnako, vygeneruje sa kľúč a uloží sa do súboru server.key.

Teraz vytvoríme nezabezpečený kľúč a zmeníme mená kľúčov:

openssl rsa -in server.key -out server.key.nezabezpeceny
mv server.key server.key.zabezpeceny
mv server.key.nezabezpeceny server.key

Nezabezpečený kľúč sa teraz volá server.key a môžeme ho použiť na vygenerovanie CSR bez vstupnej frázy.

Ak chceme vytvoriť CSR, spustíme nasledujúci príkaz v príkazovom riadku:

openssl req -new -key server.key -out server.csr

Po zadaní príkazu bude potrebné zadať vstupnú frázu. Ak zadáme správnu vstupnú frázu, môžeme zadať meno organizácie (Company Name) a ďalšie údaje, ako názov webu (Site Name), Email Id, atď. Po zadaní všetkých detailov sa vygeneruje CSR súbor s názvom server.csr

Tento CSR súbor môžeme poskytnúť CA na spracovanie. CA použije tento CSR súbor a vydá nám certifikát. Pomocou tohto CSR súboru však môžeme vytvoriť aj sebou podpísaný certifikát.

Vytvorenie sebou podpísaného certifikátu

Ak chceme vytvoriť sebou podpísaný certifikát, spustíme nasledujúci príkaz v príkazovom riadku:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Po zadaní príkazu bude potrebné zadať vstupnú frázu. Po zadaní správnej vstupnej frázy sa vygeneruje certifikát, ktorý sa uloží do súboru server.crt.

[Warning]

Ak má byť zabezpečený server verejne dostupný, budete potrebovať certifikát podpísaný CA. Neodporúčame použiť sebou podpísaný certifikát.

Inštalácia certifikátu

Súbor s kľúčom server.key a súbor s certifikátom server.crt (alebo iným dodaným od CA) nainštalujeme spustením nasledujúcich príkazov v príkazovom riadku:

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

Teraz môžeme nakonfigurovať aplikácie, ktoré sú schopné šifrovať na báze dvojice kľúčov, aby použili súbory s certifikátom a kľúčom. Napríklad Apache môže poskytnúť HTTPS, Dovecot môže poskytnúť IMAPS a POP3S, atď.

Certifikačná autorita

Ak služby v našej sieti vyžadujú viac ako sebou podpísané certifikáty, môže byť užitočné nastaviť svoju vlastnú súkromnú Certifikačnú Autoritu (CA). Použitím certifikátu podpísaného vlastnou CA, umožníte rôznym službám použiť certifikáty, ktoré umožnia službám navzájom si dôverovať, lebo budú používať certifikáty od rovnakej CA.

  1. Najskôr vytvoríme priečinky, ktoré budú obsahovať potrebné súbory:

    sudo mkdir /etc/ssl/CA
    sudo mkdir /etc/ssl/newcerts
  2. CA vyžaduje pre svoju funkciu niekoľko ďalších súborov. Prvý bude sledovať posledné sériové číslo použité CA - každý certifikát musí mať jedinečné sériové číslo. Druhý súbor, ktorý bude zaznamenávať, aké certifikáty boli vydané:

    sudo sh -c "echo '01' > /etc/ssl/CA/serial"
    sudo touch /etc/ssl/CA/index.txt
  3. Tretí súbor je konfiguračný súbor CA. Hoci nie je povinný, je veľmi užitočný pri vydávaní viacerých certifikátov. Otovoríme súbor /etc/ssl/openssl.cnf a v [ CA_default ] zmeníme:

    dir             = /etc/ssl/             # Where everything is kept
    database = $dir/CA/index.txt # database index file.
    certificate = $dir/certs/cacert.pem # The CA certificate
    serial = $dir/CA/serial # The current serial number
    private_key = $dir/private/cakey.pem# The private key
  4. Ďalej vytvoríme sebou podpísaný certifikát:

    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
    

    Po spustení zadáme informácie pre certifikát.

  5. Teraz nainštalujeme koreňový certifikát a kľúč:

    sudo mv cakey.pem /etc/ssl/private/
    sudo mv cacert.pem /etc/ssl/certs/
  6. Odteraz môžeme začať podpisovať certifikáty. Prvá potrebná položka je CSR (pozrite Generovanie požiadavky na podpísanie certifikátu - Certificate Signing Request (CSR) ). Ak máme CSR, zadáme nasledujúci príkaz, ktorý vygeneruje certifikát podpísaný našou CA:

    sudo openssl ca -in server.csr -config /etc/ssl/openssl.cnf
    

    Po zadaní hesla pre kľúč CA bude potrebné podpísať certifikát a potom znova, aby sme potvrdili nový certifikát. Potom by sme mali vidieť množstvo výstupov, ktoré súvisia s vytváraním certifikátu.

  7. Mali by sme získať nový súbor /etc/ssl/newcerts/01.pem obsahujúci rovnaký výstup. Skopírujeme všetky riadky medzi textami  -----BEGIN CERTIFICATE----- a ----END CERTIFICATE----- a prilepíme ich do súboru s názvom mena servera, na ktorom bude certifikát nainštalovaný. Napríklad mail.nieco.sk.crt je pekné veľavravné meno.

    Ďalšie certifikáty budú pomenované 02.pem, 03.pem, atď.

    [Note]

    Meno súboru mail.nieco.sk.crt nahraďte vlastným názvom.

  8. Nakoniec skopírujeme nový certifikát na počítač, na ktorom ho potrebujeme použiť. Predvolené umiestnenie pre inštaláciu certifikátov je /etc/ssl/certs. Týmto umožníme viacerým službám použiť rovnaký certifikát bez potreby komplikovaného nastavovania oprávnení.

    Kvôli aplikáciám, ktoré chceme nakonfigurovať tak, aby používali certifikát podpísaný našou CA, by sme mali ešte skopírovať súbor  /etc/ssl/certs/cacert.pem do priečinka /etc/ssl/certs/ na každom počítači.

Zdroje

eCryptfs

eCryptfs je prídavný šifrovaný súborový systém pre Linux kompatibilný s POSIX.  Vrstva eCryptfs sa nachádza nad vrstvou súborového systému a chráni súbory bez ohľadu na to, aký je podkladový súborový systém, typ diskových oddielov atď.

Počas inštalácie je možnosť zašifrovať diskový oddiel pre priečinok /home. Táto možnosť automaticky nakonfiguruje všetko potrebné pre zašifrovanie a pripojenie diskového oddielu.

V tejto časti ako príklad nastavíme priečinok /srv tak, aby bol zašifrovaný pomocou eCryptfs.

Použitie eCryptfs

Najskôr nainštalujeme potrebné balíky. V príkazovom riadku zadáme:

sudo apt-get install ecryptfs-utils

Teraz pripojíme diskový oddiel, ktorý chceme zašifrovať:

sudo mount -t ecryptfs /srv /srv

Po zadaní príkazu bude potrebné zadať niekoľko informácií o tom, ako má ecryptfs zašifrovať dáta.

Ak chceme otestovať súbory umiestnené v priečinku /srv, či sú skutočne zašifrované, skopírujeme priečinok /etc/default do /srv:

sudo cp -r /etc/default /srv

Odpojíme /srv, a pokúsime sa zobraziť súbor:

sudo umount /srv
cat /srv/default/cron

Ak znova pripojíme priečinok /srv pomocou ecryptfs všetky dáta budú opäť viditeľné.

Automatické pripojenie zašifrovaných diskových oddielov

Existuje niekoľko spôsobov, ako automaticky pripojiť súborový systém ecryptfs počas zavádzania systému. V tomto príklade použijeme súbor /root/.ecryptfsrc, ktorý obsahuje možnosti pripojenia spolu so vstupnou frázou umiestnenou na USB kľúči.

Najskôr vytvoríme súbor /root/.ecryptfsrc, ktorý bude obsahovať:

key=passphrase:passphrase_passwd_file=/mnt/usb/passwd_file.txt
ecryptfs_sig=5826dd62cf81c615
ecryptfs_cipher=aes
ecryptfs_key_bytes=16
ecryptfs_passthrough=n
ecryptfs_enable_filename_crypto=n
[Note]

Zmeňte signatúru ecryptfs_sig na signatúru, ktorá sa nachádza v súbore /root/.ecryptfs/sig-cache.txt.

Potom vytvoríme súbor so vstupnou frázou /mnt/usb/passwd_file.txt:

passphrase_passwd=[secrets]

Teraz pridáme nevyhnutné riadky do súboru /etc/fstab:

/dev/sdb1       /mnt/usb        ext3    ro      0 0
/srv /srv ecryptfs defaults 0 0

Vždy je potrebné sa uistiť, či je USB disk pripojený, skôr, ako sa bude pripájať zašifrovaný diskový oddiel.

Nakoniec reštartujeme systém a priečinok /srv by sa mal pripojiť pomocou ecryptfs.

Ostatné nástroje

Balík ecryptfs-utils obsahuje niekoľko ďalších užitočných nástrojov:

  • ecryptfs-setup-private: vytvorí priečinok ~/Private, ktorý má slúžiť na uchovávanie zašifrovaných informácií. Tento nástroj sa dá spustiť aj bežnými používateľmi bez oprávnení, ktorí takto môžu ochrániť svoje údaje pred ostatnými používateľmi.

  • ecryptfs-mount-private a ecryptfs-umount-private: nástroje slúžia na pripojenie a odpojenie používateľského priečinka ~/Private.

  • ecryptfs-add-passphrase: pridá novú vstupnú frázu do úložiska hesiel kernel keyring.

  • ecryptfs-manager: spravuje eCryptfs objekty, ako napríklad kľúče.

  • ecryptfs-stat: umožňuje zobraziť ecryptfs meta informácie súboru.

Zdroje

Monitorovanie

Monitorovanie jednotlivých serverov a služieb je dôležitou súčasťou administrácie systému. Väčšina sieťových služieb sa monitoruje kvôli zisteniu výkonu, zisteniu dostupnosti, alebo kvôli zisteniu oboch týchto parametrov. Táto časť hovorí o inštalácii a konfigurácii systému Nagios, ktorý monitoruje dostupnosť a systému Munin, ktorý monitoruje výkon.

Príklady v teto časti používajú dve stanice s mennými adresami server01 a server02. Server01 nakonfigurujeme tak, aby pomocou systému Nagios monitoroval sám seba a server02. Na server01 nainštalujeme aj munin, ktorý bude získavať informácie zo siete. Pomocou balíka munin-node, nastavíme server02 tak, aby posielal informácie na server01.

Dúfame, že vám tieto jednoduché príklady poslúžia ako návod pre monitorovanie ďalších staníc a služieb vo vašej sieti.

Nagios

Inštalácia

Najskor na počítači s názvom server01 nainštalujeme balík nagios. Do príkazového riadka zadáme:

sudo apt-get install nagios3 nagios-nrpe-plugin

Po zadaní príkazu zadáme heslo pre správcu - používateľa nagiosadmin. Prihlasovacie údaje používateľov sa uložia do súboru /etc/nagios3/htpasswd.users. Ak budeme chcieť zmeniť heslo používateľa nagiosadmin alebo pridať ďalších používateľov do Nagios CGI skriptov, použijeme nástroj htpasswd, ktorý je súčasťou balíka apache2-utils.

Ak chceme napríklad zmeniť heslo používateľa nagiosadmin zadáme:

sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin

Ak chceme pridať nového používateľa, zadáme:

sudo htpasswd /etc/nagios3/htpasswd.users stefan

Teraz nainštalujeme na stanicu s názvom server02 balík nagios-nrpe-server. Do príkazového riadka na počítači server02 zadáme:

sudo apt-get install nagios-nrpe-server
[Note]

NRPE umožňuje spúšťať lokálne kontroly na vzdialených staniciach. Existujú aj iné rozšírenia systému Nagios, pomocou ktorých sa dajú kontroly spustiť vzdialene. Rovnako existujú iné spôsoby kontroly.

Prehľad konfiguračných súborov

Existuje niekoľko priečinkov, ktoré obsahujú konfiguráciu systému Nagios a kontrolné súbory.

  • /etc/nagios3: obsahuje konfiguračné súbory, ktoré riadia správanie démona nagios, CGI súborov, zoznamu staníc - hosts, atď.

  • /etc/nagios-plugins: obsahuje konfiguračné súbory pre kontrolu služieb.

  • /etc/nagios: na vzdialenej stanica obsahuje konfiguračné súbory pre nagios-nrpe-server.

  • /usr/lib/nagios/plugins/: tu sú uložené spustiteľné kontrolné nástroje. Ak chceme zobraziť možnosti nástroja, použijeme prepínač -h.

    Napríklad: /usr/lib/nagios/plugins/check_dhcp -h

Existuje veľké množstvo najrôznejších kontrol pomocou systému Nagios, ktoré môžeme spustiť na zadanom vzdialenom počítači. V tomto príklade Nagios nastavíme tak, aby skontroloval voľné miesto na disku, DNS a  MySQL hostgroup. Kontrolu DNS vykonáme na počítači server02 a kontrolu MySQL hostgroup vykonáme na oboch počítačoch server01 aj server02.

[Note]

Pozrite si časť HTTPD - webový server Apache2 hovoriacu o nastavení systému Apache, časť Služba prekladu doménových mien (DNS) o DNS a časť MySQL o MySQL.

Pred tým, ako budeme pokračovať, si vysvetlíme ešte niekoľko termínov, ktoré nám umožnia ľahšie porozumieť konfigurácii systému Nagios:

  • Host: server, pracovná stanica, sieťové zariadenie, atď., ktoré bude monitorované.

  • Host Group: zoskupenie podobných staníc. Napríklad môžeme zoskupiť webové servery, súborové servery.atď.

  • Service: služba ktorá bude monitorovaná na danej stanici. Napríklad HTTP, DNS, NFS, atď.

  • Service Group: umožňuje zoskupiť viacero služieb. Je to užitočné napríklad pri viacerých HTTP službách.

  • Contact: osoba, ktorej má byť oznámené, že nastala sledovaná udalosť. Nagios môže poslať email, SMS správu, atď.

V predvolenom stave je Nagios nastavený tak, aby sledoval HTTP miesto na disku, SSH, aktuálnych používateľov, procesy a zaťaženie na stanici localhost (stanica, na ktorej je spustený). Nagios tiež pomocou nástroja ping preverí dostupnosť sieťovej brány (gateway).

Rozsiahlu inštaláciu systému Nagios môže byť ťažké nakonfigurovať . Preto je najlepšie začať malou inštaláciou - s jedným alebo dvoma počítačmi, nastaviť ich tak, aby monitorovanie fungovalo a potom Nagios nainštalovať na ďalšie stanice.

Konfigurácia

    1. Najskôr vytvoríme konfiguračný súbor host pre stanicu server02. Do príkazového riadka zadáme:

      sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg /etc/nagios3/conf.d/server02.cfg
      [Note]

      V predchádzajúcich a nasledujúcich krokoch zmeňte"server01", "server02" 172.18.100.100 a 172.18.100.101 za menné a číselné IP adresy vašich staníc.

    2. Potom upravíme súbor /etc/nagios3/conf.d/server02.cfg:

      define host{
      use generic-host ; Name of host template to use
      host_name server02
      alias Server 02
      address 172.18.100.101
      }

      # check DNS service.
      define service {
      use generic-service
      host_name server02
      service_description DNS
      check_command check_dns!172.18.100.101
      }
    3. Reštartujeme démon systému nagios, aby sa konfigurácia prejavila:

      sudo /etc/init.d/nagios3 restart
    1. Teraz pridáme definíciu pre kontrolu služby MySQL pridaním nasledujúcich riadkov do súboru /etc/nagios3/conf.d/services_nagios2.cfg:

      # check MySQL servers.
      define service {
      hostgroup_name mysql-servers
      service_description MySQL
      check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS
      use generic-service
      notification_interval 0 ; set > 0 if you want to be renotified
      }
    2.  Teraz je potrebné zadefinovať hostgroup mysqsl-servers. Otvoríme súbor /etc/nagios3/conf.d/hostgroups_nagios2.cfg a pridáme:

      # MySQL hostgroup.
      define hostgroup {
      hostgroup_name mysql-servers
      alias MySQL servers
      members localhost, server02
      }
    3.  Kontrola systému Nagios sa musí vedieť prihlásiť do MySQL. Pridáme používateľa nagios do systému MySQL:

      mysql -u root -p -e "create user nagios identified by 'tajne';"
      [Note]

      Používateľa nagios je potrebné pridať na všetkých staniciach, ktoré sú definované v skupine mysql-servers hostgroup.

    4. Reštartovaním systému nagios sa zapne kontrolovanie MySQL serverov.

      sudo /etc/init.d/nagios3 restart
    1. Nakoniec nastavíme NRPE aby kontroloval voľné miesto na disku na stanici server02.

      Na stanici server01 pridáme nastavenie kontroly služby do súboru /etc/nagios3/conf.d/server02.cfg:

      # NRPE disk check.
      define service {
      use generic-service
      host_name server02
      service_description nrpe-disk
      check_command check_nrpe_1arg!check_all_disks!172.18.100.101
      }
    2. Teraz na stanici server02 otvoríme súbor /etc/nagios/nrpe.cfg a zmeníme:

      allowed_hosts=172.18.100.100

       a nižšie do časti command pridáme:

      command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e
    3. Nakoniec reštartujeme nagios-nrpe-server:

      sudo /etc/init.d/nagios-nrpe-server restart
    4. A tiež na stanici server01 reštartujeme nagios:

      sudo /etc/init.d/nagios3 restart

Teraz by sme mali vidieť kontrolované stanice a služby v Nagios CGI súboroch. Dostaneme sa ku nim pomocou prehliadača, zadaním adresy http://server01/nagios3. Po načítaní stránky bude potrebné zadať nagiosadmin ako meno používateľa a heslo, ktoré sme mu nastavili pri inštalácii.

Zdroje

Táto časť obsahuje iba základné predstavenie funkcií systému Nagios. Rozšírenia nagios-plugins-extra a nagios-snmp-plugins obsahujú omnoho viac nástrojov na kontrolu služieb.

  • Viac informácii sa nachádza na domovskej stránke systému Nagios.

  • Najmä stránka Online Documentation.

  • Existuje tiež zoznam kníh súvisiacich so systémom Nagios a monitorovaním siete:

  • Viac podrobností sa nachádza aj na stránke Nagios Ubuntu Wiki.

Munin

Inštalácia

Pred nainštalovaním systému Munin na server01 musí byť nainštalovaný webový server apache2. Predvolená konfigurácia webového servera vyhovuje systému munin. Viac informácii sa nachádza v časti HTTPD - webový server Apache2.

Najskôr na stanicu server01 nainštalujeme munin. Do príkazového riadka zadáme:

sudo apt-get install munin

Teraz na stanicu server02 nainštalujeme balík munin-node:

sudo apt-get install munin-node

Konfigurácia

Na stanici server01 otvoríme súbor /etc/munin/munin.conf a pridáme IP adresu stanice server02:

## First our "normal" host.
[server02]
address 172.18.100.101
[Note]

Položky server02 a 172.18.100.101 nahraďte názvom a IP adresou vášho servera.

Potom nastavíme munin-node na stanici server02. Otvoríme súbor /etc/munin/munin-node.conf a povolíme prístup zo stanice server01:

allow ^172\.18\.100\.100$
[Note]

Položku ^172\.18\.100\.100$ nahraďte IP adresou stanice, na ktorej je nainštalovaný munin.

Teraz reštartujeme munin-node na stanici server02, aby sa zmeny prejavili:

sudo /etc/init.d/munin-node restart

Nakoniec v prehliadači zadáme adresu http://server01/munin a mali by sme vidieť odkazy na pekne graficky spracované informácie zo štandardnej sady rozšírení munin-plugins, zobrazujúce stav disku, siete, procesov a systému.

[Note]

Vzhľadom na to, že ide o čerstvú inštaláciu, môže chvíľu trvať kým sa na grafoch zjaví niečo užitočné.

Prídavné rozšírenia

Balík munin-plugins-extra obsahuje ďalšie nástroje na sledovanie výkonu služieb akými sú napríklad DNS, DHCP, Samba, atď.. Ak chceme tento balík nainštalovať, do príkazového riadka zadáme:

sudo apt-get install munin-plugins-extra

Tento balík je potrebné nainštalovať na oboch počítačoch.

Zdroje

Webové servery

Web server je softvér zodpovedný za prijímanie HTTP požiadaviek od klientov, ktoré sú známe pod menom webové prehliadače, tieto požiadavky spracuje a pošle HTTP odpovede obsahujúce dáta, ktorými sú zvyčajne webové stránky v tvare HTML dokumentov spolu s pripojenými objektami (obrázky, atď.).

HTTPD - webový server Apache2

Apache je najčastejšie používaný webový server v systéme Linux. Webové servery sa používajú na spracovanie webových stránok, ktoré si vyžiadajú klientské počítače. Klienti, ktorí odosielajú typické požiadavky a zobrazujú webové stránky, sú webové prehliadače ako Firefox, Opera alebo Mozilla.

Používateľ zadá URL adresú (Uniform Resource Locator), ktorá smeruje na webový server podľa FQDN mena domény (Fully Qualified Domain Name) a cesty k žiadanému zdroju. Napríklad, ak chceme zobraziť domovskú stránku Ubuntu, stačí zadať iba názov domény FQDN. Ak by sme chceli konkrétne informácie o platenej podpore, je potrebné zadať názov domény FQDN a za ním cestu.

Najčastejšie využívaný protokol na prenos webových stránok je Hyper Text Transfer Protocol (HTTP). Podporované sú tiež protokoly ako Hyper Text Transfer Protocol cez Secure Sockets Layer (HTTPS) a File Transfer Protocol (FTP) - protokol na nahrávanie a sťahovanie súborov.

Webový server Apache sa často používa v kombinácií s databázou MySQL a skriptovacím jazykom Hypertextový preprocesor (PHP) a inými populárnymi skriptovacími jazykmi ako Python a Perl. Takáto konfigurácia sa nazýva LAMP (Linux, Apache, MySQL a Perl/Python/PHP) a je mocnou a robustnou platformou slúžiacou na vývoj a nasadenie webových aplikácií.

Inštalácia

V systéme Ubuntu Linux je dostupný Webový server Apache2. Apache2 nainštalujeme takto:

  • V príkazovom riadku zadáme nasledujúci príkaz:

    sudo apt-get install apache2

Konfigurácia

Apache2 sa konfiguruje pomocou direktív v textových konfiguračných súboroch. Konfiguračné súbory sú rozdelené do nasledujúcich súborov a priečinkov:

  • apache2.conf: hlavný konfiguračný súbor Apache2. Obsahuje globálne nastavenia pre Apache2.

  • conf.d: obsahuje konfiguračné súbory, ktoré sa aplikujú globálne pre Apache. Ostatné balíky, ktoré používajú Apache2 na spracovanie obsahu, sem môžu pridať súbory alebo symbolické odkazy na svoje priečinky.

  • envvars: súbor, v ktorom sú nastavené premenné prostredia Apache2.

  • httpd.conf: predošlý hlavný konfiguračný súbor Apache2 pomenovaný podľa démona httpd. Súbor sa dá využiť na nastavenie používateľsky závislých nastavení, ktoré majú globálny efekt na Apache2.

  • mods-available: (dostupné moduly) tento priečinok obsahuje moduly, ktoré je možné načítať a obsahuje aj ich konfiguračné súbory. Všetky moduly však nemajú svoj konfiguračný súbor.

  • mods-enabled: (povolené moduly) uchováva symbolické odkazy na súbory v priečinku /etc/apache2/mods-available. Ak pridáme do tohto priečinka symbolický odkaz na konfiguračný súbor modulu, ten sa zapne pri ďalšom štarte apache2.

  • ports.conf: obsahuje direktívy určujúce, na ktorých TCP portoch bude Apache2 načúvať.

  • sites-available: (dostupné weby) tento priečinok obsahuje konfiguračné súbory pre tz. Virtual Hosts - Virtuálne stanice. Virtuálne stanice umožňujú nakonfigurovať Apache2 tak, aby poskytoval viacero stránok s osobitnou konfiguráciou.

  • sites-enabled: (povolené weby) podobne ako pri mods-enabled, sites-enabled obsahuje symbolické odkazy do priečinka /etc/apache2/sites-available. Ak je do tohto priečinka pridaný odkaz na konfiguračný súbor v sites-available, aktivuje sa pri najbližšom štarte servera Apache.

Okrem týchto konfiguračných súborov môžeme začleniť aj ďalšie pomocou direktívy Include. Dá sa pridať i viacero súborov naraz zadaním masky súborov. Do takýchto súborov môžeme umiestniť akúkoľvek direktívu. Zmeny v hlavných konfiguračných súboroch sa prejavia iba pri štarte alebo reštarte servera Apache.

Server tiež číta súbor obsahujúci mime typy dokumentov; meno súboru sa nastavuje pomocou direktívy TypesConfig a v predvolenom stave je v /etc/mime.types.

Základné nastavenia

Táto časť hovorí o základných konfiguračných parametroch servera Apache2. Detailnejší popis sa nachádza na stránke Apache2 Documentation.

  • Apache2 sa dodáva s konfiguráciou vhodnou pre vytvorenie virtuálnych staníc. To znamená, že je nakonfigurovaný ako jedna predvolená virtuálna stanica (pomocou direktívy VirtualHost), ktorú môžeme upraviť, použiť ju ako je, ak chceme len jednu stránku alebo ju použiť ako šablónu pre vytvorenie ďalších webov. Ak konfiguráciu nezmeníme, predvolená virtuálna stanica bude slúžiť aj ako predvolená stránka - čiže stránka, ktorú používatelia uvidia, ak zadajú URL adresu, ktorá sa nezhoduje s direktívou ServerName žiadnej našej stránky. Ak chceme upraviť virtuálnu stanicu, môžeme to urobiť v súbore /etc/apache2/sites-available/default.

    [Note]

    Direktívy nastavené pre virtuálnu stanicu sa vzťahujú iba na konkrétnu virtuálnu stanicu. Ak je direktíva nastavená pre celý server a nie je definovaná v nastaveniach virtuálnej stanice, použijú sa predvolené nastavenia. Napríklad, ak definujeme emailovú adresu Webmastera a nedefinujeme individuálne emailové adresy pre každú virtuálnu stanicu.

    Ak chceme nakonfigurovať nový web alebo virtuálnu stanicu, skopírujeme nasledujúci súbor do toho istého priečinka pod iným názvom. Napríklad:

    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mojastranka

    Otvoríme nový súbor a nakonfigurujeme novú stránku pomocou nižšie opísaných direktív.

  • Direktíva ServerAdmin definuje emailovú adresu administrátora servera. Predvolená hodnota je webmaster@localhost. Túto hodnotu môžeme nahradiť našou emailovou adresou (ak sme administrátor servera). Ak sa na webe vyskytne problém, Apache2 zobrazí chybové hlásenie, ktorého súčasťou bude aj emailová adresa, na ktorú sa má problém nahlásiť. Túto direktívu nájdeme v konfiguračnom súbore stránky v priečinku /etc/apache2/sites-available.

  • Direktíva Listen určuje port a voliteľne aj IP adresy, na ktorých by mal Apache2 načúvať. Ak IP adresa nie je zadaná, bude Apache2 načúvať na všetkých IP adresách priradených počítaču. Predvolená hodnota direktívy Listen je 80. Zmenou tejto hodnoty na 127.0.0.1:80 spôsobíme, že Apache2 bude načúvať iba na rozhraní spätnej väzby a nebude dostupný z Internetu. Pri zmene (napríklad) na 81, môžeme zmeniť port, na ktorom načúva alebo toto nastavenie ponecháme nezmenené, čo zaistí normálnu prevádzku. Túto direktívu môžeme nájsť a zmeniť v jej vlastnom súbore /etc/apache2/ports.conf

  • Direktíva ServerName je voliteľná a určuje, na aké mená domén FQDN bude server reagovať. Predvolená virtuálna stanica nemá direktívu ServerName určenú, preto reaguje na všetky požiadavky, ktoré sa nezhodujú so žiadnou direktívou ServerName v ostatných virtuálnych staniciach. Ak máme prenajatú doménu ubunturocks.com a chceme ju poskytovať z nášho Ubuntu servera, hodnota direktívy ServerName v konfigurácii našej virtualnej stanici by mala byť ubunturocks.com. Túto direktívu pridám do súboru novej virtualnej stanice, ktorú sme si vytvorili (/etc/apache2/sites-available/mojastranka).

    Pravdepodobne budeme chcieť, aby stránka reagovala aj na www.ubunturocks.com, pretože veľa používateľov automaticky zapisuje adresu s predponou www. Na tento účel môžeme použiť direktívu ServerAlias. V direktíve ServerAlias je možné použiť aj masku.

    Napríklad nasledujúca konfigurácia spôsobí, že server bude reagovať na akúkoľvek doménu končiacu .ubunturocks.com.

    ServerAlias *.ubunturocks.com
  • Direktíva DocumentRoot určuje, kde má Apache hľadať súbory tvoriace webovú stránku. Predvolená hodnota je /var/www. Na tomto mieste nie je síce nahraná žiadna stránka, ale ak odkomentujeme direktívu RedirectMatch v súbore /etc/apache2/apache2.conf, požiadavky budú presmerované do priečinka /var/www/apache2-default, v ktorom sa nachádza predvolená stránka Apache2. Pri tvorbe nového webu zmeníme túto hodnotu v súbore virtuálnej stanice a ak to bude potrebné, vytvoríme aj nový priečinok, do ktorého umiestnime súbory tvoriace webovú stránku.

Priečinok /etc/apache2/sites-available (priečinok s dostupnými webmi) Apache2 nespracováva. Aby sa konfigurácia spracovala, je potrebné vytvoriť symbolický odkaz v priečinku /etc/apache2/sites-enabled (priečinok s povolenými webmi) na konfiguračný súbor v priečinku "dostupných" webov.

Novú virtuálnu stanicu - VirtualHost povolíme pomocou nástroja a2ensite a reštartujeme Apache:

sudo a2ensite mojastranka
sudo /etc/init.d/apache2 restart
[Note]

Slovné spojenie mojastranka môžete nahradiť príznačnejším menom virtuálnej stanice. Jednou z metód je pomenovať súbor rovnakým menom aké zadefinujete v direktíve ServerName.

Podobne môžeme pomocou nástroja a2dissite webovú stránku vypnúť. Toto môže byť užitočné pri riešení problémov s konfiguráciami viacerých virtuálnych staníc:

sudo a2dissite mojastranka
sudo /etc/init.d/apache2 restart

Predvolené nastavenia

Táto časť hovorí o konfigurácii predvolených nastavení servera Apache2. Napríklad, ak pridáme virtuálnu stanicu, nastavenia, ktoré pre ňu nakonfigurujeme, majú pre danú virtuálnu stanicu prednosť. Ak niektorú direktívu v nastaveniach virtuálnej stanice nedefinujeme, použije sa predvolená hodnota.

  • DirectoryIndex je predvolená stránka spracovávaná serverom, keď používateľ požiada o zoznam priečinkov tým, že adresu ukončí lomítkom (/).

    Napríklad ak používateľ požiada o stránku http://www.nieco.sk/tento_priecinok/, zobrazí sa mu stránka definovaná v DirectoryIndex, ak existuje. Ak neexistuje a je nastavená možnosť Indexes, zobrazí sa zoznam priečinkov.V prípade, že ani táto možnosť nie je nastavená, zobrazí sa stránka Permission Denied (prísup zakázaný). Server sa pokúsi nájsť jeden zo súborov definovaných direktívou DirectoryIndex a vráti prvý, ktorý nájde. Ak žiadny nenájde a je nastavené Options Indexes pre tento priečinok, server vygeneruje  a vráti zoznam podpriečinkov a súborov v HTML formáte. Predvolená hodnota v súbore /etc/apache2/mods-available/dir.conf je " index.html, index.cgi, index.pl, index.php, index.xhtml". Takže ak Apache2 vo vyžiadanom priečinku nájde súbor, ktorý súhlasí s jedným z týchto mien, zobrazí ten.

  • Direktíva ErrorDocument umožňuje určiť súbor, ktorý Apache použije v prípade, že nastane určitá chyba. Napríklad, ak používateľ požiada o zdroj, ktorý neexistuje, nastane chyba 404 a pri predvolenej konfigurácii server Apache2 zobrazí súbor /usr/share/apache2/error/HTTP_NOT_FOUND.html.var. Tento súbor sa nenachádza na mieste definovanom v DocumentRoot, ale pomocou direktívy Alias v súbore /etc/apache2/apache2.conf je priečinok /usr/share/apache2/error/ presmerovaný do priečinka /error.

    Ak chceme zobraziť predvolené direktívy ErrorDocument použijeme tento príkaz:

    grep ErrorDocument /etc/apache2/apache2.conf
  • V predvolenom stave server zaznamenáva údaje o prenose do súboru /var/log/apache2/access.log. Túto možnosť môžeme zmeniť pre každý web osobitne v konfigurácii virtuálnej stanice pomocou direktívy CustomLog alebo pri jej vynechaní použiť predvolenú cestu definovanú v súbore /etc/apache2/apache2.conf. Prostredníctvom direktívy ErrorLog môžeme určiť tiež súbor, do ktorého sa budú zaznamenávať chyby. Predvolená hodnota tejto direktívy je /var/log/apache2/error.log. Takéto nastavenie nám umožní oddeliť informácie o prenosoch od záznamov potrebných na riešenie problémov so serverom Apache2. Môžeme tiež určiť podrobnosť výpisov pomocou LogLevel (predvolená hodnota je "warn" (varovanie)) a formát záznamov pomocou LogFormat (predvolená hodnota je nastavená v súbore /etc/apache2/apache2.conf).

  • Niektoré možnosti sú miesto webov definované pre konkrétne priečinky. Jednou z takýchto direktív je Options. Nastavenia konkrétnych priečinkov sú uzatvorené do značiek Directory podobných značkám XML:

    <Directory /var/www/mojastranka>
    ...
    </Directory>

    V direktíve Options uzavretej v značkách Directory môžeme použiť jednu alebo viacero z nasledujúcich hodnôt (okrem ďalších), oddelených medzerou:

    • ExecCGI - povoľuje spúšťanie CGI skriptov. CGI skripty sa nebudú spúšťať, ak táto možnosť nie je zadaná.

      [Tip]

      Vo väčšine súborov by nemalo byť povolené spúšťanie CGI skriptov. Toto nastavenie môže byť veľmi nebezpečné. CGI skripty by sa mali nachádzať v samostatnom priečinku, mimo priečinka definovaného ako DocumentRoot a iba tento priečinok by mal mať nastavenú možnosť ExecCGI. Štandardné umiestnenie priečinka pre CGI skripty je /usr/lib/cgi-bin.

       

    • Includes - Povoľuje začleňovanie na strane servera. Začleňovanie na strane servera umožňuje do HTML súboru začleniť   iné súbory. Toto nie je bežná voľba. Viac informácii sa nachádza na stránke the Apache2 SSI HOWTO.

    • IncludesNOEXEC - Povoľuje začleňovanie na strane servera, ale vypína príkazy #exec #include v CGI skriptoch.

    • Indexes - Zobrazí formátovaný zoznam priečinkov a súborov v prípade, ak nie sú v priečinku súbory definované direktívou DirectoryIndex (ako napríklad index.html).

      [Caution]

      Z bezpečnostného hľadiska by táto možnosť nemala byť nastavená a rozhodne by nemala byť použitá v priečinku nastavenom ako DocumentRoot (hlavný priečinok webu). Túto možnosť nastavte iba v priečinkoch, v ktorých chcete používateľovi povoliť vidieť obsah priečinka.

       

    • Multiview - Podporuje súčasné zobrazenie súvisiaceho obsahu. Táto možnosť je v predvolenom stave kvôli bezpečnosti vypnutá. Viac informácií je na stránke Apache2 documentation on this option.

    • SymLinksIfOwnerMatch - Prechádza symbolické odkazy, iba ak má cieľový priečinok nastaveného rovnakého vlastníka ako odkaz.

Nastavenia httpd

Táto časť hovorí o niektorých základných nastaveniach démona httpd.

LockFile - Direktíva LockFile nastavuje cestu uzamykaciemu súboru lockfile, ktorý sa používa, ak bol server zostavený buď s voľbou USE_FCNTL_SERIALIZED_ACCEPT alebo USE_FLOCK_SERIALIZED_ACCEPT. Musí byť uložený na lokálnom disku. Tu by sme mali ponechať predvolenú hodnotu, ak cesta k priečinku so záznamami nesmeruje na zdieľaný NFS disk. Ak smeruje, mali by sme hodnotu zmeniť tak, aby umiestnenie na disku mohol čítať iba používateľ root.

PidFile - Direktíva PidFile nastavuje súbor, do ktorého server zaznamenáva čísla svojich procesov - process ID (pid). Tento súbor by mal byť čitateľný iba používateľom root. Vo väčšine prípadov by sme mali ponechať predvolenú hodnotu.

User - Direktíva User nastavuje číslo používateľa - userid, ktorý sa použije pri odpovediach na požiadavky. Toto nastavenie určuje prístup k serveru. Akékoľvek súbory, ktoré nie sú dostupné pre tohto používateľa, nebudú dostupné ani pre návštevníkov webu. Predvolená hodnota je pre direktívu User je www-data.

[Warning]

Bez toho, aby ste presne vedeli čo robíte, nenastavujte direktívu User na root. Ak použijeme používateľa root ako hodnotu pre User, vytvoríme tým veľké bezpečnostné diery vo webovom serveri.

Direktíva Group je podobná ako direktíva User. Group (skupina) nastavuje skupinu, pod ktorou server odpovedá na požiadavky. Predvolená skupina je rovnako www-data.

Moduly systému Apache

Apache je modulárny server. To znamená, že do jadra servera sú zabudované iba tie najzákladnejšie funkcionality. Ďalšie funkcie sú dostupné prostredníctvom modulov, ktoré sa do servera Apache dajú nahrať. V predvolenom stave je počas kompilovania začlenená základná sada modulov. Ak je server skompilovaný tak, aby používal dynamicky nahrávané moduly, potom moduly môžu byť skompilované samostatne a kedykoľvek pridané prostredníctvom direktívy LoadModule. V opačnom prípade je potrebné pri pridávaní a odoberaní modulov Apache znova prekompilovať.

Ubuntu používa Apache2, ktorý umožňuje dynamické nahrávanie modulov. Konfiguračné direktívy môžu byť podmienené prítomnosťou konkrétnych modulov uzavretím do bloku <IfModule>.

Môžeme nainštalovať dodatočné moduly Apache2 a použiť ich s naším webovým serverom. Napríklad, ak by sme chceli nainštalovať modul na autentifikáciu do MySQL - MySQL Authentication,  zadáme príkaz:

sudo apt-get install libapache2-mod-auth-mysql

Nainštalované moduly môžeme nájsť v priečinku /etc/apache2/mods-available.

Ak chceme modul zapnúť, použijeme nástroj a2enmod:

sudo a2enmod auth_mysql
sudo /etc/init.d/apache2 restart

Podobne ich pomocou nástroja a2dismod môžeme vypnúť:

sudo a2dismod auth_mysql
sudo /etc/init.d/apache2 restart

Konfigurácia HTTPS

Modul mod_ssl pridá do servera Apache2 dôležitú funkciu - schopnosť šifrovať komunikáciu. Vďaka tomu s ním prehliadač môže komunikovať cez SSL, použitím predpony https:// na začiatku URL adresy (Uniform Resource Locator) v navigačnej lište prehliadača.

Modul mod_ssl je dostupný v balíku apache2-common. Modul mod_ssl zapneme tak, že do príkazového riadku napíšeme:

sudo a2enmod ssl

Predvolená konfigurácia HTTPS sa nachádza v súbore /etc/apache2/sites-available/default-ssl. Aby server Apache mohol poskytovať HTTPS, je potrebné mať ešte súbory s certifikátom a kľúčom. Predvolená HTTPS konfigurácia použije certifikát a kľúč vygenerovaný balíkom ssl-cert. Ten je vhodný pre testovanie, ale automaticky vygenerovaný certifikát a kľúč by mali byť nahradené certifikátom a kľúčom pre konkrétny web alebo server. Viac informácií o generovaní kľúča a získaní certifikátu sa nachádza v časti “Certifikáty”.

Ak chceme nakonfigurovať Apache tak, aby používal HTTPS, zadáme :

sudo a2ensite default-ssl
[Note]

Za predvolené umiestnenia súborov s certifikátom a kľúčom sa považujú priečinky /etc/ssl/certs a /etc/ssl/private. Ak nainštalujete certifikát a kľúč do iných priečinkov je podľa toho potrebné zmeniť aj direktívy SSLCertificateFile a SSLCertificateKeyFile.

Apache, ktorý je teraz nakonfigurovaný pre použitie HTTPS, je potrebné reštartovať, aby sa nová konfigurácia prejavila:

sudo /etc/init.d/apache2 restart
[Note]

V závislosti od toho, ako ste získali certifikát, bude potrebné zadať vstupnú frázu pri štartovaní servera Apache.

Teraz môžeme otestovať správne nastavenie zadaním adresy https://nazov_stanice/url/ v prehliadači.

Zdroje

  • Stránka Apache2 Documentation obsahuje podrobné informácie o konfiguračných direktívach Apache2. Oficiálna dokumentácia k serveru Apache sa nachádza aj v balíku apache2-doc.

  • Viac informácií o SSL sa nachádza na stránke Mod SSL Documentation.

  • Dobrým zdrojom o konkrétnych spôsoboch nastavenia servera je aj O'Reillyho Apache Cookbook.

  • Otázky súvisiace s nastavením servera Apache2 v Ubuntu môžete položiť v IRC kanále #ubuntu-server IRC na freenode.net.

  • Dobrým zdrojom je i stránka Apache MySQL PHP Ubuntu Wiki, ktorá popisuje často používanú integráciu so systémami PHP a MySQL.

PHP5 - skriptovací jazyk

PHP je všeobecný skriptovací jazyk zameraný na vytváranie webových aplikácií. PHP skript sa dá začleniť do HTML. Táto časť vysvetľuje, ako nainštalovať a nakonfigurovať PHP5 v systéme Ubuntu so systémami Apache2 a MySQL.

Táto časť predpokladá, že už máme nainštalovaný a nakonfigurovaný webový server Apache 2 a databázový server MySQL. Návod, ako tieto systémy nainštalovať a nakonfigurovať, nájdeme v častiach Apache2 a MySQL tejto príručky.

Inštalácia

Systém PHP5 je dostupný aj v systéme Ubuntu Linux.

  • Ak chceme nainštalovať PHP5, môžeme zadať nasledujúci príkaz do príkazového riadka:

    sudo apt-get install php5 libapache2-mod-php5
    

    PHP5 skripty môžeme spustiť aj v príkazovom riedku. Aby sme mohli spúšťať PHP5 skripty v príkazovom riadku, je potrebné nainštalovať balík php5-cli. Balík php5-cli nainštalujeme pomocou nasledujúceho príkazu:

    sudo apt-get install php5-cli
    

    PHP5 skripty môžeme spúšťať aj bez nainštalovaného modulu PHP5 pre  Apache. Aby to bolo možné, je potrebné nainštalovať balík php5-cgi. Balík php5-cgi nainštalujeme nasledujúcim príkazom:

    sudo apt-get install php5-cgi
    

    Aby bolo možné prepojiť databázu MySQL s PHP5, je potrebné nainštalovať balík php5-mysql. Balík php5-mysql môžeme nainštalovať zadaním tohto príkazu:

    sudo apt-get install php5-mysql
    

    Rovnako môžeme prepojiť databázu PostgreSQL s PHP5 tak, že nainštalujeme balík php5-pgsql. Balík php5-pgsql nainštalujeme zadaním príkazu:

    sudo apt-get install php5-pgsql
    

Konfigurácia

Po nainštalovaní PHP5 môžeme spúšťať PHP5 skripty z webového prehliadača. Ak sme nainštalovali balík php5-cli, môžeme PHP5 skripty spúšťať aj v príkazovom riadku.

V predvolenom stave je webový server Apache 2 nakonfigurovaný tak, aby spúšťal PHP5 skripty. Inak povedané, modul PHP5 sa vo webovom serveri Apache2 automaticky zapne po nainštalovaní modulu. Stačí overiť, či existujú súbory /etc/apache2/mods-enabled/php5.conf a /etc/apache2/mods-enabled/php5.load. Ak neexistujú, môžeme modul zapnúť pomocou príkazu a2enmod.

Po nainštalovaní balíkov súvisiacich s PHP5 a po zapnutí modulu PHP5 pre Apache 2 by sme mali webový server reštartovať, aby bol schopný spúšťať PHP5 skripty. Webový server reštartujeme tak, že spustíme nasledujúci príkaz:

sudo /etc/init.d/apache2 restart

Testovanie

Aby sme overili funkčnosť inštalácie, môžeme spustiť PHP5 skript s funkciou phpinfo:

<?php
print_r (phpinfo());
?>

Tento text uložíme do súboru phpinfo.php a umiestnime do priečinka DocumentRoot (hlavný priečinok webu) webového servera Apache2. Ak do prehliadača zadáme adresu http://nazovstanice/phpinfo.php, mali by sa zobraziť hodnoty rôznych konfiguračných nastavení PHP5.

Zdroje

Squid - Proxy Server

Squid je funkciami nabitý webový sprostredkovateľský (proxy) server s vyrovnávacou pamäťou, ktorý poskytuje službu sprostredkovania služieb (proxy) a službu dočasného ukladania súborov do vyrovnávacej pamäte (cache) pre protokoly Hyper Text Transport Protocol (HTTP), File Transfer Protocol (FTP) a iné populárne sieťové protokoly. Squid vie služby poskytovať aj prostredníctvom šifrovaného spojenia cez Secure Sockets Layer (SSL) a može dočasne ukladať aj Domain Name Server (DNS) záznamy a vykonávať tzv. transparentné ukladanie do vyrovnávacej pamäte. Squid tiež podporuje najrôznejšie protokoly pre riadenie ukladania do vyrovnávacej pamäte ako napríklad Internet Cache Protocol (ICP),  Hyper Text Caching Protocol (HTCP), Cache Array Routing Protocol (CARP) a Web Cache Coordination Protocol (WCCP).

Sprostredkovateľský server Squid s vyrovnávacou pamäťou je excelentné riešenie pri potrebe nasadenia najrôznejších typov sprostredkujúcich serverov a serverov s vyrovnávacou pamäťou, ktoré sa hodí pre menšie kancelárie ale aj komplikované siete veľkých podnikov, pretože poskytuje granulárny mechanizmus riadenia pristupu a monitorovanie kritických parametrov cez Simple Network Management Protocol (SNMP). Pri výbere počítačového systému, ktorý má slúžiť pre účely servera Squid je dôležité vybrať systém s veľkou kapacitou fyzickej pamäte (RAM), pretože Squid udrživa vyrovnávaciu pamäť vo fyzickej pamäti, aby zvýšil výkon.

Inštalácia

Ak chceme nainštalovať server Squid, v príkazovom riadku zadáme:

sudo apt-get install squid

Konfigurácia

Squid sa konfiguruje pomocou direktív, ktoré sa nachádzajú v konfiguračnom súbore /etc/squid/squid.conf. Nasledujúce príklady ilustrujú ako jednotlivé direktívy môžu ovplyvniť správanie servera Squid. Viac informácií o konfigurácii servera Squid sa nachádza na stránke Squid Website.

[Tip]

Pred úpravou akéhokoľvek konfiguračného súboru by ste si mali vytvoriť kópiu originálneho súboru a nastaviť ho iba na čítanie, aby ste mohli nastavenia porovnať s pôvodnými hodnotami a v prípade potreby ich vrátiť späť.

Vytvorte kópiu súboru /etc/squid/squid.conf a nastavte ju iba na čítanie zadaním nasledujúcich príkazov:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original
  • Ak chceme nastaviť Squid server tak, aby načúval na TCP porte 8888 miesto predvoleného TCP portu 3128, zmeníme direktívu http_port:

    http_port 8888
    
  • Zmenou direktívy visible_hostname priradíme serveru Squid určitý názov stanice. Tento názov sa nemusí nevyhnutne zhodovať s menom počítača. V tomto príklade sme nastavili weezie

    visible_hostname weezie
    
  • Použitím funkcie servera Squid na riadenie prístupu, môžeme nastaviť sprostredkovanie internetových služieb serverom Squid tak, aby boli dostupné iba používateľom s určitou IP adresou. Môžeme si to ukázať na príklade používateľov z podsiete 192.168.42.0/24:

    Nasledujúci riadok pridáme na koniec časti označenej ako ACL v súbore /etc/squid/squid.conf:

    acl styridsatdvojkova_siet src 192.168.42.0/24
    

    Potom pridáme nasledujúci riadok na začiatok časti označenej ako http_access v súbore /etc/squid/squid.conf:

    http_access allow styridsatdvojkova_siet
    
  • Použitím výnimočných funkcií servera Squid na riadenie prístupu môžeme nastaviť sprostredkovanie internetových služieb serverom Squid tak, aby boli dostupné iba počas pracovnej doby. Ukážeme si to na zamestnancoch, ktorí sú v práci od  7:00 do 15:00PM, v pracovných dňoch týždňa, ktorých počítače patria do podsiete 10.1.42.0/42:

    Nasledujúce riadky pridáme na koniec časti označenej ako ACL v súbore /etc/squid/squid.conf:

    acl podsiet_firmy src 10.1.42.0/24
    acl pracovny_cas time M T W T F 9:00-17:00

    Potom pridáme nasledujúci riadok na začiatok časti označenej ako http_access v súbore /etc/squid/squid.conf:

    http_access allow podsiet_firmy pracovny_cas
    
[Note]

Po vykonaní zmien v súbore  /etc/squid/squid.conf, uložte súbor a reštartujte serverovú aplikáciu squid, aby sa prejavili vykonané zmeny. Urobíte to zadaním nasledujúceho príkazu:

sudo /etc/init.d/squid restart

Ruby on Rails

Ruby on Rails je otvorená webová sada nástrojov na vývoj webových aplikácií s databázovým pozadím. Je optimalizovaná pre udržanie produktivity programátora, pretože programátorovi umožňuje písať kód uprednostňovaním konvencií pred prácnym konfigurovaním.

Inštalácia

Pred nainštalovaním Rails by sme mali mať už nainštalované servery Apache a MySQL. Návod na inštaláciu servera Apache sa nachádza v časti HTTPD - webový server Apache2. Pokyny na inštaláciu MySQL sa zasa nachádzajú v časti MySQL.

Po nainštalovaní servera Apache a MySQL, môžeme nainštalovať balík Ruby on Rails.

Ak chceme nainštalovať základné Ruby balíky a Ruby on Rails, môžeme to urobiť zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install rails

Konfigurácia

Otvoríme súbor /etc/apache2/sites-available/default, v ktorom upravíme nastavenie domén. 

Najprv upravíme direktívu DocumentRoot:

DocumentRoot /cesta/k/rails/aplikacii/public

Potom zmeníme direktívu <Directory "/cesta/k/rails/aplikacii/public">:

<Directory "/cesta/k/rails/aplikacii/public">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
allow from all
AddHandler cgi-script .cgi
</Directory>

Mali by sme tiež zapnúť modul mod_rewrite pre Apache. Modul mod_rewrite zapneme tak, že zadáme nasledujúci príkaz:

sudo a2enmod rewrite

Nakoniec je potrebné zmeniť vlastníctvo priečinkov /cesta/k/rails/aplikacii/public a /cesta/k/rails/aplikacii/tmp na používateľa, pod ktorým je spustená služba Apache:

sudo chown -R www-data:www-data /cesta/k/rails/aplikacii/public
sudo chown -R www-data:www-data /cesta/k/rails/aplikacii/tmp

To je všetko! Teraz je server pripravený na spúšťanie Ruby on Rails aplikácií.

Zdroje

Apache Tomcat

Apache Tomcat je webový kontajner, ktorý umožňuje spracovať webové aplikácie vo forme Java Servlets a JSP (Java Server Pages).

Balíky systému Tomcat 6.0 v Ubuntu podporujú dva rôzne spôsoby spustenia systému Tomcat. Môžeme ho nainštalovať ako bežnú samostatnú inštanciu systému, ktorá sa spustí pri štarte systému pod obmedzeným používateľom tomcat6. Ale môžeme ho zaviesť aj ako súkromnú inštanciu s vlastnými používateľskými právami, a spúšťať a zastavovať ho ručne. Tento druhý spôsob je vhodný ako server pre vývojárov, na ktorom si viacero používateľov potrebuje otestovať aplikáciu v súkromnej inštancii systému Tomcat.

Samostatná systémová inštalácia

Ak chceme nainštalovať server Tomcat, stačí zadať nasledujúci príkaz do príkazového riadka:

sudo apt-get install tomcat6

Tento príkaz nainštaluje server Tomcat s predvolenou webovou aplikáciou ROOT, ktorá iba zobrazí stránku s textom  "It works" (funguje to).

Konfigurácia

Konfiguračné súbory systému Tomcat môžeme nájsť v priečinku /etc/tomcat6. V tejto časti povieme iba o najzákladnejších voľbách konfigurácie, viac informácii sa nahádza na stránke Tomcat 6.0 documentation.

Zmena predvolených portov

V predvolenom stave Tomcat 6.0 beží s HTTP konektorom, ktorý načúva na porte 8080 a s AJP konektorom, ktorý načúva na porte 8009. Toto predvolené nastavenie portov môžeme zmeniť, aby sme predišli konfliktu s iným serverom v systéme. Urobíme to zmenou nasledujúcich riadkov v súbore /etc/tomcat6/server.xml:

<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443" />
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Zmena výberu virtuálneho stroja JVM

V predvolenom stave Tomcat bude pre spúšťanie Java aplikácií preferovať virtuálny stroj OpenJDK-6, potom skúsi JVM od spoločnosti Sun, a potom skúsi ostatné JVM. Ak máte nainštalovaná viaceré virtuálne stroje JVM, môžete nastaviť, ktorý z nich má byť použitý pomocou nastavenia JAVA_HOME v súbore /etc/default/tomcat6:

JAVA_HOME=/usr/lib/jvm/java-6-sun

Deklarácia používateľov a rolí

Meno používateľa, heslo a rolu (skupinu) môžete zadefinovať centrálne v kontaineri pre tzv. Servlety. V systéme Tomcat 6.0 sa to robí v súbore /etc/tomcat6/tomcat-users.xml:

<role rolename="admin"/>
<user username="tomcat" password="s3cret" roles="admin"/>

Použite štandardných webových aplikácii systému Tomcat

Tomcat sa dodáva s webovými aplikáciami, ktoré môžeme nainštalovať kvôli dokumentácii, administrácii alebo demo ukážkam.

Dokumentácia systému Tomcat

Balík tomcat6-docs obsahuje dokumentáciu Tomcat 6.0 v tvare webovej aplikácie, ku ktorej sa dostaneme zadaním adresy http://nasserver:8080/docs. Môžeme ju nainštalovať zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install tomcat6-docs

Webové aplikácie na administráciu systému Tomcat

Balík tomcat6-admin obsahuje dve webové aplikácie, ktoré môžeme použiť na administráciu servera Tomcat pomocou webového rozhrania. Môžeme ich nainštalovať tak, že zadáme nasledujúci príkaz:

sudo apt-get install tomcat6-admin

Prvou aplikáciou je manager, ku ktorému sa môžeme dostať zadaním adresy http://nasserver:8080/manager/html. Využíva sa najmä na získanie informácii o stave servera a reštartovanie webových aplikácií.

[Note]

Prístup do aplikácie manager je v predvolenom stave chránený: pred tým, ako sa ho pokúsite otvoriť, je potrebné zadefinovať používateľa s rolou "manager" v súbore /etc/tomcat6/tomcat-users.xml.

Druhou aplikáciou je host-manager, ktorý otvoríme zadaním adresy http://nasserver:8080/host-manager/html. Používa sa na dynamické vytváranie virtuálnych staníc.

[Note]

Prístup k aplikácii host-manager je tiež chránený: pred tým ako sa ho pokúsite otvoriť, je potrebné definovať používateľa s rolou  "admin" v súbore /etc/tomcat6/tomcat-users.xml.

Kvôli bezpečnosti používateľ tomcat6 v predvolenom stave nemôže zapisovať do priečinka /etc/tomcat6. Niektoré funkcie týchto administrátorských aplikácií (application deployment, virtual host creation) potrebujú zapisovať do tohto priečinka. Ak potrebujeme tieto funkcie spustiť, pridáme skupine tomcat6 potrebné práva:

sudo chgrp -R tomcat6 /etc/tomcat6
sudo chmod -R g+w /etc/tomcat6

Ukážkové webové aplikácie pre Tomcat

Balík tomcat6-examples obsahuje dve webové aplikácie, ktoré sa dajú použiť na otestovanie a demonštrovanie funkcií Servletov a JSP, ktoré môžeme otvoriť zadaním adresy http://nasserver:8080/examples. Môžeme ich nainštalovať zadaním tohto príkazu:

sudo apt-get install tomcat6-examples

Používanie súkromných inštancií

Tomcat sa často používa na vývoj a testovanie aplikácií, kde bežná inštalácia nepostačuje pre potreby viacerých používateľov. Balíky Tomcat 6.0 v Ubuntu obsahujú nástroj, ktorý každému používateľovi umožňuje spustiť svoju vlastnú inštanciu (bez oprávnenia používateľa root), pričom bude používať knižnice nainštalované v systéme.

[Note]

Je možné naraz spúšťať inštancie v bežnom režime aj v súkromnom režime, ak nepoužívajú rovnaké TCP porty.

Inštalácia podpory súkromných inštancií

Všetko potrebné na spusťanie súkromných inštancií nainštalujeme pomocou nasledujúceho príkazu:

sudo apt-get install tomcat6-user

Vytvorenie súkromnej inštancie

Priečinok pre súkromnú inštanciu môžeme vytvoriť zadaním nasledujúceho príkazu do príkazového riadka:

tomcat6-instance-create moja-instancia

Príkaz vytvorí nový priečinok s názvom moja-instancia so všetkými potrebnými podpriečinkami  a skriptami. Teraz môžeme napríklad nainštalovať potrebné knižnice do podpriečinka lib/ a webové aplikácie umiestniť do podpriečinka webapps/. V predvolenom stave tam žiadna aplikácia nie je.

Konfigurácia súkromnej inštancie

Privátna inštancia má bežné konfiguračné súbory pre Tomcat umiestnené v podpriečinku conf/. Napríklad môžeme otvoriť súbor conf/server.xml a zmeniť predvolené porty, ktoré bude súkromná inštancia systému Tomcat používať, aby sme sa vyhli konfliktu s ostatnými bežiacimi inštanciami.

Spustenie a zastavenie súkromnej inštancie

Súkromnú inštanciu môžeme spustiť zadaním nasledujúceho príkazu do príkazového riadka (za predpokladu, že je umiestnená v priečinku moja-instancia):

moja-instancia/bin/startup.sh
[Note]

Chybové hlásenia sa nachádzajú v podpriečinku logs/. Ak vidíte chybu java.net.BindException: Address already in use<null>:8080, znamená to, že port, ktorý používate. už je použitý inou aplikáciou a je potrebné ho zmeniť.

Inštanciu môžeme zastaviť zadaním nasledujúceho príkazu do príkazového riadka (za predpokladu, že je umiestnená v priečinku moja-instancia):

moja-instancia/bin/shutdown.sh

Zdroje

Databázy

Ubuntu poskytuje dva populárne databázové servery:

  • MySQL

  • PostgreSQL

Oba sú dostupné v hlavnom úložisku - zdroji softvéru. Táto časť hovorí o tom, ako nainštalovať a nakonfigurovať databázové servery.

MySQL

MySQL je rýchly, viacvláknový, viacpoužívateľský a robustný SQL databázový server. Je určený pre úlohovo zamerané, vysoko vyťažené systémy ale je ho možné začleniť aj do masovo používaného softvéru.

Inštalácia

Ak chceme nainštalovať MySQL, spustíme nasledujúci príkaz:

sudo apt-get install mysql-server

Počas inštalácie bude potrebné zadať heslo pre hlavného - root používateľa MySQL.

Po dokončení inštalácie by sa mal server MySQL spustiť automaticky. Ak chceme overiť, či je MySQL server spustený, zadáme:

sudo netstat -tap | grep mysql

Po spustení príkazu by sme mali vidieť výpis podobný tomuto:

tcp        0      0 localhost:mysql         *:*                     LISTEN      2556/mysqld

Ak server nie je spustený správne, môžeme použiť nasledujúci príkaz, ktorým ho spustíme:

sudo /etc/init.d/mysql restart

Konfigurácia

Základné nastavenia môžeme zmeniť v súbore /etc/mysql/my.cnf -- súbor so záznamom, číslo portu, atď. Ak napríklad chceme, aby MySQL načúvalo spojeniu z vonkajších staníc, zmeníme nastavenie direktívy bind_address na IP adresu servera:

bind-address            = 192.168.0.5
[Note]

Adresu 192.168.0.5 zmeňte na požadovanú adresu.

Po vykonaní zmeny v súbore /etc/mysql/my.cnf je potrebné reštartovať mysql démon:

sudo /etc/init.d/mysql restart

Ak budeme chcieť v MySQL zmeniť heslo pre používateľa root, v príkazovom riadku zadáme:

sudo dpkg-reconfigure mysql-server-5.1

Démon mysql sa zastaví a potom sa objaví výzva na zadanie nového hesla.

Zdroje

  • Viac informácií sa dozviete na stránke MySQL Home Page.

  • Príručka MySQL Handbook je dostupná prostredníctvom balíka mysql-doc-5.0. Ak chceme nainštalovať tento balík, do príkazového riadka zadáme:

    sudo apt-get install mysql-doc-5.0

    Dokumentácia je vo formáte HTML, a ak ju chceme zobraziť, do prehliadača zadáme adresu file:///usr/share/doc/mysql-doc-5.0/refman-5.0-en.html-chapter/index.html.

  • Všeobecné informácie o SQL sa nachádzajú v knihe Using SQL Special Edition od Rafe Colburna.

  • Užitočné informácie sa nachádzajú aj na stránke Apache MySQL PHP Ubuntu Wiki.

PostgreSQL

PostgreSQL je objektovo-relačný databázový systém, ktorý má funkcie tradičných komerčných databázových systémov s vylepšeniami DBMS systémov ďalšej generácie.

Inštalácia

Ak chceme nainštalovať PostgreSQL, spustíme nasledujúci príkaz v príkazovom riadku:

sudo apt-get install postgresql

Po dokončení inštalácie by sme mali prispôsobiť konfiguráciu servera PostgreSQL podľa našich potrieb, aj keď je predvolená konfigurácia plne funkčná.

Konfigurácia

V predvolenom stave je pripojenie cez TCP/IP zablokované. PostgreSQL podporuje viacero autentifikačných metód. Predvolená autentifikačná metóda IDENT sa používa na autentifikáciu používateľa postgres a lokálnych používateľov. Viac informácií sa nachádza na stránke the PostgreSQL Administrator's Guide.

V nasledujúcom zvyšku tejto časti budeme predpokladať, že chceme povoliť TCP/IP pripojenia a použiť metódu MD5 na autentifikáciu. Konfiguračné súbory PostgreSQL sú uložené v priečinku /etc/postgresql/<verzia>/main. Napríklad ak nainštalujeme PostgreSQL 8.4, konfiguračné súbory budú uložené v priečinku /etc/postgresql/8.4/main.

[Tip]

Konfiguráciu autentifikácie ident môžete zmeniť pridaním záznamov do súboru /etc/postgresql/8.4/main/pg_ident.conf.

Ak chceme povoliť TCP/IP pripojenia, najskôr otvoríme súbor /etc/postgresql/8.4/main/postgresql.conf.

Potom nájdeme riadok #listen_addresses = 'localhost' a odpoznámkujeme ho:

listen_addresses = 'localhost'
[Note]

Ak chcete povoliť ostatným počítačom pripojiť sa k serveru PostgreSQL nahraďte 'localhost' IP Adresou servera.

V tomto súbore môžeme upraviť aj ďalšie parametre, ak vieme čo robíme! Detaily sú uvedené v konfiguračnom súbore alebo v dokumentácii PostgreSQL.

Teraz, keď sa už môžeme pripojiť k nášmu PostgreSQL serveru, ďalším krokom bude nastavenie hesla pre používateľa postgres. Spustíme nasledujúci príkaz v príkazovom riadku a pripojíme sa k predvolenej PostgreSQL databáze template:

sudo -u postgres psql template1

Predchádzajúci príkaz sa pripojí k PostgreSQL databáze template1 ako používateľ postgres. Po pripojení k PostgreSQL serveru sa zobrazí príkazový riadok SQL. V tomto príkazovom riadku psql môžeme spustiť nasledujúci SQL príkaz na zmenu hesla pre používateľa.

ALTER USER postgres with encrypted password 'nase_heslo';

Po nastavení hesla otvoríme súbor /etc/postgresql/8.4/main/pg_hba.conf a nastavíme použitie MD5 autentifikácie pre používateľa postgres:

local   all         postgres                          md5 sameuser

Nakoniec reštartujeme službu PostgreSQL, aby sa nová konfigurácia inicializovala. Aby sa služba PostgreSQL reštartovala, v príkazovom riadku zadáme príkaz:

sudo /etc/init.d/postgresql-8.3 restart
[Warning]

Vykonaná konfigurácia v žiadnom prípade ešte nie je hotová. O ďalších konfiguračných parametroch sa dozviete na stránke the PostgreSQL Administrator's Guide.

Zdroje

  • Výborným zdrojom, ako sme sa už zmienili, je stránka Administrator's Guide. Táto príručka je tiež dostupná v balíku postgresql-doc-8.4. Ak tento balík chceme nainštalovať, zadáme do príkazového riadka nasledujúci príkaz:

    sudo apt-get install postgresql-doc-8.4

    Príručku zobrazíme zadaním adresy file:///usr/share/doc/postgresql-doc-8.4/html/index.html do prehliadača.

  • Všeobecné informácie o SQL sa nachádzajú v knihe Using SQL Special Edition od Rafe Colburna.

LAMP aplikácie

Prehľad

LAMP inštalácie (Linux + Apache + MySQL + PHP) sú populárnym nastavením serverových aplikácií na serveroch Ubuntu. Existuje nespočetné množstvo otvorených aplikácií, ktoré používajú zostavu serverov LAMP. Medzi populárne LAMP aplikácie patria napríklad Wiki stránky, Redakčné systémy, a webové administračné rozhrania ako napríklad phpMyAdmin.

Jednou z výhod LAMP je možnosť nahradenia databázy, webového servera a skriptovacích jazykov inými systémami. Populárnou náhradou za MySQL sú databázy Posgresql a SQLite. Miesto PHP sa zasa často používajú jazyky Python, Perl a Ruby.

Tradičný spôsob, ako nainštalovať väčšinu LAMP aplikácií je takýto:

  • Stiahneme archív obsahujúci zdrojové súbory aplikácie.

  • Rozbalíme archív (zvyčajne do priečinka, ktorý je dostupný pre webový server).

  • V závislosti od toho, kam sme rozbalili zdrojové súbory, zadáme do webového prehliadača adresu.

  • Nastavíme aplikáciu tak, aby sa pripojila do databázy.

  • Spustíme skript alebo otvoríme stránku aplikácie, ktorá nainštaluje databázu, ktorú bude aplikácia potrebovať.

  • Po vykonaní týchto krokov (alebo podobných), môžeme začať používať aplikáciu.

Nevýhodou tohto prístupu je to, že aplikácia nie je umiestnená na štandardné miesto do súborového systému, čo môže spôsobiť zmätok. Ďalšia nevýhoda je aktualizácia aplikácie. Ak je uvolnená nová verzia aplikácie, je potrebné vykonať proces inštalácie odznova aby sa aktualizácie aplikovali.

Našťastie dosť veľký počet takýchto LAMP aplikácií je súčasťou balíkov Ubuntu a dajú sa nainštalovať rovnakým spôsobom ako bežné aplikácie. V závislosti od aplikácie je však niekedy potrebné vykonať dodatočné nastavenia.

Táto časť obsahuje návody, ako nainštalovať a nakonfigurovať Wiki aplikácie MoinMoin, MediaWiki a ako spravovať MySQL pomocou phpMyAdmin.

[Note]

Wiki stránky umožňujú návštevníkom jednoducho pridávať, odstraňovať a upravovať obsah webových stránok. Jednoduchá interakcia a manipulácia robí z Wiki systému efektívny nástroj, ktorý umožňuje viacerým autorom spolupracovať. Termín Wiki je tiež označovaný ako softvér na spoluprácu.

MoinMoin

MoinMoin je Wiki systém implementovaný v jazyku Python, založený na systéme PikiPiki Wiki a vydaný pod licenciou GNU GPL.

Inštalácia

Ak chceme MoinMoin nainštalovať, stačí zadať nasledujúci príkaz do príkazového riadka:

sudo apt-get install python-moinmoin

Potrebné je tiež nainštalovať webový server apache2. Inštalácia webového servera apache2 je popísaná v časti “Inštalácia” podkapitoly “HTTPD - Apache2 Web Server”.

Konfigurácia

Pre vytvorenie prvej Wiki aplikácie je potrebné spustiť nasledujúce príkazy. Systém predpokladá, že sa prvá Wiki aplikácia bude volať mywiki, pre jednoduchosť ponecháme toto meno:

cd /usr/share/moin
sudo mkdir mywiki
sudo cp -R data mywiki
sudo cp -R underlay mywiki
sudo cp server/moin.cgi mywiki
sudo chown -R www-data.www-data mywiki
sudo chmod -R ug+rwX mywiki
sudo chmod -R o-rwx mywiki

Teraz by sme mali nakonfigurovať systém MoinMoin, aby vedel nájsť našu novú Wiki aplikáciu nasawiki. Konfiguráciu MoinMoin upravíme tak, že otvoríme súbor /etc/moin/mywiki.py a zmeníme nasledujúci riadok:

data_dir = '/org/mywiki/data'

na

data_dir = '/usr/share/moin/nasawiki/data'

Pod nastavenie data_dir pridáme ešte jedno s názvom data_underlay_dir:

data_underlay_dir='/usr/share/moin/mywiki/underlay'
[Note]

Ak súbor /etc/moin/mywiki.py neexistuje, môžete ho vytvoriť skopírovaním súboru /etc/moin/moinmaster.py na súbor /etc/moin/mywiki.py a vykonať popísané zmeny.

[Note]

Ak chcete pomenovať Wiki napríklad moja_wiki môžete vložiť riadok “("moja_wiki", r".*")” do súboru /etc/moin/farmconfig.py pod riadok “("mywiki", r".*")”.

Ak sme nastavili MoinMoin, aby našiel našu prvú Wiki aplikáciu mywiki, je potrebné nastaviť apache2, aby správne zobrazoval našu Wiki aplikáciu.

Do  značky “<VirtualHost *>” v súbore /etc/apache2/sites-available/default zapíšeme nasledujúce riadky:

### moin
ScriptAlias /mywiki "/usr/share/moin/mywiki/moin.cgi"
alias /moin_static181 "/usr/share/moin/htdocs"
<Directory /usr/share/moin/htdocs>
Order allow,deny
allow from all
</Directory>
### end moin
[Note]

Upravte "moin_static184" v riadku alias na nainštalovanú verziu moinmoin.

Po skončení konfigurácie webového servera apache2 je potrebné ho reštartovať. Webový server apache2 reštartujeme príkazom:

sudo /etc/init.d/apache2 restart

Overenie

Funkčnosť Wiki aplikácie môžem otestovať zadaním nasledujúcej URL adresy do prehliadača:

http://nazovstanice/mywiki

Môžeme tiež spustiť testovací príkaz vložením nasledujúcej URL adresy do prehliadača:

http://nazovstanice/mywiki?action=test

Viac informácií sa nachádza na domovskej stránke MoinMoin.

Zdroje

MediaWiki

MediaWiki je web založený na Wiki softvéri vytvorený v jazyku PHP. Môže používať databázový systém MySQL alebo PostgreSQL.

Inštalácia

Pred nainštalovaním MediaWiki by sme už mali mať nainštalovaný server Apache2, skriptovací jazyk PHP5 a databázový systém. Najbežnejšími databázovými systémami sú MySQL a PostgreSQL, vyberieme si ten, ktorý viac potrebujeme. Inforácie, ako systémy nainštalovať, sa nachádzajú v tejto príručke.

Systém MediaWiki nainštalujeme zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install mediawiki php5-gd

Dodatočné funkcie pre MediaWiki môžeme pridať nainštalovaním balíka mediawiki-extensions.

Konfigurácia

Konfiguračný súbor systému Apache mediawiki.conf pre MediaWiki je nainštalovaný v priečinku /etc/apache2/conf.d/. Aby sa dalo pristupovať k aplikácii MediaWiki, v tomto súbore odpoznámkujeme nasledujúce riadok.

# Alias /mediawiki /var/lib/mediawiki

Ak chceme spustiť konfiguračný program systému MediaWiki, do prehliadača zadáme nasledujúcu URL adresu:

http://nazovstanice/mediawiki/config/index.php
[Tip]

Na stránke, ktorá sa vám zobrazí, si prečítajte časť “Checking environment...”. Po pozornom prečítaní uvedenej časti budete vedieť opraviť rôzne problémy.

Po dokončení konfigurácie môžeme skopírovať súbor LocalSettings.php do priečinka /etc/mediawiki.

sudo mv /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki/

Súbor /etc/mediawiki/LocalSettings.php teraz môžeme upraviť:

ini_set( 'memory_limit', '64M' );

Rozšírenia

Rozšírenia dávajú wiki administrátorom a koncovým používateľom možnosť na prispôsobenie systému MediaWiki podľa svojich potrieb.

Rozšírenia pre MediaWiki sa dajú stiahnuť ako súbory archívov alebo priamo z úložiska systému Subversion. Stačí ich nakopírovať do priečinka /var/lib/mediawiki/extensions a do súboru /etc/mediawiki/LocalSettings.php riadky v takomto tvare:

 

require_once "$IP/extensions/ExtentionName/NazovRozsirenia.php";

Zdroje

phpMyAdmin

phpMyAdmin je LAMP aplikácia určená na administráciu MySQL serverov. Je vytvorená v PHP, otvára sa cez webový prehliadač a poskytne grafické rozhranie pre administráciu databáz.

Inštalácia

Pred inštaláciou phpMyAdmin je potrebné, aby ste mali prístup do MySQL buď na rovnakom počítači ako je ten, na ktorý sa chystáte nainštalovať phpMyAdmin alebo na počítači, na ktorý máte prístup cez sieť. Viac informácií sa nachádza v časti “MySQL”. Program phpMyAdmin nainštalujeme zadaním príkazu:

sudo apt-get install phpmyadmin

Po spustení sa zobrazí výber webového servera, ktorý sa pre  phpMyAdmin má použiť. Vo zvyšku tejto časti budeme predpokladať, že sme vybrali webový server Apache2.

Do prehliadača zadáme http://menoservera/phpmyadmin, pričom menoservera nahradíme menom nášho servera. Na stránke s prihlásením zadáme do poľa Používateľ root (alebo iné meno hlavného používateľa MySQL ak sme ho zmenili) a zadáme heslo tohto MySQL používateľa.

Po prihlásení môžeme v prípade potreby heslo pre používateľa root zmeniť, vytvoriť ďalších používateľov, vytvoriť/odstrániť databázy a tabuľky, atď.

Konfigurácia

Konfiguračné súbory phpMyAdmin sú umiestnené v priečinku /etc/phpmyadmin. Hlavný konfiguračný súbor je /etc/phpmyadmin/config.inc.php. Tento súbor obsahuje voľby, ktoré sa aplikujú v phpMyAdmin globálne.

Ak chceme phpMyAdmin použiť na administráciu databázy MySQL na inom serveri, upravíme nasledujúce nastavenie v súbore /etc/phpmyadmin/config.inc.php:

$cfg['Servers'][$i]['host'] = 'db_server';
[Note]

Hodnotu db_server nahraďte menom alebo IP adresou vzdialeného počítača, na ktorom sa nachádza databázový server. Preverte tiež, či počítač na ktorom je phpMyAdmin má právo pristupovať k vzdialenej databáze.

Po zmene konfigurácie sa odhlásime a znova prihlásime do phpMyAdmin a mali by sme byť na novom serveri.

Súbory config.header.inc.php a config.footer.inc.php sa používajú na pridanie HTML hlavičky a päty do phpMyAdmin.

Ďalší dôležitý konfiguračný súbor je /etc/phpmyadmin/apache.conf, symbolický odkaz na tento súbor je vytvorený aj v /etc/apache2/conf.d/phpmyadmin.conf a používa sa na konfiguráciu servera Apache2, aby spracovával stránky phpMyAdmin. Súbor obsahuje direktívy pre načítanie PHP, oprávnenia k priečinkom, atď. Viac informácii o konfigurácii webového servera Apache2 sa nachádza v časti "HTTPD - webový server Apache2".

Zdroje

Súborové servery

Ak máme viac ako jeden počítač v sieti, v určitom momente si uvedomíme, že potrebujeme prenášať a zdieľať súbory medzi nimi. V tejto časti si povieme ako sa inštalujú a konfigurujú systémy FTP, NFS, a CUPS.

FTP server

File Transfer Protocol (FTP) je TCP protokol na nahrávanie a sťahovanie súborov medzi počítačmi. FTP pracuje na princípe klient/server. Serverová časť sa volá FTP démon. Tento démon neustále čaká na požiadavky vzdialených FTP klientov. Ak príde požiadavka, riadi prihlásenie a nastavenie spojenia. Počas trvania spojenia vykonáva príkazy odoslané FTP klientom.

Prístup na FTP server môže byť vykonaný dvoma spôsobmi:

  • Anonymne

  • S autentifikáciou

Pri anonymnom móde môžu vzdialení klienti pristupovať k FTP serveru pomocou predvoleného konta z názvom "anonymous" alebo "ftp" a ako heslo použiť svoju emailovú adresu. V móde s prihlásením musí mať každý používateľ svoje konto s heslom. Prístup používateľa k priečinkom FTP servera je riadený podľa prístupových práv definovaných pre konto používateľa. Všeobecným pravidlom je, že FTP démon skryje kmeňový priečinok systému a nahradí ho domovským priečinkom FTP Home. Týmto sa skryje zvyšok súborového systému pred pripojeným používateľom.

Inštalácia FTP Servera - vsftpd

vsftpd je FTP démon dostupný v Ubuntu. Je jednoduché ho nainštalovať, nastaviť a udržiavať. Ak chceme nainštalovať vsftpd, zadáme nasledujúci príkaz:

sudo apt-get install vsftpd

Konfigurácia anonymného FTP

V predvolenom stave je vsftpd nakonfigurované tak, aby umožňovalo len anonymné sťahovanie. Počas inštalácie je vytvorený používateľ ftp s domovským priečinkom /home/ftp. Toto je predvolený FTP priečinok.

Keby sme chceli zmeniť toto umiestnenie napríklad na /srv/ftp, jednoducho vytvoríme priečinok na novom mieste a zmeníme domovský priečinok používateľa ftp:

sudo mkdir /srv/ftp
sudo usermod -d /srv/ftp ftp

Po vykonaní zmien reštartujeme vsftpd:

sudo /etc/init.d/vsftpd restart

Nakoniec do priečinka /srv/ftp nakopírujeme súbory, ktoré majú byť viditeľné pri anonymnom FTP prístupe.

Konfigurácia FTP s autentifikáciou

Ak chceme vsftpd nakonfigurovať tak, aby autentifikoval systémových používateľov a umožnil im nahrávať súbory na server, upravíme súbor /etc/vsftpd.conf:

local_enable=YES
write_enable=YES

Reštartujeme vsftpd:

sudo /etc/init.d/vsftpd restart

Teraz sa môžu používatelia prihlasovať k FTP a po prihlásení sa im zobrazí ich domovský priečinok, v ktorom si môžu súbory sťahovať, nahrávať, vytvárať podpriečinky, atď.

V predvolenom stave anonymný používateľ nemôže nahrávať súbory na FTP server. Ak to chceme zmeniť, stačí odkomentovať nasledujúci riadok a reštartovať vsftpd:

anon_upload_enable=YES
[Warning]

Povolenie nahrávania na FTP server anonymnému používateľovi predstavuje veľké bezpečnostné riziko. Najlepšie je, ak túto možnosť nezapnete na serveroch, ktoré sú dostupné z Internetu.

Konfiguračný súbor obsahuje mnoho ďalších konfiguračných parametrov. Informácie o jednotlivých parametroch sa nachádzajú priamo v konfiguračnom súbore. Druhou možnosťou je pozrieť si ich význam na man stránkach: man 5 vsftpd.conf.

Zabezpečenie FTP

V konfiguračnom súbore /etc/vsftpd.conf sa nachádzajú aj nastavenia, ktoré nám pomôžu vsftpd urobiť bezpečnejším. Napríklad prístup používateľov môžeme obmedziť len na ich domovský priečinok odkomentovaním nastavenia:

chroot_local_user=YES

Používateľov, ktorých chceme takto obmedziť, môžeme vypísať do osobitného súboru:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Po odkomentovaní predchádzajúceho riadka, vytvoríme súbor /etc/vsftpd.chroot_list tak, že meno každého používateľa zapíšeme na nový riadok. Potom reštartujeme vsftpd:

sudo /etc/init.d/vsftpd restart

Do súboru /etc/ftpusers môžeme zasa napísať zoznam používateľov, ktorým zakážeme FTP prístup. V predvolenom zozname sa nachádzajú aj používatelia root, daemon, nobody, atď. Ak by sme chceli FTP prístup zakázať ďalším používateľom, stačí ich dopísať do zoznamu.

FTP sa dá aj zašifrovať použitím FTPS. Na rozdiel od SFTP je FTPS FTP cez Secure Socket Layer (SSL). SFTP je FTP pripojenie cez šifrované SSH spojenie. Hlavným rozdielom je to že používatelia SFTP musia mať v systéme aj shell konto (konto pre príkazový riadok), namiesto nastavenia nologin (zákaz prihlásenia). Poskytnutie prístupu k príkazovému riadku všetkým používateľom nemusí byť ideálnym riešením pre rozhrania zdieľané cez web.

Ak chceme povoliť FTPS, otvoríme súbor /etc/vsftpd.conf a na jeho koniec pridáme:

ssl_enable=Yes

Tiež bude potrebné upraviť nastavenia certifikátu a kľúča:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

V predvolenom stave je tento certifikát a kľúč poskytnutý balíkom ssl-cert. V ostrej prevádzke by sme však mali tieto súbory nahradiť certifikátom a kľúčom vygenerovaným pre konkrétnu stanicu. Viac informácií o certifikátoch sa nachádza v časti "Certifikáty".

Teraz reštartujeme vsftpd, a neanonymný používatelia budú nútený použiť FTPS:

sudo /etc/init.d/vsftpd restart

Ak chceme používateľom s príkazovým riadkom /usr/sbin/nologin (zákaz prihlásenia) povoliť prístup k FTP, ale nechceme aby mali prístup k príkazovému riadku, otvoríme súbor /etc/shells a pridáme druh príkazového riadka nologin:

# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin

Toto je nevyhnutné, pretože vsftpd v predvolenom stave používa na atentifikáciu PAM a konfiguračný súbor /etc/pam.d/vsftpd obsahuje:

auth    required        pam_shells.so

Modul PAM s názvom shells zakazuje prístup k príkazovým riadkom vypísaným v súbore /etc/shells.

Najpopulárnejší FTP klienti sa dajú nakonfigurovať tak, aby sa pripájali pomocou FTPS. Ako klient sa dá tiež použiť príkaz príkazového riadka lftp, ktorý sa tiež pripája cez FTPS.

Zdroje

Sieťový súborový systém NFS

NFS umožňuje zdieľanie priečinkov a súborov s ostatnými systémami v sieti. Pri použití NFS používatelia a programy môžu pristupovať k súborom, ako keby pristupovali k súborom na lokálnom počítači.

Medzi najväčšie výhody, ktoré NFS poskytuje patrí toto:

  • Lokálne stanice môžu použiť menej diskového priestoru, pretože spoločne využívané dáta môžu byť uložené na jednom počítači a všetkým dostupné cez sieť.

  • Nie je potrebné každému používateľovi vytvoriť vlastný domovský priečinok na každej stanici. Domovské priečinky sa môžu nachádzať na NFS serveri a môžu byť dostupné cez sieť.

  • Rôzne zariadenia ako disketové mechaniky, CDROM mechaniky a USB mechaniky môžu byť používané aj ostatnými počítačmi v sieti, čo môže znížiť počet potrebných mechaník pre prenosné média.

Inštalácia

NFS server nainštalujeme tak, že do príkazového riadka zadáme nasledujúci príkaz:

sudo apt-get install nfs-kernel-server

Konfigurácia

Priečinky, ktoré majú byť zdieľané môžeme, pridať do súboru /etc/exports. Napríklad:

/ubuntu  *(ro,sync,no_root_squash)
/home *(rw,sync,no_root_squash)

Znak * môžeme nahradiť maskou názvu staníc. Deklaráciu názvu staníc urobme tak konkrétnu, ako sa len dá, aby neoprávnené systémy nemohli pristupovať k zdieľaným NFS priečinkom.

Po dokončení spustíme NFS server zadaním nasledujúceho príkazu:

sudo /etc/init.d/nfs-kernel-server start

Konfigurácia NFS Clienta

Zdieľaný NFS priečinok z inej stanice pripojíme pomocou príkazu mount, zadaním príkazu, ktorý bude podobný ako tento:

sudo mount menopc.nieco.sk:/ubuntu /local/ubuntu

[Warning]

Cieľový priečinok /local/ubuntu musí existovať. Nemali by v ňom byť žiadne súbory ani podpriečinky.

Iný spôsob, akým sa dajú pripojiť zdieľané NFS priečinky z iných staníc, je pridanie záznamu do súboru /etc/fstab. Riadok musí obsahovať meno stanice NFS servera, zdieľaný priečinok a priečinok na lokálnej stanici, do ktorého sa zdieľaný priečinok má pripojiť.

Všeobecná syntax riadka v súbore /etc/fstab je takáto:

menopc.nieco.sk:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr

Ak sa nám nedarí zdieľaný NFS priečinok pripojiť, uistíme sa, či je na klientskom počítači nainštalovaný balík nfs-common. Balik nfs-common nainštalujeme zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install nfs-common

CUPS - Tlačový server

Hlavný mechanizmus pre tlač a tlačové služby v Ubuntu zabezpečuje Common UNIX Printing System (CUPS). Tento tlačový systém je voľne dostupná, prenositeľná tlačová vrstva, ktorá sa stala novým štandardom pre tlač skoro vo všetkých Linuxových distribúciách.

CUPS spravuje tlačové úlohy a požiadavky a umožňuje sieťovú tlač prostredníctvom štandardného protokolu Internet Printing Protocol (IPP) a ponúka podporu pre široký rozsah tlačiarní od ihličkových až po laserové. CUPS tiež podporuje PostScript Printer Description (PPD), automatickú detekciu sieťových tlačiarní a funkcie pre jednoduchú konfiguráciu cez webové administračné rozhranie

Inštalácia

Ak chceme nainštalovať CUPS na počítač so systémom Ubuntu, použijeme príkaz sudo spolu s príkazom apt-get a pridáme názov balíka, ktorý chceme nainštalovať. Kompletná inštalácia CUPS má mnoho závislostí, ale všetky sa nainštalujú zadaním jedného príkazu. CUPS teda nainštalujeme zadaním príkazu:

sudo apt-get install cupsys

Po autentifikácii heslom používateľa sa balíky stiahnu a nainštalujú. Po skončení inštalácie by sa mal server CUPS automaticky naštartovať.

Ak nastanú problémy, chybové hlásenia servera CUPS si môžeme pozrieť v súbore: /var/log/cups/error_log. Ak súbor záznamov neposkytuje dostatočné informácie pre vyriešenie problému, môžeme zvýšiť podrobnosť záznamov systému CUPS pomocou direktívy LogLevel v konfiguračnom súbore (viď nižšie) z predvolenej hodnoty "info" na "debug" alebo dokonca "debug2", pri ktorom sa bude zaznamenávať všetko. Po vyriešení problému by sme nemali zabudnúť vrátiť pôvodné nastavenie, aby sa súbor so záznamom nestal príliš veľký.

Konfigurácia

Správanie servera CUPS sa konfiguruje prostredníctvom direktív v súbore /etc/cups/cupsd.conf. Konfiguračný súbor systému CUPS má rovnakú sysntax ako hlavný konfiguračný súbory servera Apache, preto používateľom, ktorí poznajú konfiguračný súbor servera Apache, nebude robiť problém ani konfiguračný súbor systému CUPS. Teraz si ukážeme niekoľko základných konfiguračných možností.

[Tip]

Pred úpravou akéhokoľvek konfiguračného súboru by ste si mali vytvoriť kópiu originálneho súboru a nastaviť ho iba na čítanie, aby ste mohli nastavenia porovnať s pôvodnými hodnotami a v prípade potreby ich vrátiť späť.

Vytvorte kópiu súboru /etc/cups/cupsd.conf a nastavte ju iba na čítanie zadaním nasledujúcich príkazov:

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
sudo chmod a-w /etc/cups/cupsd.conf.original
  • ServerAdmin: Ak chceme zmeniť emailovú adresu administrátora servera CUPS, jednoducho v obľúbenom textovom editore upravíme riadok ServerAdmin v súbore /etc/cups/cupsd.conf na príslušnú hodnotu. Napríklad, ak sme administrátorom servera CUPS a naša emailova adresa je 'jhrasko@nieco.sk', zmeníme riadok ServerAdmin takto:

    ServerAdmin jhrasko@nieco.sk
  • Listen: V predvolenom stave v Ubuntu po inštalácii server CUPS načúva iba na rozhraní spätnej väzby s IP adresou 127.0.0.1. Ak chceme aby server CUPS načúval na IP adrese adaptéra pripojeného k sieti, musíme zadať ku nemu priradené meno stanice alebo IP adresu, alebo voliteľne pár IP adresa/port ako ďalšiu direktívu Listen. Napríklad, ak je server CUPS v lokálnej sieti na počítači s IP adresou 192.168.10.250 a chceme, aby bol prístupný aj pre ostatné počítače v sieti, otvoríme súbor /etc/cups/cupsd.conf a pridáme nasledujúcu Listen direktívu:
    Listen 127.0.0.1:631           # existujúce nastavenie pre spätnú väzbu
    Listen /var/run/cups/cups.sock # existujúce nastavenie pre socket
    Listen 192.168.10.250:631 # nové nastavenie pre LAN rozhranie a port 631 (IPP)

    V predchádzajúcom príklade môžeme zapoznámkovať alebo vymazať nastavenie pre spätnú väzbu (127.0.0.1), ak nechceme, aby cupsd načúval na tomto rozhraní, ale chceme, aby načúval iba na Ethernetovom rozhraní lokálnej siete (LAN). Ak chceme aby načúval na všetkých rozhraniach, ktoré sú na danom počítači, vrátanie zariadenia spätnej väzby Loopback, môžeme vytvoriť záznam Listen s názvom stanice - napríklad socrates:

    Listen socrates:631  # nastavenie pre všetky rozhrania na stanici s názvom 'socrates'

    alebo použitím direktívy Port miesto direktívy Listen:

    Port 631  # Načúva na porte 631 na všetkých rozhraniach

Viac informácií o direktívach konfiguračného súboru servera CUPS si môžeme pozrieť na manuálových stránkach zadaním nasledujúceho príkazu do príkazového riadka:

man cupsd.conf
[Note]

Vždy, keď urobíte zmeny v konfiguračnom súbore /etc/cups/cupsd.conf, je potrebné reštartovať server CUPS zadaním nasledujúceho príkazu:

sudo /etc/init.d/cupsys restart

Webové rozhranie

[Tip]

CUPS sa dá konfigurovať a monitorovať cez webové rozhranie, ktoré je dostupné na adrese http://nazovstanice:631/admin. Webové rozhranie sa dá použiť na vykonanie všetkých správcovských úloh týkajúcich sa tlačiarní.

Aby sme mohli vykonávať správcovské úlohy cez webové rozhranie, musíme mať buď povolené konto používateľa root na serveri alebo sa prihlásiť ako používateľ patriaci do skupiny lpadmin. Kvôli bezpečnosti CUPS odmieta autentifikovať používateľov bez hesla.

Keď chceme pridať používateľa do skupiny lpadmin, spustíme nasledujúci príkaz:

sudo usermod -aG lpadmin menopozivatela

Ďalšia dokumentácia je dostupná z webového rozhranie na karte Documentation/Help.

Zdroje

CUPS Website

Ubuntu Wiki CUPS page

Emailové služby

Proces odoslania emailu od jednej osoby k druhej, cez sieť alebo Internet vyžaduje, aby mnoho systémov spolupracovalo. Každý z týchto systémov musí byť sprábne nastavený aby pracoval tak ako má. Odosielateľ použije Používateľského agenta - Mail User Agent (MUA) alebo emailového klienta na odoslanie pošty cez jeden alebo viacero Agentov pre prenos pošty - Mail Transfer Agents (MTA), posledný z nich predá email  Doručovaciemu agentovi - Mail Delivery Agent (MDA), ktorý  email doručí do používateľovej schránky, z ktorej si používateľ email vyberie zvyčajne pomocou serverov POP3 alebo IMAP.

Postfix

Postfix je predvoleným agentom na prenos emailov - Mail Transfer Agent (MTA) v Ubuntu. Pokúša sa byť rýchly, ľahko konfigurovateľný a bezpečný. Je kompatibilný s MTA agentom sendmail. V tejto časti si povieme ako postfix nainštalovať a nakonfigurovať. Vysvetlíme tiež, ako ho nastaviť tak, aby bol SMTP serverom, ktorý používa zabezpečené pripojenie (na bezpečný prenos emailov).

Tento návod neobsahuje nastavenie Virtualnych domén pre Postfix. Zdroje informácií o Virtualnych doménach a ďalšej pokročilej konfigurácii nájdeme v časti Zdroje.

Inštalácia

Systém postfix nainštalujeme pomocou nasledujúceho príkazu:

sudo apt-get install postfix

Všetky otázky, ktoré bude klásť inštalátor, potvrdíme klávesou Enter, pretože konfiguráciu budeme meniť neskôr.

Základná konfigurácia

Ak chceme zmeniť konfiguráciu systému postfix, spustíme nasledujúci príkaz:

sudo dpkg-reconfigure postfix

Zobrazí sa používateľské rozhranie. Na každej z obrazoviek vyberieme nasledujúce hodnoty:

  • Internet Site

  • mail.nieco.sk

  • stefan

  • mail.nieco.sk, localhost.localdomain, localhost

  • Nie

  • 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0/24

  • 0

  • +

  • all

[Note]

Adresu mail.nieco.sk nahraďte názvom stanice, masku siete 192.168.0/24 nahraďte aktuálnym rozsahom adries vašej siete a meno stefan nahraďte príslušným menom používateľa.

Teraz je potrebné rozhodnúť sa, ktorý formát mailových schránok budeme používať. V predvolenom stave bude Postfix používať formát mbox. Miesto priamej úpravy konfiguračného súboru môžeme použiť príkaz postconf, ktorý slúži na nastavovanie všetkých parametrov systému postfix. Konfiguračné parametre sú uložené v súbore /etc/postfix/main.cf. Neskôr ak budeme chcieť zmeniť konkrétny parameter, môžeme buď znova spustiť spomínaný príkaz alebo ho ručne zmeniť v súbore.

Keď chcem zmeniť formát schránok na  Maildir, zadáme:

sudo postconf -e 'home_mailbox = Maildir/'
[Note]

Nové maily sa budú odteraz nachádzať v priečinku /home/meno_pouzivatela/Maildir, preto je tiež potrebné zmeniť nastavenie v Doručovacom agentovi (MDA), aby používal rovnakú cestu.

SMTP autentifikácia

SMTP-AUTH umožňuje klientovi identifikovať seba samého prostredníctvom autentifikačného mechanizmu (SASL). Na zašifrovanie autentifikačného procesu by mal byť použitý protokol Transport Layer Security (TLS). Po autentifikácii SMTP server umožní klientovi odosielať maily.

  1. Nastavíme Postfix tak, aby pre SMTP-AUTH používal SASL (Dovecot SASL):

    sudo postconf -e 'smtpd_sasl_type = dovecot'
    sudo postconf -e 'smtpd_sasl_path = private/auth-client'
    sudo postconf -e 'smtpd_sasl_local_domain ='
    sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
    sudo postconf -e 'broken_sasl_auth_clients = yes'
    sudo postconf -e 'smtpd_sasl_auth_enable = yes'
    sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    sudo postconf -e 'inet_interfaces = all'
    [Note]

    Do nastavenia smtpd_sasl_path je potrebné zadať cestu, ktorá je relatívna od priečinka s radom (queue) systému Postfix.

  2. Teraz získame digitálny certifikát pre TLS. Viac informácii nájdeme v časti "Certifikáty". V tomto príklade je tiež použitá Certifikačná autorita (CA). Viac informácií o generovaní certifikátu CA nájdeme v časti "Certivfikačná autorita".

    [Note]

    Digitálny certifikát môžeme získať od certifikačnej autority. Na rozdiel od webových klientov, sa SMTP klienti len zriedka sťažujú na "sebou podpísané certifikáty", preto môžeme vytvoriť certifikát, ktorý si sami podpíšeme. Viac podrobností nájdeme v časti “Vytvorenie sebou podpísaného certifikátu”.

  3. Keď už máme certifikát, nakonfigurujeme Postfix aby poskytoval TLS šifrovanie pre prichádzajúce aj odchádzajúce správy:

    sudo postconf -e 'smtpd_tls_auth_only = no'
    sudo postconf -e 'smtp_use_tls = yes'
    sudo postconf -e 'smtpd_use_tls = yes'
    sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
    sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key'
    sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt'
    sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
    sudo postconf -e 'smtpd_tls_loglevel = 1'
    sudo postconf -e 'smtpd_tls_received_header = yes'
    sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    sudo postconf -e 'tls_random_source = dev:/dev/urandom'
    sudo postconf -e 'myhostname = mail.example.com'
  4. Ak sme použili vlastnú Certifikačnú autoritu na podpísanie certifikátu, zadáme:

    sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'

    Viac informácií sa môžeme opäť dozvedieť v časti Certifikáty.

[Note]

Po spustení všetkých príkazov je Postfix nastavený tak aby používal SMTP-AUTH a kvôli TLS šifrovaniu bol vytvorený sebou podpísaný certifikát.

Teraz by mal súbor /etc/postfix/main.cf vyzerať takto.

Počiatočná konfigurácia systému postfix je hotový. Nasledujúcim príkazom reštartujeme démon:

sudo /etc/init.d/postfix restart

Postfix podporuje SMTP-AUTH tak, ako je definovaná v RFC2554. Je založená na SASL. Pred tým ako SMTP-AUTH použijeme, je potrebné atentifikáciu SASL nastaviť.

Konfigurácia SASL

Postfix podporuje dve implementácie SASL - Cyrus SASL a Dovecot SASL. Keď chceme zapnúť Dovecot SASL, je potrebné nainštalovať balík dovecot-common. V príkazovom riadku zadáme:

sudo apt-get install dovecot-common

Teraz je potrebné upraviť súbor /etc/dovecot/dovecot.conf. V časti auth default odpoznámkujeme voľbu socket listen a urobíme nasledujúce zmeny:

  socket listen {
#master {
# Master socket provides access to userdb information. It's typically
# used to give Dovecot's local delivery agent access to userdb so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user =
#group =
#}
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
path = /var/spool/postfix/private/auth-client
mode = 0660
user = postfix
group = postfix
}
}

Aby sme umožnili Outlook klientom použiť SMTPAUTH, v časti auth default súboru /etc/dovecot/dovecot.conf pridáme "login":

  mechanisms = plain login

Po dokončení konfigurácie reštartujeme systém Dovecot:

sudo /etc/init.d/dovecot restart

Postfix-Dovecot

Ďalšia možnosť nastavenia systému Postfix tak, aby používal SMTP-AUTH sa robí pomocou balíka dovecot-postfix. Tento balík nainštaluje Dovecot a nastaví Postfix tak, aby používal SASL autentifikáciu a aby fungoval ako agent na doručovanie správ - Mail Delivery Agent (MDA). Balík nainštaluje a nakonfiguruje aj systém Dovecot, aby bolo možné použiť IMAP, IMAPS, POP3 a POP3S.

[Note]

Na vašom poštovom serveri služby IMAP, IMAPS, POP3 a POP3S môžete ale nemusíte využívať. Ak napríklad chcete nastaviť server tak aby bol mailovou bránou, filtrom spamu a vírusov atď. Ak je to tak, je jednoduchšie použiť  predchádzajúci príkaz na nastavenie SMTPAUTH v systéme Postfix.

Ak chceme tento balík nainštalovať, zadáme:

sudo apt-get install dovecot-postfix

Teraz by sme mali mať funkčný server, ale ešte môžeme niekoľko nastavení prispôsobiť. Napríklad balík používa certifikát a kľúč vytvorený balíkom ssl-cert a my by sme v ostrej prevádzke mali používať certifikát a kľúč vygenerovaný pre náš server. Viac informácii sa nachádza v časti "Certifikáty".

Ak už máme náš vlastný certifikát a kľúč, zmeníme nasledujúce nastavenia v súbore /etc/postfix/main.cf:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

Potom reštartujeme Postfix:

sudo /etc/init.d/postfix restart

Testovanie

Konfigurácia SMTP-AUTH je hotová. Teraz je čas nastavenie otestovať.

Ak chceme vidieť či SMTP-AUTH a TLS pracujú správne, spustíme nasledujúci príkaz:

telnet mail.nieco.sk 25

Po nadviazaní spojenia s mailovým serverom postfix, zadáme:

ehlo mail.nieco.sk

Ak medzi vypísanými riadkami uvidíme aj nasledujúce, všetko pracuje správne. Spojenie ukončíme príkazom quit.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Riešenie problémov

Táto časť hovorí o niekoľkých spôsoboch, ktorými sa dajú odhaliť príčiny vzniknutých problémov.

Opustenie chroot

Balík postfix systému Ubuntu je kvôli bezpečnosti nainštalovaný do prostredia chroot. Kvôli tomu sa problém ťažšie hľadá.

Ak chceme vypnúť prevádzku chroot, v súbore /etc/postfix/master.cf nájdeme nasledujúci riadok:

smtp      inet  n       -       -       -       -       smtpd

a takto ho zmeníme:

smtp      inet  n       -       n       -       -       smtpd

Aby sa nová konfigurácia prejavila, je potrebné reštartovať Postfix. Do príkazového riadka zadáme:

sudo /etc/init.d/postfix restart

Súbory záznamov

Postfix odosiela všetky hlásenia do súboru so záznamom /var/log/mail.log. Chybové hlásenia a varovania však môžeme medzi ostatnými hláseniami prehliadnuť, preto sú odosielané do samostatných súborov /var/log/mail.err a /var/log/mail.warn.

Ak chceme v reálnom čase čítať prichádzajúce chybové hlásenia, môžeme použiť príkaz tail -f:

tail -f /var/log/mail.err

Podrobnosť zaznamenávaných záznamov sa dá zvýšiť. Nižšie je niekoľko konfiguračných možností na zvýšenie podrobnosti záznamov pre rôzne vyššie popísané oblasti.

  • Podrobnosť záznamov o TLS aktivitách nastavíme pomocou nastavenia smtpd_tls_loglevel, ktoré môže byť v rozsahu 1 až 4.

    sudo postconf -e 'smtpd_tls_loglevel = 4'
    
  • Ak máme problém s prijímaním alebo odosielaním mailov na konkrétnu doménu, môžeme meno domény pridať ako parameter do nastavenia debug_peer_list.

    sudo postconf -e 'debug_peer_list = problemova.domena'
    
  • Výrečnosť ktoréhokoľvek démona systému Postfix zvýšime pridaním -v za riadok v súbore /etc/postfix/master.cf. Napríklad pre smtp to urobíme takto:

    smtp      unix  -       -       -       -       -       smtp -v
    
[Note]

Po vykonaní zmien v nastavení zaznamenávania procesov systému Postfix je potrebné ho znova načítať, aby sa nová konfigurácia prejavila: sudo /etc/init.d/postfix reload

  • Ak chceme zvýšiť počet záznamov pri problémoch so SASL, môžeme nastaviť nasledujúce nastavenia v súbore /etc/dovecot/dovecot.conf

    auth_debug=yes
    auth_debug_passwords=yes
[Note]

Rovnako, ako pri systéme Postfix, ak zmeníte konfiguráciu, ktorá sa týka aj procesov systému Dovecot, je potrebné ho znova načítať: sudo /etc/init.d/dovecot reload.

[Note]

Niektoré možnosti výrazne zvýšia počet informácií, ktoré sa odosielajú do súborov so záznamami. Po vyriešení problému preto nezabudnite vrátiť pôvodné nastavenie a znova načítať príslušný démon,  aby sa nová konfigurácia prejavila.

Zdroje

Administrácia servera Postfix je veľmi zložitá úloha. V niektorých prípadoch bude potrebné sa kvôli pomoci obrátiť na komunitu Ubuntu.

Skvelým miestom, kde môžete požiadať o pomoc so systémom Postfix a spojiť sa s komunitou Ubuntu Servera , je IRC kanál #ubuntu-server na freenode. Je tiež možné poslať otázku do jedného z webových fór.

Detailné informácie o systéme Postfix pre vývojárov Ubuntu sa nachádzajú v knihe: The Book of Postfix.

Dokumentácia k rôznym spôsobom konfigurácie sa nachádza na domovskej stránke systému Postfix.

Viac informácií sa dá nájsť aj na stránke Ubuntu Wiki Postifx.

Po spustení všetkých príkazov je <application>Postfix</application> nastavený tak aby používal SMTP-AUTH a kvôli TLS šifrovaniu bol vytvorený sebou podpísaný certifikát.

Exim4

Exim4 je ďalší agent na prenos pošty (MTA) vyvinutý na University of Cambridge pre použitie v systémoch Unix pripojených k Internetu. Exim sa dá nainštalovať miesto systému sendmail, aj keď konfigurácia exim je od systému sendmail mierne odlišná.

Inštalácia

Ak chceme nainštalovať exim4, spustíme nasledujúci príkaz:

sudo apt-get install exim4

Konfigurácia

Konfiguráciu Exim4 spustíme pomocou nasledujúceho príkazu:

sudo dpkg-reconfigure exim4-config

Zobrazí sa používateľské rozhranie, ktoré nám umožní nastaviť mnoho parametrov. Napríklad môžeme zmeniť spôsob rozdelenia konfiguračných možností Exim4 do viacerých súborov. Ak chceme všetky konfiguračné možnosti mať v jednom súbore, nastavíme to v používateľskom rozhraní.

Všetky parametre, ktoré nastavíte cez používateľské rozhranie, sú uložené v súbore /etc/exim4/update-exim4.conf.conf. Ak chceme znova zmeniť konfiguráciu, môžeme opäť spustiť predchádzajúci príkaz, alebo ručne upraviť spomínaný súbor pomocou obľúbeného editora. Po dokončení konfigurácie spustíme nasledujúci príkaz, ktorým vygenerujeme hlavný konfiguračný súbor:

sudo update-exim4.conf

Hlavný konfiguračný súbor sa vygeneruje a uloží sa do /var/lib/exim4/config.autogenerated.

[Warning]

Nikdy by sme nemali upravovať hlavný konfiguračný súbor /var/lib/exim4/config.autogenerated ručne. Aktualizuje sa automaticky, stačí, ak spustíte príkaz update-exim4.conf

Nasledujúcim príkazom spustíme démona Exim4.

sudo /etc/init.d/exim4 start

SMTP autentifikácia

Táto časť hovorí o tom, ako nastaviť systém Exim4 tak, aby používal SMTP-AUTH s TLS a SASL.

Najskôr vytvoríme certifikát pre použitie s TLS. Zadáme nasledujúci príkaz do príkazového riadka:

sudo /usr/share/doc/exim4-base/examples/exim-gencert

Teraz systém Exim4 nastavíme tak, aby používal  TLS úpravou nasledujúceho riadku v súbore /etc/exim4/conf.d/main/03_exim4-config_tlsoptions:

MAIN_TLS_ENABLE = yes

Teraz je potrebné, nastaviť systém Exim4 tak, aby používal na autentifikáciu saslauthd. Otvoríme súbor /etc/exim4/conf.d/auth/30_exim4-config_examples a odpoznámkujeme časti plain_saslauthd_server a login_saslauthd_server:

 plain_saslauthd_server:
driver = plaintext
public_name = PLAIN
server_condition = ${if saslauthd{{$auth2}{$auth3}}{1}{0}}
server_set_id = $auth2
server_prompts = :
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
#
login_saslauthd_server:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
# don't send system passwords over unencrypted connections
server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
server_set_id = $auth1
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif

Naoniec aktualizujeme konfiguráciu Exim4 a reštartujeme službu:

sudo update-exim4.conf
sudo /etc/init.d/exim4 restart

Konfigurácia SASL

Táto časť hovorí o konfigurácii saslauthd, ktorá slúži na autentifikáciu v systéme Exim4.

Prvým krokom je nainštalovanie balíka sasl2-bin. Do príkazového riadka zadáme:

sudo apt-get install sasl2-bin

Ak chceme nastaviť saslauthd, otvoríme súbor /etc/default/saslauthd a prestavíme START=no na:

START=yes

Potom je potrebné vytvoriť používateľa Debian-exim, ktorý bude patriť do skupiny sasl, a pod ktorým bude spustená služba Exim4:

sudo adduser Debian-exim sasl

Teraz spustíme službu saslauthd:

sudo /etc/init.d/saslauthd start

Exim4 je teraz nastavený tak, aby používal SMTP-AUTH pomocou TLS a SASL.

Zdroje

Dovecot

Dovecot je doručovací agent (Mail Delivery Agent), primárne zameraný na bezpečnosť. Podporuje väčšinu formátov poštových schránok: mbox alebo Maildir. V tejto časti si povieme, ako ho nastaviť do pozície imap alebo pop3 servera.

Inštalácia

Ak chceme nainštalovať dovecot, spustíme nasledujúci príkaz:

sudo apt-get install dovecot-imapd dovecot-pop3d

Konfigurácia

Nastavenia systému dovecot sa dajú upravovať v súbore /etc/dovecot/dovecot.conf. Môžeme si zvoliť protokol, ktorý budeme používať. Mal by to byť jeden z týchto: pop3, pop3s (pop3 secure), imap a imaps (imap secure). Popis týchto protokolov nie je predmetom tejto príručky. Viac informácií o nich môžete nájsť vo Wikipédií v článkoch POP3 a IMAP.

IMAPS a POP3S sú zabezpečenými verziami jednoduchých protokolov IMAP a POP3, pretože používajú na pripojenie SSL šifrovanie. Vybrané protokoly môžeme nastaviť v nasledujúcom riadku v súbore /etc/dovecot/dovecot.conf:

protocols = pop3 pop3s imap imaps

Potom si zvolíme formát poštovej schránky, ktorý budeme používať. Dovecot podporuje formáty maildir a mbox. Toto sú najčastejšie používané formáty poštových schránok. Každá z nich má iné výhody, o ktorých sa môžeme viac dozvedieť na stránke Dovecot web site.

Typ mailovej schránky nastavíme v súbore /etc/dovecot/dovecot.conf pomocou nasledujúceho riadku:

mail_location = maildir:~/Maildir # (pre formát maildir)

alebo

mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u # (pre formát mbox)
[Note]

Tiež by ste mali nastaviť agenta pre prenos pošty - Mail Transport Agent (MTA), ak prichádzajúcu poštu doručuje do iného typu schránky ako ste nastavili.

Po ukončení konfigurácie systému dovecot, reštartujeme démon dovecot, aby sa nastavenia prejavili:

sudo /etc/init.d/dovecot restart

Ak je povolený protokol imap alebo pop3, môžeme ho otestovať pomocou príkazu telnet localhost pop3 alebo telnet localhost imap2. Ak uvidíte niečo podobné, ako je v nasledujúcom výpise, inštalácia prebehla úspešne:

bhuvan@rainbow:~$ telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Dovecot ready.

SSL nastavenia systému Dovecot

Ak chceme dovecot nastaviť tak, aby používal SSL, otvoríme súbor /etc/dovecot/dovecot.conf a pozmeníme nasledujúce riadky:

ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
ssl_disable = no
disable_plaintext_auth = no

SSL certifikát môžeme získať od Certifikačnej autority alebo môžeme vytvoriť sebou podpísaný SSL certifikát. Ten však nie je vhodný pre email, pretože SMTP klienti neakceptujú "sebou podpísané certifikáty". Viac informácií o tom, ako sa dá získať alebo vytvoriť certifikát, sa nachádza v časti "Certifikáty". Po získaní certifikátu, budeme mať súbor s kľúčom a súbor s certifikátom. Nakopírujeme ich do priečinkov, na ktoré sa odkazujeme v súbore /etc/dovecot/dovecot.conf.

Nastavenie Firewallu pre emailový server

Aby sa dalo pristupovať k mailovému serveru z iného počítača, musíme nastaviť firewall tak , aby umožnil spojenie na server cez nasledujúce porty.

  • IMAP - 143

  • IMAPS - 993

  • POP3 - 110

  • POP3S - 995

Zdroje

Mailman - mailové diskusie

Mailman program s otvoreným zdrojovým kódom na správu elektronických poštových diskusií. Mnoho diskusií o otvorenom softvéri (vrátane mailových diskusií Ubuntu mailing lists) používa systém Mailman. Je to mocný systém, ktorý sa dá jednoducho nainštalovať a udržiavať.

Inštalácia

Mailman poskytuje webové rozhranie pre administrátorov a používateľov, používajúce externý mailový server na odosielanie a prijímanie pošty. Pracuje bezchybne s nasledujúcimi servermi:

  • Postfix
  • Exim
  • Sendmail
  • Qmail

Ukážeme si, ako Mailman nainštalovať a ako ho nastaviť aby spolupracoval s webovým serverom Apache a mailovým serverom Postfix alebo Exim. Ak chceme nainštalovať Mailman s iným mailovým serverom, návod nájdeme v zdrojoch na konci tejto časti.

[Note]

Je potrebné nainštalovať iba jeden poštový server a Postfix je predvoleným agentom na prenos pošty v Ubuntu.

Apache2

Návod na inštaláciu systému apache2 sa nachádza v časti HTTPD - Inštalácia.

Postfix

Postup ako nainštalovať a nastaviť Postfix sa nachádza v časti "Postfix"

Exim4

Návod na inštaláciu systému Exim4 sa nachádza v časti "Exim4".

Po nainštalovaní exim4 sa konfiguračné súbory nachádzajú v priečinku /etc/exim4. V Ubuntu je v predvolenom stave konfigurácia exim4 rozdelená do viacerých súborov. Túto vlastnosť môžete zmeniť úpravou nasledujúceho nastavenia v súbore /etc/exim4/update-exim4.conf:

  • dc_use_split_config='true'

Mailman

Ak chceme nainštalovať Mailman, spustíme nasledujúci príkaz v príkazovom riadku:

sudo apt-get install mailman

Tento príkaz skopíruje inštalačné súbory do priečinka /var/lib/mailman, nainštaluje CGI skripty do priečinka /usr/lib/cgi-bin/mailman a vytvorí používateľa list a skupinu list, pod ktorým bude spustený proces mailman.

Konfigurácia

V tejto časti budeme predpokladať, že máme nainštalované systémy mailman, apache2 a postfix alebo exim4. Teraz je potrebné ich nakonfigurovať.

Apache2

Príklad konfiguračného súboru Apache je súčasťou inštalácie systému Mailman a je umiestnený v súbore /etc/mailman/apache.conf. Ak chceme aby Apache použil tento konfiguračný súbor, je potrebné ho nakopírovať do priečinka /etc/apache2/sites-available:

sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf

Týmto sme nastavili v systéme Aoache novú virtuálnu stanicu - VirtualHost pre administračný web systému Mailman. Teraz novú konfiguráciu zapneme a reštartujeme Apache:

sudo a2ensite mailman.conf
sudo /etc/init.d/apache2 restart

Mailman použije systém apache2 na spracovanie a zobrazenie svojich CGI skriptov. CGI skripty systému mailman sú nainštalované v priečinku /usr/lib/cgi-bin/mailman. Preto URL adresa bude http://menostanice/cgi-bin/mailman/. Ak by sme chceli túto skutočnosť zmeniť, môžeme to urobiť zmenou konfigurácie v súbore /etc/apache2/sites-available/mailman.conf.

Postfix

Integráciu so systémom Postfix dosiahneme tak, že priradíme doménu diskusia.nieco.sk. Doménu diskusia.nieco.sk môžeme nahradiť takou, ktorú si zvolíme.

Pomocou príkazu postconf pridáme potrebné konfiguračné nastavenia do súboru /etc/postfix/main.cf:

sudo postconf -e 'relay_domains = diskusia.nieco.sk'
sudo postconf -e 'transport_maps = hash:/etc/postfix/transport'
sudo postconf -e 'mailman_destination_recipient_limit = 1'

V súbore /etc/postfix/master.cf pre istotu dvakrát skontrolujeme, či máme definovaný nasledujúci transport:

mailman   unix  -       n       n       -       -       pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}

Tento transport volá skript postfix-to-mailman.py vždy, keď je mail doručený do diskusie.

Doménu diskusia.nieco.sk priradíme k transportu systému Mailman spolu s transportnou mapou. Otvoríme súbor /etc/postfix/transport a upravíme ho:

diskusia.nieco.sk      mailman:

Teraz v systéme Postfix vytvoríme transportnú mapu zadaním nasledujúceho príkazu do príkazového riadka:

sudo postmap -v /etc/postfix/transport

Potom Postfix reštartujeme, aby sa nová konfigurácia prejavila:

sudo /etc/init.d/postfix restart

Exim4

Po nainštalovaní systému Exim4 ho môžeme spustiť pomocou nasledujúceho príkazu:

sudo /etc/init.d/exim4 start

Aby mailman spolupracoval so systémom Exim4, je potrebné nakonfigurovať Exim4. Ako sme už spomínali, v predvolenom stave Exim4 používa viacero konfiguračných súborov rozdielnych typov. Viac informácií sa nachádza na stránke Exim. Aby sme mohli mailman spustiť, je potrebné pridať nové konfiguračný súbor do nasledujúcich typov:

  • Main
  • Transport
  • Router

Exim vytvára hlavý konfiguračný súbor usporiadaním všetkých týchto mini konfiguračných súborov, preto je poradie týchto konfiguračných súborov veľmi dôležité.

Main

Všetky konfiguračné súbory typu main (hlavné) sú uložené v priečinku /etc/exim4/conf.d/main/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 04_exim4-config_mailman:

# start
# Home dir for your Mailman installation -- aka Mailman's prefix
# directory.
# On Ubuntu this should be "/var/lib/mailman"
# This is normally the same as ~mailman
MM_HOME=/var/lib/mailman
#
# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script. Value is normally "mailman"
MM_UID=list
MM_GID=list
#
# Domains that your lists are in - colon separated list
# you may wish to add these into local_domains as well
domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#
# These values are derived from the ones above and should not need
# editing unless you have munged your mailman installation
#
# The path of the Mailman mail wrapper script
MM_WRAP=MM_HOME/mail/mailman
#
# The path of the list config file (used as a required file when
# verifying list addresses)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# end

Transport

Všetky konfiguračné súbory typu transport (prenos) sú uložené v priečinku /etc/exim4/conf.d/transport/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 40_exim4-config_mailman:

  mailman_transport:
driver = pipe
command = MM_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MM_HOME
home_directory = MM_HOME
user = MM_UID
group = MM_GID

Router

Všetky konfiguračné súbory typu router (smerovač) sú uložené v priečinku /etc/exim4/conf.d/router/. Vytvoríme nový súbor s nasledujúcim obsahom, ktorý nazveme 101_exim4-config_mailman:

  mailman_router:
driver = accept
require_files = MM_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport
[Warning]

Poradie konfiguračných súborov main a transport môže mať ľubovoľné poradie, ale poradie konfiguračných súborov typu router musí byť rovnaké. Tento čiastkový súbor musí byť skôr ako súbor 200_exim4-config_primary. Tieto dva konfiguračné súbory obsahujú rovnaké typy informácií. Prvý aplikovaný súbor má prednosť. Viac informácií nájdete v zdrojoch na konci tejto časti.

Mailman

Po nainštalovaní systému mailman ho môžeme spustiť nasledujúcim príkazom:

sudo /etc/init.d/mailman start

Keď je systém mailman nainštalovaný, môžeme vytvoriť predvolenú mailovú diskusiu. Spustíme nasledujúci príkaz, ktorý diskusiu vytvorí:

sudo /usr/sbin/newlist mailman
  Enter the email address of the person running the list: bhuvan at ubuntu.com
  Initial mailman password:
  To finish creating your mailing list, you must edit your /etc/aliases (or
  equivalent) file by adding the following lines, and possibly running the
  `newaliases' program:

  ## mailman mailing list
  mailman:              "|/var/lib/mailman/mail/mailman post mailman"
  mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
  mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
  mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
  mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
  mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
  mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
  mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
  mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
  mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

  Hit enter to notify mailman owner...

  # 

Ak sme nastavili Postfix alebo Exim4 tak, aby rozpoznávali emaily z diskusie, nie je potrebné vytvárať nové záznamy v súbore /etc/aliases. Ak sme v konfiguračných súboroch vykonali akékoľvek zmeny, nesmieme zabudnúť reštartovať príslušné služby.

[Note]

Exim4 nepoužíva predchádzajúce aliasy na preposielanie mailov do systému Mailman, pretože používa na nadviazanie kontaktu discover. Keď chcete počas vytvárania diskusie aliasy potlačiť, môžete pridať riadok MTA=None do konfiguračného súboru /etc/mailman/mm_cfg.py.

Administrácia

Budeme predpokladať, že máme predvolenú inštaláciu. Cgi skripty systému mailman sú stále v priečinku /usr/lib/cgi-bin/mailman/. Mailman poskytuje webové administračné rozhranie, ku ktorému sa dostaneme tak, že do prehliadača zadáme nasledujúcu URL adresu:

http://nazovstanice/cgi-bin/mailman/admin

Na obrazovke sa zjaví predovlená mailová diskusia - mailman. Ak klikneme na názov diskusie, bude potrebné zadať atentifikačné heslo. Ak zadáme správne heslo (to ktoré sme zadali ako Initial mailman password), budeme môcť meniť administračné nastavenia tejto mailovej diskusie. Novú mailovú diskusiu môžeme vytvoriť pomocou nástroja príkazového riadka (/usr/sbin/newlist). Novú mailovú diskusiu j možné vytvoriť aj pomocou webového rozhrania.

Používatelia

Mailman poskytuje webové rozhranie aj pre používateľov. Toto rozhranie otvoríme zadaním nasledujúcej URL adresy do prehliadačal:

http://nazovstanice/cgi-bin/mailman/listinfo

Na obrazovke sa zjaví predvolená mailová diskusia - mailman. Ak klikneme na názov diskusie, zobrazí sa registračný formulár. Môžeme do neho zadať svoju emailovú adresu, meno (nepovinne) a heslo. Po zaregistrovaní, nám príde uvítací email a ďalej sa budeme riadiť podľa jeho inštrukcií.

Zdroje

GNU Mailman - Installation Manual

HOWTO - Using Exim 4 and Mailman 2.1 together

Za pozretie stojí aj stránka Mailman Ubuntu Wiki.

Filtrovanie pošty

Jedným z najväčších problémov elektronickej pošty sú nevyžiadané reklamné emaily Unsolicited Bulk Email (UBE), ktoré tiež poznáme pod názvom SPAM. Niektoré emaily tiež môžu obsahovať vírusy alebo inú formu škodlivého kódu. Podľa štatistík práve tieto správy predstavujú väčšinu emailových správ posielaných cez Internet.

Táto časť hovorí o integrovaní programov Amavisd-new, Spamassassin a ClamAV do agenta na transport pošty - programu Postfix. Postfix tiež dokáže filtrovať emaily použitím externých filtrov obsahu. Tieto filtre môžu určiť, či správa je spam bez toho aby ju bolo nutné kontrolovať náročnými aplikáciami. Dva najčastejšie používané filtre sú dkim-filter a python-policyd-spf.

  • Amavisd-new je prepojovací program, ktorý môže spustiť ľubovoľné množstvo programov na filtrovanie obsahu, napríklad kvôli detekcii spamu, vírusov, atď.

  • Spamassassin používa rôzne mechanizmy na filtrovanie emailov podľa toho, čo obsahujú.

  • ClamAV je otvorený antivírový program.

  • dkim-filter implementuje Sendmail Mail Filter (Milter) pre štandard DomainKeys Identified Mail (DKIM).

  • python-policyd-spf zapne kontrolu pomocou Sender Policy Framework (SPF) v programe Postfix.

Takto jednotlivé časti spolupracujú:

  • Postfix príme Emailovú správu.

  • Správa prejde cez externé filtre dkim-filter a python-policyd-spf.

  • Potom novú správu spracuje Amavisd-new.

  • Na kontrolu proti vírusom sa použije ClamAV. Ak správa obsahuje vírus, Postfix ju odmietne.

  • Správu bez vírusu analyzuje Spamassassin, ktorý zistí, či správa nie je spam. Spamassassin potom pridá do správy riadky hlavičky X-Header, ktoré umožnia programu Amavisd-new rozhodnúť čo má urobiť ďalej so správou.

Napríklad, ak je správa dostane 50 zlých bodov, správa môže byť automaticky vyradená z fronty bez upozornenia príjemcu. V opačnom prípade bude postúpená agentovi, ktorý doručí správu používateľovi.

Inštalácia

Návod na inštaláciu systému Postfix sa nachádza v časti Postfix.

Ostatné aplikácie nainštalujete zadaním nasledujúcich príkazov do príkazového riadka:

sudo apt-get install amavisd-new spamassassin clamav-daemon
sudo apt-get install dkim-filter python-policyd-spf

Existuje niekoľko voliteľných balíkov, ktoré sa dajú integrovať do programu Spamassassin, aby lepšie odhaľoval spam:

sudo apt-get install pyzor razor

Okrem hlavných filtrovacích aplikácií, sú potrebné aj nástroje na rozbaľovanie, ktoré umožnia kontrolu skomprimovaných príloh:

sudo apt-get install arj cabextract cpio lha nomarch pax rar unrar unzip zip zoo
[Note]

Ak systém niektorý z balíkov nenájde, skontrolujte, či je povolené úložisko multiverse v súbore /etc/apt/sources.list.

Ak urobíte v súbore zmeny, je potrebné pred spustením inštalačného príkazu spustiť ešte príkaz sudo apt-get update.

Konfigurácia

Teraz všetky systémy nastavíme tak, aby spolu fungovali a filtrovali poštu.

ClamAV

Predvolené správanie antivírového programu ClamAV je vyhovujúce. Viac o konfigurácii systému ClamAV sa dozvieme priamo v konfiguračných súboroch v priečinku /etc/clamav.

Používateľa s názvom clamav pridáme do skupiny amavis aby mal systém Amavisd-new prístup ku skenovaným súborom:

sudo adduser clamav amavis

Spamassassin

Spamassassin automaticky zistí voliteľné komponenty a použije ich ak sú dostupné. To znamená, že nie je potrebné nastavovať systémy pyzor a razor.

Otvoríme súbor /etc/default/spamassassin a aktivujeme démon Spamassassin. Zmeníme ENABLED=0 na:

ENABLED=1

Teraz reštartujeme démon:

sudo /etc/init.d/spamassassin start

Amavisd-new

Najskôr aktivujeme detekciu spamu a vírusov v Amavisd-new úpravou súboru /etc/amavis/conf.d/15-content_filter_mode:

use strict;

# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.

#
# Default antivirus checking mode
# Uncomment the two lines below to enable it
#

@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);


#
# Default SPAM checking mode
# Uncomment the two lines below to enable it
#

@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

1; # insure a defined return

Vracanie spamu je zlý nápad pretože spiatočná adresa je väčšinou falošná. Preto otvoríme súbor /etc/amavis/conf.d/20-debian_defaults a nastavíme $final_spam_destiny na D_DISCARD miesto D_BOUNCE, takto:

$final_spam_destiny       = D_DISCARD;

Ďalej môžeme zmeniť nasledujúce voľby aby sme viac správ označili ako spam:

$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.0; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 21.0; # triggers spam evasive actions
$sa_dsn_cutoff_level = 4; # spam level beyond which a DSN is not sent

Ak je menná adresa servera iná ako MX záznam, bude potrebné nastaviť $myhostname. Ak server prijíma maily z viacerých domén, prispôsobíme aj nastavenie @local_domains_acl. Upravíme súbor /etc/amavis/conf.d/50-user:

$myhostname = 'mail.nieco.sk';
@local_domains_acl = ( "nieco.sk", "nieco.org" );

Po dokončení nastavovania Amavisd-new systém reštartujeme:

sudo /etc/init.d/amavis restart
DKIM Whitelist

Amavisd-new môžeme nastaviť aj tak, aby automaticky dal na bielu listinu - Whitelist adresy z doménou podľa platných doménových kľúčov. V súbore /etc/amavis/conf.d/40-policy_banks sa nachádza niekoľko predkonfigurovaných domén.

Existuje niekoľko spôsobov ako pridať ďalšiu doménu na Whitelist:

  • 'nieco.sk' => 'WHITELIST',: pridá na bielu listinu adresy z domény "nieco.sk".

  • '.nieco.sk' => 'WHITELIST',: pridá na bielu listinu adresy z ľubovoľnej poddomény domény "nieco.sk", ktoré majú platný podpis.

  • '.nieco.sk/@nieco.sk' => 'WHITELIST',: pridá na bielu listinu adresy z poddomén domény "nieco.sk", ktoré používajú podpis rodičovskej domény nieco.sk.

  • './@nieco.sk' => 'WHITELIST',: pridá adresy ktoré majú platný podpis od "nieco.sk". Toto sa zvyčajne používa pri vytváraní diskusných skupín ktoré podpisujú svoje správy.

Doména môže mať viacero Whitelist nastavení. Po dokončení úprav je potrebné reštartovať amaisd-new:

sudo /etc/init.d/amavis restart
[Note]

Ak je doména pridaná na bielu listinu, správy z tejto domény nebudú kontrolované antivírovým programom ani spamovým filtrom.

Postfix

 Programy integrujeme do systému Postfix zadaním nasledujúceho príkazu do príkazového riadka:

sudo postconf -e 'content_filter = smtp-amavis:[127.0.0.1]:10024'

Potom otvoríme súbor /etc/postfix/master.cf a pridáme nasledujúce riadky na koniec súboru:

smtp-amavis     unix    -       -       -       -       2       smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Tiež pridáme nasledujúce dva riadky hneď pod transportnú službu "pickup":

         -o content_filter=
-o receive_override_options=no_header_body_checks

Toto ochráni správy, ktoré sú vygenerované ako hlásenie o spame aby neboli zatriedené medzi spam.

Teraz reštartujemet Postfix:

sudo /etc/init.d/postfix restart

Filtrovanie obsahu s detekciou spamu a vírusov je teraz zapnuté.

Testovanie

Najskôr otestujeme, či Amavisd-new SMTP načúva:

telnet localhost 10024
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
^]

V hlavičke správ, ktoré prešli cez filter by sme mali vidieť:

X-Spam-Level: 
X-Virus-Scanned: Debian amavisd-new at nieco.sk
X-Spam-Status: No, hits=-2.3 tagged_above=-1000.0 required=5.0 tests=AWL, BAYES_00
X-Spam-Level:
[Note]

Výstup môže byť rôzny ale dôležité je aby v hlavičke boli záznamy X-Virus-Scanned a X-Spam-Status.

Riešenie problémov

Najlepší spôsob ako zistiť prečo niečo nefunguje správne, je skontrolovať súbory so záznamami.

  • Postup ako nastaviť zaznamenávanie v systéme Postfix sa nachádza v časti “Riešenie problémov”.

  • Amavisd-new používa Syslog na posielanie správ do /var/log/mail.log. Detailnosť správ sa dá nastaviť pomocou nastavenia $log_level v súbore /etc/amavis/conf.d/50-user, ktoré môže mať hodnotu 1 až 5.

    $log_level = 2;
    
    [Note]

    Keď zvýšite detailnosť výstupu systému Amavisd-new, zvýši sa aj detailnosť výstupu systému Spamassassin.

  • Detailnosť výstupov systému ClamAV sa dá zvýšiť nastavením v súbore /etc/clamav/clamd.conf pomocou nasledujúceho nastavenia:

    LogVerbose true
    

    V predvolenom stave bude ClamAV odosielať správy do súboru /var/log/clamav/clamav.log.

[Note]

Po zmene nastavení záznamov reštartujte služby, aby sa nové nastavenia prejavili. Keď problém vyriešite, vráťte nastavenia späť na pôvodné hodnoty.

Zdroje

Viac informácií o filtrovaní mailov sa dozvieme na týchto stránkach:

Môžeme tiež požiadať niekoho o pomoc v #ubuntu-server IRC kanále na freenode.

Aplikácie na chatovanie

V tejto časti si povieme o tom, ako nainštalovať a nastaviť IRC server ircd-irc2 a povieme si aj o tom, ako nainštalovať a nastaviť Jabber server pre odosielanie tzv. okamžitých správ.

IRC server

 Úložiská softvéru Ubuntu obsahujú mnoho Internet Relay Chat serverov. Táto časť sa zameria na to, ako nainštalovať a nastaviť IRC server ircd-irc2.

Inštalácia

Ak chceme nainštalovať ircd-irc2, spustíme nasledujúci príkaz v príkazovom riadku:

sudo apt-get install ircd-irc2

Konfiguračné súbory sú uložené v priečinku /etc/ircd. Dokumentácia je dostupná zasa v priečinku /usr/share/doc/ircd-irc2.

Konfigurácia

IRC nastavenia môžeme zmeniť v konfiguračnom súbore /etc/ircd/ircd.conf. V tomto súbore môžeme nastaviť názov IRC stanice zmenou nasledujúceho riadka (miesto irc.localhost):

M:irc.localhost::Debian ircd default configuration::000A

Uistite sa, že alias tohto meno stanice je definovaný aj v DNS. Napríklad, ak nastavíme ako meno IRC stanice irc.nieco.sk, uistíme sa, či DNS server vráti pre mennú adresu irc.nieco.sk číselnú IP adresu. Názov IRC stanice by nemal byť rovnaký, ako názov samotnej stanice (počítača).

Nastavenia účtu IRC administrátora sa dajú upraviť pomocou nasledujúceho riadka:

A:Organization, IRC dept.:Daemon <ircd@example.irc.org>:Client Server::IRCnet:

Môžeme pridať ďalšie riadky, ktorými nastavíme IRC porty, na ktorých má server načúvať, prihlasovacie údaje operátora, spôsob autentifikácie klientov atď. Viac informácií sa nachádza vo vzorovom konfiguračnom súbore /usr/share/doc/ircd-irc2/ircd.conf.example.gz.

Úvodná správa, ktorá sa má zobraziť v IRC klientovi po pripojení k serveru, sa dá nastaviť v súbore /etc/ircd/ircd.motd.

Po vykonaní všetkých potrebných zmien reštartujeme IRC server použitím nasledujúceho príkazu:

sudo /etc/init.d/ircd-irc2 restart

Zdroje

Úložiská Ubuntu obsahujú aj ďalšie IRC servery, napríklad ircd-ircu a ircd-hybrid.

  • Viac informácií o IRC serveroch sa dozviete na stránke IRCD FAQ.

  • Viac informácií sa nachádza aj na stránke Ubuntu Wiki IRCD.

Jabber Server

Jabber je populárny protokol na odosielanie okamžitých správ (instant message) založený na otvorenom štandarde XMPP, ktorý používa mnoho populárnych aplikácií. Táto časť hovorí o tom, ako nastaviť Jabberd 2 v lokálnej sieti LAN. Toto nastavenie sa však dá prispôsobiť aj tak, aby poskytovaná služba fungovala aj cez Internet.

Inštalácia

Server jabberd2 nainštalujeme zadaní príkazu:

sudo apt-get install jabberd2

Konfigurácia

Na autentifikáciu do systému jabberd2 sa používa Berkely DB, ktorá sa nastavuje pomocou niekoľkých XML konfiguračných súborov. Je to veľmi jednoduchý spôsob autentifikácie. Ak nám takýto spôsob autentifikácie nevyhovuje, jabberd2 umožňuje autentifikáciu za pomoci systémov LDAP, MySQL, Postgresql, atď.

Najskôr otvoríme súbor /etc/jabberd2/sm.xml a zmeníme riadok:

  <id>jabber.nieco.sk</id>
[Note]

Miesto adresy jabber.nieco.sk zadajte mennú alebo číselnú adresu vášho servera.

Teraz v časti <storage> zmeníme hodnotu <driver> na:

   <driver>db</driver>

Potom otvoríme súbor /etc/jabberd2/c2s.xml a v časti <local> zmeníme hodnotu:

    <id>jabber.nieco.sk</id>

a v časti <authreg> upravíme hodnotu <module> na:

    <module>db</module>

Nakoniec reštartujeme jabberd2 aby sa prejavili nové nastavenia:

sudo /etc/init.d/jabberd2 restart

Teraz by sa malo dať pripojiť na server pomocou Jabber klienta ako napríklad Pidgin.

[Note]

Výhoda použitia Berkeley DB pre dáta používateľov je tá, že po nastavení nie je potrebná žiadna ďalšia údržba. Ak potrebujete mať väčšiu kontrolu nad kontami používateľov, odporúčame použiť iný spôsob autentifikácie.

Zdroje

Systém na správu verzií

Správa verzií je umenie správy zmien k informáciám. Donedávna to bol kľúčový nástroj najmä pre programátorov, ktorí pridávajú do programov malé zmeny a potom ich na druhý deň potrebujú zrušiť. Užitočnosť takéhoto softvéru pre správu verzií však dnes už siaha ďaleko za hranice vývoja softvéru. Kdekoľvek sa môže nájsť skupina ľudí, ktorá používa počítač na správu informácií, ktoré sa často menia. Takíto, ľudia určite využijú systém na správu verzií.

Bazaar

Bazaar je nový systém na kontrolu verzií sponzorovaný spoločnosťou Canonical, čo je spoločnosť, ktorá vyvíja Ubuntu. Na rozdiel od systémov Subversion a CVS, ktoré podporujú iba centrálny model úložiska, Bazaar podporuje aj distribuované riadenie verzii, čo ľuďom umožňuje efektívnejšie spolupracovať. Bazaar bol vyvinutý na maximalizovanie úrovne spolupatričnosti komunity na otvorených projektoch.

Inštalácia

Do príkazového riadka zadáme nasledujúci príkaz:

sudo apt-get install bzr

Konfigurácia

Aby sme uviedli samého seba do bzr, použijeme príkaz whoami:

$ bzr whoami 'Jozef Mrkva <jozef.mrkva@gmail.com>'

Používanie systému Bazaar

Súčasťou systému Bazaar je i dokumentácia, ktorá sa nachádza v priečinku /usr/share/doc/bzr/html. Tento návod je vhodný pre začiatočníkov. Príkaz bzr má tiež vstavaného pomocníka:

$ bzr help

Ak sa chceme dozvedieť viac, napríklad o príkaze foo, zadáme:

$ bzr help foo

Prepojenie so systémom Launchpad

Aj keď je Bazaar veľmi užitočný ako samostatný systém, poskytuje aj možnosť prepojenia so systémom Launchpad, čo je systém určený na spoluprácu pri vývoji, ktorý používa spoločnosť Canonical a rozsiahla komunita na správu a rozširovanie samotného Ubuntu. Informácie o tom, ako sa dá Bazaar použiť so systémom Launchpad na spoluprácu na otvorených projektoch, sa nachádzajú na stránke http://bazaar-vcs.org/LaunchpadIntegration.

Subversion

Subversion je systém s otvoreným zdrojovým kódom na správu verzií. Pomocou Subversion, môžete zaznamenať históriu zdrojových súborov a dokumentov. Spravuje súbory a priečinky v čase. Strom súborov je umiestnený v centrálnom úložisku. Úložisko je veľmi podobné súborovému serveru s tým rozdielom, že si pamätá každú zmenu vykonanú v súboroch a priečinkoch.

Subversion: stručný návod

Inštalácia

Aby sme mohli pristupovať k úložisku systému Subversion cez HTTP protokol, musíme nastaviť webový server. Správnu funkčnosť so systémom Subversion vykazuje webový server Apache2. Návod, ako nainštalovať webový server Apache2, nájdeme v časti HTTPD - webový server Apache2. Aby sme mohli do úložiska systému Subversion pristupovať cez HTTPS protokol, musíme nainštalovať a nastaviť digitálny certifikát pre webový server Apache 2. Návod na nastavenie digitálneho certifikátu nájdeme v časti Nastavenie HTTPS.

Subversion nainštalujeme zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install subversion libapache2-svn

Konfigurácia servera

V tomto kroku budeme predpokladať, že máme nainštalované vyššie spomínané balíky. V tejto časti si povieme, ako môžeme vytvoriť úložisko systému Subversion a vstúpiť do projektu.

Vytvorenie úložiska Subversion

Úložisko systému Subversion môžeme vytvoriť zadaním nasledujúceho príkazu do príkazového riadka:

svnadmin create /cesta/k/uložisku/projektu

Importovanie súborov

Po vytvorení úložiska môžeme naimportovať súbory do úložiska. Import do priečinka spustíme zadaním nasledujúceho príkazu do príkazového riadka:

svn import /cesta/k/import/priečinku file:///cesta/k/úložisku/projektu

Spôsoby prístupu

Do úložísk systému Subversion sa dá vstúpiť rôznymi spôsobmi - cez lokálny disk alebo pomocou rôznych sieťových protokolov. Umiestnenie úložiska však vždy zadávame vo forme URL adresy. V nasledujúcej tabuľke je popis rôznych metód prístupu.

Tabuľka 14.1. Metódy prístupu

Schéma

Spôsob prístupu

file://

Priamy prístup do úložiska (ak je na lokálnom disku)

http://

Prístup cez protokol WebDAV k Apache2 web serveru s podporou Subversion

https://

Rovnaký ako http://, len spolu s SSL šifrovaním

svn://

Prístup cez vlastný protokol k svnserve serveru

svn+ssh://

Rovnaký ako svn://, ale cez SSH tunel


V tejto časti si ukážeme, ako nastaviť Subversion, aby všetky tieto metódy prístupu fungovali. Povieme si len o základných nastaveniach. Viac informácii sa nachádza v knihe svn book.

Priamy prístup do úložiska (file://)

Toto je najjednoduchšia metóda prístupu. Nevyžaduje, aby bol spustený nejaký serverový proces Subversion. Táto metóda prístupu sa používa na prístup z rovnakej stanice ako je tá, na ktorej je umiestnené úložisko Subversion. Syntax príkazu, ktorý zadáme do príkazového riadka je nasledujúci:

svn co file:///cesta/k/uložisku/projektu

alebo

svn co file://localhost/cesta/k/uložisku/projektu
[Note]

Ak nezadáme názov stanice, je potrebné použiť tri lomky (///) -- dve pre protokol (file:// ) a jedno ako označenie kmeňového priečinka súborového systému. Ak zadáme názov stanice (localhost), stačia iba dve lomky (//).

Oprávnenia k úložisku závisia od oprávnení použíitých v súborovom systéme. Ak používateľ má právo na čítanie a zápis, môže prečítať obsah úložiska a zapisovať do neho.

Prístup cez protokol WebDAV (http://)

Ak chceme do úložiska Subversion pristupovať cez protokol WebDAV, musíme nastaviť webový server Apache 2. Musíme pridať nasledujúce riadky medzi zančky <VirtualHost> a </VirtualHost> do konfiguračného súboru /etc/apache2/apache2.conf:

 <Location /svn>
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Názov nášho úložiska"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
[Note]

Predchádzajúce konfiguračné riadky predpokladajú, že úložisko Subversion bolo vytvorené v priečinku /home/svn/ pomocou príkazu svnadmin. Bude sa dať ku nemu pristupovať pomocou URL adresy htpp://názov_stanice/svn/nazov_úložiska.

Aby bolo možné importovať a dokladať súbory do úložiska Subversion cez protokol HTTP, je potrebné, aby úložisko vlastnil používateľ HTTP. V systéme Ubuntu sa HTTP používateľ volá www-data. Vlastníka úložiska zmeníme zadaním nasledujúceho príkazu do príkazového riadka:

sudo chown -R www-data:www-data /cesta/k/úložisku
[Note]

Po zmene vlastníka úložiska na www-data nebude možné importovať a odosielať súbory do úložiska pomocou príkazu svn import file:/// pod iným používateľom než je www-data.

V ďalšom kroku vytvoríme súbor /etc/subversion/passwd, ktorý bude obsahovať autentifikačné informácie o používateľoch. Súbor vytvoríme zadaním nasledujúceho príkazu do príkazového riadka (ten vytvorí súbor a pridá prvého používateľa):

sudo htpasswd -c /etc/subversion/passwd meno_pouzivatela

Ak chceme pridať ďalších používateľov, môžeme vynechať prepínač "-c" inak by bol súbor nanovo vytvorený. Použijeme teda takýto príkaz:

sudo htpasswd /etc/subversion/password meno_pouzivatela

Po spustení príkazu bude potrebné zadať heslo. Po zadaní hesla sa pridá používateľ. Odteraz sa nový používateľ bude môcť pripojiť do úložiska spustením nasledujúceho príkazu:

svn co http://menoservera/sv
[Warning]

Heslo sa bude prenášať ako bežný text. Ak sa obávate odchytenia hesla, je potrebné použiť SSL šifrovanie. Viac informácii je v nasledujúcom texte.

Prístup cez protokol WebDAV s SSL šifrovaním (https://)

Spôsob pripojenia do úložiska Subversion cez protokol WebDAV s SSL šifrovaním (https://) je podobný prístupu http:// s tým rozdielom, že musíme nainštalovať a nastaviť digitálny certifikát pre webový server Apache2. Keď chceme použiť SSL spolu so Subversion pridáme konfiguráciu Apache2 uvedenú vyššie do súboru /etc/apache2/sites-available/default-ssl. Viac informácií o nastavovaní Apache2 spolu so SSL nájdeme v časti Konfigurácia HTTPS.

Môžeme nainštalovať digitálny certifikát podpísaný certifikačnou autoritou alebo nainštalovať sebou podpísaný certifikát.

Za predpokladu, že máme nainštalovaný a nastavený digitálny certifikát pre webový server Apache 2, môžeme vstúpiť do úložiska Subversion tak, ako je to popísané v predchádzajúcej časti. Spôsob prístupu je presne ten istý, s tým rozdielom, že na prístup do úložiska Subversion použijeme protokol https://.

Prístup pomocou vlastného protokolu (svn://)

Po vytvorení úložiska Subversion môžeme nastaviť prístupový protokol. Otvoríme súbor /cesta/k/úložisku/projektu/conf/svnserve.conf a nastavíme riadenie prístupu. Napríklad, ak chceme nastaviť autentifikáciu, odpoznámkujeme nasledujúce riadky v konfiguračnom súbore:

# [general]
# password-db = passwd

Po odpoznámkovaní predchádzajúcich riadkov môžeme upraviť zoznam používateľov v súbore passwd. Otvoríme súbor passwd, ktorý sa nachádza v rovnakom priečinku a pridáme nového používateľa. Syntax je nasledovná:

menopouzivatela = heslo

Viac informácií sa dozviete priamo v súbore.

Teraz môžeme vstúpiť do úložiska Subversion cez vlastný protokol svn://, buď z rovnakého alebo vzdialeného počítača, spustením príkazu svnserve. Syntax je nasledovná:

$ svnserve -d --foreground -r /cesta/k/úložisku
# -d -- režim démona
# --foreground -- spustí na popredí (užitočné pre ladenie)
# -r -- poskytnúť ako kmeňový priečinok

Viac informácie o príkaze získame po zadaní:
$ svnserve --help

Po spustení tohto príkazu Subversion začne načúvať na predvolenom porte (3690). Ak sa chceme pripojiť do úložiska project, musíme spustiť nasledujúci príkaz v príkazovom riadku:

svn co svn://nazovstanice/project project --username meno_pouzivatela

Ak je server tak nastavený, vyžiada si zadanie hesla. Po autentifikácii sa porovná kód s úložiskom Subversion. Ak chceme synchronizovať úložisko s lokálnou kópiou projektu, môžeme použiť príkaz svn update. Syntax príkazu je nasledovná:

cd priečinok_projektu ; svn update

Viac informácií o používaní podpríkazov príkazu svn sa dozvieme v referenčnej príručke. Napríklad, ak sa chceme dozvedieť viac o príkaze co (checkout), spustíme nasledujúci príkaz v príkazovom riadku:

svn co help

Prístup pomocou vlastného protokolu cez SSH tunel (svn+ssh://)

Konfigurácia a spustenie serverového procesu je rovnaká ako pri metóde svn://. Detaily sa nachádzajú v predchádzajúcej časti. V tomto kroku predpokladáme, že sme už vykonali predchádzajúce kroky a že sme spustili Subversion server pomocou príkazu svnserve.

Predpokladáme tiež, že je na počítači spustený ssh server, ktorý umožňuje pripojenia. Aby sme sa o tom uistili, prihlásime sa k počítaču pomocou ssh. Ak sme sa prihlásili, všetko funguje správne. Ak sa nám prihlásiť nepodarilo, je potrebné najskôr odstrániť tento problém. Návod, ako nainštalovať a nastaviť ssh server, sa nachádza v časti OpenSSH server.

Protokol svn+ssh:// sa používa na prístup k úložisku Subversion pomocou SSL šifrovania. Dátový prenos je šifrovaný pomocou tejto metódy. Ak sa chceme pripojiť do úložiska (napríklad pomocou príkazu checkout), použijeme nasledujúcu syntax:

svn co svn+ssh://nazovstanice/var/svn/repos/project
[Note]

Pri použití tejto metódy je potrebné použiť celú cestu (/cesta/k/úložisku/projektu) k úložisku Subversion.

Ak je server tak nastavený, vyžiada si prístupové heslo. Musíme zadať heslo, ktorým sa prihlasujeme cez ssh. Po prihlásení sa skontroluje kód z úložiska Subversion.

CVS Server

CVS je systém na správu verzií. Môžete ho použiť na zaznamenanie histórie zdrojových súborov.

Inštalácia

CVS nainštalujeme spustením nasledujúceho príkazu z príkazového riadka:

sudo apt-get install cvs

Po nainštalovaní cvs, by sme mali nainštalovať xinetd, aby sme mohli spustiť a zastaviť cvs server. V príkazovom riadku zadáme nasledujúci príkaz, ktorým nainštalujeme xinetd:

sudo apt-get install xinetd

Konfigurácia

Po nainštalovaní cvs sa automaticky inicializuje úložisko. V predvolenom stave sa nachádza v priečinku /var/lib/cvs. Toto umiestnenie môžeme zmeniť pomocou príkazu:

cvs -d /naše/nove/cvs/úložisko init

Keď sme inicializovali úložisko, nastavíme xinetd, aby spustil CVS server. Nasledujúce riadky nakopírujeme do súboru /etc/xinetd.d/cvspserver.

service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
user = root
wait = no
type = UNLISTED
server = /usr/bin/cvs
server_args = -f --allow-root /var/lib/cvs pserver
disable = no
}

 

[Note]

Nezabudnite zmeniť cestu k úložisku, ak ste zmenili predvolené úložisko (/var/lib/cvs).

Po nakonfigurovaní xinetd môžeme spustiť cvs server zadaním nasledujúceho príkazu:

sudo /etc/init.d/xinetd restart

Či je CVS server spustený, sa môžeme presvedčiť zadaním nasledujúceho príkazu:

sudo netstat -tap | grep cvs

Po spustení tohto príkazu by sme mali vidieť nasledujúci riadok alebo riadok jemu podobný:

tcp        0      0 *:cvspserver            *:* LISTEN 

Teraz môžeme pokračovať pridaním používateľov nových projektov a spravovať CVS server.

[Warning]

CVS umožňuje pridávať používateľov nezávisle od operačného systému. Pravdepodobne najjednoduchší spôsob pre CVS je ale použitie Linuxových používateľov, aj napriek možným bezpečnostým rizikám. Podrobnosti nájdete v CVS manuále.

Pridanie projektov

V tejto časti si povieme, ako pridať nový projekt do CVS úložiska. Vytvoríme priečinok a pridáme potrebný dokument a zdrojové súbory do priečinka. Teraz spustíme nasledujúci príkaz, ktorým pridáme projekt do CVS úložiska:

cd náš/projekt
cvs -d :pserver:pouzivatel@nieco.sk:/var/lib/cvs import -m "Importovanie projektu do CVS úložiska" . novy_projekt start
[Tip]

Miesto cesty k úložisku môžete použiť premmenú prostredia s názvom CVSROOT. Keď exportujete premennú prostredia CVSROOT, môžete vynechať prepínač -d v predchádzajúcom príkaze cvs.

Reťazec novy_projekt je označenie poskytovateľa a start je označenie vydania. V tejto chvíli reťazce neslúžia žiadnemu účelu, ale pretože CVS ich vyžaduje, musíme ich zadať.

[Warning]

Keď pridáte nový projekt, používateľ CVS musí mať právo na zápis do CVS úložiska (/var/lib/cvs). V predvolenom stave má právo na zápis skupina src, takže stačí ak používateľa do tejto skupiny. Potom môžeme pridávať a spravovať projekty v CVS úložisku.

Sieť Windows

Počítačové siete sa často skladájú z počítačov, na ktorých sú nainštalované rôzne operačné systémy. Aj keď by bolo zábavnék keby celá sieť pozostávala iba zo staníc, na ktorých by boli iba operačné systémy Ubuntu Desktop a Ubuntu Server, niektoré sieťové prostredia musia pozostávať zo systémov Ubuntu aj Microsoft ® Windows ® a oba musia spoločne pracovať v harmónii. Táto časť príručky k Ubuntu Serveru hovorí o princípoch a nástrojoch, ktoré sa používajú pri nastavovaní systému Ubuntu Server tak, aby umožňoval zdieľanie sieťových zdrojov s počítačmi so systémom Windows.

Úvod

Pre úspešné prepojenie s klientami Windows Ubuntu zahrňuje poskytovanie a integrovanie služieb, ktoré sú spoločné s rozhraním Windows. Služby na zdieľanie dát a informácií o počítačoch a používateľoch pripojených do siete môžeme rozdeliť do troch hlavných kategórií podľa funkcionality:

  • Súborové a tlačové služby. Tieto služby využívajú protokol Server Message Block (SMB) na zdieľanie súborov, priečinkov, diskových zväzkov a tlačiarní v sieti.

  • Adresárové služby. Zdieľanie dôležitých informácii o počítačoch a používateľoch siete umožňujú technológie Lightweight Directory Access Protocol (LDAP) a Microsoft Active Directory®.

  • Autentifikácia a prístup. Stanovenie identity počítača a používateľov v sieti a určenie, či je počítač alebo používateľ autorizovaný, sa používajú také princípy a technológie, akými sú práva súborového systému, skupinová politika a autentifikačná služba Kerberos.

Našťastie systém Ubuntu môže všetky tieto služby poskytnúť klientom so systémom Windows a zdielať s nimi sieťové zdroje. Jednou z hlavných častí softvéru, ktorý poskytuje systém Ubuntu pre sieť Windows, je systém Samba - balík serverových aplikácií SMB a nástrojov.

Táto časť príručky systému Ubuntu Server hovorí o niektorých najčastejších spôsoboch využitia systému Samba, o inštalácii a konfigurácii potrebných balíkov. Podrobnejšiu dokumentáciu a informácie o systéme Samba nájdeme na stránke Samba website.

Samba ako súborový server

Jeden z najčastejších spôsobov, ako spolu zapojiť počítače so systémami Ubuntu a Windows do jednej siete, je nastaviť systém Samba ako súborový server. Táto časť hovorí o spôsobe, akým sa Samba server nastaví tak, aby zdieľal súbory so stanicami so systémom Windows.

Server nakonfigurujeme tak, aby zdieľal súbory so všetkými stanicami v sieti bez toho, aby vyžadoval prístupové heslo. Keby sme potrebovali nastaviť prísnejšie pravidlá pre prístup, návod nájdeme v časti Zabezpečenie súborového a tlačového servera Samba.

Inštalácia

Najskôr nainštalujeme balík samba. V príkazovom riadku zadáme:

sudo apt-get install samba

To je všetko, čo budeme potrebovať. Teraz môžeme nastaviť systém Samba tak, aby zdieľal súbory.

Konfigurácia

Hlavný konfiguračný súbor systému Samba je /etc/samba/smb.conf. Predvolený konfiguračný súbor obsahuje veľké množstvo komentárov, ktoré popisujú jednotlivé nastavenia.

[Note]

V predvolenom konfiguračnom súbore sa nenachádzajú všetky nastavenia, ktoré je možné použiť. Viac sa dozviete na man stránkach smb.conf alebo na stránke Samba HOWTO Collection.

  1. Najskôr nastavíme nasledujúce hodnoty nastavení v časti [global] súboru /etc/samba/smb.conf:

       workgroup = NIECO
    ...
    security = user

    Parameter security je takmer na konci časti [global] a je v predvolenom stave zapoznámkovaný, preto ho odpoznámkujeme. Nastavenie pracovnej skupiny NIECO prispôsobíme nášmu prostrediu.

  2. Vytvoríme novú časť na konci súboru alebo odkomentujeme jeden z existujúcich príkladov zdieľaného priečinka:

    [zdielanie]
    comment = Zdieľanie pomocou súborového servera Ubuntu
    path = /srv/samba/zdielanie
    browsable = yes
    guest ok = yes
    read only = no
    create mask = 0755
    • comment: krátky popis zdieľania. Zmeňte ho podľa potrieb.

    • path: cesta k priečinku, ktorý chceme zdielať.

      V tomto príklade sme použili cestu v tvare /srv/samba/zdielany_priecinok, pretože podľa štandardu Filesystem Hierarchy Standard (FHS) je priečinok /srv určený práve na takýto typ dát. Technicky môže byť priečinok, ktorý chceme pomocou Samby zdieľať, kdekoľvek v súborovom systéme za predpokladu, že sú správne nastavené práva, ale odporúča sa dodržiavanie štandardov.

    • browsable: povolí klientom Windows prehliadať obsah zdielaného priečinka pomocou programu Windows Explorer.

    • guest ok: umožňuje klientom pripojiť sa bez zadania hesla.

    • read only: určuje či je zdieľanie iba na čítanie alebo či sa do neho dá aj zapisovať. Právo na zápis je povolené, iba ak je nastavená hodnota no, tak ako je to v našom príklade. Ak je hodnota yes, potom je zdieľanie určené iba na čítanie.

    • create mask: určuje práva na nové súbory, ktoré sa nastavia pri ich vytvorení.

  3. Teraz, keď je systém Samba nastavený, je potrebné vytvoriť priečinok a nastaviť práva. V príkazovom riadku zadáme:

    sudo mkdir -p /srv/samba/zdielanie
    sudo chown nobody.nogroup /srv/samba/zdielanie/
    [Note]

    Prepínač -p povie príkazu mkdir aby vytvoril všetky priečinky na zadanej ceste, ak ešte nie sú vytvorené. Priečinok zdielanie zmente podľa svojich potrieb.

  4. Nakoniec reštartujeme službu samba, aby sa prejavila nová konfigurácia:

    sudo /etc/init.d/samba restart
[Warning]

Znova pripomíname, že predchádzajúca konfigurácia umožňuje prístup všetkým klientom z lokálnej siete. Bezpečnejšiu konfiguráciu nájdete v časti Zabezpečenie súborového a tlačového servera Samba.

Klienti so systémom Windows sa teraz môžu pripojiť k súborovému serveru Ubuntu a prehliadať zdieľané priečinky. Aby sme zistili, či všetko funguje správne, môžeme zo systému Windows v zdieľanom priečinku vytvoriť podpriečinok.

Ak chceme vytvoriť ďalšie zdieľania, vytvoríme novú časť [priečinok] v súbore /etc/samba/smb.conf a reštartujeme systém Samba. Nesmieme tiež zabudnúť vytvoriť priečinok a nastaviť mu správne práva.

Zdroje

Samba ako tlačový server

Iné často používané použitie systému Samba je konfigurácia a zdieľanie tlačiarní v sieti lokálne nainštalovaných k serveru so systémom Ubuntu. Podobne, ako v časti "Samba ako súborový server", aj v tejto časti nastavíme systém Samba tak, aby ktorýkoľvek klient lokálnej siete mohol použiť nainštalované tlačiarne bez zadania používateľského mena a hesla.

Viac informácií o bezpečnejšom nastavení nájdeme v časti "Zabezpečenie súborového a tlačového servera Samba".

Inštalácia

Pred nainštalovaním a nastavením systému Samba je dobré, ak už máme funkčnú inštaláciu systému CUPS. Viac informácií nájdeme v časti "CUPS - Tlačový server".

Balík samba nainštalujeme zadaním príkazu:

sudo apt-get install samba

Konfigurácia

Po nainštalovaní balíka samba upravíme konfiguráciu v súbore /etc/samba/smb.conf. Zmeníme pracovnú skupinu workgroup, tak aby zodpovedala nastaveniu našej siete a zmeníme tiež parameter security na hodnotu share:

   workgroup = NIECO
...
security = user

V časti [printers] zmeníme nastavenie guest ok na yes:

   browsable = yes
guest ok = yes

Po ukončení úprav konfiguračného súboru smb.conf reštartujeme systém Samba:

sudo /etc/init.d/samba restart

Systém Samba je už nastavený tak, aby automaticky nazdieľal všetky nainštalované tlačiarne. Stačí nainštalovať ovládač k zdieľanej tlačiarni na staniciach so systémom Windows.

Zdroje

Zabezpečenie súborového a tlačového servera Samba

Bezpečnostné režimy systému Samba

Existujú dve bezpečnostné úrovne dostupné pre sieťový protokol Common Internet Filesystem (CIFS): user-level (používateľská úroveň) a share-level (úroveň zdieľania). Implementácia bezpečnostných režimov systému Samba umožňuje väčšiu flexibilitu. Poskytuje štyri spôsoby používateľskej úrovne bezpečnosti a jeden spôsob na implementáciu úrovne zdieľania:

  • security = user: pri pripojení k zdieľanému prostriedku vyžaduje od klientov, aby zadali používateľské meno a heslo. Používateľské kontá v systéme Samba sú iné ako systémové kontá, ale pomocou balíka libpam-smbpass sa dajú zosynchronizovať systémoví používatelia a ich heslá s databázou používateľov systému Samba.

  • security = domain: tento mód umožní serveru Samba, aby sa pre klientov Windows javil ako primárny radič domény - Primary Domain Controller (PDC), záložný radič domény - Backup Domain Controller (BDC) alebo členský server domény - Domain Member Server (DMS). Viac informácii je v časti Samba ako radič domény.

  • security = ADS: umožňuje serveru Samba pripojiť sa do domény Active Directory ako bežný člen. Viac informácii sa nachádza v časti Integrácia systému Samba do Active Directory.

  • security = server: tento mód zostal zo staršej verzie systému Samba a umožňuje systému stať sa členským serverom. Kvôli bezbečnostným problémom by nemal byť používaný. Viac informácii sa nachádza na stránke Server Security.

  • security = share: umožňuje klientom, aby sa pripojili k zdieľaným prostriedkom bez zadania používateľského mena a hesla.

Bezpečnostný mód, ktorý zvolíme, zavisí od prostredia a od toho, čo chceme pomocou servera Samba dosiahnuť.

Security = User

V tejto časti zmeníme konfiguráciu súborového a tlačového servera Samba, ktorú sme uviedli v častiach Samba ako súborový server a Samba ako tlačový server tak, aby vyžadoval autentifikáciu.

Najskôr nainštalujeme balík libpam-smbpass, ktorý zosynchronizuje systémových používateľov s databázou používateľov systému Samba:

sudo apt-get install libpam-smbpass
[Note]

Ak ste pri inštalácii systému Ubntu vybrali súčasť Samba Server, balík libpam-smbpass je už nainštalovaný.

Otvoríme konfiguračný súbor /etc/samba/smb.conf a v časti [share] zmeníme:

guest ok = no

Nakoniec reštartujeme systém Samba, aby sa nové nastavenie prejavilo:

sudo /etc/init.d/samba restart

Odteraz používateľ pri pokuse pripojiť sa k zdieľaným priečinkom alebo tlačiarňam bude musieť zadať svoje používateľské meno a heslo.

[Note]

Ak chcete pripojiť sieťovú jednotku natrvalo, môžete zaškrtnúť pole “Znovu pripojiť pri prihlásení”. To zabezpečí, že používateľské meno a heslo zadáte iba raz (ak sa heslo po čase nezmení).

Zabezpečenie zdieľaného prostriedku

Existuje niekoľko možností, ako zvýšiť bezpečnosť pri jednotlivých zdieľaných priečinkoch. Najčastejšie používané možnosti si ukážeme pomocou časti [zdielanie].

Skupiny

Skupina definuje skupinu počítačov alebo používateľov, ktorí majú rovnaké prístupové práva k určitým sieťovým prostriedkom a umožňujú naraz riadiť prístup k tomuto prostriedku. Napríklad ak zadefinujeme skupinu zakaznici, a ktorá bude obsahovať používateľov peter, danka a robert, a druhú skupinu podpora, ktorá bude obsahovať používateľov danka, jurko a vinco a určitý sieťový prostriedok bude nastavený tak aby umožňoval prístup skupine podpora, k prostriedku budú mať prístup danka, jurko a vinco a používatelia peter, a robert k prostriedku prístup mať nebudú. Pretože danka je členom oboch skupín, bude mať prístup k prostriedkom jednej skupiny aj k prostriedkom druhej skupiny. Ostatný členovia skupín budú mať prístup iba k prostriedkom svojej skupiny.

V predvolenom stave Samba hľadá definíciu skupín v súbore /etc/group, podľa ktorého určí ktorý používatelia patria do daných skupín. Viac informácií o pridávaní a odstraňovaní používateľov sa nachádza v časti "Pridávanie a odstraňovanie používateľov”.

Keď sa chceme niektorú skupinu použiť v konfiguračnom súbore systému Samba /etc/samba/smb.conf, aby sme odlíšili skupinu od používateľov, vložíme pred názov skupiny znak "@". Napríklad ak chceme použiť skupinu s názvom sysadmin v určitej časti súboru /etc/samba/smb.conf, zadáme názov skupiny @sysadmin.

Oprávnenia k súborom

Oprávnenia k súborom definujú prístupové práva počítačov alebo používateľov k jednotlivým zdielaným priečinkom a súborom. Tieto oprávnenia sa pre jednotlivé priečinky dajú nastaviť v súbore /etc/samba/smb.conf.

Napríklad ak sme definovali zdieľane s názvom zdieľanie a chceme skupine používateľov zakaznici umožniť iba čítanie ale súčasne chceme skupine sysadmin a používateľovi vinco povoliť aj právo na zápis, potom v súbore /etc/samba/smb.conf pridáme do časti [zdielanie] nasledujúce riadky:

read list = @zakaznici
write list = @sysadmin, vinco

Iný spôsob nastavenia práv pre systém Samba je pridelenie administrátorských oprávnení na jednotlivé zdieľané zdroje. Používatelia, ktorí majú administrátorské oprávnenia môžu čítať, zapisovať alebo modifikovať akékoľvek informácie, ktoré sa nachádzajú v zdieľanom prostriedku, ku ktorému má pridelené práva administrátor.

Napríklad ak chceme prideliť používateľovi maria, prideliť práva správcu k priečinku zdielanie otvoríme súbor /etc/samba/smb.conf file a pridáme nasledujúci riadok do časti [zdielanie]:

admin users = maria

Po uložení súboru /etc/samba/smb.conf reštartujeme systém Samba aby sa zmeny prejavili:

sudo /etc/init.d/samba restart
[Note]

Aby platili nastavenia read list a write list bezpečnostný mód systému Samba nesmie byť nastavený na security = share

Teraz keď sme systém Samba nastavili aby obmedzoval prístup jednotlivých skupín a používateľov, je potrebné upraviť aj oprávnenia súborového systému.

Tradičné Linuxové nastavenie práv pre súborový systém nezodpovedá tzv. Access Control Lists (ACLs) zoznamom na riadenie prístup pre systém Windows NT. Našťastie POSIXové ACLs sú dostupné aj v systéme Ubuntu a poskytujú jemnejšie nastavenia. Ak napríklad chceme povoliť ACLs pre diskový oddiel pripojený do priečinka /srv so súborovým systémom EXT3, otvoríme /etc/fstab a pridáme možnosť acl:

UUID=66bcdd2e-8861-4fb0-b7e4-e61c569fe17d /srv  ext3    noatime,relatime,acl 0       1

Potom znova pripojíme diskový oddiel:

sudo mount -v -o remount /srv
[Note]

Predchádzajúci príklad predpokladá, že k /srv je pripojený samostatný diskový oddiel. Keby bol priečinok /srv iba jedným z priečinkov v súborovom systéme /, bolo by potrebné reštartovať celý systém.

Aby sa nastavenie systému Samba zhodovalo s nastaveniami, ktoré sme doteraz vykonali, t.j. aby skupina sysadmin mala právo na čítanie, zápis a spúšťanie súborov v priečinku /srv/samba/zdielanie, skupina zakaznici mala právo iba na čítanie a spúšťanie súborov a aby bol vlastníkom priečinka používateľ maria, zadáme nasledujúce príkazy do príkazového riadku:

sudo chown -R maria /srv/samba/zdielanie/
sudo chgrp -R sysadmin /srv/samba/zdielanie/
sudo setfacl -R -m g:zakaznici:rx /srv/samba/zdielanie/
[Note]

Príkaz setfacl pridelí právo na spúšťanie súborov na všetky súbory v priečinku /srv/samba/zdielanie, čo môžete ale nemusíte chcieť použiť.

Odteraz bude pre klientov systému Windows platiť nové nastavenie oprávnení. Viac informácií o POSIXových ACLs sa dozviete na man stránkach pre príkazy acl a setfacl.

Samba profil pre AppArmor

Ubuntu obsahuje aj bezpečnostný modul AppArmor, ktorý obmedzuje prístup jednotlivých programov systému do vymedzených priečinkov. Predvolený profil systému AppArmor pre systém Samba je potrebné prispôsobiť našej konfigurácii. Viac informácii sa dozvieme v časti AppArmor.

Predvolené profily AppArmor pre súbory /usr/sbin/smbd a /usr/sbin/nmbd, ktoré sú démonmi systému Samba, sú súčasťou balíka apparmor-profiles. Nainštalujeme ho zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install apparmor-profiles
[Note]

Tento balík obsahuje profily aj pre niekoľko ďalších programov.

V predvolenom stave sú profily pre smbd a nmbd v tzv. upozorňovacom režime ktorý systému Samba umožňuje správne pracovať bez potreby meniť profil a neoprávnený prístup neblokuje ale iba zaznamená. Ak chceme profil pre smbd prepnúť do tzv. prinucovacieho režimu a súčasne chceme aby systém Samba pracoval tak, ako to od neho očakávame, je potrebné upraviť nastavenie priečinkov tak, aby zodpovedali zdieľaným priečinkom.

Otvoríme súbor /etc/apparmor.d/usr.sbin.smbd a pridáme informácie o priečinku [zdielanie], ktorý sme použili v našom príklade:

/srv/samba/zdielanie/ r,
/srv/samba/zdielanie/** rwkix,

Teraz umiestnime profil medzi vynucujúce a nanovo ho načítame:

sudo aa-enforce /usr/sbin/smbd
cat /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r

Teraz by sa do priečinka malo dať zapisovať, čítať a spúšťať v ňom súbory, a démon smbd bude mať prístup iba k tomuto priečinku a súborom, ktoré sú v ňom. Rovnaký záznam je potrebné vytvoriť pre každý zdieľaný priečinok, ktorý je nakonfigurovaný v systéme Samba. Všetky pokusy o neoprávnený prístup budú zaznamenané v súbore /var/log/syslog.

Zdroje

  • Podrobnejšie informácie o nastavení systému Samba sa nachádzajú na stránke Samba HOWTO Collection

  • Príručka je dostupná aj vo verzii pre tlač.

  • Ďalším dobrým zdrojom je O'Reillyho Using Samba.

  • Kapitola 18 zo Samba HOWTO Collection je zameraná na bezpečnosť.

  • Viac informácií o systéme Samba a riadení prístupov sa môžeme dozvedieť na stránke Samba ACLs page.

Samba ako radič domény

Aj keď sa samba nedá použiť ako primárny radič domény v Active Directory - Active Directory Primary Domain Controller (PDC), Samba server môže byť nakonfigurovaná tak, aby sa tváril ako radič domény systému Windows NT4. Hlavná výhoda takejto konfigurácie je schopnosť centrálne spravovať prihlasovacie údaje všetkých používateľov a počítačov. Samba dokáže na uchovávanie informácií o používateľoch použiť viacero systémov.

Primárny radič domény

Táto časť hovorí o nastavení systému Samba tak, aby sa tváril ako primárny radič domény (PDC), pričom na uchovávanie informácií o používateľoch použijeme predvolený systém smbpasswd.

  1. Najskôr nainštalujeme systém Samba a balík libpam-smbpass, ktorý slúži na synchronizáciu používateľov. Do príkazového riadka zadáme:

    sudo apt-get install samba libpam-smbpass
    
  2. Ďalej otvoríme konfiguračný súbor systému Samba /etc/samba/smb.conf. Bezpečnostný režim security nastavíme na hodnotu user a pracovnú skupinu workgroup nastavíme podľa názvu našej organizácie:

       workgroup = NIECO
    ...
    security = domain
  3. V zapoznámkovanej časti “Domains” odpoznámkujeme nasledujúce riadky:

       domain logons = yes
    logon path = \\%N\%U\profile
    logon drive = H:
    logon home = \\%N\%U
    logon script = logon.cmd
    add machine script = sudo /usr/sbin/useradd -n -g machines -c Machine -d /var/lib/samba -s /bin/false %u
    • domain logons: spôsobí, že sa Samba bude pri prihlasovaní tváriť ako radič domény.

    • logon path: umiestnenie domovského priečinka z pohľadu používateľa Windows. Tu je však potrebné odkomentovať aj nastavenie zdieľania v časti [profiles].

    • logon drive: určuje jednotku, pod akou používateľ uvidí svoj priečinok.

    • logon home: určuje umiestnenie domovského priečinka.

    • logon script: určuje skript, ktorý sa spustí na lokálnej stanici po prihlásení používateľa. Skript je potrebné umiestniť do zdieľaného priečinka [netlogon].

    • add machine script: skript, ktorý automaticky vytvorí tzv. dôveryhodné konto stanice - Machine Trust Account potrebné na to, aby sa počítač mohol pripojiť do domény.

      V tomto príklade tiež bude potrebné vytvoriť skupinu s názvom machines pomocou nástroja addgroup. Viac informácií sa nachádza v časti  “Pridávanie a odstraňovanie používateľov”.

    [Note]

    Ak nechcete použiť tzv. cestovné profily (Roaming Profiles), ponechajte možnosti logon home a logon path zapoznámkované.

  4. Odpoznámkujeme zdieľanie priečinka [homes], aby bolo možné pripojiť domovské priečinky:

    [homes]
    comment = Home Directories
    browseable = no
    read only = no
    create mask = 0700
    directory mask = 0700
    valid users = %S
  5. Ak chceme server použiť ako radič domény, je potrebné nakonfigurovať aj zdieľanie priečinka [netlogon]. Stačí odkomentovať nasledujúce riadky:

    [netlogon]
    comment = Network Logon Service
    path = /srv/samba/netlogon
    guest ok = yes
    read only = yes
    share modes = no
    [Note]

    Originálny priečinok netlogon je umiestnený na ceste /home/samba/netlogon, ale podľa štandardu Filesystem Hierarchy Standard (FHS) je na tento účel správnejšie použiť priečinok /srv.

  6. Teraz vytvoríme priečinok netlogon a (zatiaľ) prázdny súbor s prihlasovacím skriptom logon.cmd:

    sudo mkdir -p /srv/samba/netlogon
    sudo touch /srv/samba/netlogon/logon.cmd
    

    Do tohto súboru môžeme zapísať akýkoľvek skript pozostávajúci z príkazov systému Windows, ktorý upraví prostredie klienta.

  7. Keďže používateľ root je z bezpečnostných dôvodov zablokovaný, je potrebné priradiť niektorú zo systémových skupín ku Windows skupine s názvom  Domain Admins, inak sa nebudú dať pracovné stanice pripojiť do domény. Urobíme to pomocou nástroja net, ktorý takýmto spôsobom zapíšeme do príkazového riadka:

    sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d
    
    [Note]

    Skupinu sysadmin, ktorú sme my použili, zmeňte na takú, akú používate. Používatelia, ktorí sú členmi skupiny sysadmin, by mali byť členmi aj systémovej skupiny admin. Skupina admin umožňuje použitie príkazu sudo.

  8. Nakoniec reštartuje systém Samba, aby sa nové nastavenie prejavilo:

    sudo /etc/init.d/samba restart
    
  9. Odteraz bude možné klientské počítače so systémom Windows pripojiť do domény tak, ako keby sa pripájali do domény na serveri Windows NT4.

Záložný radič domény

Spolu s primárnym radičom domény (PDC) je vhodné mať na sieti aj záložný radič domény Backup Domain Controller (BDC). Tento umožňuje autentifikáciu klientov v prípade, ak nastane výpadok PDC.

Keď chceme systém Samba použiť ako BDC, potrebujeme nejakým spôsobom zosynchronizovať informácie o používateľských účtoch s PDC. Túto úlohu je možné vykonať niekoľkými spôsobmi. Napríklad môžeme použiť nástroje scp, rsync alebo môžeme použiť miesto predvolenej databázy na uchovávanie autentifikačných údajov (passdb backend) databázu LDAP.

Použitie systému LDAP je veľmi výhodný spôsob na synchronizáciu informácii o kontách, pretože oba doménové radiče môžu v rovnakom čase použiť tie isté informácie. Avšak nastavenie LDAP servera môže byť príliš komplikované a neoplatí sa, ak máme v sieti iba malý počet počítačov a používateľov. Viac informácií sa nachádza v časti Samba a LDAP.

  1. Najskôr nainštalujeme balíky samba a libpam-smbpass. V príkazovom riadku zadáme:

    sudo apt-get install samba libpam-smbpass
    
  2. Otvoríme súbor /etc/samba/smb.conf a zmeníme nasledujúce riadky v časti [global]:

       workgroup = NIECO
    ...
    security = user
  3. V časti Domains odkomentujeme riadky:

       domain logons = yes
    domain master = no
  4. Uistíme sa, že používateľ má právo čítať súbory v priečinku /var/lib/samba. Napríklad ak chceme používateľom v skupine admin povoliť použitie nástroja scp zadáme:

    sudo chgrp -R admin /var/lib/samba
    
  5. Teraz synchronizujeme kontá pomocou nástroja scp, ktorým ich skopírujeme z priečinka /var/lib/samba z PDC:

    sudo scp -r menopouzivatela@pdc:/var/lib/samba /var/lib
    
    [Note]

    Miesto menopouzivatela zadajte používateľa a miesto pdc zadajte názov stanice alebo IP adresu počítača, ktorý je PDC.

  6. Nakoniec reštartujeme systém samba:

    sudo /etc/init.d/samba restart
    

Záložný radič domény môžeme otestovať tak, že zastavíme démona systému Samba na PDC a potom sa skúsime prihlásiť na niektorej Windows stanici, ktorá je súčasťou domény.

Ďalšia vec, ktorú je potrebné mať na pamäti, čo s priečinkami definovanými ako logon home na PDC, ak sa PDC stane nedostupný. V takom prípade nebudú dostupné ani domovské priečinky používateľov. Kvôli tomuto je výhodné nastaviť logon home na iný súborový server, ktorý nie je súčasťou PDC ani BDC.

Zdroje

  • Podrobnejšie informácie o nastavení systému Samba sa nachádzajú na stránke Samba HOWTO Collection

  • Príručka je dostupná aj vo verzii pre tlač.

  • Ďalším dobrým zdrojom je O'Reillyho Using Samba..

  • Kapitola 4 zo Samba HOWTO Collection je zameraná na primárny radič domény.

  • Kapitola 5 zo Samba HOWTO Collection je zameraná na záložný radič domény.

Integrácia systému Samba do Active Directory

Prístup k zdieľaným prostriedkom systému Samba

Iný spôsob použitia systému Samba je jeho integrovanie do existujúcej siete Windows. Jednou z funkcií systému Samba je aj to, že môže slúžiť ako súborový a tlačový server pre používateľov AD.

Najjednoduchší spôsob ako sa pripojiť k doméne AD je použiť nástroj Likewise-open. Presnejšie inštrukcie sa nachádzajú v časti Likewise Open.

Aby náš server mohol byť súčasťou domény, nainštalujeme nasledujúce balíky:

sudo apt-get install samba smbfs smbclient

Pretože systémy likewise-open a samba používajú samostatné secrets.tdb súbory, je potrebné vytvoriť symbolický odkaz v priečinku /var/lib/samba:

sudo mv /var/lib/samba/secrets.tdb /var/lib/samba/secrets.tdb.orig
sudo ln -s /etc/samba/secrets.tdb /var/lib/samba

Teraz otvoríme súbor /etc/samba/smb.conf a zmeníme:

   workgroup = NIECO
...
security = ads
realm = NIECO.SK
...
idmap backend = lwopen
idmap uid = 50-9999999999
idmap gid = 50-9999999999

Reštartujeme systém samba aby sa nové nastavenia prejavili:

sudo /etc/init.d/samba restart

Odteraz by sa malo dať pristupovať k zdieľaným prostriedkom systému Samba zo staníc so systémom Windows. Je však potrebné sa uistiť či používatelia a skupiny AD majú právo pristupovať k zdieľaným priečinkom. Viac informácií sa nachádza v časti Zabezpečenie súborového a tlačového servera Samba.

Prístup k zdieľaným prostriedkom systému Windows

Teraz keď je Samba server súčasťou domény Active Directory, môžeme pristupovať k zdieľaným prostriedkom systémov Windows:

  • Ak chceme pripojiť priečinok zdieľaný systémom Windows zadáme nasledujúci príkaz:

    mount.cifs //fs01.nieco.sk/zdielanie bod_pripojenia
    

    Je tiež možné pristupovať k zdieľaným prostriedkom, ktoré ni sú súčasťou domény AD, ale v tom prípade bude potrebné zadať používateľské meno a heslo.

  • Ak chceme pripojiť priečinok už pri zavádzaní systému, pridáme záznam do súboru /etc/fstab. Záznam môže vyzerať napríklad takto:

    //192.168.0.5/zdielanie /mnt/windows cifs auto,username=stefan,password=tajne,rw 0        0
  • Iný spôsob akým môžeme skopírovať súbory zo systému Windows je použitie nástroja smbclient. Zoznam súborov v zdieľanom priečinku systému Windows získame po zadaní:

    smbclient //fs01.nieco.sk/zdielanie -k -c "ls"
    
  • Kópiu súboru získame po zadaní:

    smbclient //fs01.nieco.sk/zdielanie -k -c "get subor.txt"
    

    Tento príkaz skopíruje súbor s názvom subor.txt do aktuálneho priečinka.

  • Kópiu lokálneho súboru odošleme do zdielaného priečinka zadaním:

    smbclient //fs01.nieco.sk/zdielanie -k -c "put /etc/hosts hosts"
    

    Tento príkaz skopíruje súbor /etc/hosts to do //fs01.nieco.sk/zdielanie/hosts.

  • Voľba -c, ktorú sme použili, umožňuje spustiť pomocou nástroja smbclient zadaný príkaz. Tento spôsob spúšťania je užitočný pri vytváraní skriptov. Ak chceme vstúpiť do príkazového riadka smb: \>, ktorý je podobný príkazovému riadku FTP, v ktorom môžeme normálne spúšťať príkazy, zadáme len:

    smbclient //fs01.nieco.sk/zdielanie -k
    
[Note]

Vo všetkých uvedených príkladoch zmeňte fs01.nieco.sk/zdielanie, //192.168.0.5/zdielanie, username=stefan, password=tajne a subor.txt na IP adresu vášho servera, názov stanice, názov zdielaného priečinka, názov súboru, prihlasovacie meno a heslo aktuálneho používateľa na údaje zodpovedajúce zdieľanému prostriedku.

Zdroje

Viac informácií o nástroji smbclient sa nachádza na man stránke: man smbclient, tiež dostupnej online.

Užitočné informácie sa nachádzajú aj na man stránke mount.cifs.

Likewise Open

Likewise Open zjednodušuje nastavenia potrebné na autentifikáciu linuxovej stanice v doméne Active Directory. Balík likewise-open, ktorý je založený na winbind, umožňuje bezbolestné začlenenie systému Ubuntu do existujúcej siete Windows.

Inštalácia

Existujú dva spôsoby, ako pužiť Likewise Open, likewise-open ako nástroj pre príkazový riadok a likewise-open-gui verzia s grafickým rozhraním. Táto časť sa zameriava na nástroj pre príkazový riadok.

Balík likewise-open nainštalujeme zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install likewise-open

Pripojenie do domény

Hlavný spustiteľný súbor balíka likewise-open je /usr/bin/domainjoin-cli, ktorý sa používa na pripojenie počítača do domény. Pred tým, ako sa pripojíme do domény, je potrebné skontrolovať, či máme:

  • prístup do Active Directory cez používateľa, ktorý má dostatočné oprávnenia na to, aby sme sa cez neho mohli pripojiť do domény.

  • plne kvalifikované doménové meno  (FQDN) domény, ku ktorej sa chceme pripojiť. Ak naša AD doména nemá klasický tvar domény, ako napríklad nieco.sk, je možné že má tvar menodomeny.local.

  • DNS pre správne nastavenie domény. V ostrom nasadení AD by táto položka nemala chýbať. Systém Microsoft DNS je potrebný na to, aby klientské stanice vedeli zistiť, či je doména Active Directory dostupná.

    Ak ešte nemáme v sieti Windows DNS server, bližšie informácie nájdeme v časti “Microsoft DNS”.

Ak sa chceme pripojiť do domény, v príkazovom riadku zadáme:

sudo domainjoin-cli join nieco.sk Administrator
[Note]

Nahraďte nieco.sk menom vašej domény a Administrator príslušným menom používateľa, ktorý má právo pripojiť sa do domény.

Po spustení príkazu bude potrebné zadať heslo používateľa. Ak všetko prebehne tak, ako má, zobrazí sa nápis SUCCESS.

Po úspešnom pripojení servera Ubuntu do domény Active Directory, sa na náš server budú môcť prihlásiť všetci platní používatelia AD. Prihlasovacie meno je potrebné zadať v tvare 'domena\pouzivatel'. Ak sa napríklad chceme pripojiť na náš server prostredníctvom služby ssh zadáme:

ssh 'nieco\stefan'@nazovstanice
[Note]

Ak nastavujeme systém Ubuntu Desktop, používatelia musia zadať predponu domena\ aj v grafickej prihlasovacej obrazovke.

Ak cheme likewise-open použiť ako predvolenú doménu, môžeme to takto nastaviť v súbore /etc/samba/lwiauthd.conf:

winbind use default domain = yes

Reštartujeme démona likewise-open:

sudo /etc/init.d/likewise-open restart
[Note]

Po vykonaní nastavenia default domain predponu 'domena\' už nemusíme zadávať a používateľom stačí zadať ich bežné prihlasovacie meno.

Nástroj domainjoin-cli sa dá použiť aj na odpojenie od domény. Stačí do príkazového riadka zadať:

sudo domainjoin-cli leave

Ostatné nástroje

Balík likewise-open obsahuje aj niekoľko ďalších užitočných nástrojov slúžiacich na získanie informácii o prostredí Active Directory. Tieto nástroje sa dajú využiť pri pripájaní počítača do domény a sú dostupné aj v balíkoch samba-common a winbind:

  • lwinet: Vráti informácie o sieti a doméne.

  • lwimsg: Umožňuje interakciu s démonom likewise-winbindd.

  • lwiinfo: Zobrazí informácie o jednotlivých súčastiach domény.

Viac informádií o každom nástroji sa môžeme dozvedieť na man stránkach.

Riešenie problémov

  • Ak sa počítač nechce pripojiť do domény, je potrebné pre istotu dvakrát skontrolovať, či je adresa servera Microsoft DNS zapísaná ako prvá v súbore /etc/resolv.conf. Záznam vyzerá napríklad takto:

    nameserver 192.168.0.1
  • Viac informácii o procese pripájania do domény získame, ak použijeme spolu s nástrojom domainjoin-cli prepínač --loglevel verbose alebo --advanced:

    sudo domainjoin-cli --loglevel verbose join nieco.sk Administrator
    
  • Ak má používateľ problém pripojiť sa do Active Directory, viac informácií získa v súbore /var/log/auth.log.

  • Pri pripájaní systému Ubuntu Desktop do domény môže byť potrebné upraviť súbor /etc/nsswitch.conf najmä, ak doména AD používa v mene koncovku .local. V takom prípade je potrebné vymazať záznamy "mdns4" z nastavenia hosts. Napríklad:

    hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

    Zmeníme na:

    hosts: files dns [NOTFOUND=return]

    Potom reštartujeme sieťových démonov príkazom:

    sudo /etc/init.d/networking restart
    

    Teraz by sa už malo dať pripojiť do domény Active Directory.

Microsoft DNS

Nasledujúce inštrukcie slúžia na nainštalovanie systému DNS pre radič domény Active Directory, ktorý sa nachádza na systéme Windows Server 2003. Pre iné verzie servera je postup veľmi podobný:

  • Klikneme na tlačítko StartNástroje pro správuSpráva serverů. To otvorí nástroj Správa rolí tohto serveru.

    1. Klikneme na Přidat nebo odebrat roli

    2. Klikneme na Další

    3. Vyberieme "DNS Server"

    4. Klikneme na Další

    5. Klikneme na Další

    6. Vyberieme "Vytvořit zónu dopředného vyhledávaní" ak už nie je označená.

    7. Klikneme na Další

    8. Uistite sa, že je prepínač v polohe "Tento server udržuje zónu" a klikneme na Další.

    9. Zadáme meno našej domény a klikneme na Další

    10. Necháme označené "Povolit jen dynamické aktualizace" a klikneme na Další

    11. Zadáme IP adresy DNS serverov, ktorým má náš server preposielať požiadavky alebo označíme "Ne, nepředávat dotazy" a klikneme na Další.

    12. Klikneme na Dokončit

    13. Klikneme na Dokončit

    Systém DNS je teraz nainštalovaný a neskôr ho môžeme nastaviť použitím DNS snap-in modulu Microsoft Management Console.

  • Teraz nastavíme Server tak, aby používal sám sebe pri zisťovaní DNS požiadaviek:

    1. Klikneme na tlačitko Start

    2. Ovládací panely

    3. Síťová připojení

    4. Pravým tlačítkom myši klikneme na "Připojení k místní síti tohoto serveru"

    5. Klikneme na Vlastnosti

    6. Dvojklikom otvoríme "Protokol sítě Internet (TCP/IP)"

    7. Zadáme IP adresu nášho servera ako "Upřednostňovaný server DNS"

    8. Klikneme na OK

    9. Znova klikneme na OK aby sa nastavenia uložili

     

Zdroje

Viac informácií sa nachádza na domovskej stránke Likewise.

Detailnejší popis nástroja domainjoin-cli sa nachádza na man stránke: man domainjoin-cli.

Pozrieť si môžeme aj stránku Ubuntu Wiki LikewiseOpen.

Zálohovanie

Existuje mnoho spôsobov akým sa dajú zálohovať dáta systému Ubuntu. Najdôležitejšou vecou pri zálohovaní je však navrhnutie plánu zálohy, ktorý hovorí čo zálohovať, kedy zálohovať a ako v prípade potreby dáta zo zálohy obnoviť.

Nasledujúce časti hovoria o rôznych spôsoboch, akými tieto úlohy vykonať.

Shell skripty

Jedným z najjednoduchších spôsobov, akým sa dá zálohovať systém, je použitie tzv. shell skriptov - skriptov pre príkazový riadok. Pomocou takéhoto skriptu môžeme nastaviť, ktoré priečinky sa majú zálohovať a obsah týchto priečinkov môžeme skomprimovať (zbaliť) pomocou nástroja tar do archívu. Archív je súbor, ktorý potom môžeme skopírovať na iné miesto. Môžeme ho vytvoriť aj na vzdialenom súborovom systéme, ktorý pripojíme pomocou systému NFS.

Nástroj tar dokáže vytvoriť jeden archívny súbor z veľkého množstva súborov a priečinkov. Nástroj tar tiež zredukuje priestor potrebný na uchovanie archívu prostredníctvom kompresie.

Jednoduchý skript

Nasledujúci skript použije nástroj tar na vytvorenie archívu na vzdialenom súborovom systéme, ktorý je pripojený pomocou systému NFS. Meno súboru s archívom sa odvodí od dátumu a názvu počítača.

#!/bin/sh
####################################
#
# Skript na vytvorenie zálohy na vzdialenom disku
#
####################################

# Čo sa bude zálohovať.
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# Kam sa bude zálohovať.
dest="/mnt/backup"

# Vytvorí názov súboru s archívom.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Vypíše hlásenie o prebiehajúcej operácii.
echo "Zálohujem $backup_files do $dest/$archive_file"
date
echo

# Vytvorí archív pomocou nástroja tar.
tar czf $dest⁄$archive_file $backup_files

# Vypíše správu o dokončení operácie.
echo
echo "Záloha bola vytvorená"
date

# Detailný výpis cieľového priečinka $dest aby sa dala overiť veľkosť archívu.
ls -lh $dest
  • $backup_files: premenná, ktorá obsahuje zoznam priečinkov, ktoré sa majú zálohovať. Tento zoznam si môžeme upraviť podľa našich potrieb.

  • $day: premenná, ktorá obsahuje deň v týždni (Pondelok, Utorok, Streda, atď.). Táto premenná sa používa na vytvorenie archívu pre každý deň v týždni, čo nám poskytne sedem dňovú históriu archívov. Meno archívu môžeme vytvoriť aj inými spôsobmi. Napríklad môžeme využiť nástroj date.

  • $hostname: premenná, ktorá obsahuje krátky názov stanice. Vďaka tomuto menu rozoznáme, z ktorého počítača záloha pochádza, v prípade, že na rovnaké miesto ukladáme zálohy z viacerých počítačov.

  • $archive_file: celé meno súboru s archívom.

  • $dest: priečinok, do ktorého sa má archív uložiť. Tento priečinok je potrebné pred použitím skriptu vytvoriť a v našom prípade aj pripojiť pomocou NFS. Viac informácií o NFS sa nachádza v časti Sieťový súborový systém NFS.

  • stavové správy: toto sú voliteľné správy, ktoré sa vypíšu pomocou nástroja echo na počítači, aby používateľ vedel, čo sa na počítači deje.

  • tar czf $dest/$archive_file $backup_files: príkaz tar sa využíva na vytvorenie archívu.

    • c: vytvorí archív.

    • z: použije kompresiu gzip.

    • f: zapíše výstup do súboru. Keby sme tento parameter nepoužili, tar by výstup odoslal na STDOUT.

  • ls -lh $dest: voliteľný príkaz ktorý zobrazí -l dlhý výpis cieľového priečinka -h v tvare zrozumiteľnom pre človeka. Tento príkaz je užitočný, ak sa chceme uistiť, že bol súbor vytvorený a aká je jeho veľkosť.

Toto je jednoduchý príklad skriptu na vytvorenie zálohy. Pri vytváraní skriptu máme k dispozícií veľké množstvo možností. Viac informácií o vytváraní skriptov môžeme nájsť v časti “Zdroje”.

Spustenie skriptu

Spustenie z príkazového riadka

Najjednoduchší spôsob, akým spustiť predchádzajúci skript, je uložiť ho do súboru. Súbor môžeme nazvať napríklad zaloha.sh. Potom ho môžeme spustiť v príkazov riadku:

sudo bash zaloha.sh

Tento spôsob môžeme využiť, ak chceme otestovať správnu funkčnosť skriptu.

Spustenie pomocou plánovacieho nástroja cron

Nástroj cron môžeme využiť na automatické spúšťanie skriptu. Démon cron umožňuje spúšťanie skriptov alebo príkazov v stanovený čas.

cron môžeme nastaviť prostredníctvom záznamov v súbore crontab. Syntax riadkov súboru crontab je nasledovná:

# m h dom mon dow   command
  • m: minúta, kedy sa má príkaz spustiť v rozsahu 0 až 59.

  • h: hodina, kedy sa má príkaz spustiť v rozsahu 0 až 23.

  • dom: deň v mesiaci, kedy sa má príkaz spustiť.

  • mon: mesiac, v ktorom sa má príkaz spustiť v rozsahu 1 až 12.

  • dow: deň v týždni, kedy sa má príkaz spustiť v rozsahu 0 až 7. Nedeľa sa dá zapísať buď pomocou 0 alebo 7.

  • command: príkaz, ktorý sa má vykonať.

Ak chceme pridať záznam do súboru crontab, použijeme príkaz crontab -e. Obsah súboru crontab si môžeme pozrieť pomocou príkazu crontab -l.

Ak chceme nastaviť spúšťanie skriptu zaloha.sh pomocou nástroja cron, najskôr zadáme príkaz:

sudo crontab -e
[Note]

Ak použijeme sudo spolu s príkazom crontab -e, budeme upravovať crontab používateľa root. To je nevyhnutné, ak chceme zálohovať systémové priečinky, pretože iba používateľ root ku nim má prístup.

Pridáme nasledujúci záznam do súboru crontab:

# m h dom mon dow   command
0 0 * * * bash /usr/local/bin/zaloha.sh

Pri použití tohto nastavenia sa bude skript zaloha.sh spúšťať každý deň o polnoci.

[Note]

Skript zaloha.sh je potrebné nakopírovať do priečinka /usr/local/bin/, lebo tak sme definovali cestu v súbore crontab. Skript môžeme umiestniť aj inam, ale v tom prípade je potrebné túto cestu zmeniť.

Viac informácií o súboroch crontab môžeme nájsť v časti “Zdroje”..

Obnovenie údajov z archívu

Potom ako vytvoríme archív, je dôležité ho otestovať. Môžeme to urobiť tak, že si necháme vypísať súbory, ktoré obsahuje. Najlepší test ale je, ak súbory z archívu obnovíme.

  • Ak chceme zobraziť obsah archívu, do príkazového riadka zadáme:

    tar -tzvf /mnt/backup/nazovpc-Pondelok.tgz
    
  • Ak chceme obnoviť súbor z archívu do iného priečinka, zadáme:

    tar -xzvf /mnt/backup/nazovpc-Pondelok.tgz -C /tmp etc/hosts
    

    Prepínač -C povie nástroju tar, aby presmeroval obnovovaný súbor do zadaného priečinka. Predchádzajúci príkaz obnoví súbor /etc/hosts do priečinka /tmp/etc/hosts. Nástroj tar obnoví súbor aj s celou jeho cestou a chýbajúce priečinky automaticky vytvorí.

    Z tohto dôvodu na začiatku cesty, ktorá sa má obnoviť, nie je zapísané  "/".

  • Ak chceme obnoviť súbory z archívu, zadáme nasledujúce príkazy:

    cd /
    sudo tar -xzvf /mnt/backup/nazovpc-Pondelok.tgz
    
[Note]

Týmto prepíšeme aktuálne súbory v súborovom systéme.

Zdroje

  • Viac informácií o vytváraní skriptov sa dozviete na stránke Advanced Bash-Scripting Guide

  • Vynikajúcou online knihou o vytváraní skriptov je Teach Yourself Shell Programming in 24 Hours.

  • O ďalších možnostiach nástroja cron sa môžeme dozvedieť na stránke CronHowto Wiki Page.

  • Viac o nástroji tar sa dozvieme na stránke GNU tar Manual.

  • O iných stratégiách pre vytváraní záloh sa dozvieme na stránke Wikipédie s názvom Backup Rotation Scheme.

  • V našom skripte sme použili na vytvorenie zálohy nástroj tar, no existuje mnoho ďalších nástrojov, ktoré sa dajú na tento účel použiť. Sú to napríklad:

    • cpio: používa sa na vytváranie kópií do a z archívov.

    • dd: je súčasťou balíka coreutils. Umožňuje nízkoúrovňové kopírovanie dát z jedného formátu do druhého

    • rsnapshot: systém na zálohovanie aktuálneho stavu systému - vytvorenie tzv. snap shotu.

Rotácia archívov

  Shell skript v časti  Shell skripty vytvára iba sedem archívov.  Na serveri, kde sa údaje nemenia príliš často, to postačuje, no ak je na serveri väčšie množstvo dát, je rozumnejšie použiť inú schému.

Rotácia NFS archívov

V tejto časti skript upravíme tak, aby implementoval schému dedo-otec-syn (mesiac-týždeň-deň):

  • Rotácia vytvorí dennú zálohu pre pondelok až sobotu.

  • V nedeľu vytvorí týždennú zálohu tak, že za mesiac budeme mať štyri zálohy.

  • Mesačná záloha sa vytvorí prvý deň v mesiaci a budú vytvárané dva archívy podľa toho, či je mesiac párny alebo nepárny.

Tu je skript:

#!/bin/bash
####################################
#
# Skript na vytvorenie zálohy na vzdialenom disku
# s použitím schémy dedo-otec-syn.
#
####################################

# Čo sa bude zálohovať.
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# Kam sa bude zálohovať.
dest="/mnt/backup"

# Nastavenie premenných, z ktorých sa vytvorí meno archívu.
day=$(date +%A)
hostname=$(hostname -s)

# zistí číslo týždňa v mesiaci 1-4.
day_num=$(date +%d)
if (( $day_num <= 7 )); then
week_file="$hostname-week1.tgz"
elif (( $day_num > 7 && $day_num <= 14 )); then
week_file="$hostname-week2.tgz"
elif (( $day_num > 14 && $day_num <= 21 )); then
week_file="$hostname-week3.tgz"
elif (( $day_num > 21 && $day_num < 32 )); then
week_file="$hostname-week4.tgz"
fi

# Zistí či je mesiac párny alebo nepárny.
month_num=$(date +%m)
month=$(expr $month_num % 2)
if [ $month -eq 0 ]; then
month_file="$hostname-month2.tgz"
else
month_file="$hostname-month1.tgz"
fi

# Vytvorí meno archívu.
if [ $day_num == 1 ]; then
archive_file=$month_file
elif [ $day != "Saturday" ]; then
archive_file="$hostname-$day.tgz"
else
archive_file=$week_file
fi

# Vypíše správu o začatí operácie.
echo "Zálohujem $backup_files do $dest/$archive_file"
date
echo

# Vytvorí archív pomocou nástroja tar.
tar czf $dest⁄$archive_file $backup_files

# Vypíše správu o dokončení operácie.
echo
echo "Záloha bola vytvorená"
date

# Detailný výpis cieľového priečinka $dest aby sa dala overiť veľkosť archívu.
ls -lh $dest/

Skript môžeme spustiť rovnakými spôsobmi ako v časti Shell skripty.

Dobrým zvykom je odložiť médium so zálohou na bezpečné miesto. V našom prípade shell skriptu je záložným médiom iný počítač, ktorý poskytuje priečinok zdieľaný pomocou NFS systému. Umiestnenie NFS servera na iné umiestnenie bude pravdepodobne nepraktické. V závislosti od toho, aké máme pripojenie, môžeme prostredníctvom siete WAN archívy prekopírovať na server, ktorý je na inom mieste.

Iná možnosť je skopírovanie archívu na externé médium, ktoré je možné vybrať z počítača a umiestniť ho na bezpečné miesto. Vďaka tomu, že cena mechaník stále klesá, môžeme použiť dve mechaniky. To nám umožní mať jednu mechaniku pripojenú k serveru so zálohami a jednu na inom mieste.

Pásková mechanika

Páskovú mechaniku pripojenú k serveru môžeme použiť miesto zdieľaného priečinka cez NFS. Použitie páskovej mechaniky zjednodušuje rotáciu archívov a tiež umožňuje uchovávať záložné médium v bezpečí.

Pri použití páskovej mechaniky nie je potrebná časť skriptu, ktorá vytvára meno archívu, pretože sa údaje odošlú priamo na páskovú mechaniku. Pribudne však niekoľko príkazov, ktoré pracujú s páskou. Tieto príkazy sa vykonávajú pomocou nástroja na prácu s magnetickou páskou mt, ktorý je súčasťou balíka cpio.

Tu je upravený shell skript pre páskovú mechaniku:

#!/bin/bash
####################################
#
# Zálohovanie na páskovú mechaniku.
#
####################################

# Čo sa bude zálohovať
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# Kam sa bude zálohovať.
dest="/dev/st0"

# Vypíše správu o začatí operácie.
echo "Zálohujem $backup_files do $dest"
date
echo

# Uistí sa že je páska previnutá.
mt -f $dest rewind

# Vytvorí archív pomocou nástroja tar.
tar czf $dest $backup_files

# Previnie pásku a vysunie ju
mt -f $dest rewoffl

# Vypíše správu o dokončení operácie.
echo
echo "Záloha bola vytvorená"
date

[Note]

Predvolené označenie páskovej mechaniky SCSI je /dev/st0. Použite označenie platné pre váš systém.

Údaje z páskovej mechaniky obnovíme rovnako ako keby sme ich obnovovali z bežného archívu. Jednoducho previnieme pásku a použijeme miesto cesty k súboru označenie zariadenia. Ak napríklad chceme obnoviť súbor /etc/hosts do /tmp/etc/hosts, zadáme:

mt -f /dev/st0 rewind
tar -xzf /dev/st0 -C /tmp etc/hosts

Bacula

Bacula je program umožňujúci zálohovanie, obnovu zo zálohy a preverenie dát cez sieť. Klient systému Bacula existuje pre operačné systémy Linux, Windows aj Mac OSX. Tieto vlastnosti zo systému robia široko použiteľné multiplatformové sieťové riešenie zálohovania.

Prehľad

Systém Bacula tvorí niekoľko častí a služieb určených na riadenie toho, ktoré súbory sa majú zálohovať a kam:

  • Bacula Director: služba, ktorá riadi celé zálohovanie, obnovu, overovanie a operácie s tým spojené.

  • Bacula Console: aplikácia umožňujúca komunikáciu so službou Director. Existujú tri verzie konzoly:

    • Textovo založený príkazový riadok.

    • Grafické rozhranie pre prostredie Gnome založené na GTK+.

    • Grafické rozhranie založené na wxWidgets.

  • Bacula File: známy tiež ako Bacula Client program. Táto aplikácia je nainštalovaná na počítačoch, ktoré chceme zálohovať, a ktorý poskytuje údaje žiadané programom Director.

  • Bacula Storage: program, ktorý ukladá a číta údaje z fyzického média.

  • Bacula Catalog: je zodpovedný za správu zoznamu súborov a databázu zväzov so všetkými zálohovanými súbormi. Umožňuje rýchle vyhľadanie a obnovenie archivovaných súborov. Program Catalog podporuje tri rôzne databázy MySQL, PostgreSQL a SQLite.

  • Bacula Monitor: umožňuje monitorovanie programov Director, File a Storage. Momentálne je tento program dostupný iba v aplikácii s grafickým rozhraním GTK+.

Tieto služby a aplikácie môžu byť súčasne spustené na viacerých serveroch a klientoch alebo môžu byť všetky nainštalované na jednom počítači, ak zálohujeme jeden disk alebo zväzok.

Inštalácia

Komponenty systému Bacula sú rozložené do viacerých balíkoch. Ak chceme nainštalovať systém Bacula, do príkazového riadka zadáme:

sudo apt-get install bacula

V predvolenom stave po nainštalovaní balíka bacula bude pre program Catalog použitá databáza MySQL. Ak chceme pre program Catalog použiť SQLite alebo PostgreSQL, nainštalujeme balík bacula-director-sqlite3 alebo bacula-director-pgsql.

Počas inštalácie bude potrebné zadať prihlasovacie údaje pre konto správcu databázy a vlastníka databázy bacula. Správca databázy potrebuje prislúchajúce oprávnenia na vytváranie databáz. Viac informácií sa nachádza v časti MySQL.

Konfigurácia

Konfiguračné súbory systému Bacula sú formátované na základe zdrojov pozostávajúcich z direktív uzatvorených do zložených zátvoriek {}. Každý komponent systému Bacula má svoj vlastný konfiguračný súbor v priečinku /etc/bacula.

Rôzne časti systému Bacula sa musia navzájom autorizovať. Toto je zabezpečené pomocou direktívy password. Napríklad heslo zdroja Storage v súbore /etc/bacula/bacula-dir.conf sa musí zhodovať s heslom zdroja Director v súbore /etc/bacula/bacula-sd.conf.

V predvolenom stave je vytvorená úloha s názvom Client1, ktorá archivuje údaje prostredníctvom programu Catalog systému Bacula. Ak máme v pláne použiť server na archivovanie údajov z viacerých klientov, zmeníme meno tejto úlohy na niečo viac popisné. Meno zmeníme v súbore /etc/bacula/bacula-dir.conf:

#
# Define the main nightly save backup job
# By default, this job will back up to disk in
Job {
Name = "BackupServer"
JobDefs = "DefaultJob"
Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}
[Note]

V predchádzajúcom príklade sme ako názov úlohy použili názov stanice BackupServer. Nahraďte  BackupServer názvom vašej stanice alebo iným popisným menom.

Program Console si môže vyžiadať od programu Director úlohy, ale aby mohli program Console použiť aj používatelia, ktorí nemajú právo root, musia byť členmi skupiny bacula. Používateľa do skupiny bacula pridáme napísaním nasledujúceho príkazu do príkazového riadka:

sudo adduser $username bacula
[Note]

Nahraďte $username skutočným menom aktuálneho používateľa. Po pridaní používateľa do skupiny sa musíte odhlásiť a znova prihlásiť, aby sa zmena prejavila.

Záloha na lokálnom počítači

Táto časť vysvetľuje spôsob, ako nastaviť zálohovanie určitých priečinkov na jednom počítači na lokálne pripojenú páskovú mechaniku.

  • Najskôr nastavíme parametre zariadenia pre program Storage. Otvoríme súbor /etc/bacula/bacula-sd.conf a pridáme:

    Device {
    Name = "Tape Drive"
    Device Type = tape
    Media Type = DDS-4
    Archive Device = /dev/st0
    Hardware end of medium = No;
    AutomaticMount = yes; # when device opened, read it
    AlwaysOpen = Yes;
    RemovableMedia = yes;
    RandomAccess = no;
    Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
    }

    V tomto príklade použijeme páskovú mechaniku DDS-4. Direktívy Media Type a Archive Device nastavíme tak, aby sa zhodovali s naším hardvérom.

    Miesto tohto nastavenia by sme tiež mohli odpoznámkovať jeden z ďalších súborov s príkladmi.

  • Po dokončení úprav súboru /etc/bacula/bacula-sd.conf je potrebné reštartovať démon programu Storage:

    sudo /etc/init.d/bacula-sd restart
    
  • Teraz pridáme zdroj Storage do súboru /etc/bacula/bacula-dir.conf aby použil nové zariadenie :

    # Definition of "Tape Drive" storage device
    Storage {
    Name = TapeDrive
    # Do not use "localhost" here
    Address = backupserver # N.B. Use a fully qualified name here
    SDPort = 9103
    Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"
    Device = "Tape Drive"
    Media Type = tape
    }

    Do direktívy Address je potrebné zapísať úplné doménové meno (FQDN) servera. Zmeníme backupserver na mennú adresu našej stanice.

    Tiež sa uistíme, či sa direktíva Password zhoduje s heslom definovaným v súbore /etc/bacula/bacula-sd.conf.

  • Vytvoríme novú sadu súborov FileSet, ktorá bude určovať, ktoré priečinky sa majú archivovať:

    # LocalhostBacup FileSet.
    FileSet {
    Name = "LocalhostFiles"
    Include {
    Options {
    signature = MD5
    compression=GZIP
    }
    File = /etc
    File = /home
    }
    }

    Tento FileSet hovorí, že budeme archivovať priečinky /etc a /home. Zdroj Options pomocou direktív prikazuje, aby boli vytvorené kontrolné MD5 obtlačky pre každý odzálohovaný súbor a aby sa na zálohovanie použila kompresia GZIP.

  • Teraz vytvoríme nový plán Schedule pre zálohovanie:

    # LocalhostBackup Schedule -- Daily.
    Schedule {
    Name = "LocalhostDaily"
    Run = Full daily at 00:01
    }

    Tento plán hovorí, že úloha sa má spustiť každý deň o 00:01. Samozrejme je k dispozícii omnoho viac volieb, ktoré sa dajú použiť.

  • Nakoniec vytvoríme úlohu Job:

    # Localhost backup.
    Job {
    Name = "LocalhostBackup"
    JobDefs = "DefaultJob"
    Enabled = yes
    Level = Full
    FileSet = "LocalhostFiles"
    Schedule = "LocalhostDaily"
    Storage = TapeDrive
    Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr"
    }

      Úloha bude každý deň vykonávať úplnú Full zálohu na páskovú mechaniku.

  • Každá páska, ktorú použijeme, musí mať označenie - Label. Ak aktuálna páska nemá označenie, systém Bacula vám odošle email, aby ste o tom vedeli. Ak chceme priradiť páske označenie pomocou programu Console, spustíme ho pomocou príkazu:

    bconsole
    
  • a v príkazovom riadku konzoly Bacula zadáme:

    label
    
  • Po zadaní príkazu bude potrebné zadať zdroj Storage:


    Automatically selected Catalog: MyCatalog
    Using Catalog "MyCatalog"
    The defined Storage resources are:
    1: File
    2: TapeDrive
    Select Storage resource (1-2):2

  • Teraz zadáme nový názov zväzku - Volume name:


    Enter new Volume name: Nedela
    Defined Pools:
    1: Default
    2: Scratch

    Miesto slova Nedela môžeme použiť iný popisnejší názov.

  • Teraz vyberieme Pool:


    Select the Pool (1-2): 1
    Connecting to Storage daemon TapeDrive at backupserver:9103 ...
    Sending label command for Volume "Sunday" Slot 0 ...

Odteraz by mal systém Bacula zálohovať údaje z lokálnej stanice na pripojené páskové zariadenie.

Zdroje

  • Viac informácií o ďalších spôsoboch konfigurácie systému Bacula sa nachádza na stránke Bacula User's Manual.

  • Na domovskej stránke Bacula Home Page sa zasa nachádzajú informácie o najnovšej verzii systému Bacula a o jeho vývoji.

  • Stránka Bacula Ubuntu Wiki tiež stojí za pozretie.

Virtualizácia

Virtualizácia sa využíva v rôznych prostrediach a situáciách. Ak sme vývojári, virtualizácia nám poskytne prostredie, kde môžeme bezpečne vykonávať takmer akékoľvek pokusy bez toho, aby sme narušili svoje hlavné pracovné prostredie. Ak sme správcovia systému, môžeme virtualizáciu využiť na oddelenie služieb a na požiadanie ich presúvať.

Predvolenou virtualizačnou technológiou, ktorú Ubuntu podporuje, je KVM, čo je technológia, ktorá využíva virtualizačné funkcie vstavané do procesorov Intel a AMD. Ak nemáme hardvér s podporou virtualizácie, môžeme využiť riešenia ako Xen a Qemu.

libvirt

Knižnica libvirt sa používa ako rozhranie pre rôzne virtualizačné technológie. Pred tým, ako začneme používať libvirt, je dobré uistiť sa, či máme hardvérovú podporu potrebnú pre KVM. V príkazovom riadku zadáme nasledujúci príkaz:

kvm-ok

Zobrazí sa správa, ktorá hovorí, či náš procesor hardvérovo podporuje alebo nepodporuje virtualizáciu.

[Note]

Na väčšine počítačov, ktorých procesor podporuje virtualizáciu, je nevyhnutné aktivovať túto podporu v systéme BIOS. Metóda použitá vyššie nezobrazí, či sa dá podpora aktivovať.

Virtuálna sieť

Existuje niekoľko spôsobov, ako umožniť virtuálnemu počítaču prístup k externej sieti. Predvolená konfigurácia virtuálnej siete je v tzv. používateľskom režime - usermode, ktorý používa protokol SLIRP a komunikáciu smeruje prekladom adries NAT cez sieťové rozhranie hosťovského systému do vonkajšej siete.

Ak chceme ostatným počítačom v sieti umožniť priamy prístup k službám virtuálnych počítačov, je potrebne nakonfigurovať premostenie - bridge. To umožní virtuálnemu sieťovému rozhraniu pripojiť sa k vonkajšej sieti priamo cez fyzické sieťové rozhranie, vďaka čomu bude virtuálny počítač pre ostatné počítače viditeľný ako bežná stanica. Viac informácií o nastavovaní premostenia sa nachádza v časti “Premostenie”.

Inštalácia

Ak chceme nainštalovať potrebné balíčky, v príkazovom riadku zadáme:

sudo apt-get install kvm libvirt-bin

Po nainštalovaní libvirt-bin, je potrebné pridať aspoň jedného používateľa do skupiny libvirtd. Používatelia v tejto skupine môžu spravovať virtuálne počítače. Títo používatelia budú mať tiež právo meniť pokročilé sieťové nastavenia.

V príkazovom riadku zadáme:

sudo adduser $USER libvirtd
[Note]

Ak bol zvolený aktuálny používateľ, pod ktorým ste práve prihlásený, je potrebné sa odhlásiť a znovu prihlásiť, aby sa zmena prejavila.

Teraz môžeme začať inštalovať hosťujúci operačný systém. Inštalácia systému na virtuálny počítač sa ničím nelíši od inštalácie na fyzický počítač. Buď treba nájsť spôsob, ako inštaláciu zautomatizovať alebo je potrebné pripojiť k fyzickému počítaču monitor a klávesnicu.

V prípade virtuálnych počítačov s grafickým rozhraním (GUI) je použitie klávesnice a myši rovnaké. Miesto inštalovania grafického systému však môžeme použiť aj aplikáciu virt-viewer, pomocou ktorej sa môžeme pripojiť na vzdialený virtuálny počítač cez VNC. Viac informácií sa nachádza v časti “Prehliadač virtuálnych počítačov”.

Existuje niekoľko spôsobov ako automatizovať inštaláciu Ubuntu, napríklad je možné použiť metódy preseeds, kickstart, atď. Viac informácií sa nachádza v inštalačnej príručke Ubuntu.

Iný spôsob, ako nainštalovať virtuálny počítač s Ubuntu, je použitie nástroja ubuntu-vm-builder. Nástroj ubuntu-vm-builder umožňuje použiť rozšírené možnosti pri nastavovaní oddielov disku, spustiť programy cez tzv. poinštalačný skript, atď. Viac informácií sa nachádza v časti JeOS a vmbuilder.

virt-install

Nástroj virt-install je časťou balíka python-virtinst. Ak ho chcete nainštalovať, zadajte nasledujúci príkaz:

sudo apt-get install python-virtinst

Spolu s príkazom virt-install je možné použiť aj niekoľko parametrov. Napríklad:

sudo virt-install -n web_vyvoj -r 256 -f web_vyvoj.img \
-s 4 -c jeos.iso --accelerate \
--connect=qemu:///system --vnc \
--noautoconsole -v
  • -n web_vyvoj: meno virtuálneho počítača v tomto príklade bude web_vyvoj .

  • -r 256: určuje veľkosť pamäte, ktorú bude virtuálny počítač používať.

  • -f web_vyvoj.img: určuje cestu k virtuálnemu disku, ktorý môže byť súbor, diskový oddiel alebo logický zväzok. V tomto príklade sme použili súbor s názvom web_vyvoj.img.

  • -s 4: určuje veľkosť virtuálneho disku.

  • -c jeos.iso: súbor, ktorý sa použije ako virtuálny CDROM. Súbor môže byť buď ISO súbor alebo cesta k pripojenému fyzickému CDROMu.

  • --accelerate: zapne v jadre technológiu na urýchlenie virtualizácie.

  • --vnc: exportuje virtuálnu konzolu pomocou VNC.

  • --noautoconsole: nepripojí sa automaticky ku konzole virtuálneho počítača.

  • -v: vytvorí plne virtualizovaný hosťovaný systém.

Po spustení virt-install sa môžete k virtuálnemu počítaču pripojiť buď lokálne pomocou grafického rozhrania alebo pomocou nástroja virt-viewer.

virt-clone

Aplikácia virt-clone sa používa na vytváranie kópie jedného virtuálneho počítača na druhý. Napríklad:

sudo virt-clone -o web_vyvoj -n databaz_vyvoj -f /cesta/k/databaz_vyvoj.img --connect=qemu:///system
  • -o: originálny virtuálny počítač

  • -n: meno nového virtuálneho počítača.

  • -f: cesta k súboru, logickému zväzku alebo diskovému oddielu, ktorý bude používať nový virtuálny počítač.

  • --connect: určuje, ku ktorému hypervízoru (virtualizátoru) sa má pripojiť.

Tiež môžete použiť -d alebo --debug ak chcete získať podrobný výpis pri riešení problémov s virt-clone.

[Note]

Mená web_vyvoj a databaz_vyvoj nahraďte menami svojich virtuálnych počítačov.

Správa virtuálnych počítačov

virsh

Existuje niekoľko nástrojov na správu virtuálnych počítačov a libvirt. Nástroj virsh sa dá používať z príkazového riadka. Niekoľko príkladov:

  • Vypísanie zoznamu spustených virtuálnych počítačov:

    virsh -c qemu:///system list
  • Spustenie virtuálneho počítača:

    virsh -c qemu:///system start web_vyvoj
  • Spustenie virtuálneho počítača pri zavádzaní systému

    virsh -c qemu:///system autostart web_vyvoj
  • Reštart virtuálneho počítača:

    virsh -c qemu:///system reboot web_vyvoj
  • Aktuálny stav virtuálneho počítača sa dá uložiť do súboru a neskôr sa dá obnoviť. Nasledujúci príkaz uloží stav virtuálneho počítača do súboru, ktorý má v mene aktuálny dátum:

    virsh -c qemu:///system save web_devel web_vyvoj-270208.state

    Po uložení virtuálny počítač zostane vypnutý.

  • Obnovenie uloženého stavu:

    virsh -c qemu:///system restore web_vyvoj-270208.state
  • Vypnutie virtuálneho počítača:

    virsh -c qemu:///system shutdown web_vyvoj
  • Pripojenie CDROMu do virtuálneho počítača:

    virsh -c qemu:///system attach-disk web_vyvoj /dev/cdrom /media/cdrom
[Note]

V predchádzajúcich príkladoch nahraďte web_vyvoj názvom vášho virtuálneho počítača a web_vyvoj-270208.state nahraďte popisnejším názvom súboru.

Správca virtuálnych počítačov

Balík virt-manager obsahuje grafický nástroj na správu lokálnych a vzdialených virtuálnych počítačov. Nástroj virt-manager nainštalujeme pomocou príkazu:

sudo apt-get install virt-manager

Kvôli tomu, že virt-manager vyžaduje grafické rozhranie (GUI), odporúčame ho nainštalovať na pracovnú stanicu a nie na server v ostrej prevádzke. Ak sa chceme pripojiť k lokálnej službe libvirt, zadáme:

virt-manager -c qemu:///system

Môžeme sa však pripojiť aj k službe libvirt, ktorá je spustená na inej stanici, zadaním nasledujúceho príkazu:

virt-manager -c qemu+ssh://virtnode1.nieco.sk/system
[Note]

V predchádzajúcom príklade predpokladáme, že sa medzi počítačmi dá nadviazať spojenie cez SSH, a že počítač virtnode1.mydomain.com už bol nakonfigurovaný a používa na autentifikáciu SSH kľúče. SSH kľúče sú nevyhnutné, pretože libvirt posiela výzvu na zadanie hesla do iného procesu. Viac informácii o konfigurovaní SSH sa nachádza v časti OpenSSH server.

Prehliadač virtuálnych počítačov

Aplikácia virt-viewer umožňuje pripojenie ku konzole virtuálneho počítača. Nástroj virt-viewer vyžaduje grafické rozhranie (GUI) aby sa vedel spojiť s virtuálnym počítačom.

Nástroj virt-viewer nainštalujeme zadaním:

sudo apt-get install virt-viewer

Ak je virtuálny počítač už nainštalovaný a spustený, môžeme sa ku nemu pripojiť zadaním nasledujúceho príkazu:

virt-viewer -c qemu:///system web_vyvoj

Podobne ako virt-manager, aj virt-viewer sa vie pripojiť k vzdialenej stanici pomocou SSH s autentifikáciou pomocou kľúčov:

virt-viewer -c qemu+ssh://virtnode1.nieco.sk/system web_vyvoj

Názov web_vývoj nahradíme názvom nášho virtuálneho počítača.

Ak sme nastavili premostenie sieťového rozhrania, môžeme nastaviť aj SSH prístup k virtuálnemu počítaču. Viac informácií sa dozvieme v častiach OpenSSH server a “Premostenie”.

Zdroje

  • Viac informácií sa dozviete na domovskej stránke KVM.

  • Viac informácií o libvirt sa dozviete na libvirt home page

  • Na stránke Virtual Machine Manager sa zasa nachádza viac informácií o vývoji nástroja virt-manager.

  • O virtualizačnej technológii v Ubuntu sa môžete dozvedieť viac aj v diskusnom kanále IRC #ubuntu-virt na freenode.

  • Ďalším dobrým zdrojom je stránka Ubuntu Wiki KVM.

JeOS a vmbuilder

Úvod

Čo je JeOS

Ubuntu JeOS (vyslovujeme "džús") je efektívny variant operačného systému Ubuntu Server, nastavený špeciálne pre prácu vo virtuálnom počítači. Tento systém sa už nedá stiahnuť ako samostatný ISO obraz disku CD-ROM, ale je ho možné nainštalovať týmito spôsobmi:

  • Počas inštalácie z obrazu disku Server Edition (stlačíme F4 na prvej obrazovke, kde vyberieme "Minimálna inštalácia", ktorá zodpovedá výberu balíkov, ktorý tvoril JeOS).

  • Vytvoríme si vlastný obraz pomocou nástroja vmbuilder, o ktorom hovoríme nižšie.

JeOS je špecializovaná inštalácia systému Ubuntu Server Edition s vyladeným jadrom, ktoré obsahuje základné prvky potrebné na beh vo virtuálnom prostredí.

Ubuntu JeOS bol vyladený tak, aby využíval kľúčové technológie na zvýšenie výkonu v posledných produktoch od VMware. Kombinácia zníženej veľkosti a optimalizovaného výkonu zaisťuje  pre Ubuntu JeOS Edition vysokú efektívnosť využitia serverových zdrojov pri rozsiahlom nasadení virtualizácie.

Systém bez nepotrebných ovládačov s minimálnym počtom balíkov si môžu ostatné spoločnosti prispôsobiť presne podľa svojich potrieb. Bezpečnostné a iné aktualizácie sú obmedzené na minimum, pretože sa aktualizuje iba najnevyhnutnejšie minimum potrebné pre chod prostredia. Používatelia pracujúci v prostredí JeOS zaznamenajú menej aktualizácií ako by zaznamenali pri štandardnej inštalácii servera.

Čo je vmbuilder

Vďaka nástroju vmbuilder už nie je potrebné sťahovať ISO obraz disku JeOS. Nástroj vmbuilder dokáže pomocou rôznych balíkov pripraviť za minútu virtuálny počítač presne podľa našich požiadaviek. Vmbuilder je skript, ktorý automatizuje proces vytvárania virtuálnych počítačov založených na Linuxe. V súčasnosti podporuje KVM a Xen.

Pomocou prepínačov príkazového riadka môžeme pridať ďalšie balíky, odstrániť balíky, zvoliť verziu Ubuntu a zrkadlo z ktorého bude sťahovať, atď. Na novom hardvéri s dostatkom pamäte RAM, priečinkom tmpdir v /dev/shm  alebo použitím súborového systému tmpfs, vytvorením lokálneho zrkadla, môžete naštartovať virtuálny počítač za menej ako minútu.

Prvý krát sa shell skript ubuntu-vm-builder objavil v Ubuntu 8.04LTS. Bol vytvorený za účelom pomoci vývojárom, ktorý potrebovali testovať svoj kód bez toho, aby museli zakaždým začínať od nuly. Niekoľko administrátorov Ubuntu začalo tento skript používať a pridali do neho rôzne vylepšenia a prispôsobili ho na konkrétne prípady, čo priviedlo Sorena Hansena (to nie je golfový hráč ale autor skriptu a špecialista na virtualizáciu Ubuntu) k tomu, aby do vydania Interpid skript od znova prepísal v jazyku Python, pričom si stanovil nové ciele:

  • Navrhnúť skript tak, aby sa dal znova použiť v iných distribúciách.

  • Použiť mechanizmus rozšírení pre všetky virtualizačné interakcie tak, aby sa dali jednoducho a logicky použiť v ostatných virtualizačných rozhraniach.

  • Poskytnúť jednoduché webové rozhranie na správu ako alternatívu k príkazovému riadku.

Základný princíp a príkazy však zostali rovnaké.

Počiatočné nastavenie

Predpokladáme, že už máme lokálne nainštalované a nakonfigurované libvirt a KVM na počítači, ktorý používame. Viac informácii o tom ako to urobiť sa nachádza:

Predpokladáme aj znalosť niektorého z textových editorov, ako napríklad nano alebo vi. Ak o textových editoroch ešte nič neviete, základný prehľad získate na stránke PowerUsersTextEditors. Tento návod je vytvorený pre KVM, ale základný princíp je rovnaký aj pre ostatné virtualizačné technológie.

Inštalácia nástroja vmbuilder

Názov balíka, ktorý je potrebné nainštalovať, je python-vm-builder. V príkazovom riadku zadáme:

sudo apt-get install python-vm-builder
[Note]

Ak používate verziu Hardy, môžete si nainštalovať staršiu verziu balíka s názvom ubuntu-vm-builder, v ktorom je len veľmi málo rozdielov v syntaxe.

Definovanie virtuálneho počítača

Definovanie virtuálneho počítača pomocou nástroja vmbuilder je veľmi jednoduché, ale je tu niekoľko vecí, ktoré je potrebné zvážiť:

  • Ak plánujete poskytovať virtuálne služby, nepredpokladajte, že koncoví používatelia budú vedieť ako si majú rozšíriť veľkosť diskového priestoru podľa svojich potrieb. Preto si buď vopred naplánujte použitie veľkého virtuálneho disku, aby sa mohlo poskytovanie služieb rozrastať, alebo napíšte veľmi zrozumiteľný návod, ako sa dá alokovať viac miest. Dobrou myšlienkou môže byť aj ukladanie dát na samostatné externé úložisko.

  • Vzhľadom k tomu,  že pamäť RAM sa oveľa jednoduchšie alokuje vo virtuálnom počítači, veľkosť RAM by mala byť nastavená na takú hodnotu, o ktorej si myslíte, že bude bezpečným minimom pre poskytovanie virtuálnych služieb.

Príkaz vmbuilder má 2 hlavné parametre: virtualizačnú technológiu (hypervisor) a cieľovú distribúciu. Ďalších niekoľko voliteľných parametrov môžete nájsť po zadaní príkazu:

vmbuilder --help

Základné parametre

V tomto príklade použijeme KVM a Ubuntu 10.04 LTS (Lucid Lynx) a budeme príkaz pre vytvorenie virtuálneho počítača postupne upresňovať, pričom budeme spúšťať príkaz vmbuilder s takýmito parametrami:

sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386  -o --libvirt qemu:///system

Prepínač --suite definuje vydanie Ubuntu, --flavour hovorí, že použijeme virtuálne jadro (to sa používa pri vytváraní obrazu JeOS), --arch hovorí, že chceme použiť 32 bitový počítač, -o povie príkazu vmbuilder aby nahradil predchádzajúcu verziu virtuálneho počítača a --libvirt informuje lokálne virtualizačné rozhranie, aby pridalo virtuálny počítač do zoznamu počítačov.

Poznámky:

  • Vzhľadom na povahu operácií, ktoré vykonáva príkaz vmbuilder, je potrebné mať oprávnenia používateľa root, teda použiť príkaz sudo.

  • Ak virtuálny počítač potrebuje používať viac ako 3Gb pamäte, mali by ste vytvoriť 64 bitový počítač (--arch amd64).

  • Až do vydania Ubuntu 8.10, bolo virtuálne jadro zostavené iba pre 32 bitovú architektúru, preto ak chcete definovať počítač s architektúrou amd64 vo vydaní Hardy, je potrebné použiť --flavour server.

Inštalačné parametre JeOS

Nastavenie siete v JeOS
Priradenie fixnej IP adresy

Keďže virtuálne služby môžu byť nasadené do najrôznejších sietí, o ktorých je veľmi ťažké zistiť ako budú vyzerať, je dobré použiť rovnaké riešenie, ako robia výrobcovia hardvéru - priradiť virtuálnemu počítaču počiatočnú fixnú IP adresu z rozsahu pre súkromné siete, s ktorou oboznámite používateľov pomocou dokumentácie. Rozsah, z ktorého by ste si mali adresu zvoliť je 192.168.0.0/255.

Ak to chceme urobiť, použijeme nasledujúce parametre:

  • --ip ADRESA: IP adresa v číselnom tvare s bodkami (použije sa ak nie je určená cez dhcp)

  • --mask HODNOTA: IP maska v číselnej podobe (predvolená hodnota: 255.255.255.0)

  • --net HODNOTA: IP adresa siete (predvolená hodnota: X.X.X.0)

  • --bcast HODNOTA: IP broadcast adresa (predvolená hodnota: X.X.X.255)

  • --gw ADRESA: Adresa brány (predvolená hodnota: X.X.X.1)

  • --dns ADRESA: Adresa DNS servera (predvolená hodnota: X.X.X.1)

My budeme predpokladať, že predvolené hodnoty sú vyhovujúce, preto použijeme nasledujúci príkaz:

sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100
Úprava libvirt šablóny tak, aby sa použilo premostenie

Pretože chceme, aby k službám mohli pristupovať vzdialené stanice, je potrebné nastaviť libvirt tak, aby služba použila sieťové premostenie. Aby sme to dosiahli, použijeme mechanizmus šablón nástroja vmbuilder,  pomocou ktorého zmeníme jednu z predvolených šablón.

V našom pracovnom priečinku si vytvoríme hierarchiu šablóny a nakopírujeme do nej predvolenú šablónu:

mkdir -p VMBuilder/plugins/libvirt/templates
cp /etc/vmbuilder/libvirt/* VMBuilder/plugins/libvirt/templates/

Teraz môžeme otvoriť súbor VMBuilder/plugins/libvirt/templates/libvirtxml.tmpl a zmeniť:

          <interface type='network'>
<source network='default'/>
</interface>

Na:

          <interface type='bridge'>
<source bridge='br0'/>
</interface>
Rozdelenie disku na oddiely

Pri rozdeľovaní disku na virtuálnom počítači musíme zobrať do úvahy, na aký účel ho plánujeme použiť, pretože väčšina služieb chce mať samostatné úložisko dát. Na tento účel je vhodné vytvoriť samostatnú oddiel pre priečinok /var.

Ak to chceme urobiť, vmbuilder nám poskytne prepínač --part:

--part CESTA
Umožňuje špecifikovať tabuľku oblastí do tzv. partfile súboru. Každý riadok v partfile súbore by mal určovať
(ako prvý koreňový priečinok root):
miesto_pripojenia veľkosť
pričom veľkosť sa udáva v megabajtoch. Je možné definovať až 4 virtuálne disky. Ďalší disk sa oddeľuje
čiarou zo znakov ’---’. Napríklad :
root 1000
/opt 1000
swap 256
---
/var 2000
/log 1500

V našom prípade definujeme textový súbor vmbuilder.partition, ktorý bude obsahovať nasledujúce nastavenia:

root 8000
swap 4000
---
/var 20000
[Note]

Všimnite si, že pri použití obrazov virtuálnych diskov je veľkosť, ktorú sme im pridelili, maximálnou veľkosťou týchto jednotiek.

Náš príkaz bude teraz vyzerať takto:

sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 \ 
-o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition
[Note]

Pomocou znaku "\" v príkaze je možné dlhý príkaz zalomiť do ďalšieho riadka.

Používatelia a heslá

Pri poskytovaní virtuálnej služby bude potrebné zadať predvoleného používateľa a heslo, ktoré odporúčame tiež uviesť vo vašej dokumentácii. Neskôr si v tomto návode povieme, ako budeme poskytovať zabezpečenie pomocou skriptu, ktorý sa bude spúšťať pri prvom prihlásení sa používateľa do virtuálneho počítača, ktorý si okrem iného od neho vyžiada zmenu hesla. V našom príklade použijeme ako prihlasovacie meno 'pouzivatel', a heslo 'tajne'.

Urobíme to pomocou nasledujúcich nepovinných parametrov:

  • --user MENO_POUŽÍVATEĽA: Nastaví meno používateľa, ktorý bude pridaný. Predvolene: ubuntu.

  • --name CELÉ_MENO: Nastaví celé meno používateľa, ktorý bude pridaný. Predvolene: Ubuntu.

  • --pass HESLO: Nastaví heslo pre používateľa. Predvolene: ubuntu.

Náš výsledný príkaz bude vyzerať takto:

sudo vmbuilder kvm ubuntu --suite intrepid --flavour virtual --arch i386 \
-o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition \
--user pouzivatel --name pouzivatel --pass tajne

Inštalácia požadovaných balíkov

V tomto príklade nainštalujeme balík (Limesurvey), ktorý pristupuje do databázy MySQL a má webové rozhranie. Budeme preto potrebovať náš OS vybaviť systémami:

  • Apache

  • PHP

  • MySQL

  • OpenSSH Server

  • Limesurvey (ako príklad aplikácie, ktorú chceme zahrnúť do balenia)

Robí sa to pomocou viacnásobného zadania parametra --addpkg príkazu vmbuilder:

--addpkg PKG
Nainštaluje PKG do hosťovského počítača (môže byť použitý viackrát)

Vzhľadom na to, ako vmbuilder funguje, balíky, ktoré sa potrebujú niečo opýtať používateľa počas inštalačnej fázy, nie sú podporované a mali by sa inštalovať, až keď začne fungovať interaktivita. Toto platí aj pre Limesurvey, ktorý budeme inštalovať až po prihlásení používateľa.

Ostatné balíky, ktoré sa pýtajú jednoduché otázky cez debconf (príkladom je mysql-server pýtajúci nastavenie hesla), je možné nainštalovať okamžite, ale je potrebné spustiť rekonfiguráciu po prvom prihlásení používateľa.

Ak niektoré balíky, ktoré potrebujeme nainštalovať, nie sú v hlavnom úložisku main, bude potrebné povoliť ďalšie úložiská pomocou --comp a --ppa:

--components SÚČ1,SÚČ2,...,SÚČN
zoznam čiarkami oddelených súčastí distribúcie, ktoré sa majú zahrnúť (napr.: main,universe). Predvolená hodnota
je "main"
--ppa=PPA Pridá osobný archív balíkov PPA do zoznamu zdrojov v súbore sources.list pre virtuálny počítač.

Limesurvey nie je momentálne súčasťou archívu, preto použijeme jeho adresu PPA (osobného archívu balíkov), tak že ju pridáme do súboru /etc/apt/source.list virtuálneho počítača. Do príkazu teda pridáme nasledujúce voľby:

--addpkg apache2 --addpkg apache2-mpm-prefork --addpkg apache2-utils --addpkg apache2.2-common \
--addpkg dbconfig-common --addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \
--addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \
--addpkg mysql-server --ppa nijaba
OpenSSH

Ďalším praktickým nástrojom, ktorý chceme poskytovať, je OpenSSH, pretože umožní administrátorom vzdialený prístup k virtuálnemu počítaču. Poskytnutie predinštalovaného OpenSSH servera je však veľký bezpečnostný risk, pretože všetky servery vo virtuálnych počítačoch budú používať rovnaký tajný kľúč. Takže ak sa hackerovi podarí prelomiť ochranu, ľahko získa prístup ku všetkým virtuálnym počítačom. Preto tak, ako pri používateľskom hesle, použijeme skript, ktorý nainštaluje OpenSSH pri prvom prihlásení používateľa, takže vygenerovaný kľúč bude odlišný v každom virtuálnom počítači. Na tento účel použijeme --firstboot skript, pretože nevyžaduje žiadnu interakciu z používateľom.

Faktor rýchlosti

Uloženie balíkov do vyrovnávacej pamäte

Keď vmbuilder vytvára zostavu vášho systému, musí stiahnuť každý balík cez sieť z jedného z oficiálnych úložísk, čo môže v závislosti od rýchlosti internetového spojenia a záťaže zrkadla významne ovplyvniť rýchlosť vytvárania systému. Ak chceme tento čas skrátiť, je vhodné buď vytvoriť lokálne úložisko (ktoré môžeme vytvoriť pomocou apt-mirror) alebo použiť medzičlánok (proxy) s vyrovnávacou pamäťou, ako napríklad apt-proxy. Druhá možnosť je jednoduchšia na implementáciu a vyžaduje menej diskového priestoru, a preto ju použijeme aj v tomto návode. Vyrovnávaciu pamäť nainštalujeme zadaním príkazu:

sudo apt-get install apt-proxy

Po dokončení je prázdny medzičlánok proxy pripravený na adrese http://mirroraddress:9999 a úložisko systému Ubuntu sa bude vytvárať v priečinku /ubuntu. Aby ho príkaz vmbuilder použil, použijeme voľbu --mirror:

--mirror=URL  Použije zrkadlo úložiska (mirror) Ubuntu na zadanej URL adrese namiesto predvolených
úložísk na adresách http://archive.ubuntu.com/ubuntu s oficiálnymi
archívmi a http://ports.ubuntu.com/ubuntu-ports
s ostatnými

Pridáme preto do príkazu nasledujúce:

--mirror http://mirroraddress:9999/ubuntu
[Note]

Adresa zrkadla, ktorú zadáme, sa použije aj v súbore /etc/apt/source.list novo vytvoreného virtuálneho počítača, preto je užitočné zadať takú adresu, na ktorú bude mať hosťovský počítač prístup alebo naplánovať zmenu adresy neskôr, napríklad pomocou skriptu --firstboot.

Inštalácia lokálneho úložiska

Ak sa nachádzame v rozsiahlejšom prostredí, môžeme sa zamerať na nastavenie lokálneho zrkadla úložísk Ubuntu. Balík apt-mirror nám poskytne skripty, ktoré budú za nás obsluhovať zrkadlenie. Mali by sme si vyhradiť asi 20 gigabajtov voľného diskového priestoru pre podporované vydania a architektúry.

V predvolenom stave apt-mirror použije konfiguračný súbor /etc/apt/mirror.list. Keď ho nastavíme, bude replikovať iba architektúru vhodnú pre náš počítač. Ak chceme v zrkadle podporovať aj ostatné architektúry, stačí skopírovať riadky v súbore začínajúce “deb” a nahradiť deb kľúčovým slovom /deb-{arch}, pričom arch môže byť i386, amd64, atď... Napríklad na počítači s architektúrou amd64 môžeme poskytovať archívy pre architektúru i386 doplnením riadkov:

deb  http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse  
/deb-i386 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
 
deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
/deb-i386 http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
 
deb http://archive.ubuntu.com/ubuntu/ lucid-backports main restricted universe multiverse
/deb-i386 http://archive.ubuntu.com/ubuntu lucid-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse
/deb-i386 http://security.ubuntu.com/ubuntu lucid-security main restricted universe multiverse  

deb http://archive.ubuntu.com/ubuntu lucid main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
/deb-i386 http://archive.ubuntu.com/ubuntu lucid main/debian-installer restricted/debian-installer universe/debian-installer multiverse/deb

Všimnite si, že zdrojové balíky nie sú zrkadlené, pretože sa v porovnaní s binárnymi súbormi používajú zriedkavo a zaberajú oveľa viac miesta. Ak budeme chcieť, môžeme ich jednoducho pridať do zoznamu.

Keď zrkadlo skončí replikáciu (čo môže trvať dlho), je potrebné nastaviť webový server Apache, aby zrkadlené súbory v priečinku /var/spool/apt-mirror (ak ste nezmenili predvolené umiestnenie) boli publikované cez webový server Apache. Viac informácií o webovom serveri Apache sa nachádza v časti HTTPD - webový server Apache2.

Inštalácia v RAM Disku

Všetci vieme, že zápis do operačnej pamäte RAM je OMNOHO rýchlejší ako zápis na disk. Ak máte nejakú voľnú pamäť, v ktorej by ste mohli nechať vmbuilder vykonávať jeho operácie na tzv. RAMdisku, veľmi by to pomohlo. RAMdisk vytvoríme pomocou voľby --tmpfs:

--tmpfs OPTS  Použije tmpfs ako pracovný priečinok, pričom určíme jeho 
veľkosť alebo zadaním "-" použijeme predvolené tmpfs (suid,dev,size=1G).

Preto pridanie --tmpfs - je veľmi dobrý nápad, ak máte 1G voľnej operačnej pamäte.

Zbalenie aplikácie

Máme dve možnosti:

  • Odporúčaný spôsob, ako to urobiť je vytvorenie Debian balíka. Pretože toto je už mimo rámec nášho návodu, nebudeme to tu robiť, ale povieme si, že návod, ako to urobiť, sa nachádza na stránke Ubuntu Packaging Guide. V tomto prípade je tiež vhodné vytvoriť pre balík úložisko, z ktorého bude možné jednoducho stiahnuť aktualizovaný balík. Návod, ako to urobiť, nájdete na stránke Debian Administration.

  • Ručná inštalácia aplikácie do priečinka /opt podľa odporúčaní FHS guidelines.

V našom prípade použijeme Limesurvey ako príklad webovej aplikácie, kvôli ktorej poskytujeme virtuálny počítač. Ako sme už poznamenali, použijeme verziu, ktorá je dostupná v PPA (osobnom archíve balíkov).

Dokončenie inštalácie

Prvý štart

Tak ako sme hovorili už skôr, pri prvom spustení virtuálneho počítača je potrebné nainštalovať openssh-server, aby bol generovaný kľúč jedinečný pre každý virtuálny počítač. Urobíme to pomocou skriptu s názvom boot.sh takto:

# Tento skript sa spustí pri prvom spustení virtuálneho počítača
# Bude spustený pod používateľom root.

apt-get update
apt-get install -qqy --force-yes openssh-server

A teraz pridáme voľbu --firstboot boot.sh do príkazu.

Prvé prihlásenie

Systémy Mysql a Limesurvey vyžadujú trocha interakcie počas nastavovania, nastavíme ich pri prvom prihlásení používateľa pomocou skriptu s názvom login.sh. Tento skript použijeme aj na to, aby používateľ mohol zadať:

  • svoje vlastné heslo

  • akú bude používať klávesnicu a ostatné regionálne nastavenia

Skript login.sh preto zadefinujeme nasledovne:

# Tento skript sa spustí pri prvom prihlásení používateľa 

echo "Virtuálny počítač je teraz potrebné nastaviť."
echo "Bude potrebné odpovedať na niekoľko otázok."
echo "Začneme zmenou vášho používateľského hesla"

passwd

#poskytnutie možnosti zmeny klávesnice
sudo dpkg-reconfigure console-setup

#nastavenie hesla používateľa root databázového servera mysql
sudo dpkg-reconfigure mysql-server-5.0

#inštalácia limesurvey
sudo apt-get install -qqy --force-yes limesurvey

echo "Virtuálny počítač je teraz nastavený. Zadajte do prehliadača"
echo "adresu http://serverip/limesurvey/admin"

A potom pridáme do príkazu voľbu --firstlogin login.sh.

Užitočné doplnky

Nastavenie automatických aktualizácií

Ak chceme, aby virtuálny počítač sám seba aktualizoval, stačí nainštalovať unattended-upgrades. Preto pridáme nasledujúcu voľbu do príkazu:

--addpkg unattended-upgrades

Pretože sme pridali aplikáciu z PPA úložiska, proces aktualizácie nebude aktualizovať len systém, ale aj danú aplikáciu, a to vždy, keď sa objaví nová verzia v PPA úložisku.

Obsluha udalostí ACPI

Aby virtuálne počítače dokázali spracovať signál pre vypnutie a reštart, je vhodné nainštalovať aj balík acpid. Urobíme to pridaním nasledujúcej voľby do príkazu:

--addpkg acpid

Výsledný príkaz

Tu je výsledný príkaz so všetkými voľbami, o ktorých sme hovorili:

sudo vmbuilder kvm ubuntu --suite lucid --flavour virtual --arch i386 -o \ 
--libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition --user user \
--name user --pass default --addpkg apache2 --addpkg apache2-mpm-prefork \
--addpkg apache2-utils --addpkg apache2.2-common --addpkg dbconfig-common \
--addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \
--addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \
--addpkg mysql-server --addpkg unattended-upgrades --addpkg acpid --ppa nijaba \
--mirror http://mirroraddress:9999/ubuntu --tmpfs - --firstboot boot.sh \
--firstlogin login.sh es

Zdroje

Ak sa chcete dozvedieť viac, máte otázky alebo pripomienky, kontaktujte náš Ubuntu Server Tím cez:

Defining Your Virtual Machine

Defining a virtual machine with Ubuntu's vmbuilder is quite simple, but here are a few thing to consider:

  • If you plan on shipping a virtual appliance, do not assume that the end-user will know how to extend disk size to fit their need, so either plan for a large virtual disk to allow for your appliance to grow, or explain fairly well in your documentation how to allocate more space. It might actually be a good idea to store data on some separate external storage.

  • Given that RAM is much easier to allocate in a VM, RAM size should be set to whatever you think is a safe minimum for your appliance.

The vmbuilder command has 2 main parameters: the virtualization technology (hypervisor) and the targeted distribution. Optional parameters are quite numerous and can be found using the following command:

vmbuilder --help

Base Parameters

As this example is based on KVM and Ubuntu 9.10 (Karmic Koala), and we are likely to rebuild the same virtual machine multiple time, we'll invoke vmbuilder with the following first parameters:

sudo vmbuilder kvm ubuntu --suite karmic --flavour virtual --arch i386  -o --libvirt qemu:///system

The --suite defines the Ubuntu release, the --flavour specifies that we want to use the virtual kernel (that's the one used to build a JeOS image), the --arch tells that we want to use a 32 bit machine, the -o tells vmbuilder to overwrite the previous version of the VM and the --libvirt tells to inform the local virtualization environment to add the resulting VM to the list of available machines.

Notes:

  • Because of the nature of operations performed by vmbuilder, it needs to have root privilege, hence the use of sudo.

  • If your virtual machine needs to use more than 3Gb of ram, you should build a 64 bit machine (--arch amd64).

  • Until Ubuntu 8.10, the virtual kernel was only built for 32 bit architecture, so if you want to define an amd64 machine on Hardy, you should use --flavour server instead.

JeOS Installation Parameters

JeOS Networking
Assigning a fixed IP address

As a virtual appliance that may be deployed on various very different networks, it is very difficult to know what the actual network will look like. In order to simplify configuration, it is a good idea to take an approach similar to what network hardware vendors usually do, namely assigning an initial fixed IP address to the appliance in a private class network that you will provide in your documentation. An address in the range 192.168.0.0/255 is usually a good choice.

To do this we'll use the following parameters:

  • --ip ADDRESS: IP address in dotted form (defaults to dhcp if not specified)

  • --mask VALUE: IP mask in dotted form (default: 255.255.255.0)

  • --net VALUE: IP net address (default: X.X.X.0)

  • --bcast VALUE: IP broadcast (default: X.X.X.255)

  • --gw ADDRESS: Gateway address (default: X.X.X.1)

  • --dns ADDRESS: Name server address (default: X.X.X.1)

We assume for now that default values are good enough, so the resulting invocation becomes:

sudo vmbuilder kvm ubuntu --suite karmic --flavour virtual --arch i386 -o --libvirt qemu:///system --ip 192.168.0.100
Modifying the libvirt Template to use Bridging

Because our appliance will be likely to need to be accessed by remote hosts, we need to configure libvirt so that the appliance uses bridge networking. To do this we use vmbuilder template mechanism to modify the default one.

In our working directory we create the template hierarchy and copy the default template:

mkdir -p VMBuilder/plugins/libvirt/templates
cp /etc/vmbuilder/libvirt/* VMBuilder/plugins/libvirt/templates/

We can then edit VMBuilder/plugins/libvirt/templates/libvirtxml.tmpl to change:

          <interface type='network'>
<source network='default'/>
</interface>

To:

          <interface type='bridge'>
<source bridge='br0'/>
</interface>
Partitioning

Partitioning of the virtual appliance will have to take into consideration what you are planning to do with is. Because most appliances want to have a separate storage for data, having a separate /var would make sense.

In order to do this vmbuilder provides us with --part:

--part PATH
Allows to specify a partition table in partfile each line of partfile should specify
(root first):
mountpoint size
where size is in megabytes. You can have up to 4 virtual disks, a new disk starts on a
line with ’---’. ie :
root 1000
/opt 1000
swap 256
---
/var 2000
/log 1500

In our case we will define a text file name vmbuilder.partition which will contain the following:

root 8000
swap 4000
---
/var 20000
[Note]

Note that as we are using virtual disk images, the actual sizes that we put here are maximum sizes for these volumes.

Our command line now looks like:

sudo vmbuilder kvm ubuntu --suite karmic --flavour virtual --arch i386 \ 
-o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition
[Note]

Using a "\" in a command will allow long command strings to wrap to the next line.

User and Password

Again setting up a virtual appliance, you will need to provide a default user and password that is generic so that you can include it in your documentation. We will see later on in this tutorial how we will provide some security by defining a script that will be run the first time a user actually logs in the appliance, that will, among other things, ask him to change his password. In this example I will use 'user' as my user name, and 'default' as the password.

To do this we use the following optional parameters:

  • --user USERNAME: Sets the name of the user to be added. Default: ubuntu.

  • --name FULLNAME: Sets the full name of the user to be added. Default: Ubuntu.

  • --pass PASSWORD: Sets the password for the user. Default: ubuntu.

Our resulting command line becomes:

sudo vmbuilder kvm ubuntu --suite intrepid --flavour virtual --arch i386 \
-o --libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition \
--user user --name user --pass default

Installing Required Packages

In this example we will be installing a package (Limesurvey) that accesses a MySQL database and has a web interface. We will therefore require our OS to provide us with:

  • Apache

  • PHP

  • MySQL

  • OpenSSH Server

  • Limesurvey (as an example application that we have packaged)

This is done using vmbuilder by specifying the --addpkg command multiple times:

--addpkg PKG
Install PKG into the guest (can be specfied multiple times)

However, due to the way vmbuilder operates, packages that have to ask questions to the user during the post install phase are not supported and should instead be installed while interactivity can occur. This is the case of Limesurvey, which we will have to install later, once the user logs in.

Other packages that ask simple debconf question, such as mysql-server asking to set a password, the package can be installed immediately, but we will have to reconfigure it the first time the user logs in.

If some packages that we need to install are not in main, we need to enable the additional repositories using --comp and --ppa:

--components COMP1,COMP2,...,COMPN
A comma separated list of distro components to include (e.g. main,universe). This defaults
to "main"
--ppa=PPA Add ppa belonging to PPA to the vm's sources.list.

Limesurvey not being part of the archive at the moment, we'll specify it's PPA (personal package archive) address so that it is added to the VM /etc/apt/source.list, so we add the following options to the command line:

--addpkg apache2 --addpkg apache2-mpm-prefork --addpkg apache2-utils --addpkg apache2.2-common \
--addpkg dbconfig-common --addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \
--addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \
--addpkg mysql-server --ppa nijaba

OpenSSH

Another convenient tool that we want to have on our appliance is OpenSSH, as it will allow our admins to access the appliance remotely. However, pushing in the wild an appliance with a pre-installed OpenSSH server is a big security risk as all these server will share the same secret key, making it very easy for hackers to target our appliance with all the tools they need to crack it open in a breeze. As for the user password, we will instead rely on a script that will install OpenSSH the first time a user logs in so that the key generated will be different for each appliance. For this we'll use a --firstboot script, as it does not need any user interaction.

Speed Considerations

Package Caching

When vmbuilder creates builds your system, it has to go fetch each one of the packages that composes it over the network to one of the official repositories, which, depending on your internet connection speed and the load of the mirror, can have a big impact on the actual build time. In order to reduce this, it is recommended to either have a local repository (which can be created using apt-mirror) or using a caching proxy such as apt-cache. The later option being much simpler to implement and requiring less disk space, it is the one we will pick in this tutorial. To install it, simply type:

sudo apt-get install apt-proxy

Once this is complete, your (empty) proxy is ready for use on http://mirroraddress:9999 and will find ubuntu repository under /ubuntu. For vmbuilder to use it, we'll have to use the --mirror option:

--mirror=URL  Use Ubuntu mirror at URL instead of the default, which
is http://archive.ubuntu.com/ubuntu for official
arches and http://ports.ubuntu.com/ubuntu-ports
otherwise

So we add to the command line:

--mirror http://mirroraddress:9999/ubuntu
[Note]

The mirror address specified here will also be used in the /etc/apt/source.list of the newly created guest, so it is usefull to specify here an address that can be resolved by the guest or to plan on reseting this address later on, such as in a --firstboot script.

Install a Local Mirror

If we are in a larger environment, it may make sense to setup a local mirror of the Ubuntu repositories. The package apt-mirror provides you with a script that will handle the mirroring for you. You should plan on having about 20 gigabyte of free space per supported release and architecture.

By default, apt-mirror uses the configuration file in /etc/apt/mirror.list. As it is set up, it will replicate only the architecture of the local machine. If you would like to support other architectures on your mirror, simply duplicate the lines starting with “deb”, replacing the deb keyword by /deb-{arch} where arch can be i386, amd64, etc... For example, on an amd64 machine, to have the i386 archives as well, you will have:

deb  http://archive.ubuntu.com/ubuntu karmic main restricted universe multiverse 
/deb-i386 http://archive.ubuntu.com/ubuntu karmic main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu karmic-updates main restricted universe multiverse
/deb-i386 http://archive.ubuntu.com/ubuntu karmic-updates main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse
/deb-i386 http://archive.ubuntu.com/ubuntu karmic-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu karmic-security main restricted universe multiverse
/deb-i386 http://security.ubuntu.com/ubuntu karmic-security main restricted universe multiverse

deb http://archive.ubuntu.com/ubuntu karmic main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer
/deb-i386 http://archive.ubuntu.com/ubuntu karmic main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer

Notice that the source packages are not mirrored as they are seldom used compared to the binaries and they do take a lot more space, but they can be easily added to the list.

Once the mirror has finished replicating (and this can be quite long), you need to configure Apache so that your mirror files (in /var/spool/apt-mirror if you did not change the default), are published by your Apache server. For more information on Apache see the section called “HTTPD - Apache2 Web Server”.

Installing in a RAM Disk

As you can easily imagine, writing to RAM is a LOT faster than writing to disk. If you have some free memory, letting vmbuilder perform its operation in a RAMdisk will help a lot and the option --tmpfs will help you do just that:

--tmpfs OPTS  Use a tmpfs as the working directory, specifying its
size or "-" to use tmpfs default (suid,dev,size=1G).

So adding --tmpfs - sounds like a very good idea if you have 1G of free ram.

Package the Application

Two option are available to us:

  • The recommended method to do so is to make a Debian package. Since this is outside of the scope of this tutorial, we will not perform this here and invite the reader to read the documentation on how to do this in the Ubuntu Packaging Guide. In this case it is also a good idea to setup a repository for your package so that updates can be conveniently pulled from it. See the Debian Administration article for a tutorial on this.

  • Manually install the application under /opt as recommended by the FHS guidelines.

In our case we'll use Limesurvey as example web application for which we wish to provide a virtual appliance. As noted before, we've made a version of the package available in a PPA (Personal Package Archive).

Finishing Install

First Boot

As we mentioned earlier, the first time the machine boots we'll need to install openssh-server so that the key generated for it is unique for each machine. To do this, we'll write a script called boot.sh as follows:

# This script will run the first time the virtual machine boots
# It is ran as root.

apt-get update
apt-get install -qqy --force-yes openssh-server

And we add the --firstboot boot.sh option to our command line.

First Login

Mysql and Limesurvey needing some user interaction during their setup, we'll set them up the first time a user logs in using a script named login.sh. We'll also use this script to let the user specify:

  • His own password

  • Define the keyboard and other locale info he wants to use

So we'll define login.sh as follows:

# This script is ran the first time a user logs in

echo "Your appliance is about to be finished to be set up."
echo "In order to do it, we'll need to ask you a few questions,"
echo "starting by changing your user password."

passwd

#give the opportunity to change the keyboard
sudo dpkg-reconfigure console-setup

#configure the mysql server root password
sudo dpkg-reconfigure mysql-server-5.0

#install limesurvey
sudo apt-get install -qqy --force-yes limesurvey

echo "Your appliance is now configured. To use it point your"
echo "browser to http://serverip/limesurvey/admin"

And we add the --firstlogin login.sh option to our command line.

Useful Additions

Configuring Automatic Updates

To have your system be configured to update itself on a regular basis, we will just install unattended-upgrades, so we add the following option to our command line:

--addpkg unattended-upgrades

As we have put our application package in a PPA, the process will update not only the system, but also the application each time we update the version in the PPA.

ACPI Event Handling

For your virtual machine to be able to handle restart and shutdown events it is being sent, it is a good idea to install the acpid package as well. To do this we just add the following option:

--addpkg acpid

Final Command

Here is the command with all the options discussed above:

sudo vmbuilder kvm ubuntu --suite intrepid --flavour virtual --arch i386 -o \ 
--libvirt qemu:///system --ip 192.168.0.100 --part vmbuilder.partition --user user \
--name user --pass default --addpkg apache2 --addpkg apache2-mpm-prefork \
--addpkg apache2-utils --addpkg apache2.2-common --addpkg dbconfig-common \
--addpkg libapache2-mod-php5 --addpkg mysql-client --addpkg php5-cli \
--addpkg php5-gd --addpkg php5-ldap --addpkg php5-mysql --addpkg wwwconfig-common \
--addpkg mysql-server --addpkg unattended-upgrades --addpkg acpid --ppa nijaba \
--mirror http://mirroraddress:9999/ubuntu --tmpfs - --firstboot boot.sh \
--firstlogin login.sh es

Resources

If you are interested in learning more, have questions or suggestions, please contact the Ubuntu Server Team at:

UEC

Prehľad

Tento návod hovorí o inštalácii UEC z CD disku Ubuntu 10.04 LTS Server Edition, pričom predpokladá použitie základnej topológie siete s jednoduchou obsluhou v štýle "všetko v jednom" a s jedným alebo viacerými pripojenými uzlami.

V tomto návode sa naučíme, ako nainštalovať, nakonfigurovať, zaregistrovať a vykonávať základné operácie v nastaveniach UEC, čím získame jedného správcu mraku (cloud controller) s "rozhraním" a jeden alebo viacero uzlov na spúšťanie inštancií virtuálnych počítačov (VM). V začiatkoch nám pomôžu aj príklady využitia vlastného súkromného mraku.

Požiadavky

Ak chceme implementovať najmenšiu infraštruktúru mraku, potrebujeme najmenej dva špecializované systémy:

  • Rozhranie.
  • Jeden alebo viac uzlov.

Z nasledujúcej časti odporúčame miesto fixných požiadaviek použiť odporúčania vychádzajúce zo skúseností autorov tejto dokumentácie.

Požiadavky na rozhranie

Nasledujúca tabuľka platí pre systém, na ktorom bude bežať jeden alebo viac:

  • Správca mraku - Cloud Controller (CLC)
  • Správca klastra - Cluster Controller (CC)
  • Walrus (úložisko dát podobné službe S3)
  • Správca úložiska - Storage Controller (SC)

Požiadavky rozhrania UEC

Hardvér Minimum Odporúčané Poznámky
CPU1 GHz2 x 2 GHzPre rozhranie všetko v jednom je vhodné, ak budeme mať aspoň dvojjadrový procesor.
Pamäť
512 MB
2 GBPre rozhranie v jazyku Java bude lepšie ak bude mať veľa dostupnej pamäte.
Disk5400 ot./min IDE7200 ot./min SATAPomalšie disky fungujú, ale bude potrebný oveľa dlhší čas na štart inštancie.
Miesto na disku40 GB200 GB40GB je miesto len pre jeden obraz, vyrovnávaciu pamäť, atď. Eucalyptus nemá rád keď mu dôjde voľné miesto na disku.
Sieť100 Mbps1000 MbpsObrazy počítačov majú stovky MB a je potrebné, aby sa po sieti kopírovali na uzly

Požiadavky uzlov

Ďalšími systémami sú uzly, na ktorých bude spustený:

  • Správca uzla - Node Controller (NC)

Požiadavky uzlov UEC

Hardvér Minimum Odporúčané Poznámky
CPURozšírenia pre VTVT, 64-bit, Viac jadier64 bitové systémy umožňujú spúšťať inštancie pre architektúry i386 aj amd64. Eucalyptus umožňuje spustiť na jednom uzle iba jeden virtuálny počítač na jadro procesora.
Pamäť
1 GB
4 GBViac pamäte zamená viac hosťujúcich systémov a umožnuje imlementovať rozsiahlejšie systémy.
Disk5400 ot./min IDE7200 ot./min SATA alebo SCSI
Uzly systému Eucalyptus sú závislé od rýchlosti disku; čakanie na V/V operácie bude predstavovať úzke hrdlo pri výkone.
Miesto na disku40 GB100 GBObrazy sa  ukladajú do lokálnej vyrovnávacej pamäte. Eucalyptus nemá rád nedostatok miesta na disku.
Sieť100 Mbps1000 MbpsObrazy počítačov majú stovky MB a je potrebné, aby sa po sieti kopírovali na uzly

Inštalácia mraku, klastra, úložiska, a systému Wairus na server s rozhraním

  1. Stiahneme ISO súbor systému Ubuntu 10.04 LTS Server ISO a napálime ho na CD disk.
  2. Pri zavádzaní systému vyberieme “Install Ubuntu Enterprise Cloud”.
  3. Na otázku, či chceme nainštalovať “Cluster” alebo “Node” vyberieme “Cluster”.
  4. Počas inštalácie dostaneme ešte ďalšie dve otázky týkajúce sa mraku:
    • Názov mraku.
      napr.: mrak1.
    • Rozsah verejných IP adries v LAN, ktoré mrak automaticky vyhradí pre inštancie.
      napr. 192.168.1.200-192.168.1.249.

Inštalácia správcu uzla (uzlov)

Inštalácia správcu uzla je ešte jednoduchšia. Iba sa uistíme, či máme pripojenie do siete, v ktorej už beží správca mraku alebo klastra.

  1. Na zavedenie systému na uzloch použijeme rovnaký ISO súbor.
  2. Vyberieme “Install Ubuntu Enterprise Cloud”.
  3. Teraz by inštalátor mal automaticky rozpoznať prítomnosť klastra a predvoliť možnosť inštalácie uzla - “Node”.
  4. Potvrdíme schému rozdelenia disku.
  5. Zvyšok inštalácie by mal prebehnúť bez prerušenia. Dokončíme inštaláciu a reštartujeme uzol.

Registrácia uzla (uzlov)

Uzly sú fyzické systémy v rámci UEC,  na ktorých v skutočnosti bežia inštancie virtuálnych počítačov mraku.

Po tom, ako je na jeden alebo viacero uzlov nainštalovaný Ubuntu Server a beží na nich služba eucalyptus-nc, prihlásime sa do Správcu mraku (CLC) a spustíme:

sudo euca_conf --no-rsync --discover-nodes

Tento príkaz preskúma systémy bežiace v sieti so spustenou službou eucalyptus-nc a administrátor môže potvrdiť registráciu každého uzla podľa jeho IP adresy.

Ak systém od nás bude vyžadovať heslá, alebo cez scp zašle chyby, bude potrebné prejsť inštrukcie na synchronizáciu kľúčov podľa UEC/NodeInstallation.

Získanie poverení

Po nainštalovaní a zavedení <emphasis>Správcu mraku</emphasis> je potrebné, aby používatelia získali svoje poverenia. To sa dá urobiť buď cez webový prehliadač alebo cez príkazový riadok.

Cez webový prehliadač

  1. Vo webovom prehliadači (buď zo vzdialeného počítača alebo priamo na serveri Ubuntu) zadáme nasledujúcu URL adresu:
    https://<ip-adresa-správcu-mraku>:8443/
    [Caution] Musíte použiť zabezpečené pripojenie, preto sa uistite či ste v URL adrese použili "https" a nie "http". Po zadaní sa zobrazí varovanie o bezpečnosti certifikátu. Tu je potrebné pridať výnimku aby sa stránka zobrazila. Ak výnimku nepotvrdíte, nebude možné zobraziť konfiguračnú stránku systému Eucalyptus.
  2. Pri prvom prihlásení použijeme prihlasovacie meno 'admin' a heslo 'admin' (po prihlásení nas systém vyzve na zmenu hesla).
  3. Potom budeme postupovať podľa zobrazený inštrukcií na zmenu hesla správcu a jeho emailovej adresy.
  4. Po dokončení prvotného konfiguračného procesu, klikneme na kartu 'credentials' umiestnenú v ľavej hornej časti obrazovky.
  5. Klikneme na tlačidlo 'Download Credentials' čím získame naše poverenia.
  6. Súbor uložíme do priečinka <filename>~/.euca</filename>.
  7. Rozbalíme stiahnutý súbor do bezpečného miesta (<filename>~/.euca</filename>).
    unzip -d ~/.euca mycreds.zip

Cez príkazový riadok

  1. Ak máme k dispozícii len príkazový riadok <emphasis>Správcu mraku</emphasis>, použijeme takýto postup:
    mkdir -p ~/.euca
    chmod 700 ~/.euca
    cd ~/.euca
    sudo euca_conf --get-credentials mycreds.zip
    unzip mycreds.zip
    ln -s ~/.euca/eucarc ~/.eucarc
    cd -

Rozbalenie a používanie poverení

Teraz bude potrebné na našom serveri pomocou certifikátov X.509 nastaviť EC2 API a nástroje AMI.  

  1. Spustíme rozbalený súbor "eucarc", ktorým nastavíme prostredie systému Eucalyptus:
    . ~/.euca/eucarc
  2. Môžeme tiež tento príkaz pridať do súboru ~/.bashrc, aby sa prostredie Eucalyptus nastavilo automaticky po prihlásení. Eucalyptus zaobchádza s touto sadou poverení ako s povereniami 'administratora', ktoré umožnia držiteľovi globálnych prifilégii prechádzať mrak. Ako také by mali byť chráné rovnakým sposobom, ako sú chránené ostatné úrovne prístupu (napr. by nemali byť viditeľné pre bežných používateľov).
    echo "[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc" >> ~/.bashrc
  3. Nainštalujeme potrebné používateľské nástroje mraku:
    sudo apt-get install euca2ools
  4. Keď chceme overiť, či všetko pracuje správne, vyžiadame si podrobnosti o dostupnosti lokálneho klastra:
    . ~/.euca/eucarc
    euca-describe-availability-zones verbose
    AVAILABILITYZONE myowncloud 192.168.1.1
    AVAILABILITYZONE |- vm types free / max cpu ram disk
    AVAILABILITYZONE |- m1.small 0004 / 0004 1 128 2
    AVAILABILITYZONE |- c1.medium 0004 / 0004 1 256 5
    AVAILABILITYZONE |- m1.large 0002 / 0002 2 512 10
    AVAILABILITYZONE |- m1.xlarge 0002 / 0002 2 1024 20
    AVAILABILITYZONE |- c1.xlarge 0001 / 0001 4 2048 20
[Note]

Váš výstup z predchádzajúceho príkazu sa bude líšiť.

Spustenie obrazu

Existuje mnoho spôsobov, akými sa dajú vytvárať inštancie obrazu v UEC:  

  • Použitím príkazového riadka 
  • Použitím jedného z nástrojov na správu UEC, akým je napríklad Landscape. 
  • Použitím rozšírenia pre prehliadač Firefox s názvom ElasticFox.

V tomto návode popíšeme postup pomocou príkazového riadka:

  1. Pred spustením inštancie nášho obrazu, by sme mali najskôr vytvoriť dvojicu kľúčov (ssh), prostredníctvom ktorých sa do inštancie po jej zavedení prihlásime ako používateľ root. Kľúč sa uloží, preto stačí, ak to urobíme raz.
    Spustíme nasledujúci príkaz:
    if [ ! -e ~/.euca/mykey.priv ]; then
    mkdir -p -m 700 ~/.euca
    touch ~/.euca/mykey.priv
    chmod 0600 ~/.euca/mykey.priv
    euca-add-keypair mykey > ~/.euca/mykey.priv
    fi
    [Note]

    Váš kľúč môžete nazvať ako chcete (v tomto príklade sa kľúč volá <emphasis>'mykey'</emphasis>), nesmiete však zabudnúť, ako sa volá. Ak zabudnete, môžete spustiť príkaz <command>euca-describe-keypairs</command>, ktorým zobrazíte zoznam vytvorených kľúčov uložených v systéme.

  2. Musíme tiež v naších inštanciách povoliť prístup k portu 22:
    euca-describe-groups
    euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
  3. Ako ďalší krok môžeme vytvoriť inštancie našich registrovaných obrazov:
    euca-run-instances $EMI -k mykey -t m1.small
    [Note]

    Ak sa zobrazí chyba vzťahujúca sa k <emphasis>image_id</emphasis>, podrobnosti môžete nájsť zobrazením stránky Images alebo klknutím na <emphasis>"How to Run"</emphasis> na stránke <emphasis>Store</emphasis>, na ktorej nájdete ukážky príkazov.

  4. Pri prvom spustení inštancie, systém nastaví vyrovnávacie pamäte pre obraz, z ktorého bol vytvorený. Toto môže trvať nejaký čas, preto prvé spustenie inštancie obrazu virtuálneho počítača zvyčajne trvá dosť dlho.
    Keď chceme sledovať stav našej inštancie, spustíme:
    watch -n5 euca-describe-instance
    Vo výstupe príkazu by sme mali vidieť informácie o inštancii vrátane jej stavu. Keď prebieha ukladanie do vyrovnávacej pamäte počas prvého spustenia, stav inštancie je <emphasis>'pending'</emphasis>.
  5. Keď sa inštancia úplne naštartuje, je stav sa zmení na <emphasis>'running'</emphasis>. Vo výstupe si pozrieme IP adresu priradenú inštancii a potom sa k nej pripojíme:
    IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
    ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR
  6. Keď skončíme prácu v inštancii, opustíme naše SSH pripojenie a potom ukončíme inštanciu:
    INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $2}')
    euca-terminate-instances $INSTANCEID

Inštalácia obrazu z úložiska

Nasledujúci postup predstavuje najjednoduchší spôsob, ako nainštalovať obraz. Pokročilejší používatelia sa však môžu zaujímať o to, ako Pripojiť svoj vlastný obraz.

Najjednoduchší spôsob, ako pridať obraz do UEC, je nainštalovať ho z Úložiska obrazov prostredníctvom webového rozhrania UEC.

  1. Otvoríme webové rozhranie na nasledujúcej URL adrese (Uistite sa že ste zadali https):
    https://<ip-adresa-správcu-mraku>:8443/
  2. Zadáme prihlasovacie meno a heslo (ak budeme o to požiadaný, a nebudeme už prihlásený).
  3. Klikneme na kartu Store.
  4. Prelistujeme zoznam dostupných obrazov.
  5. Klikneme na install pri obraze, ktorý chceme nainštalovať.

Po stiahnutí a nainštalovaní môžeme kliknúť na odkaz <emphasis>"How to run?"</emphasis>, ktorý pod tlačidlom zobrazí príkaz na vytvorenie inštancie (spustenie) tohto obrazu.

Ďalšie informácie

Návod na používanie Správcu úložiska.

Ovládanie služieb eucalyptus:

  • sudo service eucalyptus [start|stop|restart] (na strane CLC/CC/SC/Walrus)
  • sudo service eucalyptus-nc [start|stop|restart] (na strane uzla)

Umiestnenie niektorých dôležitých súborov:

  • Súbory záznamov:
    /var/log/eucalyptus
  • Konfiguračné súbory:
    /etc/eucalyptus
  • Databáza:
    /var/lib/eucalyptus/db
  • Kľúče:
    /var/lib/eucalyptus
    /var/lib/eucalyptus/.ssh

Upozornenia:

  • Nesmieme zabudnúť súbor <filename>~/.euca/eucarc</filename> spustiť skôr, ako spustíme klientské nástroje.

Odkazy:

Slovník

 

Dokumentácia pre Ubuntu Enterprise Cloud používa terminológiu, ktorá nemusí byť zrozumiteľná pre všetkých čitateľov. Táto stránka sa snaží vysvetliť niektoré pojmy a skratky.

  • Mrak (Cloud) - Združená množina fyzických počítačov, ktoré poskytujú výpočtové zdroje prostredníctvom virtuálnych počítačov, ktoré sú dynamicky zaopatrované a dovybavované.

  • Správca mraku (Cloud Controller - CLC) - Súčasť systému Eucalyptus, ktorá poskytuje webové užívateľské rozhranie (https server na porte 8443) a implementuje Amazon EC2 API. V jednej inštalácii UEC môže byť len jeden Správca mraku. Táto služba je poskytovaná Ubuntu balíkom eucalyptus-cloud.

  • Klaster (Cluster) - Kolekcia uzlov priradených k Správcovi mraku. V jednej inštalácii UEC môže byť viac ako jeden klaster. Klastre sú niekedy fyzicky oddelenými množinami uzlov. (napr. poschodie1, poschode2, poschodie2).

  • Správca klastra (Cluster Controller - CC) - Súčasť systému Eucalyptus, ktorá spravuje kolekciu zdrojov, ktoré poskytujú uzly. Táto služba je poskytovaná Ubuntu balíkom eucalyptus-cc.

  • EBS (Elastic Block Storage) - Úložisko s elastickými blokmi.

  • EC2 (Elastic Compute Cloud) - Elastický výpočtový mrak. Verejná služba výpočtových mrakov (cloud computing) poskytovaná spoločnosťou Amazon, ktorá je platená podľa hodín alebo podľa gigabajtov.

  • EKI (Eucalyptus Kernel Image) - Obraz jadra systému Eucalyptus.

  • EMI (Eucalyptus Machine Image) - Obraz počítača systému Ecalyptus.

  • ERI (Eucalyptus Ramdisk Image) - Obraz ramdisku systému Eucalyptus.

  • Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) - Elastický nástroj výpočtovej architektúry na pripojenie vašich programov do užitočných systémov. Je to projekt s otvoreným zdrojom vyvinutý na Kalifornskej univerzite v Santa Barbare. Teraz je podporovaný spoločnosťou Eucalyptus Systems (partner spoločnosti Canonical).

  • Rozhranie - Fyzický počítač, ktorý hostí jednu (alebo viac) súčastí systému Eucalyptus (správcu mraku, úložiska, klastra a walrus).

  • Uzol - Uzol je fyzický počítač, na ktorom sa dá spustiť virtuálny počítač, bežiaci cez správcu uzla. V Ubuntu to vlastne znamená, že CPU má rozšírenia pre VT a môže spúšťať hypervízor KVM.

  • Správca uzla (Node Controller - NC) - Súčasť systému Eucalyptus, ktorá spúšťa hostiteľské virtuálne počítače, ktoré tvoria mrak. Táto služba je poskytovaná Ubuntu balíkom eucalyptus-nc.

  • S3 (Simple Storage Service) - Jednoduchá služba úložiska. Riešenie trvácneho úložiska určeného pre EC2 poskytovaného spoločnosťou Amazon, ktoré sa platí za gigabajt.

  • Správca úložiska (Storage Controller - SC) - Súčasť systému Eucalyptus, ktorá spravuje službu úložiska s dynamickými blokmi (EBS). Každý 'klaster' v inštalácii Eucalyptus môže mať svojho vlastného Správcu úložiska. Táto súčasť je poskytovaná balíkom 'eucalyptus-sc'.

  • UEC (Ubuntu Enterprise Cloud) - Podnikový mrak od Ubuntu. Riešenie výpočtového mraku (cloud computing) od vývojárov Ubuntu, ktoré je založené na systéme Eucalyptus.

  • VM - Virtuálny počítať (Virtual Machine).

  • VT - Virtualizačná technológia. Doplnková funkcia niektorých moderných procesorov, umožňujúca urýchľované hosťovanie virtuálnych počítačov.

  • Walrus - Súčasť systému Eucalyptus, ktorá implementuje aplikačné rozhranie S3 API od spoločnosti Amazon, ktoré sa využíva na uchovávanie obrazov virtuálnych počítačov a používateľského úložiska, ktoré využíva abstrakcie S3 bucket put/get.

watch -n5 euca-describe-instances

Eucalyptus - starý návod

Prehľad

Eucalyptus je infraštruktúra na báze otvoreného softvéru implementujúca "cloud computing" na vlastné klastre (zhluk počítačov). Eucalyptus umožňuje vytvorenie vlastného prostredia pre cloud computing, kvôli maximalizácii výpočtových zdrojov a kvôli poskytnutiu prostredia cloud computingu pre používateľov.

Táto časť obsahuje návod ako nastaviť prostredie cloud computingu pomocou systémov Eucalyptus a KVM. Viac informácií o KVM sa nachádza v časti libvirt.

Prostredie cloud computingu obsahuje tri súčasti, ktoré sú zvyčajne nainštalované najmenej na dvoch rôznych počítačoch (v tomto návode ich budeme nazývať 'obslužné rozhranie' a 'uzol'):

  • Jedno obslužné rozhranie: hostí jeden radič cloudu, webové konfiguračné rozhranie založené na jazyku Java, a radič klastra, ktorý určuje kde sa sa nachádzajú virtuálne počítače a riadi sieťovú komunikáciu medzi nimi.

  • Jeden alebo viac výpočtových uzlov: obsahuje ovládač uzla ako súčasti systému Eucalyptus, ktorý počítaču umožňuje byť súčasťou distribuovaného systému prostredníctvom virtuálneho počítača.

V predvolenom stave sa používa režim jednoduchého systémového sieťového pripojenia. Táto metóda sieťového pripojenia umožňuje virtuálnym počítačom získať IP adresu z lokálnej siete LAN, za predpokladu, že DHCP server je v našej sieti správne nakonfigurovaný LAN a poskytuje dynamické IP adresy virtuálnym počítačom, ktoré o to požiadajú. Každý uzol bude nakonfigurovaný pomocou premosteného sieťového pripojenia. Viac informácií sa nachádza v časti “Premostenie”.

Konfigurácia

Najskôr, na počítači, ktorý bude vo funkcii obslužného rozhrania nainštalujeme príslušné balíky. V príkazovom riadku obslužného rozhrania zadáme:

sudo apt-get install eucalyptus-cloud eucalyptus-cc

Potom na každom počítači, ktorý bude slúžiť ako výpočtový uzol nainštalujeme balík ovládača. V príkazovom riadku výpočtového uzla zadáme:

sudo apt-get install eucalyptus-nc

Akonáhle je inštalácia dokončená, čo môže chvíľu trvať, do prehliadača zadáme adresu https://front-end:8443 a prihlásime sa do administrátorského rozhrania pomocou predvoleného používateľského mena a hesla admina. Po prihlásení nás systém vyzve aby sme si zmenili heslo, nastavili emailovú adresu pre používateľa admin, a nastavili URL úložiska.

Vo webovom rozhraní na karte "Configuration", pridáme klaster v časti pod nadpisom "Clusters" (v našom prípade bude radič klastera totožný s radičom cloudu, preto ako stanicu klastra zadáme 'localhost'). Po vyplnení formulára klikneme na tlačidlo "Add Cluster".

Teraz prejdeme späť na počítač obslužného rozhrania, a pridáme uzly do klastra:

sudo euca_conf -addnode menna_adresa_uzla

Následne na to, sa zobrazí výzva na prihlásenie k uzlu. Nainštalujeme balík eucalyptus-nc, pridáme ssh kľúč používateľa systému eucalyptus do súboru authorized_keys na počítači ktorý slúži ako uzol a potvrdíme vierohodnosť obtlačku OpenSSH RSA kľúča. Nakoniec príkaz dokončí synchronizáciu kľúčov súčastí systému eucalyptus a registrácia uzla je hotová.

Na počítači, ktorý bude slúžiť ako uzol, je potrebné otvoriť konfiguračný súbor /etc/eucalyptus/eucalyptus.conf a  nastaviť premosťujúce rozhranie (predpokladáme, že rozhranie má názov 'br0'):

VNET_INTERFACE="br0"
...
VNET_BRIDGE="br0"

Nakoniec reštartujeme eucalyptus-nc:

sudo /etc/init.d/eucalyptus-nc restart
[Note]

Nezabudnite nahradiť nodecontroller, node01 a node02 skutočnými mennými adresami hosťovských staníc.

Eucalyptus je teraz pripravený hosťovať obrazy v cloude.

Zdroje

  • Viac informácii sa nachádza na stránke Eucalyptus website.

  • Informácie o načítaní inštancií nájdete na stránke Eucalyptus Wiki.

  • Pomoc môžete nájsť aj na IRC kanáloch #ubuntu-virt, #eucalyptus a #ubuntu-server na Freenode.

OpenNebula

OpenNebula umožňuje dynamicky umiestňovať a premiestňovať virtuálne počítače medzi viacerými fyzickými zdrojmi. Toto umožňuje poskytovať virtuálne počítače z ktoréhokoľvek dostupného miesta.

Táto časť obsahuje podrobnosti o konfigurácii OpenNebula klastra s použitím troch počítačov: stanice s obslužným rozhraním a dvoch výpočtových uzlov, na ktorých budú spustené virtuálne počítače. Na výpočtových uzloch je tiež potrebné nakonfigurovať premostenie, aby sa k virtuálnym počítačom dalo pristupovať z lokálnej siete. Podrobnosti nájdete v časti “Premostenie”.

Inštalácia

Najskôr v termináli na počítači, ktorý bude slúžiť ako obslužné rozhranie, zadáme:

sudo apt-get install opennebula

Na všetkých počítačoch, ktoré budú slúžiť ako výpočtové uzly, nainštalujeme:

sudo apt-get install opennebula-node

Ako ďalšie skopírujeme SSH kľúče, kvôli ktorým používateľ oneadmin bude potrebovať heslo. Na každom počítači spustíme:

sudo passwd oneadmin

Potom skopírujeme SSH kľúč používateľa oneadmin do výpočtových uzlov a do súboru authorized_keys na obslužnom rozhraní:

sudo scp /var/lib/one/.ssh/id_rsa.pub oneadmin@uzol01:/var/lib/one/.ssh/authorized_keys
sudo scp /var/lib/one/.ssh/id_rsa.pub oneadmin@uzol02:/var/lib/one/.ssh/authorized_keys
sudo sh -c "cat /var/lib/one/.ssh/id_rsa.pub >> /var/lib/one/.ssh/authorized_keys"

SSH kľúče výpočtových uzlov je potrebné pridať do súboru /etc/ssh/ssh_known_hosts na obslužnom rozhraní. Spravíme to tak, že sa cez ssh pripojíme ku každému výpočtovému uzlu pod iným používateľským menom ako je oneadmin. Potom ukončite reláciu SSH a spustením nasledujúcich príkazov nakopírujeme SSH kľúče z ~/.ssh/known_hosts do /etc/ssh/ssh_known_hosts:

sudo sh -c "ssh-keygen -f .ssh/known_hosts -F uzol01 1>> /etc/ssh/ssh_known_hosts"
sudo sh -c "ssh-keygen -f .ssh/known_hosts -F uzol02 1>> /etc/ssh/ssh_known_hosts"
[Note]

Nahraďte uzol01 a uzol02 príslušnými mennými adresami počítačov.

Toto umožní používateľovi oneadmin používať príkaz scp, pomocou ktorého sa dajú rozmiestňovať obrazy na výpočtové uzly bez hesla alebo iného ručného vstupu.

Na počítači s obslužným rozhraním vytvoríme priečinok na ukladanie obrazov virtuálnych počítačov a používateľovi oneadmin nastavíme oprávnenie na prístup do tohto priečinka:

sudo mkdir /var/lib/one/images
sudo chown oneadmin /var/lib/one/images/

Nakoniec skopírujeme súbor s diskom virtuálneho počítača do priečinka /var/lib/one/images. Virtuálny počítač so systémom Ubuntu môžeme vytvoriť pomocou nástroja vmbuilder, podrobnosti nájdete v časti JeOS a vmbuilder.

Konfigurácia

OpenNebula klaster je teraz pripravený na konfiguráciu a na pridanie virtuálnych počítačov.

V príkazovom riadku zadáme:

onehost create uzol01 im_kvm vmm_kvm tm_ssh
onehost create uzol02 im_kvm vmm_kvm tm_ssh

Potom vytvoríme súbor so šablónou virtuálnej siete s názvom vnet01.template:

NAME            = "LAN"
TYPE = RANGED
BRIDGE = br0
NETWORK_SIZE = C
NETWORK_ADDRESS = 192.168.0.0
[Note]

Uistite sa, či ste zmenili 192.168.0.0 na adresu vašej siete.

Pomocou nástroja onevnet pridáme virtuálnu sieť do systému OpenNebula:

onevnet create vnet01.template

Teraz vytvoríme súbor so šablónou virtuálneho počítača s názvom vm01.template:

NAME   = vm01
CPU = 0.5
MEMORY = 512

OS = [ BOOT = hd ]

DISK = [
source = "/var/lib/one/images/vm01.qcow2",
target = "hda",
readonly = "no" ]

NIC = [ NETWORK="LAN" ]

GRAPHICS = [type="vnc",listen="127.0.0.1",port="-1"]

Spustíme virtuálny počítač pomocou nástroja onevm:

onevm submit vm01.template

Pomocou príkazu onevm list môžeme zobraziť informácie o virtuálnych počítačoch. Ak použijeme voľbu onevm show vm01, zobrazí sa nám ešte detailnejšia špecifikácia virtuálneho počítača.

Zdroje

Klastrovanie

DRBD

Distributed Replicated Block Device (DRBD) - disrribuované zariadenie s replikovanými blokmi je zariadenie, ktoré zrkadlí svoje bloky navzájom medzi viacerými stanicami. Replikácia je pritom neviditeľná pre ostatné aplikácie v systéme. Zrkadlený môže byť ktorýkoľvek blok pevných diskov, diskových oddielov, diskových polí RAID, logických zväzkov, atď.

Ak chceme systém drbd začať používať, najskôr musíme nainštalovať potrebné balíky. Do príkazového riadka zadáme:

sudo apt-get install drbd8-utils
[Note]

Ak používate virtuálne jadro virtual kernel ako súčasť virtuálneho počítača, je potrebné modul drbd ručne skompilovať. Jednoduchší spôsob je nainštalovanie balíka linux-server do virtuálneho počítača.

V tejto časti si povieme ako drbd nastaviť tak, aby medzi dvoma stanicami replikoval samostatný diskový oddiel so súborovým systémom ext3 pripojený k /srv. Veľkosť diskového oddielu nie je podstatná, ale na oboch počítačoch musí byť rovnaká.

Konfigurácia

Dve stanice sa v našom príklade budú volať drbd01 a drbd02. Je potrebné, aby bol nastavený preklad adries prostredníctvom DNS alebo na oboch staniciach prostredníctvom súboru /etc/hosts. Viac informácií sa nachádza v kapitole Služba prekladu doménových mien (DNS).

  • Systém drbd najskôr nastavíme na prvej stanici úpravou súboru /etc/drbd.conf:

    global { usage-count no; }
    common { syncer { rate 100M; } }
    resource r0 {
    protocol C;
    startup {
    wfc-timeout 15;
    degr-wfc-timeout 60;
    }
    net {
    cram-hmac-alg sha1;
    shared-secret "secret";
    }
    on drbd01 {
    device /dev/drbd0;
    disk /dev/sdb1;
    address 192.168.0.1:7788;
    meta-disk internal;
    }
    on drbd02 {
    device /dev/drbd0;
    disk /dev/sdb1;
    address 192.168.0.2:7788;
    meta-disk internal;
    }
    }
    [Note]

    Súbor /etc/drbd.conf umožňuje nastaviť oveľa viac možností, ale pre náš prípad nám vyhovujú predvolené hodnoty.

  • Teraz skopírujeme súbor /etc/drbd.conf na druhú stanicu:

    scp /etc/drbd.conf drbd02:~
    
  • Na stanici drbd02 súbor premiestnime do priečinka /etc:

    sudo mv drbd.conf /etc/
    
  • Teraz na oboch staniciach spustíme drbd démon:

    sudo /etc/init.d/drbd start
    
  • Potom použijeme nástroj drbdadm, ktorým inicializujeme metaúložisko. Na každej stanici spustíme:

    sudo drbdadm create-md r0
    
  • Na stanici drbd01 alebo na tej, ktorá má byť hlavá, zadáme:

    sudo drbdadm -- --overwrite-data-of-peer primary all
    
  • Po spustení predchádzajúceho príkazu sa začnú dáta synchronizovať s druhou stanicou. Ak chceme vidieť do akej miery je úloha hotová, na stanici drbd02 zadáme:

    watch -n1 cat /proc/drbd
    

    Výpis prerušíme stlačením kombinácie kláves Ctrl+c.

  • Nakoniec vytvoríme súborový systém na /dev/drbd0 a pripojíme ho:

    sudo mkfs.ext3 /dev/drbd0
    sudo mount /dev/drbd0 /srv
    

Testovanie

Ak chceme zistiť, či sa dáta synchronizujú medzi dvoma stanicami, na stanici drbd01 skopírujeme nejaké súbory do priečinka /srv:

sudo cp -r /etc/default /srv

Potom odpojíme priečinok /srv:

sudo umount /srv

Nastavíme primárny server do úlohy sekundárneho:

sudo drbdadm secondary r0

Teraz sekundárny server povýšime do úlohy primárneho:

sudo drbdadm primary r0

Nakoniec pripojíme diskový oddiel:

sudo mount /dev/drbd0 /srv

Po použití príkazu ls uvidíme súbor /srv/default, ktorý sme nakopírovali na drbd01 (predtým bol primárny).

Zdroje

VPN

VPN (Virtual Private Network) - virtuálna súkromná sieť je šifrované sieťové spojenie medzi dvoma a viacerými sieťami. Existuje niekoľko spôsobov ako vytvoriť VPN pomocou softvéru aj špecializovaného hardvérového vybavenia. Táto kapitola obsahuje návod ako nainštalovať a nastaviť  OpenVPN tak, aby sa vytvorila VPN medzi dvoma servermi.

OpenVPN

OpenVPN používa na šifrovanie VPN komunikácie medzi stanicami infraštruktúru verejného kľúča - Public Key Infrastructure (PKI). Jednoduchý spôsob ako sa dá nastaviť VPN pomocou OpenVPN je nastavenie klientského pripojenia cez premostené sieťové rozhranie na VPN serveri. V tomto návode budeme predpokladať, že jedna VPN stanica, v našom prípade server, má nastavené premostené rozhranie. Viac informácii o nastavovaní premostenia sa dozviete v časti Premostenie.

Inštalácia

Systém openvpn nainštalujeme zadaním:

sudo apt-get install openvpn

Certifikáty servera

Teraz, keď je už balík openvpn nainštalovaný, je potrebné vytvoriť certifikáty pre VPN server.

Najskôr skopírujeme easy-rsa do priečinka /etc/openvpn. Tým zaistíme, že sa nám nestratia žiadne zmeny v skripte, keď pri aktualizácii stiahneme novšiu verziu balíka. Potrebné je tiež pre priečinok easy-rsa nastaviť správne oprávnenia, aby v  ňom používatelia mohli vytvárať súbory. V príkazovom riadku zadáme:

sudo mkdir /etc/openvpn/easy-rsa/
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
sudo chown -R $USER
/etc/openvpn/easy-rsa/

Potom otvoríme súbor /etc/openvpn/easy-rsa/vars a nastavíme nasledujúce hodnoty:

export KEY_COUNTRY="SK"
export KEY_PROVINCE=""
export KEY_CITY="Bratislava"
export KEY_ORG="Mrkva a syn s.r.o."
export KEY_EMAIL="stefan@nieco.sk"

Nasledujúcimi príkazmi vytvoríme certifikáty:

cd /etc/openvpn/easy-rsa/easy-rsa
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
sudo cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/

Certifikáty klienta

VPN klient tiež potrebuje certifikáty aby sa vedel autentifikovať na serveri. Certifikát vytvoríme zadaním nasledujúcich príkazov:

cd /etc/openvpn/easy-rsa/
source vars
./pkitool nazov_stanice
[Note]

Nahraďte nazov_stanice názvom stanice, ktorá sa bude pripájať do VPN.

Nasledujúce súbory prekopírujte na klientskú stanicu:

  • /etc/openvpn/easy-rsa/nazov_stanice.ovpn

  • /etc/openvpn/easy-rsa/ca.crt

  • /etc/openvpn/easy-rsa/nazov_stanice.crt

  • /etc/openvpn/easy-rsa/nazov_stanice.key

  • /etc/openvpn/easy-rsa/ta.key

[Note]

Nezabudnite zmeniť názvy súborov na názov stanice miesto hostname.

Na kopírovanie súborov s certifikátmi a kľúčmi je najvhodnejšie použiť bezpečnú metódu. Na tento účel je vhodný nástroj scp, ale môžete tiež súbory prekopírovať na prenosné médium a z neho potom na klienta.

Konfigurácia

Konfigurácia servera

Teraz nakonfigurujeme openvpn server pomocou konfiguračného súboru /etc/openvpn/server.conf, ktorý skopíruje z ukážkového súboru. V príkazovom riadku zadáme:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz

Súbor /etc/openvpn/server.conf otvoríme, a zmeníme nasledujúce nastavenia:

local 172.18.100.101
dev tap0
server-bridge 172.18.100.101 255.255.255.0 172.18.100.105 172.18.100.200
push "route 172.18.100.1 255.255.255.0"
push "dhcp-option DNS 172.18.100.20"
push "dhcp-option DOMAIN nieco.sk"
tls-auth ta.key 0 # This file is secret
user nobody
group nogroup
  • local: je IP adresa premosteného rozhrania.

  • server-bridge: je potrebné ak konfigurácia používa premostenie. Adresy 172.18.100.101 255.255.255.0 definujú premostené rozhranie a jeho sieťovú masku. Rozsah IP adries 172.18.100.105 172.18.100.200 je rozsah IP adries, ktoré môžu byť pridelené klientom.

  • push: sú pokyny na pridanie sieťových nastavení pre klienta.

  • user a group: definujú, pod ktorým používateľom a skupinou sa spustí démon openvpn.

[Note]

Všetky IP adresy a názov domény zmeňte podľa potrieb vašej siete.

Potom vytvoríme dva pomocné skripty, ktoré pridajú rozhranie tap do premostenia. Vytvoríme /etc/openvpn/up.sh:

#!/bin/sh

BR=$1
DEV=$2
MTU=$3
/sbin/ifconfig $DEV mtu $MTU promisc up
/usr/sbin/brctl addif $BR $DEV

a /etc/openvpn/down.sh:

#!/bin/sh

BR=$1
DEV=$2

/usr/sbin/brctl delif $BR $DEV
/sbin/ifconfig $DEV down

Potom ich nastavíme ako spustiteľné:

sudo chmod 755 /etc/openvpn/down.sh
sudo chmod 755 /etc/openvpn/up.sh

 Po nakonfigurovaní servera reštartujeme openvpn:

sudo /etc/init.d/openvpn restart

Konfigurácia klienta

Najskôr na klientovi nainštalujeme openvpn:

sudo apt-get install openvpn

Po nakonfigurovaní servera a prekopírovaní certifikátov na klienta, vytvoríme klientský konfiguračný súbor, skopírovaním súboru s príkladom do priečinka /etc/openvpn/. V príkazovom riadku na klientskej stanici zadáme:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn

Teraz otvoríme súbor /etc/openvpn/client.conf a zmeníme nasledujúce nastavenia:

dev tap
remote vpn.nieco.sk 1194
cert nazov_stanice.crt
key nazov_stanice.key
tls-auth ta.key 1
[Note]

Adresu vpn.nieco.sk nahraďte názvom stanice VPN servera, a nazov_stanice.* nahraďte aktuálnymi menami súborov s certifikátmi a kľúčmi.

Nakoniec reštartujte openvpn:

sudo /etc/init.d/openvpn restart

Teraz by sa malo dať pripojiť do vzdialenej LAN siete cez VPN.

Zdroje

Ostatné užitočné aplikácie

Existuje mnoho veľmi užitočných aplikácií,  ktoré boli vyvinuté tímom vývojárov systému Ubuntu Server a ostatnými vývojármi, ktoré sú začlenené do edície Ubuntu Server Edition, ale ešte nie sú veľmi známe. Táto kapitola predstaví niekoľko užitočných aplikácií využiteľných pri administrácii servera Ubuntu, alebo zjednodušuje administráciu množstva Ubuntu serverov súčasne.

pam_motd

Pri prihlasovaní k serveru Ubuntu, sa nám môže zobraziť informatívna správa dňa - Message Of The Day (MOTD). Táto informácia sa nachádza a zobrazuje vďaka niekoľkým balíkom:

  • landscape-common: poskytuje hlavné knižnice nástroja landscape-client, ktorý slúži na správu systému prostredníctvom webového rozhrania založeného na aplikácii Landscape. Balík obsahuje aj nástroj /usr/bin/landscape-sysinfo, ktorý sa používa na zobrazenie správy dňa.

  • update-motd: sa používa na automatickú aktualizáciu správy dňa pomocou plánovacieho nástroja cron.

pam_motd spustí skripty v priečinku /etc/update-motd.d v poradí podľa čísel, ktoré sú pripísané na začiatok názvu skriptu. Výstup skriptov sa zapíše do /var/run/update-motd/, pričom sa zachová číselné poradie, ktoré sa prevedie na text pomocou /etc/motd.tail.

Do správy dňa môžeme pridať vlastné dynamické informácie. Napríklad lokálne informácie o počasí:

  • Najskôr nainštalujeme balík weather-util:

    sudo apt-get install weather-util
    
  • Nástroj weather požije tzv. METAR dáta z National Oceanic a Atmospheric Administration a prdpoveď z National Weather Service. Aby lokálne informácie systém vedel nájsť, bude potrebné zadať 4 miestny ICAO indikátor umiestnenia. Tento indikátor je možné zistiť na stránke National Weather Service (Bratislava Ivanka - LZIB, Dolný Hričov - LZZI, Kamenica Nad Cirochou - LZKC, Košice - LKKZ, Košice letisko - LZKZ, Lučenec  LZLU, Nitra - LZNI, Piešťany - LZPP, Poprad / Tatry - LZTT, Prievidza - LZPE, Sliač - LZSL).

    Aj napriek tomu, že National Weather Service je vládnou agentúrou Spojených štátov Amerických, poskytuje informácie z meteorologických staníc z celého Sveta. Lokálne informácie zo staníc mimo USA však nemusia byť vždy dostupné.

  • Vytvoríme jednoduchý skript /usr/local/bin/local-weather, ktorý použije weather s lokálnym ICAO indikátorom:

    #!/bin/sh
    ##########################################################################
    #
    # Vypíše lokálne informácie o počasí do /var/run/update-motd/60-local-weather
    # pre update-motd.
    #
    ##########################################################################

    # Nahraďte LZIB kódom najbližšej stanice.
    # Zoznam staníc môžete nájsť na adrese: http://www.weather.gov/tg/siteloc.shtml

    echo
    weather -i LZIB

    echo
  • Urobíme skript spustiteľným:

    sudo chmod 755 /usr/local/bin/local-weather
    
  • Potom vytvoríme symbolické prepojenie na /etc/update-motd.d/98-local-weather:

    sudo ln -s /usr/local/bin/local-weather /etc/update-motd.d/98-local-weather
    
  • Nakoniec sa odhlásim a znova prihlásime aby sme videli novú správu dňa.

Teraz by nás po prihlásení mala privítať správa o počasí. Dúfame, že sa nám na príklade s local-weather podarilo demonštrovať flexibilitu aplikácie pam_motd.

etckeeper

etckeeper umožňuje jednoducho uložiť celú konfiguráciu servera v priečinku /etc uložiť do úložiska systému na správu verzií - Version Control System (VCS). Tento nástroj je prepojený s apt aby sa automaticky odosielali zmeny v priečinku /etc ak sa nainštalujú nové balíky alebo ak sa aktualizuje systém. Umiestnenie /etc pod systém správy verzii sa považuje za najlepšie riešenie v ostrej prevádzke a cieľom nástroja etckeeper je tento proces čo najviac zjednodušiť.

Nástroj etckeeper nainštalujeme zadaním príkazu:

sudo apt-get install etckeeper

Hlavný konfiguračný súbor /etc/etckeeper/etckeeper.conf je jednoduchý. Hlavným nastavením je výber VCS, ktorý sa má použiť. V predvolenom stave je etckeeper nastavený tak, aby použil systém bzr. Úložisko sa automaticky inicializuje (a prvý krát naplní) počas inštalácie balíka. Tento úkon je možné vrátiť späť príkazom:

sudo etckeeper uninit

V predvolenom stave etckeeper odošle do úložiska ešte neodoslané zmeny v /etc každý deň. Toto nastavenie môžeme zakázať pomocou nastavenia AVOID_DAILY_AUTOCOMMITS. Zmeny sa budú tiež odosielať pred a po každej inštalácii balíka. Ak chceme podrobnejšie zaznamenávanie zmien, odporúča sa aby sme zmeny odosielali ručne spolu s popisnou správou:

sudo etckeeper commit "..Príčina zmeny konfigurácie.."

Pomocou príkazov VCS si môžeme prezrieť v záznamoch informácie o súboroch v /etc:

sudo bzr log /etc/passwd

Aby sme demonštrovali ako ako funguje integrácia so správou balíkov, nainštalujeme systém postfix:

sudo apt-get install postfix

Po skončení inštalácie by sa mali všetky konfiguračné súbory systému postfix odoslať do úložiska:

Committing to: /etc/
added aliases.db
modified group
modified group-
modified gshadow
modified gshadow-
modified passwd
modified passwd-
added postfix
added resolvconf
added rsyslog.d
modified shadow
modified shadow-
added init.d/postfix
added network/if-down.d/postfix
added network/if-up.d/postfix
added postfix/dynamicmaps.cf
added postfix/main.cf
added postfix/master.cf
added postfix/post-install
added postfix/postfix-files
added postfix/postfix-script
added postfix/sasl
added ppp/ip-down.d
added ppp/ip-down.d/postfix
added ppp/ip-up.d/postfix
added rc0.d/K20postfix
added rc1.d/K20postfix
added rc2.d/S20postfix
added rc3.d/S20postfix
added rc4.d/S20postfix
added rc5.d/S20postfix
added rc6.d/K20postfix
added resolvconf/update-libc.d
added resolvconf/update-libc.d/postfix
added rsyslog.d/postfix.conf
added ufw/applications.d/postfix
Committed revision 2.

Ako príklad toho, ako sa cez etckeeper manuálne odosielajú zmeny, pridáme novú adresu stanice do súboru /etc/hosts. Pomocou bzr si môžeme pozrieť, ktoré súbory sa zmenili:

sudo bzr status /etc/
modified:
  hosts

Teraz odošleme zmeny:

sudo etckeeper commit "pridanie adresy stanice"

Viac informácií o systéme bzr sa nachádza v časti Bazaar.

Byobu

Jednou z najužitočnejších aplikácií pre administrátora systému je nástroj screen. Umožňuje spustiť viacero príkazových riadkov v jednom terminále. MAby boli niektoré pokročilé funkcie nástroja screen priateľskejšie a poskytovali niektoré užitočné informácie o systéme, bol vytvorený balík byobu.

Keď byobu spustíme stlačením F9, zobrazí sa ponuka Configuration. Táto ponuka umožňuje:

  • Zobraziť ponuku Pomocníka - View the Help menu

  • Zmeniť farbu pozadia - Change Byobu's background color

  • Zmeniť farbu popredia - Change Byobu's foreground color

  • Prepnúť oznamovanie stavov -Toggle status notifications

  • Nastaviť klávesové skratky - Change the key binding set

  • Vytvoriť nové screen okno - Create new windows

  • Spravovať predvolené okná - Manage the default windows

  • Zapnúť byobu hneď pro prihlásení - Byobu currently does not launch at login (toggle on)

V nastaveniach klávesových skratiek môžeme definovať tzv. únikovú klávesovú skratku, skratku pre nové okno, zmenu okna, atď. Existujú dve sady klávesových skratiek, z ktorých si môžete vybrať f-keys a screen-escape-keys. Ak chceme použiť pôvodné nastavenie kláves, vyberieme si sadu none.

Balík byobu poskytuje menu, ktoré zobrazuje názov vydania Ubuntu, informácie o procesore, informácie o voľnej pamäti a čas s dátumom. Efekt je podobný ako v grafickom rozhraní.

Pomocou voľby "Byobu currently does not launch at login (toggle on)" nastavíme, aby sa nástroj byobu spustil zakaždým, keď sa prihlásime do terminálu. Nastavenia systému byobu sú pre každého používateľa iné. Zmeny, ktoré vykoná jeden používateľ neovplyvnia výzor systému druhého používateľa.

Jeden rozdiel je pri použití tzv. scrollback režimu. Ak používame jeden z Ubuntu profilov stlačením F7 sa prepneme do scrollback režimu. Režim scrollback umožňuje prechádzanie výstupu pomocou príkazov podobných editoru vi. Tu je stručný zoznam príkazov:

  • h - Posun kurzora o jeden znak doľava

  • j - Posun kurzora o jeden riadok dole

  • k - Posun kurzora o jeden riadok hore

  • l - Posun kurzora o jeden znak doprava

  • 0 - Presun na začiatok aktuálneho riadka

  • $ - Presun na koniec aktuálneho riadka

  • G - Presun na určený riadok (v predvolenom stave na koniec práve načítaného textu)

  • / - Hľadať za

  • ? - Hľadať pred

  • n - Presun na najbližšiu zhodu, buď dopredu alebo dozadu

Zdroje

  • Viac informácií o nastrojí update-motd sa nachádza na stránke update-motd man page.

  • V článku na stránke The Debian Package of the Day s názvom weather sa nachádza viac informácií o nástroji weather.

  • Na stránke etckeeper je viac detailov o používaní nástroja etckeeper.

  • Stránka etckeeper Ubuntu Wiki.

  • Najnovšie informácie o bzr sa nachádzajú na stránke bzr.

  • Viac informácií o nástroji screen sa nachádza na stránke screen web site.

  • Aj na stránke Ubuntu Wiki screen.

  • Viac informácií o byobu je na stránke project page.

Príloha

Hlásenie chýb v Ubuntu Server Edition

Aj keď sa projekt Ubuntu snaží uvoľniť softvér s najmenším možným počtom chýb, predsa sa občas nejaká vyskytne. Tieto chyby môžeme pomôcť vývojárom opraviť nahlásením tých, ktoré v projekte nájdeme. Projekt Ubuntu na sledovanie chýb používa systém Launchpad . Ak chceme nahlásiť nejakú chybu týkajúcu sa vydania Ubuntu Server v systéme Launchpad, musíme si najskôr vytvoriť konto.

Nahlasovanie chýb pomocou ubuntu-bug

Preferovaný spôsob, ako nahlásiť chybu, je použitie  príkazu ubuntu-bug . Nástroj ubuntu-bug zozbiera informácie o systéme, ktoré sú užitočné z hľadiska diagnostiky hláseného problému, a potom sa začlenia do hlásenia chyby zadanej do systému Launchpad. Pri hlásení chyby V Ubuntu je potrebné uviesť konkrétny softvérový balík, a to  ten, v ktorom sa vyskytla chyba a je ho potrebné takto uviesť do ubuntu-bug:

ubuntu-bug NAZOVBALIKA

Napríklad, ak chceme nahlásiť chybu v balíku openssh-server, urobíme to takto:

ubuntu-bug openssh-server

Môžeme zadať buď binárny balík, alebo zdrojový balík pre ubuntu-bug. Alebo opäť za pomoci príkladu openssh-server, môžeme vygenerovať chybu aj pomocou balíka so zdrojovým kódom openssh-server, openssh:

ubuntu-bug openssh
[Megjegyzés]

Viac informácií o balíkoch Ubuntu sa dozviete v časti  Správa balíkov.

Príkaz ubuntu-bug zozbiera informácie o systéme pomocou otázok, vrátane informácií týkajúcich sa zadaného balíka, a potom sa nás opýta či sme spokojní so zozbieranými informáciami:

ubuntu-bug postgresql

*** Collecting problem information

The collected information can be sent to the developers to improve the
application. This might take a few minutes.
..........

*** Send problem report to the developers?

After the problem report has been sent, please fill out the form in the
automatically opened web browser.

What would you like to do? Your options are:
S: Send report (1.7 KiB)
V: View report
K: Keep report file for sending later or copying to somewhere else
C: Cancel
Please choose (S/V/K/C):

Dostupnými možnosťami sú:

 

  • Send Report - odoslať hlásenie. Vybraním tejto možnosti odošleme zozbierané informácie do systému Launchpad ako súčasť procesu vyplňovania hlásenia o chybe. Budeme mať možnosť opísať situáciu, ktorá viedla až k výskytu chyby.

    *** Uploading problem information

    The collected information is being sent to the bug tracking system.
    This might take a few minutes.
    91%

    *** To continue, you must visit the following URL:

    https://bugs.launchpad.net/ubuntu/+source/postgresql-8.4/+filebug/kc6eSnTLnLxF8u0t3e56EukFeqJ?

    You can launch a browser now, or copy this URL into a browser on another
    computer.

    Choices:
    1: Launch a browser now
    C: Cancel
    Please choose (1/C):

    Ak si zvolíme start a browser, v predvolenom stave sa zobrazí textový prehliadač w3m, ktorý použijeme na vyplnenie ostatných údajov potrebných pre nahlásenie chyby. Môžeme tiež skopírovať danú URL adresu do iného, už spusteného prehliadača.

  • View Report - zobraziť hlásenie. Táto možnosť spôsobí, že sa zozbierané informácie zobrazia do terminálu, aby ich bolo možné skontrolovať.

    Package: postgresql 8.4.2-2
    PackageArchitecture: all
    Tags: lucid
    ProblemType: Bug
    ProcEnviron:
    LANG=en_US.UTF-8
    SHELL=/bin/bash
    Uname: Linux 2.6.32-16-server x86_64
    Dependencies:
    adduser 3.112ubuntu1
    base-files 5.0.0ubuntu10
    base-passwd 3.5.22
    coreutils 7.4-2ubuntu2
    ...

    Po zobrazení hlásenia sa ocitneme späť v tej istej ponuke, v ktorej si môžeme vybrať, čo chceme urobiť s hlásením.

  • Keep Report File - ponechať súbor s hlásením. Vybraním tejto možnosti spôsobíme to, že sa zozbierané informácie uložia do súboru. Tento súbor môžeme neskôr použiť na prenesenie hlásenia do iného systému Ubuntu. Keď chceme odoslať súbor s hlásením, jednoducho ho dopíšeme ako parameter k príkazu ubuntu-bug:

    What would you like to do? Your options are:
    S: Send report (1.7 KiB)
    V: View report
    K: Keep report file for sending later or copying to somewhere else
    C: Cancel
    Please choose (S/V/K/C): k
    Problem report file: /tmp/apport.postgresql.v4MQas.apport

    ubuntu-bug /tmp/apport.postgresql.v4MQas.apport

    *** Send problem report to the developers?
    ...
  • Cancel - zrušiť. Toto spôsobí, že sa nazbierané informácie skartujú.

Nahlasovanie havárií aplikácií

Softvérový balík, ktorý poskytuje nástroj ubuntu-bug s názvom apport, sa dá nakonfigurovať tak, aby sa spúšťal pri haváriách aplikácií. Táto funkcia je v predvolenom stave vypnutá, pretože zachytenie havárie môže byť náročné na zdroje v závislosti na tom, koľko pamäte používala aplikácia, ktorá zhavarovala, aby ju mohol nástroj apport zachytiť a spracovať.

Nastavenie nástroja apport do stavu, v ktorom bude zachytávať havárie aplikácií, si vyžaduje niekoľko krokov. Najskôr je potrebné nainštalovať balík gdb - v predvolenom stave vo vydaní Ubuntu Server Edition nie je nainštalovaný.

sudo apt-get install gdb
[Megjegyzés]

Viac informácií o balíkoch Ubuntu sa dozviete v časti  Správa balíkov.

Po tom, ako sa dokončí inštalácia gdb, otvoríme súbor /etc/default/apport v textovom editore a zmeníme nastavenie enabled na hodnotu 1:

# set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=1

# set maximum core dump file size (default: 209715200 bytes == 200 MB)
maxsize=209715200

Po dokončení úprav súboru /etc/default/apport spustíme službu apport:

sudo start apport

Po tom, ako aplikácia havaruje, použijeme príkaz apport-cli, ktorým vyhľadáme existujúce uložené hlásenie o havárii:

apport-cli

*** dash closed unexpectedly on 2010-03-11 at 21:40:59.

If you were not doing anything confidential (entering passwords or other
private information), you can help to improve the application by
reporting
the problem.

What would you like to do? Your options are:
R: Report Problem...
I: Cancel and ignore future crashes of this program version
C: Cancel
Please choose (R/I/C):

Vybraním možnosti Report Problem prejdeme podobnými krokmi ako pri použití ubuntu-bug. Jediným podstatným rozdielom je to, že hlásenie bude označené ako súkromné pri nahlasovaní do systému Launchpad, čo znamená, že ho uvidí len obmedzené množstvo zberačov chýb. Títo zberači pred uvoľnením hlásenia do verejného stavu prezrú zozbierané dáta, či neobsahujú súkromné informácie.

Zdroje

  • Ubuntu wiki stránka Reporting Bugs.

  • Na stránke Apport sa tiež nachádza niekoľko užitočných informácií. Aj keď niektoré z nich sa týkajú používania grafického rozhrania.

Terminálová učebňa

V dnešnej dobe sa mnohí stretávajú s úlohami spojenými so znižovaním nákladov, ktoré však často robia bez zmeny pohľadu na spôsob implementácie výpočtovej techniky. Touto zmenou môže byť práve využívanie technológie tenkých klientov a distribúcie operačných systémov. Sám túto technológiu v praxi využívam a tak sa tu chcem jednak podeliť so svojimi skúsenosťami, ale zároveň aj poskytnúť stručnú príručku na zavedenie a používanie tohoto systému.

Linux Terminal Server Project (LTSP), je technológia, ktorá sa snaží riešiť nedostatky súčasného nasadenia informačných technológií, ktorými sú najmä:

Nasledujúci text predpokladá, že čitateľ má základné vedomosti o používaní a správe linuxového servera, pozná použité sieťové technológie a dokáže si nastaviť bootovanie po sieti a podobne.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Úvod

Úvod

Myšlienka používania terminálových klientov je stará možno ako počítače samé. Mnohí si iste pamätajú sálové počítače s pripojenými terminálmi a ich zeleným písmom na čiernej obrazovke. V dnešnej dobe by určite textový terminál nikomu nepostačoval.

Samotný vývoj projektu LTSP bol odštartovaný v roku 1996 spoločnosťou Binson's Hospital Supplies, ktorá najala firmu Dynamic Results Inc., aby znížila náklady, a to hlavne náklady na získanie hardvéru a softvéru, ďalej náklady na implementáciu, konfiguráciu a údržbu softvéru. Firma Dynamic Results Inc. v rámci tohoto projektu urobila niekoľko výskumov a došla cez jednoduché TCP/IP terminály, MS Windows 95 a ďalšie TCP/IP terminály až k riešeniu, v ktorom dôležitú úlohu hrá práve Linux.

Vďaka existujúcej podpore zavádzania systému po sieti (Netboot a Etherboot, TCP/IP, BOOTP a TFTP) vznikol nový projekt, na ktorom začal pracovať Jim McQuillan. Jeho cieľom sa stalo rýchla kompilácia a distribúcia systému na veľký počet počítačov. Nastavil server, z ktorého sa pomocou protokolov NFS a BOOTP distribuoval základný operačný systém. Po ďalších úpravách sa podarilo distribuovať aj grafické rozhranie X-Window systému. Nakoniec sa po roku 1999 spoločnosť Dynamic Results Inc. rozhodla sprístupniť svoj kód pod licenciou GNU/GPL, čím sa stal prístupný širokým masám vývojárov i používateľov.

V súčasnej dobe je LTSP vo verzii 5 a vďaka podpore firmy Canonical (ktorá stojí za distribúciou Ubuntu) sa tento projekt dostáva do povedomia verejnosti.

Princíp činnosti

ltsp_architekt.pngCelý princíp činnosti je založený na technológii klient/server. Klientom môže byť špeciálny tenký klient, bežný alebo aj nejaký starý (hardvérovo už nepostačujúci) počítač. Výkon klienta nie je kritický a hardvérové nároky sú minimálne. Nároky na server sú podstatne vyššie a ich konkrétna hodnota priamo závisí od účelu použitia.

Ako som už spomínal vyššie, operačný systém je distribuovaný po sieti, keď si ho klient prostredníctvom PXE zavádzača a protokolu DHCP vyžiada zo servera. PXE zavádzač býva súčasťou dnešných sieťových kariet, v prípade starších strojov (bez podpory PXE) rovnako dobre poslúži alternatíva – program Etherboot zavádzaný napríklad z diskety.

Po získaní operačného systému je tento, relatívne bežným spôsobom, spustený. Počas štartu operačného systému sú natiahnuté potrebné ovládače hardvéru, samozrejme len ak sú súčasťou jadra (či už priamo zakompilované alebo ako moduly). Ako posledná vec štartu systému je spustený správca prihlásenia, ktorým je v prípade LTSP správca LTSP Desktop Manager (LDM).

Správca prihlásenia poskytuje možnosť prihlásenia sa ku grafickému prostrediu (X-Window) servera pomocou zadania používateľského mena a hesla. Z uvedeného vyplýva, že používateľ musí mať na serveri založený účet. Zvyšok už je založený na sieťovej architektúre X-Window, ktorá umožňuje transparentne prenášať po sieti udalosti používateľského vstupu z klienta, spracovať ich na serveri a poslať naspäť klientovi odozvu v podobe obrazu, ktorý je zobrazený na jeho monitore.

Od okamihu prihlásenia sa k serveru sú všetky spúšťané aplikácie fyzicky spúšťané na serveri, čím všetky klienty môžu využívať výpočtový výkon servera (a preto nie je výkon klienta kritický). Táto možnosť napríklad v mojom prípade umožňuje na 32 bitových klientoch využívať všetky výhody 64 bitového softvéru.

Vo verzii 5 používa LTSP niekoľko nových vlastností, ktoré zvyšujú jeho použiteľnosť. Jedná sa najmä o:

  • pripojenie terminálov prostredníctvom SSH, ktoré umožňuje využitie šifrovaného kanála a autentifikáciu SSH, čím ponúka oproti pôvodnému XDMCPC vyššiu bezpečnosť;
  • vzdialené prihlásenie pomocou LDM, teda samostatného správcu prihlásenia, ktorý je obdobou správcov známych z bežných linuxových distribúcií;
  • distribúcia operačného systému prostredníctvom NBD (Network Block Device) výrazne zrýchľuje štart klienta, ale kladie iné nároky na správu;
  • Debian a Ubuntu navyše pridávajú inštaláciu prostredníctvom balíčkovacieho systému APT.

Súčasná implementácia LTSP umožňuje po sieti prenášať nielen obraz, ale na klienty je prenášaný i zvuk a napríklad aj pripájanie lokálnych USB kľúčov. Treba si však uvedomiť aj záludnosti vzdialeného behu aplikácií, ktorými sú veci súvisiace s prenosom udalostí o sieti. Preto toto riešenie nie je vhodné tam, kde sa pracuje s veľkým množstvom prenášaných dát, citlivých na latenciu. Takýto prípad je napríklad prenos (zobrazovanie) videa a podobne.

Príklady využitia

  • Firma - môže ponúknuť zamestnancom nový spôsob práce, pretože nebudú viazaní na svoje pracovné miesto, ale budú môcť pracovať z ktoréhokoľvek miesta v sieti (za istých podmienok i mimo nej). Firma šetrí prevádzkové náklady, zdieľanie dokumentov je vrámci jedného stroja, čo zaručuje priamy a rýchly prístup k nim. V prípade poruchy tenkého klienta, tento môže byť nahradeným a prakticky bez akýchkoľvek úprav možno pokračovať v práci.
  • Školské učebne - môžu poskytnúť študentom využitie nových druhov softvéru s minimálnymi časovými nárokmi na údržbu (v porovnaní so samostatnými strojmi). Centralizáciou správy softvéru môže skrátiť prestoje počítačov ako i náklady na správcu siete.
  • Internetové kaviarne - môžu využiť jednoduchý klientský systém, vlastne len s prehliadačom a minimálnou množinou potrebného doplnkového softvéru. Každý klient je rovnocenným a plnohodnotným počítačom pre každého zákazníka. Celú správu softvéru môže zvládnuť aj nevyškolená obsluha (zapne/vypne).
  • Informačné kiosky - napríklad v múzeách, mestách, knižniciach či školách, sú jednoducho vzdialene ovládateľné, s jednoduchým nastavením softvéru, ktorý má byť spustený po štarte, napr. prehliadač s prednastavenou webovou alebo lokálnou stránkou.

Nevýhody

Nasadenie centralizovaného systému so sebou okrem výhod prináša aj isté nevýhody. Medzi najväčšie nevýhody možno zaradiť:

  • centrálny bod - pri výpadku servera je nefunkčná velá terminálová siet (riešiteľné zavedím serverového klustra).
  • linux - používatelia nevedia pracovať s týmto operačným systémom, čím ho môžu principiálne odmietať. Rovnako, nie všetok používaný softvér má svoju obdobu v tomto systéme.
  • sieťová prevádzka - toto riešenie neposkytuje dobrý výkon pre graficky náročné (alebo zle navrhnuté) aplikácie - video, úprava obrázkov a pod.
  • lokálny hardvér - v prípade potreby lokálneho hardvéru možno naraziť na ťažko riešiteľné problémy, hoci pripájanie USB kľúčov, či prenos zvuku nespôsobuje problémy.

Dostupnosť LTSP

V súčasnosti poskytujú možnosť inštalácie LTSP viaceré distribúcie Linuxu. Medzi najznámejšie z nich iste patria:

  • Debian (LTSP 5 bez NBD)
  • OpenSuSe (LTSP Kiwi)
  • Fedora (K12Linux)
  • Ubuntu (primárna distribúcia LTSP)

Kto sa neuspokojí s riešením poskytovaným v distribúcii alebo jeho distribúcia LTSP neposkytuje, môže si toto prostredia vybudovať stiahnutím potrebného softvéru z domovskej stránky projektu.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Výber hardvéru

Výber hardvéru

Pred začiatkom implementácie je dôležitý výber hardvéru, pretože hardvér je základ všetkého. V prostredí LTSP možno túto úlohu rozdeliť na niekoľko časti, ktoré spolu viac alebo menej súvisia.

Hardvér pre klienta

Ako klient vám v prostredí poslúži akýkoľvek počítač, ktorý spĺňa vlastne len jednu podmienku, a to mať sieťovú kartu. Avšak je dobré zvážiť aj iné aspekty práce, ktorá môže mať vlastné požiadavky na hardvér:

  • procesor – úplne postačí procesor s frekvenciou vyššou ako 233 MHz. Ak nepotrebujete šifrovanie sieťovej komunikácie, postačí aj 133 MHz. Lenže obetovanie šifrovania so sebou prináša aj stratu komprimácie sieťovej prevádzky. Ak z rôznych dôvodov budete potrebovať používať lokálne aplikácie (programy, ktoré nebežia na serveri, ale priamo na kliente), môže sa slabší procesor podpísať na ich výkone.
  • pamäť – plne postačí 64 MB, ale i tu platí to isté o lokálnych aplikáciách. Pamätať treba aj na to, že niektoré grafické karty používajú zdieľanú pamäť.
  • grafická karta – viac-menej akákoľvek PCI (kvôli autokonfigurácii) karta s minimálne 4 MB RAM.
  • sieťová karta - určite s podporou 100 Mb siete a PXE bootovania. Hoci ani jedno nie je podmienkou, ušetrí to veľa práce.

ltsp_klient.pngAk chcete využiť výhody riešenie LTSP ohľadom zníženia elektrickej spotreby a hlučnosti, neuvažujte o použití výbehových strojov. Ak sa však vyberiete cestou nového hardvéru, stratíte zase výhodu lacného hardvéru. Takže konečné rozhodnutie je na Vás.

Naše riešenie používa ako klienta stroj RB-851 MINI, ktorý má rozmery 170x124x85 mm a je napájaný externým adaptérom 5 V/4.5 A. Hardvérové vybavenie tohoto stroja je:

  • CPU 800 MHz,
  • pamäť 256 MB,
  • NCI Fast Ethernet VIA VT6103 10/100Base-T,
  • VGA VIA Unichrome 2D/3D, 8-64mb zdieľanej pamäte, 1280x1024/24bit @85Hz,
  • 16 bitová zvuková karta AC97,
  • 1 x paralelný port, 1x RS-232, PS/2 myš a klávesnice,
  • 2x USB porty 2.0 (jeden na čelnom paneli).

Pre plnú funkčnosť som musel aktualizovať BIOS.

Hardvér pre server

Keď som písal pri klientovi, že je treba brať do úvahy účel použitia, pri serveri to platí dvojnásobne. Napriek tomu tu uvediem niektoré základné údaje, aby bolo od čoho začať. V tomto prípade sú kritické veci podobné ako pri klientovi:

  • procesor – určite sa poohliadnite po viac-procesorovom (viac jadrovom) stroji, pričom jeho frekvencia by mala začínať niekde okolo 2 000 MHz. Po niekoľko mesačnom používaní 4 x 2 Ghz procesora sa záťaž jeho jadier pohybuje okolo 25% (OpenOffice, FireFox - aj s FlashPlayerom, QCAD, KiCAD a občas iste aj nejaké jednoduché hry);
  • pamäť – na Ubuntu stránke som čítal vzorec: 256 + (128 * počet_terminálov) MB. Avšak pre použitie 15 klientov s prostredím Gnome sa ukázalo 4 GB pamäte ako málo, naproti tomu po použití ľahších správcov (FluxBox/OpenBox/FVWM-Crystal) využutie RAM málokedy presiahne 2 GB. Ak uvažujete o používaní programov, ktoré RAM vyslovene nešetria, pokojne pridajte na 8, či 16 GB.
  • disky – môžu tiež byť úzkym miestom. Určite uvažujte o SATA diskoch, prípadne o nejakej forme diskového poľa. Ak peniaze nie sú problém, zvážte použitie hardvérového diskového poľa, ale i v tomto prípade platí, že to závisí od účelu použitia.
  • sieťové karty – LTSP server môže pohodlne pracovať aj s jednou sieťovou kartou, ale uvažujte radšej o oddelení terminálovej od zvyšku siete. Neváhajte nad použitím GigaBit kariet.

Nami používaný server má konfiguráciu:

  • CPU Intel(R) Xeon(R) 4 x 2 GHz;
  • RAM 2 x 2 GB, 667 MHz;
  • 2 x SATA 500 GB;
  • 2x GigaBit Ethernet (OnBoard).

Sieť

Posledným bodom je samotná sieťová infraštruktúra. Ak máte viac ako 20 terminálov, pre pripojenie LTSP servera určite použite GigaBit Ethernet pripojený ku gigabitovému portu prepínača. Hoci bežné využitie siete osciluje v rozhraní 0.5 – 2 Mb/s, môže klient v špičke zabrať aj viac (70 Mb/s), hlavne pri spracovaní multimediálneho obsahu. Zahltenie siete čo i jediným klientom spôsobí spomalenie práce všetkých a to môže byť nepríjemné, pretože sa citeľne predĺžia odozvy na používateľský vstup (až na niekoľko sekúnd).

Určite použite kvalitný prepínač (switch). V žiadnom prípade sa nespoliehajte na rozbočovač (HUB)! V neposlednom rade pripomeniem, že rovnako ako ostatné prvky, sú dôležité aj kvalitné sieťové zásuvky a prepojovacie vedenia siete, pretože všetko funguje cez sieť. Ak táto nepracuje na požadovanej úrovni, nebudú kvalitne pracovať ani klienty.

Pri výbere hardvéru pre klienta i server nezabudnite preveriť ich podporu v Linuxe, inak sa môžete dostať do zbytočných problémov.

Výber distribúcie

Pred samotným výberom distribúcie som vzal do úvahy niekoľko faktorov:

  • skúsenosti – moje skúsenosti s distribúciou Debian som postavil ako základ, preto som si ako podmienku vybral distribúciu založenú na Debiane;
  • aktuálnosť – používanie LTSP verzie 5, pretože niektoré distribúcie ostávajú verné staršej verzii 4;
  • integrácia – chcel som LTSP integrované do systému, aby som sa vyhol pracnej ručnej inštalácii, konfigurácii a prípadnej aktualizácii;
  • vzhľad – pre žiakov je dôležitý vzhľad, preto grafický boot je dôležitou, i keď nie nevyhnutnou podmienkou.

Vlastne už prvý aspekt predurčil vlastne len dve distribúcie, a to Debian alebo Ubuntu, takže ako zástanca Debianu a odporca Ubuntu som mal ťažkú dilemu, z ktorej nakoniec predsa len vyšlo víťazne Ubuntu, pretože:

  • Debian nemá v LTSP integrovanú podporu NBD;
  • Debian nemá predvolene inštalovaný grafický boot;

Ako sami vidíte, rozdiel je minimálny, ale neľutujem.

Celý popis je o verzii Ubuntu 9.04 a ako používateľ Debianu upozorňujem, že v popise nepoužívam ubunťácky tanec so sudo (ak neviete čo je to sudo, tak sa tým netrápte) a predpokladám, že čitateľ dokáže správne rozhodnúť, na ktoré úkony potrebuje práva superpoužívateľa root.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Inštalácia servera

Inštalácia servera

Inštalácia LTSP servera je triviálna. Líši sa podľa toho, či chcete vybudovať LTSP server na už existujúcom serveri alebo inštalovať server celkom nový.

ltsp_vyberLTSP.pngPre inštaláciu nového servera je potrebné inštalačné CD označené ako alternate CD. Jediná vec, ktorou sa inštalácia LTSP servera od bežného servera (alebo i desktopu) líši, je explicitný výber voľby "Inštalácia LTSP servera", ktorá sa skrýva na prvej inštalačnej obrazovke CD pod skratkou F4, ako nakoniec vidno na obrázku.

Po tomto výbere už inštalácia prebieha klasickým spôsobom a nebudem ju tu popisovať, pretože sa o to postarala Ubuntu komunita na mnohých iných miestach. K štandardnej inštalácii pribudol len čas potrebný na vybudovanie prostredia tenkého klienta, ktorého vybudovanie vyžaduje prístup na internet, takže nezabudnite pri inštalácii venovať náležitú pozornosť nastaveniu siete.

Pokiaľ inštaluje na existujúci server, stačí nainštalovať dva balíky (o ich závislosti sa postará aptitude):

aptitude install ltsp-server-standalone openssh-server

Prvotné nastavenie

Po nainštalovaní servera je treba vykonať niekoľko úprav.

Nastavenie siete

Rozhranie eth0 sa nastavuje pri inštalácii a malo by bez problémov fungovať. Jediný problém, na ktorý som pri tomto kroku narazil, bol konflikt IP adries vnútornej (terminálovej) siete, pretože predvolené nastavená IP adresa kolidovala s nastaveniami moje vonkajšej siete. Toto vnútorné rozhranie predvolene používa IP adresu 192.168.0.254/24 a zmenu som urobil v dvoch súboroch, pričom som použil adresu 192.168.10.254/24, čím mi vlastne stačilo popridávať na príslušné miesta len jednu jednotku:

  • /etc/network/interface - konfigurácia sieťového rozhrania
auto eth1
iface eth1 inet static
    address   192.168.10.254
    netmask   255.255.255.0
    network   192.168.10.0
    broadcast 192.168.10.255
  • /etc/ltsp/dhcpd.conf - konfigurácia DHCP servera
subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.20 192.168.10.250;
    option domain-name "example.com";
    option domain-name-servers 192.168.10.254;
    option broadcast-address 192.168.10.255;
    option routers 192.168.10.254;
    # next-server 192.168.10.254;
    # get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }
}

Osvedčilo sa mi aj odinštalovanie NetworkManager-a, pretože mi akosi nefungoval a zasahoval do nastavenia siete:

aptitude purge network-manager network-manager-gnome

Po týchto úpravách už len reštart siete a DHCP servera:

invoke-rc.d networking restart
invoke-rc.d dhcp3-server restart

Lokalizácia

Asi sa nebudete so mnou veľmi hádať, keď prehlásim, že stav slovenskej lokalizácie, minimálne v Gnome, zaostáva. Aj preto používam kombinovanú lokalizáciu, v ktorej je ako prvotný jazyk nastavená slovenčina, ale ak nenájde príslušný slovenský preklad, použije pred anglickým ešte lokalizáciu českú.

Toto nastavenie možno jednoducho dosiahnuť pridaním nasledujúceho riadku do súboru /etc/default/locale:

LANGUAGE="sk:sk_SK:cs:cs_CZ"

Toto nastavenie však nie je použité v Gnome a ani v KDE. KDE má na nastavenie dvojjazyčnosti svoj vlastný dialóg, v Gnome som trochu maturoval a nakoniec som použil riešenie, v ktorom vytváram jeden súbor, spúšťaný vždy pri vytváraní relácie X Window. Takže som vytvoril súbor /etc/X11/Xsession.d/56language-session_gnome s obsahom:

# If we are running the GNOME session, source the /etc/default/locale file
# and then export LANGUAGE variable, if it was set

BASESTARTUP=`basename "$STARTUP" | cut -d\ -f1`

if [ "$BASESTARTUP" = gnome-session -o \
        \( "$BASESTARTUP" = x-session-manager -a \
        "`readlink /etc/alternatives/x-session-manager`" = \
        /usr/bin/gnome-session \) ]; then
    . /etc/default/locale
    if [ "$LANGUAGE" ]; then
        export LANGUAGE
    fi
fi

Skriptík prosto overí, či spúšťaná relácia je Gnome, a ak áno, tak spracuje vyššie spomínaný súbor a vyexportuje premennú LANGUAGE, ktorej hodnotu získa zo súboru /etc/default/locale. Takto ostáva nastavenie premennej LANGUAGE na jednom mieste, ale je aplikované aj v Gnome.

Znovavytvorenie prostredia klienta

Na server som nainštaloval 64 bitovú verziu (amd64) Ubuntu a inštalátor predvolene vytvoril aj 64 bitovú verziu systému pre klientov (ak teda máte 64 bitových klientov, môžete celý tento krok preskočiť). To mi však neladilo s mojimi 32 bitovými klientami. Ak teda máte podobné riešenie, je treba odstrániť všetko ohľadom amd64 verzie klienta. Teda, aby som bol celkom presný, nie je to potrebné, len dobré. Architektúra klienta sa vyskytuje na viacerých miestach, takže postupne:

  • zmazanie klientského systému
rm -rf /opt/ltsp/*
  • zmazanie vyexportovaného systému
rm -rf /var/lib/tftpboot/ltsp/*
  • zmazať spúšťanie NBD v inetd, teda zmazať nasledujúci riadok v /etc/inetd.conf:
2000 stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/nbdrootd /opt/ltsp/images/amd64.img

Tento posledný krok nie je nutný. Avšak, ak ho ponecháte, skript na vytváranie klientského prostredia pridá nový riadok (a teda nový port) a číslo tohoto nového portu potom pridá aj do konfigurácie PXE v /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default a to môže najmä začiatočníkov mýliť.

Po týchto prípravných operáciách možno spustiť znovavybudovanie prostredia klienta pomocou skriptu:

ltsp-build-client --arch i386

V tomto príkaze je dôležitý parameter s architektúrou, pretože ak ho vynecháme, skript predvolene použije architektúru servera, a tak by sme mali znova prostredie klienta pre amd64.

Po dokončení tejto operácie (zaberie to nejaký čas) už možno spustiť klientov a ich systém naštartuje, čiže LTSP trieda je pripravená na prácu. Jediný problém, ktorý si viem predstaviť pri prvom štarte, je nepodporovaný hardvér, ale myslím, že ak nemáte niečo veľmi exotické, bude to fungovať.

Doplnky pre server

Synchronizácia času

Predvolene je v Ubuntu nainštalovaný klient pre nastavenie času cez sieť, ak ho nemáte, stačí ho doinštalovať:

aptitude install ntpdate

Jeho konfiguráciu možno vyladiť v súbore /etc/default/ntpdate, kde treba urobiť niekoľko prispôsobení. Ak nemáte na tomto stroji nainštalovaný NTP server, čo ja nemám, tak treba zakomentovať (pridať na začiatok mriežku) riadok:

#NTPDATE_USE_NTP_CONF=yes

Potom ešte možno bude potrebné nastaviť meno/adresu časového servera. Z našej školy sa mi nedá komunikovať protokolom NTP a "odborníci" z T-Comu mi povedali, že sa to nedá (?), tak som nakoniec pomocou jednej barličky rozchodil vlastný časový server, ktorého adresu zadávam do konfiguračného súboru:

NTPSERVERS="10.1.92.2"

Ak teraz netrpezlivo spustíte ntpdate, musím Vás sklamať. Tento príkaz nečíta upravovaný konfiguračný súbor a stále čaká adresu časového servera ako svoj parameter. Konfiguračný súbor však číta príkaz ntpdate-debian, ktorý nám už čas nastaví:

ntpdate-debian
6 Dec 18:43:08 ntpdate[11319]: adjust time server 10.1.92.2 offset 0.006204 sec

Aby sa táto úloha vykonávala pravidelne, je treba ju pridať do cronu, napríklad do súboru /etc/cron.d/ntpdate:

# /etc/cron.d/ntpdate: crontab položka pre automatickú úpravu času

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 0 * * * root ntpdate-debian > /dev/null

Týmto nastavením sa spustí synchronizácia času každý deň o polnoci a automaticky nastaví nový čas.

Adresáre

V prostredí LTSP existuje niekoľko zaujímavých adresárov, ktoré uchovávajú prostredie klienta a tiež adresáre, kde sú uložené súbory potrebné pre jeho štart. Vo východzom nastavení sa jedná o:

/opt/ltsp/$ARCH
  • adresár s tzv. prostredím chroot klienta.
/var/lib/tftpboot/ltsp/$ARCH
  • adresár s vygenerovanými obrazmi a nastavením pre štart klienta.

V oboch prípadoch treba $ARCH nahradiť architektúrou klienta, v mojom prípade je to i386.

/etc/ltsp
  • adresár s niektorými konfiguračnými súbormi LTSP.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Nastavenie klienta

Nastavenie klienta

Po predchádzajúcich nastaveniach servera by sa mali vzdialené klienty naštartovať po sieti. Proces sťahovania operačného systému nie je grafický a možno ho sledovať na obrazovke klienta. Po rozbalení jadra systému sa spustí grafická bootovacia obrazovka a už sme dosledovali, jediné čo vidíme je postupujúci ukazovateľ postupu. Ak teda nabehlo všetko ako má, možno pristúpiť k niektorým vylepšeniam.

Základné nastavenie správania sa klienta je v prostredí LTSP v súbore /var/lib/tftpboot/ltsp/i386/lts.conf. Klient si vždy pri štarte tento súbor (teda nastavenia v ňom) načíta a použije. Na začiatku tento súbor neexistuje, takže ho treba vytvoriť. Všetky zmeny, ktoré v tomto súbore urobíte sa prejavia až po reštarte, samozrejme klienta, nie servera.

Súbor je rozdelený na sekcie a každá sekcia môže mať niekoľko parametrov v štandardnom tvare – názov=hodnota. Názvy sekcií sú zatvorené v lomených zátvorkách. Pričom povinná je len jedna sekcia – [default]. Parametre v tejto povinnej sekcii sú použité na všetkých klientov, ale môžu byť prepísané v ďalších sekciách. Ďalšie sekcie môžu byť sekcie klientov, kde názov sekcie tvorí MAC adresa (samozrejme v lomených zátvorkách). Nastavenia v sekcii klienta sa použijú len pre klienta s príslušnou MAC adresou.

Je možné vytvárať aj virtuálne sekcie. Ich pomenovanie v zátvorkách môže byť prakticky ľubovoľné. Tieto slúžia ako akési makrá, do ktorých si môžem pripraviť konfiguráciu, ktorú potom aplikujem na príslušných klientov. Príklad Vám ukážem v nastavení displeja. Zoznam a popis skoro všetkých možných parametrov nájdete v súbore /usr/share/doc/ltsp-server/lts-parameters.txt.gz.

V tomto konfiguračnom súbore sú viac-menej parametre dvoch typov. prvý je logický, ktorý môže nadobúdať hodnoty - teda niektorú z hodnôt Y, y, True, true alebo N, n, false, false.

Nastavenie displeja

Ja mám všetky monitory v LTSP sieti rovnaké, preto si vystačím s jediným parametrom v sekcii [default]:

[default]
  X_COLOR_DEPTH = 16

Týmto nastavením som nastavil všetkým klientom farebnú hĺbku 16 bitov. Ako som spomínal vyššie, toto nastavenie bude použité na všetkých klientov. Jeho predvolená hodnota v Ubuntu je 24. Čo však ak niektorý klient potrebuje inú hodnotu? Žiadny problém, prosto pridám klientskú sekciu:

[default]
  X_COLOR_DEPTH = 16

[00:0f:26:fb:0c:a1]
  X_COLOR_DEPTH = 8
[00:0f:26:fb:0c:94]
  X_COLOR_DEPTH = 24

Týmto nastavením zaistím, že jeden klient (s MAC 00:0f:26:fb:0c:a1) použije farebnú hĺbku len 8 bitov, druhý klient (s MAC 00:0f:26:fb:0c:94) zase 24 bitov a všetci ostatní použijú spoločne nastavenú hodnotu 16 bitov. Takto ručne nastavovať hodnoty pre jednotlivých klientov je dobré len do okamihu keď toto nastavenie treba zmeniť. Aby hodnoty nebolo treba meniť v každom klientovi, je možné použiť spomínané virtuálne sekcie, ktoré potom jednoducho aplikujeme do klientskej sekcie

[default]
  X_COLOR_DEPTH=16

[slabymonitor]
  X_COLOR_DEPTH=8
  X_MODE_0=800x600

[00:0f:26:fb:0c:a1]
  LIKE=slabymonitor
[00:0f:26:fb:0c:94]
  LIKE=slabymonitor

Zmena nastavenia pre oboch klientov na jednom mieste je iste zrejmá. Myslím, že význam parametra X_MODE_0 je samovysvetľujúci, len tá nula na konci udáva číslo režimu.

Ešte jedna poznámka ohľadom veľkosti RAM grafickej karty. Ak používate klienta, ktorý používa pre grafickú kartu zdieľanú pamäť a tejto pamäte nemáte na rozdávanie, tak si prosto vypočítajte jej potrebnú veľkosť pomocou vzorca:

vert-rozlíšenie * horiz-rozlíšenie * far_hĺbka / 8

výsledok je v bajtoch, takže ak chcete dostať hodnotu v MB je potrebné výsledok podeliť 2 * 1024. Napríklad:

1280 * 1024 * 16 / 8 / 1024 / 1024 = cca 2.5 MB

S touto hodnotou som sa ešte nestretol, ale bežne dostupná býva voľba 4 či 8 MB, takže použijem túto (predvolene bolo 16 MB).

Vypnutie šifrovania

Ďalším zaujímavým parametrom je možnosť vypnutia šifrovania pomocou parametra LDM_DIRECTX:

  LDM_DIRECTX=true

vypnutím šifrovania síce strácam istú úroveň bezpečnosti, ale zároveň znížim nároky na procesor, a to ako na strane servera, tak (a hlavne) i na strane klienta. Pozor však, strácam aj o možnosť kompresie sieťovej prevádzky, ktorú poskytuje SSH.

Zapnutie NumLock

Študenti sú automatickým zapínaním NumLock nielen rozmaznaní, čo je horšie, počas niekoľkých týždňov sa nenaučili ho zapínať. A keďže ma pípanie klienta, ktorý na to pri použití numerickej klávesnice upozorňoval, otravovalo, rozhodol som sa im ho zapnúť.

X_NUMLOCK=true

Pozor však, je potrebné do prostredia klienta doinštalovať balík numlockx, ale o tom neskôr.

Jazyk LDM

Prihlasovanie v LTSP nepoužíva GDM (Gnome Display Manager), ale namiesto neho je použitý LDM (LTSP Display Manager). Jazyk LDM má vplyv na jazyk relácie X (Gnome) prihláseného používateľa. Je možné definovať nastavenie jazyka ako predvolené pre všetky klienty alebo samostatne pre každého klienta:

  LDM_LANGUAGE="sk_SK.UTF-8"

Aj v tomto prípade je treba doinštalovať dodatočné balíky do prostredia chroot (a preložiť si LDM).

Prihlásenia hosťa

V LDM je možné nastaviť predvolené prihlasovacie meno a heslo, ktoré bude použité pri akomsi anonymnom prihlásení (na prihlasovacej obrazovke pribudne tlačidlo "Prihlásiť ako hosť"), takže sa možno prihlásiť k serveru bez explicitného zadávania prihlasovacích údajov. Toto nastavenie je možné urobiť v spoločnej sekcii (pre všetkých klientov rovnaké) alebo urobiť pre každého klienta zvlášť v jeho klientskej sekcii. Spoločné prihlasovacie údaje sa mi neosvedčili, pretože niektoré aplikácie (OpenOffice.org, Firefox, ...) sa potom spúšťali na monitore prvého prihláseného, prípadne sa spustili len raz a potom už len otvárali chybový dialóg. Ale prihlásenie hosťa mám povolené centrálne:

[default]
  LDM_GUESTLOGIN = True

[00:0f:26:fb:0c:a1]
  LDM_USERNAME = meno
  LDM_PASSWORD = heslo

Automatické prihlásenie

Okrem prihlásenia hosťa je možné povoliť aj automatické prihlásenie, pomocou voľby:

[default]
  LDM_AUTOLOGIN=true

[00:0f:26:fb:0c:a1]
  LDM_USERNAME = meno
  LDM_PASSWORD = heslo

Pozor však, s takýmto nastavením sa ani neodhlásite, pretože okamžite po odhlásení bude zase automaticky prihlásený účet, zadaný pomocou rovnakých parametrov (LDM_USERNAME a LDM_PASSWORD).

Ak nie je pre tenkého klienta definované meno a heslo (LDM_USERNAME / LDM_PASSWORD), je predvolene použité hostname tenkého klienta.

Výber relácie

Ak poslednú voľbu v tejto časti spomeniem voľbu pre výber relácie:

  LDM_SESSION=fvwm-crystal

Ak sa Vám zdá toto nastavenie zbytočné, ja som ho ocenil v okamžiku, keď som začal hľadať inú alternatívu ako je Gnome a nechcelo sa mi presviedčať všetkých používateľov aby si zmenili reláciu. Nastavenie tohoto parametra udáva predvolenú reláciu, a tak stále dovoľuje zmeniť reláciu v prihlasovacej obrazovke LDM.

Príklad konfigurácie

[Default]  
  # Vypnúť šifrovanie
  LDM_DIRECTX=True
  # Nastaviť farebnú hĺbku
  X_COLOR_DEPTH = 16
  # Zapnúť NumLock (vyžaduje balík numlockx v klientovi)
  X_NUMLOCK=true
  #Povoliť prihlásenie hosťa
  LDM_GUESTLOGIN = True

###########################################
[44:4d:50:e2:52:55]
  # prac21-01
  LDM_USERNAME = meno01
  LDM_PASSWORD = heslo01

[44:4d:50:e2:50:ec]
  # prac21-02
  LDM_USERNAME = meno02
  LDM_PASSWORD = heslo02

[44:4d:50:e2:51:f9]
  # prac21-03
  LDM_USERNAME = meno03
  LDM_PASSWORD = heslo03

... 

Aktualizácia chroot

Skript ltsp-build-client, ktorý vytvára prostredie klienta (vlastne úplne samostatný systém), predvolene nastavuje dve úložiská pre chroot prostredie:

deb http://archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse
deb http://security.ubuntu.com//ubuntu jaunty main restricted universe multiverse

Z času na čas sú balíky, ktorá tvoria LTSP chroot, aktualizované, či opravené. Dôležitá vec je uvedomiť si, že chroot prostredie je samostatné a jeho nastavenie úložísk nie je ovplyvnené zmenami nastavenia úložísk servera.

Pri aktualizácii LTSP servera na novú verziu (napr Jaunty -> Karmic), je lepšie vybudovať úplne nové prostredie chroot klienta.

Pred akoukoľvek úpravou prostredia chroot je dobré si urobiť jeho zálohu, napríklad kvôli vykonaným úpravám, ktoré nechcete stratiť. Rovnako to oceníte, ak bude z akýchkoľvek dôvodov potrebné vrátiť prostredie chroot do pôvodnéh stavu. Najjednoduchšia záloha je pomocou rekurzívneho kopírovania:

sudo cp -a /opt/ltsp /opt/ltsp-orig

Aktualizáciu svojho prostredia chroot začneme úpravou existujúceho súboru /opt/ltsp/arch/etc/apt/sources.list tak, aby zahŕňal aj úložisko s aktualizáciami no a potom už stačí vykonať aktualizáciu vo vnútri chroot. Najprv, teda pridávam do súboru /opt/ltsp/i386/etc/apt/sources.list v LTSP chroot riadok:

deb http://sk.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted

Pred vstúpením do prostredia chroot je dobré nastaviť premennú LTSP_HANDLE_DAEMONS=false, čím zabraňujem serveru aby reštartoval svoje vlastné démony pri aktualizácii prostredia chroot:

export LTSP_HANDLE_DAEMONS=false

Vstúpim do prostredia chroot v adresári klienta LTSP:

sudo chroot /opt/ltsp/i386

V prostredí chroot pripojím /proc, spustím aktualizáciu všetkých aktualizovaných balíčkov a nakoniec vymažem vyrovnávaciu pamäť balíčkov:

mount -t proc proc /proc
aptitude update && aptitude safe-upgrade
aptitude clean

Chcem Vás tu upozorniť na predvolenú konfiguračnú voľbu aptitude, ktorá automaticky inštaluje aj odporúčané balíky. Ak teda nemáte skúsenosti, použite radšej nástroj apt-get.

Pozorne dodržujte všetky pokyny aktualizácie (ak nejaké sú). Dôsledne sa uistite, že pri aktualizácii nenastali žiadne chyby, pretože ak inštalácia niekorého balíka zlyhá, môže to spôsobiť, že klient nenaštartuje.

Pri aktualizácii sa objavuje chybové hlásenie: "Nedá sa zapísať záznam, volanie openpty() zlyhalo (/dev/pts nie je pripojený?)" (v originále "Can not write log, openpty() failed (/dev/pts not mounted?)"), túto si ale všímať netreba, pretože je čisto kozmetická.

Po úspešnej aktualizácii možno opustiť chroot, odpojiť /proc, spustiť ltsp-update-kernels (ak bolo v chroot aktualizované aj jadro) a nakoniec znova vybudovať NBD obraz tenkého klienta:

sudo umount /proc
exit
unset LTSP_HANDLE_DAEMONS
sudo ltsp-update-kernels
sudo ltsp-update-image --arch i386

Aby sa aplikovali zmeny (z nového obrazu), je vždy treba tenké klienty reštartovať.

Inštalácia ďalších programov pre klienty

Doplnenie prostredia chroot o ďalšie programy používa vlastne rovnaký postup ako pri jeho aktualizácii, ale pre istotu tu zopakujem aj základné kroky, ktoré je dobré urobiť pred samotným vstúpením do chroot prostredia, tentokrát už bez vysvetľovaní.

Nastavím premennú LTSP_HANDLE_DAEMONS=false:

export LTSP_HANDLE_DAEMONS=false

Vstúpim do prostredia chroot v adresári klienta LTSP:

sudo chroot /opt/ltsp/i386

Pripojím /proc:

mount -t proc proc /proc

Doplnenie lokalizácie

V prostredí chroot nie sú predvolene nainštalované balíky, ktoré sa postarajú o lokalizáciu prostredia (najmä LDM), preto je dobré doinštalovať:

aptitude install gettext language-pack-gnome-sk

Po nainštalovaní je dobré aktualizovať generovanie lokáliek:

locale-gen

Nepočítajte s tým, že bude prihlasovacia obrazovka po slovensky, pretože LDM v Ubuntu 9.04 nie je lokalizovaný do slovenčiny. Ak máte záujme, môžete si poslovenčený balík stiahnuť a nainštalovať z mojej stránky.

Doplnenie NumLock

aptitude install numlockx

Po doinštalovaní tohoto balíka už bude funkčná aj voľba X_NUMLOCK v nastavení LDM (lts.conf).

Zakázanie PC speakera

PC speakery dokážu byť veľmi otravné, najmä keď sa používatelia pred prihlásením pokúšajú použiť numerickú klávesnicu bez zapnutia NumLock, čo spôsobuje systémové pípnutie. Ak si to vynásobíte počtom klientov v triede, dostanete jednoznačný dôvod na vypnutie.

Ovládač speakera je kompilovaný ako modul, preto ho možno vypnúť prostým zakázaním jeho načítania (blacklist) pri štarte. Najprv treba vytvoriť súbor /etc/modprobe.d/blacklist-pcspkr.conf (pozor, v chroot prostredí klienta) a do neho vpísať:

# Zakázanie načítania modulu PC Speaker (pcspkr)
blacklist pcspkr

Vygenerovanie obrazu

Po úspešnej inštalácii a úpravách netreba zabudnúť na správne ukončenie a vygenerovanie nového NBD obrazu:

exit
sudo umount /opt/ltsp/i386/proc
unset LTSP_HANDLE_DAEMONS
sudo ltsp-update-image --arch i386

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Vylepšenie prostredia

Vylepšenia prostredia

Pevné IP adresy

Považujem za dobré aby známi klienti v sieti používali vždy rovnaké IP adresy a toto nastavenie sa mi osvedčilo aj pre LTSP terminály, pretože je možné relatívne jednoducho identifikovať príslušného klienta.

Pre použitie pevných IP adries je treba vybrať rozsah IP adries, ktoré nepatria do rozsahu, z ktorého ich poskytuje DHCP server. Predvolene DHCP server poskytuje IP adresy v rozsahu 20 - 250 a toto nastavenie nádjete v súbore /etc/ltsp/dhcpd.conf v riadku:

    range 192.168.10.20 192.168.10.250;

Ak je potrebný väčší rozsah adries ako 2 - 19, prosto upravte rozsah podľa potreby.

Pre vytvorenie statických položiek stačí pridať za riadok s voľbou "option root-path" pre každého klienta tieto riadky:

host hostname {
    hardware ethernet MA:CA:DD:RE:SS:00;
    fixed-address 192.168.10.2;
}

Samozrejme MAC adresu nahraďte hodnotami podľa hodnôt klienta, ktorý má dostávať pevnú IP adresu. Položka fixed-address je hodnota IP adresy, ktorú má klient dostať a položka hostname je meno, ktoré klient dostane. Pre plné pochopenie tohoto nastavenia je dobré mať isté vedomosti o DHCP, ktoré tu však popisovať nebudem.

Sieťový swap

Technika swap je spôsob o virtuálne rozšírenie fyzickej veľkosti pamäte RAM o miesto na pevnom disku. keďže však tenké klienty často pevné disky nemajú, je treba v prostredí LTSP použiť iné riešenie. LTSP podporuje swapovanie po sieti pomocou NBD (Network Block Device) pomocou malého skriptu nbdswapd, ktorý je spúšťaný prostredníctvom inetd a stará sa o vytváranie swapovacieho súboru, nastavenie swapovania a odstránenie tohoto súboru, keď už nie je potrebný (po odhlásení terminálu).

Príslušný riadok v /etc/inetd.conf vyzerá takto:

9572 stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/nbdswapd

Predvolene majú súbory swap veľkosť 32 MB, čím je klientom pridané trochu RAM, ale nezaberá to veľa miesta na disku. Ak sa stretnete s podozrivým správaním, ako náhodné padanie Firefoxu pri prezeraní stránok s veľkým množstvom veľkých obrázkov, možno bude treba túto hodnotu zvýšiť. Nastavenie veľkosti súboru swap dosiahnete v súbore /etc/ltsp/nbdswapd.conf. Stačí do tohoto súboru vložiť riadok pre nastavenie premennej SIZE v MB, napr. pre 128 MB:

SIZE=128

Pri nastavovaní veľkosti sieťového swap dajte pozor na zabrané diskové miesto. Ak server obsluhuje 15 klientov a každý používa 128 MB swapu, zaberie to spolu 15 * 128 = 1920 MB, čiže skoro 2 GB miesta v adresári /tmp (kde sú tieto súbory ukladané).

Po nastavení veľkosti súboru NBD swap treba jeho používanie povoliť v konfigurácii lts.conf:

NBD_SWAP=true

Podľa východzieho nastavenia je povolenie NBD swapu cez inetd povolené v súbore /etc/hosts.allow:

nbdswapd: ALL: keepalive

Smerovanie a preklad adries

Ak je z nejakého dôvodu (napríklad lokálne aplikácie, synchronizácia času, ...) potrebný priamy prístup klientov k internetu, je treba na serveri povoliť smerovanie paketov a preklad sieťových adries (NAT). Smerovanie paketov sa postará o prechod paketov z jedného rozhrania servera na druhé. NAT sa postará o správnu manipuláciu odchádzajúcich (a potom i prichádzajúcich) paketov tak, aby okolitá sieť dokázala sieťovú komunikáciu poslať na správne miesto.

V Linuxe je možné nastavenie NAT v iptables dvoma spôsobmi, prvý sa volá MASQUERADING, ktorý sa hodí pre dynamicky nastavované vonkajšie rozhranie a SNAT, ktorý je zase vhodný v prípade statického nastavenia IP adresy.

Postup je jednoduchý:

  • povoliť smerovanie IPv4 ( aprípadne aj IPv6) paketov úpravou súboru /etc/sysctl.conf pomocou odkomentovania nasledujúcich riadkov:
net.ipv4.ip_forward=1
...
net.ipv6.conf.default.forwarding=1
  • spracovať urobené zmeny jadrom:
sysctl -p
  • nastaviť IP Masquerading pomocou jedného pravidla iptables:
iptables -t nat -A POSTROUTING -s 192.168.10.0/16 -o eth0 -j MASQUERADE
  • alebo nastaviť SNAT, rovnako pomocou jediného pravidla iptables:
iptables -t nat -A POSTROUTING -s 192.168.10.0/16 -o eth0 -j SNAT --to-source 192.168.0.112

Po zadaní jedného z predchádzajúcich príkazov začne smerovanie paketov fungovať, ale len do nasledujúceho reštartu. Pre plnú funkčnosť je treba zaistiť, aby sa toto nastavenie načítalo pri štarte systému, čo možno dosiahnuť viacerými spôsobmi, ja som použil spôsob popísaný v dokumentácii Ubuntu.

Najprv som si uložil aktuálny stav nastavenia iptables pomocou:

iptables-save > /etc/ltsp/nat

Vygenerované nastvenie je zbytočne podrobné, keďže potrebujem len pravidlo pre SNAT, ponechám len tieto riadky:

# Generated by iptables-save v1.4.1.1 on Wed Dec 16 19:08:11 2009
*nat
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 192.168.0.112
COMMIT
# Completed on Wed Dec 16 19:08:11 2009

Nakoniec pridám riadok do nastavenia rozhrania terminálovej siete, v mojom prípade eth1, v súbore /etc/network/interfaces:

auto eth1
    iface eth1 inet static
    address 192.168.10.254
    netmask 255.255.255.0
    network 192.168.10.0
    broadcast 192.168.10.255
    up iptables-restore < /etc/ltsp/nat

Povolenie admina

V Ubuntu predvolene účet root nie je povolený, a tak i keď si povolíte konzolu, neprihlásite sa, pretože v chroot žiadny iný použiteľný účet nie je. Takže si buď vytvorte administračný účet, alebo povoľte root. Začnem povolením root, ale oba kroky majú spoločný začiatok a koniec, teda vstúpenie a vystúpenie z chroot a nakoniec generovanie nového obrazu klienta.

Vstúpenie do chroot:

chroot /opt/ltsp/i386
Povolenie root

Odomknem účet root v chroot:

passwd --unlock root

Nastavím mu heslo:

passwd root
Vytvorenie admin účtu

Možno lepšie riešenie ako povolenie účtu root je vytvorenie administračného účtu (povedzme s menom admin), ktorý bude používaný na prihlásenie k systému klienta. Takýto účet neexistuje, preto ho treba najprv pridať. Pri pridávaní mu zároveň nastavím členstvo v skupine sudo. nezabudnem ani na nastavenie hesla.

useradd -m admin -G sudo
passwd admin

Posledný krok, v oboch prípadoch, je opustenie chroot a aktualizácia obrazu klienta:

exit
sudo ltsp-update-image --arch i386

Synchronizácia času

Často je dobré mať na počítači presný čas, najmä ak používa časovo ovládané spúšťanie úloh (cron). Pre tento účel je potrebný časový server (pomocou NTP) a nástroj, ktorý dokáže z tohoto servera čas získať. Inštaláciou časového servera sa zaoberať nebudem a popíšem implementáciu na strane klienta, ktorý bude na synchronizáciu využívať časový server mimo LTSP siete.

Najprv je treba vstúpiť do chroot klienta:

chroot /opt/ltsp/i386

a tam nainštalovať klienta synchronizácie času:

aptitude install ntpdate

Pre jednoduché nastavenie spúšťania pri štarte možno vytvoriť priamo štartovací skript v príslušnom adresári /etc/rc?.d. Ukážem však postup ako využiť možnosť konfigurácie synchronizácie času bez potreby úpravy obrazu klienta zo súboru lts.conf.

Pre toto potrebujem vytvoriť spúšťací skript v adresári /usr/local/sbin, nazvaný ltsp_ntpdate s obsahom:

#!/bin/bash

# načítaj adresu NTP servera
LTSP_TIMESERVER=$(getltscfg TIMESERVER)

if [ -z "$LTSP_TIMESERVER" ]; then # ak nebola zadaná, použi ntp.org
LTSP_TIMESERVER=sk.pool.ntp.org
fi

# ak je dosiahnuteľný, tak synchronizuj čas
[ "$(ping $LTSP_TIMESERVER -qc1 -w1 > /dev/null && echo OK)" = "OK" ] && ntpdate $LTSP_TIMESERVER &

Tento skript je inšpirovaný skriptom Pierre Barcoa. Ak je v konfiguračnom súbore lts.conf nastavená premenná TIMESERVER, skript ju použije a bude s týmto serverom aktualizovať čas tenkého klienta. Ak lts.conf premennú neobsahuje neobsahuje, bude tenký klient synchronizovať svoj čas so skupinou serverov sk.pool.ntp.org.

Po vytvorení skriptu mu je treba nastaviť práva na spustenie:

chmod +x /usr/local/sbin/ltsp_ntpdate

Treba upraviť aj konfiguračný súbor ltsp.conf a do sekcie [default] pridať:

[default]
  TIMESERVER=192.168.0.1
  RCFILE_01=/usr/local/sbin/ltsp_ntpdate

Premenná TIMESERVER definuje IP adresu použitého časového servera. Premenná RCFILE_01 obsahuje cestu k skriptu ltsp_ntpdate a udáva, že tento skript bude spustený pri štarte klienta.

Nakoniec treba aktualizovať obraz klienta:

ltps-update-image --arch i386

Zapínanie a vypínanie

To čo mi chýbalo od začiatku, je možnosť zapínania a vypínania po sieti (riešil som to pomocou ističov). Zapínanie je relatívne jasné, teda sieťová karta musí podporovať Wake On Lan a musí mať túto možnosť zapnutú. Ohľadom vypínania sú možné dva postupy. Prvým je automatické vypínanie v určitom čase pomocou CRON alebo vzdialené vypínanie po sieti, ja popíšem to druhé.

Zapínanie

Aby bolo možné klienty vzdialene po sieti zapínať, musia túto možnosť jednak podporovať a jednak ju musia mať zapnutú v BIOSe. Po tomto povolení je potrebné na server (alebo iný vhodný počítač) nainštalovať balík wakeonlan.

aptitude install wakeonlan

Po nainštalovaní už môžem vyskúšať funkčnosť zadaním MAC adresy klienta, ktorého chcem zapnúť:

wakeonlan 44:4d:50:e2:51:f9

Ak sa nič nestalo (a mne sa nestalo), treba vyskúšať zadať rozhranie, cez ktoré sa má magický paket poslať. Rozhranie sa zadáva v podobe broadcastovej adresy príslušnej siete, v mojom prípade:

wakeonlan -i 192.168.10.255 44:4d:50:e2:51:f9

Ak to stále nefunguje, je možné, že operačný systém prepisuje nastavenie WoL sieťovej karty a treba mu ho implicitne zadať, ale to popíšem neskôr.

Ak to funguje, nastal čas na trochu spohodlnenie nastavenia. Aby som mohol klientov zobúdzať pomocou ich mena (pretože MAC sa dosť zle pamätá), je treba upraviť dva súbory, a to /etc/hosts a /etc/ethers. Začnime tým druhým (ktorý ešte nemusí existovať). Je to súbor, ktorý obsahuje medzerami oddelené dvojice MAC adresa a hostname, napríklad:

cat /etc/ethers
44:4d:50:e2:52:55 ltsp101
44:4d:50:e2:50:ec ltsp102
44:4d:50:e2:51:f9 ltsp103
...

Ale tento zoznam nebude fungovať bez funkčného prekladu hostname na IP adresu, preto najjednoduchšie je ich pridanie do súboru /etc/hosts, ktorý zase obsahuje medzerami oddelené dvojice IP adresa a hostname. V systéme už iste existuje a má aj nejaký obsah, preto na jeho koniec stačí pridať, napríklad:

...
192.168.0.101 ltsp101
192.168.0.102 ltsp102
192.168.0.103 ltsp103
...

Pre istotu pripomeniem, že aby to správne (a hlavne trvalo) fungovalo, je treba nastaviť DHCP server pre prideľovanie stále rovnakých IP adries, ako som písal už skôr. Po tejto úprave už možno klienta zobúdzať napríklad pomocou:

wakeonlan -i 192.168.10.255 ltsp101

Ako som spomínal vyššie, klientovi nemusí vždy stačiť nastavenie v BIOSe a treba ho trochu vylepšiť. Aby mi to teda fungovalo, musel som do chroot prostredia klienta nainštalovať balík ethertool:

chroot /opt/ltsp/i386
aptitude install ethertool
aptitude clean
exit

Po nainštalovaní nástroja som ešte musel zaistiť jeho správne spúšťanie po štarte systému s parametrom g. Vytvoril som súbor /opt/ltsp/i386/usr/local/sbin/wolfix (áno, už som opustil prostredie chroot) s obsahom:

#!/bin/bash
# oprava funkčnosti WoL

/usr/sbin/ethtool -s eth0 wol g

Samozrejme nastavil mu práva na spustenie:

chmod +x /opt/ltsp/i386/usr/local/sbin/wolfix

Teraz možno vygenerovať nový obraz klienta:

ltsp-update-image --arch i386

A už známym postupom som pridal štartovací súbor do lts.conf:

RCFILE_02 = /usr/local/sbin/wolfix

Tentokrát som premennej RCFILE pridal číslo 02, pretože inak by som si prepísal predchádzajúci skript.

Samozrejme, celé to začalo fungovať až po nasledujúcom vypnutí, aby sa tento skriptík aspoň raz vykonal.

Vypínanie

Čítal som návod pre nastavenie vypínania klientov v určenom čase na základe úlohy pre CRON. Tento spôsob sa mi ale nepáčil, pretože mi príde trochu obmedzujúci, a to tým, že nevypína stroje vždy keď to potrebujem, ale len vo vopred určenom čase. I preto som rozmýšľal na iným riešením. Hoci som uvažoval o odľahčenej implementácii pomocou "švajčiarskeho nožíka" na TCP/IP siete, zvaného netcat (nc), nakoniec som toto riešenie, kvôli nulovej bezpečnosti, zavrhol a použil odľahčený SSH server dropbear.

Ako prvú vec je treba nainštalovať dropbear v chroot prostredí klienta:

export LTSP_HANDLE_DAEMONS=false
chroot /opt/ltsp/i386/
aptitude install dropbear
aptitude clean
exit

Po nainštalovaní klienta by som mohol (a vy pokojne môžete) vygenerovať nový obraz klienta, nabootovať ho a overiť si, že na klientovi skutočne beží SSH server, lenže zatiaľ vyžaduje zadanie hesla, čo nie je najvhodnejšie. Preto je ďalším krokom nastavenie autentifikácie pomocou kľúčov. Najprv je potrebné vygenerovať si na serveri kľúč, ak ho ešte nemáte. Tento si môžem vygenerovať ako root, ale lepšie bude ako bežný používateľ (aby som sa mohol prihlasovať bez poteby root):

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/slavko/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/slavko/.ssh/id_rsa.
Your public key has been saved in /home/slavko/.ssh/id_rsa.pub.

Ako vidno vo výpise, kľúč som nechal vygenerovať do východzieho umiestnenia (/home/slavko/.ssh/id_rsa) a nezadal som passphrase. Po vygenerovaní kľúča ho ešte musím dostať do prostredia klienta, ale samozrejme iba jeho verejnú časť, ktorá je v súbore .ssh/id_rsa.pub.

Stačí prosté presmerovanie výstupu, ale už zase ako root:

mkdir /opt/ltsp/i386/root/.ssh
chmod 700 /opt/ltsp/i386/root/.ssh
cat /home/slavko/.ssh/id_rsa.pub >> /opt/ltsp/i386/root/.ssh/authorized_keys
chmod 700 /opt/ltsp/i386/root/.ssh/authorized_keys

A teraz je ta správna chvíľa na vygenerovanie nového obrazu:

ltsp-update-image --arch i386

Potom už len nabootovať a prihlásiť sa, nezabúdajte, že ssh sa predvolene pokúša prihlásiť pomocou mena práve prihláseného používateľa, preto mu treba meno zadať napríklad pomocou parametra -l alebo priamo k adrese pomocou zavináča:

ssh root@ltsp101

Pripomínam, že najprv je treba pozbierať digitálne podpisy klientov (dajte pozor na priraďovanie IP adries). S úspechom možno využiť nástroj ssh-keyscan.

Od tejto chvíle možno vypínať klientov pomocou príkazu (dropbear kašle na nastavenie PATH, tak je dobré zadávať príkazy s plnou cestou):

ssh root @ltsp101 /sbin/halt

prípadne reštartovať (napr. kvôli načítaniu nového obrazu):

ssh root @ltsp101 /sbin/reboot

Pre hromadné vypínanie/reštartovanie si možno pripraviť jednoduchý skript, ktorý postupne vykonáva ssh príkaz na jednotlivé klienty.

Hromadný skript

Pre zjednodušenie života som si napísal jednoduchý skript, pomocou ktorého môžem naraz obslúžiť celú triedu:

#!/bin/bash
# skript pre poslanie príkazu všetkým LTSP klientom

# Počet klientov, počiatočná a konečná IP
CELKOM=15
MIN=101
MAX=$(($MIN + $CELKOM -1))

case $1 in
    start)
PAUZA="sleep 1.5"
POKEC="Zapínam klienta "
PRIKAZ="wakeonlan -i 192.168.10.255 ltsp"
ULOHA=""
;;
stop)
PAUZA="sleep 0.5"
POKEC="Vypínam klienta "
PRIKAZ="ssh root @192.168.10."
ULOHA="/sbin/halt"
;;
restart)
PAUZA="sleep 1.5"
POKEC="Reštartujem klienta "
PRIKAZ="ssh root @192.168.10."
ULOHA="/sbin/reboot"
;;
free)
PAUZA=""
POKEC="Stav pamäte klienta "
PRIKAZ="ssh root @192.168.10."
ULOHA="/usr/bin/free -m"
;;
*)
echo "Použitie:"
echo "$(basename $0) start | stop | restart | free"
exit 2
;;
esac

for CISLO in $(seq $MIN $MAX); do
$PAUZA
echo $POKEC$CISLO
$PRIKAZ$CISLO $ULOHA
done

Skript spúšťam pomocou samovysvetľujúcich parametrov, ktoré skript vypíše, keď ho spustím bez parametrov.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Sledovanie klientov

iTalc

iTalc je užitočný nástroj pre zobrazovanie a vzdialenú správu počítačov. Nebudem tu popisovať jeho vlastnosti, podrobnosti môžete nájsť na stránke projektu. Samotný nástroj sa skladá z dvoch častí – italc-master a italc-client (pomenoval som ich podľa mien balíkov). Balík italc-master slúži ako administračné rozhranie a italc-client zase poskytuje informácie (a prístup) na strane klientov.

V prostredí LTSP je možné nainštalovať tento nástroj dvomi spôsobmi. Prvý, ktorý nebudem popisovať, pretože je dosť veľkou záťažou na sieť a výkon klientov, je nainštalovanie klientskej časti do chroot prostredia klientov. Druhý spôsob je inštalácia oboch častí len na server, čím je vylúčený reálny prenos informácií po sieti (celá komunikácia prebieha len na strane servera) a rovnako aj záťaž procesora klienta, avšak tento spôsob neposkytuje možnosť správy klientov pred prihlásením.

Najprv som teda nainštaloval na server balíky:

aptitude install italc-master italc-client

Po nainštalovaní sa v menu objaví položka pre spúšťanie iTalc, ktorá však nespúšťa priamo iTalc, ale italc-launcher, ktorý má v Ubuntu za úlohu, okrem iného, zaistiť automatické pridávanie klientov do iTalc. V reále je však pridaný každý klient dva krát, preto je vhodnejšie spúšťať iTalc priamo – tj. vytvoriť si vlastnú položku v menu.

Pre pridávanie klientov do prostredia iTalc je potom potrebné ich zadávanie ich IP adresy v podobe:

IP.SE.RV.ER:10XXX

Pričom ako adresu servera používam 127.0.0.1, ale možno použiť aj adresu rozhrania, na ktoré sú pripojené klienty. Číslo portu (za dvojbodkou) je v tvare 10XXX, kde to XXX je nahradené posledným trojciferným číslom IP adresy klienta. Napríklad pre klienta s IP adresou 192.168.10.51 bude IP pre italc vyzerať takto:

127.0.0.1:10051

Pozor: Automatické pridávanie klientov do iTalc (pomocou italc-launcher) funguje tak, že automaticky pridá klientov, ktorí majú prihláseného používateľa v okamihu štartu iTalc.

Ako som už naznačil niekde vyššie, vôbec sa mi neosvedčilo používanie predvoleného prostredia Gnome, možno i preto, že nie som naučený na toto prostredie. Robil som niekoľko pokusov, ktoré viedli cez FluxBox a OpenBox až k FVWM, teda celkom presne k FVWM-Crystal. FluxBox som zavrhol, pretože sa mi nepodarilo nastaviť noMachine pre prihlásenie k tomuto prostrediu. Niekoľko mesiacov som (študenti) používal OpenBox, s ktorým som bol spokojný vlastne až na jednu drobnosť, a to nemožnosť pridania ikon do menu.

FVWM-Crystal sa nakoniec ukázal ako výborná voľba aj preto, že študenti po prvý krát videli nielen viacero plôch, ale najmä koncept virtuálnych plôch a flexibilnosť grafického prostredia X Window.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Záver

 Záver

Na záver možno len toľko, že po viac ako šesť mesačnom používaní som s nasadením tohoto systému spokojný. Neznamená to, že všetko beží bez problémov. Študentom nekonečne chýba FlashPlayer, ktorý som musel zo servera odstrániť. Klientom som musel flashovať BIOS, aby sa aj po reštarte dokázali nabootovať (ale výrobca promptne vyvinul aktualizáciu na zákalde mojej požiadavky). Faktom je aj to, že hľadanie "správneho" správcu okien mi zabralo oveľa viac času ako som chcel.

Na druhej strane, samotné zabudovanie a nainštalovanie samotnej učebne mi (a siedmim žiakom) trvalo 20 (slovom dvadsať) minút, vrátane nastavovanie klientov na sieťový boot. Všetky zmeny robím na jednom mieste a nemusím už kvôli desaťmútovej práci obiehať vyše 2 hodiny 15 počítačov (15 x 10 min). Rovnako tak finančná náročnosť zriadenia. Nákup hardvéru pre učebňu nebol oveľa lacnejší ako nákup bežných stolných PC. Lenže tieto tenké klienty "morálne nezostarnú", keďže slúžia len na pripojenie klávesnice a monitora k serveru. Zostarnúť môže server, a tak v budúcnosti pre vynovenie učebne nie je potrebné nakúpiť celú učebňu počítačov, ale kúpiť silnejší server, prípadne dokúpiť ďalší.

V tejto triede vyučujem hodiny informatiky, aplikovanej informatiky a výpočtovej techniky. Hodiny sú, okrem všeobecných vecí, zamerané najmä na elektrotechniku a elektroniku. A viete, najkrajší pocit mám, keď môžem na školskú stránku umiestniť softvér na stiahnutie bez obáv z možného trestného stíhania. Rovnako aj, keď môžem žiakom povedať, že si ho môžu pokojne stiahnuť a používať a nepotrebujú na to žiadne peniaze...

No a v neposlednom rade, sú tu študenti. Títo prijímajú nový systém rôzne. Niektorí pozitívne, iný kritizujú všetko. Dosť ťažko sa vyrovnávajú s tým, že pracovná plocha vyzerá často inak a inak sa aj správa, pretože strácajú svoje pohodlie "znalosti" systému. Na druhej strane, rozširujú si svoj obzor a neodchádzajú z hodín s jednosmernými informáciami (ako moja dcéra, ktorá sa na hodinách informatiky naučila, že , citujem, "počítač bez Windows nefunguje...).

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Užitočné skripty a skriptíky na serveri

Určite máte v zásobe zaujímavé skriptíky, ktoré používate na školských serveroch.

Môžete pridať aj ten svoj, ktorý máte odskúšaný.

Upozornenie: pred použitím skriptov na serveri, si ich dôkladne odskúšajte.

Pravidelná aktualizácia antivírusu

Antivírus na školských počítačoch (klientoch) môžete pravidelne aktualizovať pomocou skriptu, upraveného konfiguračného súboru Apache a cronu.

Upozornenie: pred použitím skriptov na serveri, si ich dôkladne odskúšajte.

  • v adresári /usr/local/bin si vytvorte súbor # touch nod-db, do ktorého zapíšte:
#zmaze vsetky subory v adr. nod
rm -rf /var/www/nod/*
#stiahne, rozbali a stiahnuty subor zmaze
wget --user=MENO --password=HESLO http://nod.infovek.sk/nod2/aktualizacie2.zip && unzip aktualizacie2.zip && \ 
-d /var/www/nod && rm -rf aktualizacie2.zip

V skrypte použite miesto MENO a HESLO vaše autetnifikačné udaje na prístup k aktualizáciám na serveri http://nod.infovek.sk

  • vytvorenému súboru nod-db nastavte práva r-xr-xr-x, tak aby bol spustiteľný # chmod a+rx nod-db
  • v /etc/cron.weekly si vytvorte súbor # touch aktualizácia-nodu, do ktorého zapíšete:
#!/bin/sh
# návratové kódy:  1 - neexistuje skript nod-db
#                  2 - skript nod-db skončil neúspešne
test -x /usr/local/bin/nod-db || exit 1
/usr/local/bin/nod-db || exit 2
exit 0
  • vytvorenému súboru aktualizacia-nodu nastavte práva r-xr-xr-x, tak aby bol spustiteľný #chmod a+rx aktualizacia-nodu
  • ostáva ešte nastaviť Apacha tak, aby bolo možné aktualizovať antivirus na počítačoch, ktoré sú pripojené v školskej sieti
  • otvoríme a doplníme do /etc/apache/httpd.conf
#pristup k adresaru s aktualizáciami nod32
<Directory /var/www/nod>
   Require user nod
   Order Deny,Allow
   Deny from All
   Allow from 192.168.0.0/16
   AuthType Basic    AuthName "Bezpecna zona"    AuthUserFile /etc/apache/passwd.httpd    AuthGroupFile /etc/apache/group.httpd </Directory>
  • vytvorte súbor s heslami príkazom # htpasswd -cs /etc/apache/passwd.httpd nod a potom zadajte heslo uzivateľovi nod
  • na overenie prístupu môžete použiť aj súbor so skupinami užívateľov
  • vytvorte súbor /etc/apache/group.httpd, do ktorého zapíšte
skupina:nod
  • ak chcete overovať prístup na základe príslušnosti v skupine, doplňte direktívu Require group skupina

Apt-cacher - ako rýchlo aktualizovať balíčky na počítačoch v sieti

apt-cacher je program, ktorý uchováva inštalačné balíčky, ktoré ponúka klientským počítačom. Výhodne pre použitie v lokálnej sieti, že ak príde požiadavka na inštaláciu balíčka, ktorý je už vo vyrovnávacej pamäti apt-cacera, tak sa nesťahuje znova z Internetu. apt-cacher teda výrazne zrýchli aktualizáciu a inštaláciu rovnakých balíčkov na ostatných staniciach v sieti.

Nastavenie servera

sudo apt-get install apt-cacher
sudo apt-get install apache2
sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives 

Zastavenie a spustenie servera:

/etc/init.d/apt-cacher start 
/etc/init.d/apt-cacher stop 
 Include /etc/apt-cacher/apache.conf 
/usr/share/apt-cacher/

http://192.168.0.1/apt-cacher

/usr/share/apt-cacher/apt-cacher-report.pl

http://192.168.0.1/apt-cacher/report

AUTOSTART=1

Nastavenie klientov

deb http://192.168.0.1:3142/ftp.sk.debian.org/debian main contrib non-free
deb http://192.168.0.1:3142/security.debian.org/debian main contrib non-free

Primárny radič domény pomocou Samba

Súborový a tlačový server Samba môže plniť úlohu primárneho radiča domény (Primary domain controllerPDC). To nie je žiadna novinka, ktorá by mnohých prekvapila. No napriek tomu nie každý vie ako takýto PDC pomocou Samby nastaviť. A práve postup nastavenia PDC na systéme Debian v podmienkach školy sa v tomto článku pokúsim priblížiť.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Úvod

Úvod

V úvode sa nechystám zahltiť Vás informáciami o tom, čo všetko Samba dokáže. Jednoducho predstavím sieť, v ktorej budem jednotlivé nastavenia popisovať. Ako môžete vidieť, schéma siete je jednoduchá. Jedná sa o sieť s niekoľkými stanicami s rôznymi verziami operačného systému Windows, jednou stanicou s operačným systémom Linux a jeden server s našou Sambou. Aby sme sa v tom ľahko vyznali, mená staníc popisujú operačný systém, ktorý na nich beží.

Schéma sietePri písaní tohoto postupu predpokladám, že viete čo je to sieť, viete ako sa upravujú v Linuxe súbory a viete nastaviť sieť v systéme Windows. So Sambou nemusíte mať žiadne skúsenosti.

Nastavenie sieťovej vrstvy

Naša skúšobná sieť bude mať adresu 172.16.1.0/24 a bude pripojená do internetu prostredníctvom nejakého smerovača, ktorého nastavením sa tu nebudem zaoberať. Jednotlivé stroje v sieti budú pracovať s týmito nastaveniami siete:

Nastavenie IP
HostnameIP adresaMaskaBránaDNS
GW172.16.1.1
PDC172.16.1.2255.255.255.0172.16.1.1
W98172.16.1.11255.255.255.0172.16.1.1172.16.1.2
W2k172.16.1.12255.255.255.0172.16.1.1172.16.1.2
WXP172.16.1.13255.255.255.0172.16.1.1172.16.1.2
WVi172.16.1.14255.255.255.0172.16.1.1172.16.1.2
Lin172.16.1.15255.255.255.0172.16.1.1172.16.1.2

Ako ste si iste všimli, stroj s našou Sambou plní zároveň úlohu servera DNS. Je možné nastaviť DNS aj tak, aby poznal aj NetBIOS mená staníc, ale tomu sa tu venovať nebudem. Ani nastavením smerovača sa tu nebudem vôbec zdržiavať a v ďalšom texte ho budem považovať za správne nastavený a poskytujúci prístup na internet. Všetky adresy budem nastavovať staticky, ale nič Vám nebráni použiť nejaký DHCP server.  No a to je na úvod všetko, tak hurá do práce!

Inštalácia 

Nie, netreba sa báť, nezačnem teraz písať o sťahovaní zdrojových kódov a kompilácii Samby, hoci nikomu v tom nebránim. Samba je súčasťou úložiska Debianu, takže ju nainštalujeme prostredníctvom systému apt. Pred tým sa však pozrime, čo všetko nám Debian vo vzťahu k Sambe ponúka:

aptitude search ^samba
p samba           - súborový a tlačový server pre Unix, obdoba LanManager
v samba-client    -
p samba-common    - spoločné súbory pre Samba, používané serverom i klientom
p samba-dbg       - ladiace symboly Samba
p samba-doc       - dokumentácia Samba
p samba-doc-pdf   - PDF dokumentácia Samba
p samba-tools     - nástroje poskytované sadou Samba

Ale to nie je všetko:

aptitude search ^smb
p smb-nat         - nástroj na kontrolu Netbios Auditing Tool
p smb2www         - sieťový klient SMB/CIFS s webovým rozhraním
p smb4k           - prehliadač zdieľaní Samba (SMB) pre KDE
p smbc            - samba-commander - curses prehliadač siete samba
p smbclient       - ako LanManager, jednoduchý klient pre Unix
p smbfs           - príkazy mount a umount pre smbfs (pre jadrá >= ako 2.2.x
p smbget          - downloader pre protokol SMB/CIFS
p smbind          - na PHP založený nástroj pre správu DNS zón v BINDe
p smbldap-tools   - skripty pre správu Unixových a Samba účtov v LDAP
p smbnetfs        - User-space súborový systém pre SMB/NMB (Windows) sieťové servery a zdieľania

Tých balíkov, ako sami vidíte, je dosť, ale pre samotnú funkčnosť ich netreba všetky. Samotnú inštaláciu dosiahneme zadaním inštalácie balíka samba, ktorý prostredníctvom závislostí nainštaluje aj všetky ostatné, ktoré sú potrebné:

aptitude install samba

Tento príkaz nainštaluje aj nasledujúce balíky:

  • libcups2
  • libtalloc1
  • libwbclient0
  • samba-common
  • ucf

V závislosti od Vášho nastavenia môže ešte pridať aj odporúčané balíčky, ale ako vyplýva z názvu, sú len odporúčané, nie však potrebné. Počas inštalácie sa inštalátor spýta na meno pracovnej skupiny, tak zadajte podľa vlastnej potreby, ja budem používať pracovnú skupinu MYSKUPINA. Inštalátor sa spýta aj na to, či chcete používať nastavenie WINS serverov cez DHCP, keďže som však spomínal statické nastavenie, netrápi ma spolupráca s klientom DHCP a pokojne odpoviem nie. Ak inštalácia prebehne úspešne (a neviem prečo by nemala), je Samba pripravená na používanie.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Základné nastavenie

Základné nastavenie

Začneme stručným popisom syntaxe konfiguračného súboru a potom základným nastavením, v ktorom bude Samba vystupovať ako ďalší počítač v sieti M$, ktorý bude poskytovať zdieľané adresáre.

Konfiguračný súbor

Konfigurácia servera Samba je umiestnená v adresári /etc/samba, samotný konfiguračný súbor sa volá smb.conf a je bohato komentovaný, čo má však negatívny vplyv na jeho prehľadnosť. Avšak prísť o tie komentáre a vzorovú konfiguráciu by bola škoda, preto si hneď na začiatku urobme jeho zálohu, ku ktorej sa budeme môcť neskôr vrátiť:

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Syntax konfiguračného súboru je jednoduchá a konfiguračný súbor môže obsahovať:

  • prázdne riadky, ktoré sú ignorované,
  • komentáre, teda riadky začínajúce sa znakom mriežka (#) alebo bodkočiarka (;),
  • mená sekcií v lomených zátvorkách, napr. [global],
  • konfiguračné parametre, ktoré sú dvojicami – meno a hodnota, oddelené znakom rovná sa (=).

Konfiguračné parametre sú dvoch typov:

  • logické, ktoré nadobúdajú hodnotu 0 alebo 1 (true/false, yes/no)
  • textové, ktoré majú ako hodnotu nejaký text.

Základná konfigurácia

Začneme jednoduchou konfiguráciou, ktorá zaistí, že náš server so Sambou bude dostupný zo staníc s Windows prostredníctvom prehliadania okolitých počítačov v sieti. Predpokladám, že nastaviť pracovnú skupinu a IP adresu vo Windows viete, takže tým sa zdržiavať nebudem. Aby sme teda dostali zo Samby základné funkcie, vytvoríme si nový konfiguračný súbor s menom, podľa odporúčaní Samba Teamu, smb.conf.master s týmto obsahom (pripomínam, urobte si zálohu vzorového konfiguračného súboru, informácie v ňom iste oceníte):

[global]
## Browsing/Identification ##
  netbios name          = pdc
  workgroup             = MYSKUPINA
  server string         = %h server

## Debugging/Accounting ##
  log file              = /var/log/samba/log.%m
  max log size          = 1000
  syslog                = 0
  panic action          = /usr/share/samba/panic-action %d

## Authentication ##
  security              = user
  encrypt passwords     = yes
  passdb backend        = tdbsam

#======================= Share Definitions =======================
[homes]
  comment               = Domovský adresár
  browseable            = no
  read only             = yes
  create mask           = 0700
  directory mask        = 0700
  writeable             = yes
  valid users           = %S

No dobre, pripúšťam, že to nie je celkom minimum, dá sa ešte ubrať, ale nič netreba preháňať. A čo sme to vlastne nastavili? Všimnite si, že konfiguračný súbor je rozdelený na dve sekcie, [global] a [homes]. Sekcia global obsahuje nastavenia platné pre celý systém a sekcia homes je predvolené zdieľanie domovského adresára prihláseného používateľa.

V globálnej časti nastavujeme najprv meno počítača platné v sieti M$ (pdc), pracovnú skupinu (MYSKUPINA) a popis počítača (%h server). V popise počítača si všimnite %h, je to takzvaná premenná a bude nahradená platným hostname počítača. Použitie netbios name nie je povinné, ak ho vynecháte je použité práve hostname. Potom nasleduje časť venovaná logovacím záznamom, kde nastavujeme umiestnenie, veľkosť súborov záznamov (v kB) a akciu pri páde Samby. No a  nakoniec nastavujeme parametre prihlásenia. Security nastavená na user je východzou hodnotou, môže byť vynechaná, ale nech viem čo mám nastavené, tak dávam aj túto voľbu. Nasleduje určenie používania šifrovaných hesiel, čo je dnes už potrebné. Pokračuje nastavenie umiestnenia databázy používateľov, tu nezabudnite, že ak zmeníte tdbsam na iné úložisko, stratíte všetky nastavenia používateľov.

Keď máme súbor pripravený, najprv urobíme kontrolu, či sme sa niekde nepomýlili (preklepy), a to pomocou nástroja testparm, ktorý je súčasťou balíka samba. Aby sme nemuseli vypisovať celú cestu, zmeňte pracovný adresár na /etc/samba a potom spustite:

testparm smb.conf.master
Load smb config files from smb.conf.master
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

Všimnite si, že príkazu zadávame ako parameter meno nášho konfiguračného súboru, pretože sa líši od mena, ktoré má Samba prednastavené (smb.conf). Ak výpis vyzerá tak ako na príklade vyššie, znamená to, že je konfiguračný súbor v poriadku a môžeme použiť rovnaký nástroj na vygenerovanie konfiguračného súboru, ktorý bude mať odstránené všetky nepotrebné časti, čo má mať kladný vplyv na výkon Samby. Najprv však musíme stlačiť kláves enter (ako je napísané v poslednom riadku) a príkaz ešte vypíše všetky konfiguračné voľby zo zadného súboru. Práve túto vlastnosť využijeme na vygenerovanie skutočného konfiguračného súboru:

testparm -s smb.conf.master > smb.conf
Load smb config files from smb.conf.master
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Výpis vyzerá podobne, ale nástroj už nečaká na stlačenie enter a výpis konfigurácie presmeruje do zadaného súboru. Teraz ešte reštartovať Sambu:

invoke-rc.d samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.

Ak meníte len niektoré hodnoty, nie je potrebné server reštartovať, ale stačí mu nariadiť znovanačítanie konfigurácie:

invoke-rc.d samba reload
Reloading /etc/samba/smb.conf: smbd only.

A môžete skontrolovať, či je náš stroj s menom pdc zobrazený medzi okolitými počítačmi (nezabudnite, že je potrebná trpezlivosť, pretože zmeny v sieti M$ sa prejavia až po chvíli – aj 15 min).

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Správa používateľov

Správa používateľov

Trochu teórie

Ak teda všetko vyšlo tak ako malo, je naša stanica so Sambou viditeľná v okolitých počítačoch Windows, ale ak sa pokúsite k nej pristúpiť, aby ste videli zdieľané adresáre, zistíte, že systém po Vás chce zadať meno a heslo. Je to preto, že sme nastavili bezpečnostnú úroveň na user, čiže Samba bude autentifikovať každého pristupujúceho používateľa, a to na základe mena a hesla. Pre zaistenie autentifikácie si Samba uchováva vlastnú databázu používateľov, ktorá však (pri tomto stupni zabezpečenia) vyžaduje aj systémové účty. Inými slovami, potrebujete mať vytvorený účet aj v systéme aj v Sambe.

Databáza používateľov Samby môže byť uložená rôznymi spôsobmi a nastavuje sa pomocou voľby passdb backend v súbore smb.conf. Východzou hodnotou je smbpasswd, ale ak ste pozorne skúmali náš vzorový konfiguračný súbor, videli ste nastavenie tdbsam. Ukladanie do smbpasswd je spôsob ukladania informácií o účtoch so bežného textového súboru, naproti tomu ukladanie pomocou tdbsam ukladá informácie do TDB databázy (trivial database). Tento spôsob je vhodný pre siete s maximálne 250 používateľmi (odporúčanie Samba tímu – potom je vhodné ldapsam) a oproti štandardnému smbpasswd poskytuje dodatočné možnosti nastavenia (prispôsobenia) účtu.

Pridávanie používateľov

Takže nastal čas pripraviť používateľov. Ale kým sa bezhlavo pustíme do ich pridávania,je dobré si premyslieť niekoľko vecí. Najprv, či sa budeme k Sambe (do domény) pripájať aj počítače s Windows 95/98. Ak áno, je potrebné do globálnej časti smb.conf pridať riadok:

lanman auth = yes

Toto nastavenie nepoužívajte, ak nepotrebujete pristupovať zo spomínaných starých systémoch Windows, pretože má mnoho nevýhod a v dnešnej dobe je už určite prekonané. Ak ste už mali v Sambe pridaných nejakých používateľov pred nastavením LANMAN autentifikácie, bude potrebné ich heslá nastaviť znova, inak bude prístup z Win95/98 odopretý.

Ďalšou vecou, ktorú je dobré si premyslieť dopredu je rozdelenie používateľov do skupín. Správne zoskupenie používateľov určite znižuje náročnosť správy servera Samba a pre potreby tohoto návodu použijem rozdelenie na štyri skupiny:

  • admini – úplný prístup;
  • trucitelia – pokročilý prístup triednych učiteľov;
  • ucitelia – štandardný prístup učiteľov;
  • studenti – obmedzený prístup žiakov.

Nič Vám však nebráni rozdeliť používateľov aj podrobnejšie, či úplne inak. Takže najprv pristúpime k vytvoreniu týchto skupín. Jedná sa o štandardné používateľské skupiny v systéme, preto aj na nich vytvorenie použijeme štandardný systémový nástroj groupadd:

groupadd admini
groupadd trucitelia
groupadd ucitelia
groupadd studenti

Po vytvorení skupín možno pristúpiť k vytváraniu účtov a ich následnému priradeniu do skupín. Pre tento príklad vytvoríme po jednom účte, ktorý bude zaradený do príslušnej skupiny (ešte nič nepridávajte, najprv prečítajte celú kapitolu):

useradd -m -s /bin/false -c "Samba administrátor" -G admini administrator
useradd -m -s /bin/false -c "Samba triedny učiteľ" -G trucitelia trucitel
useradd -m -s /bin/false -c "Samba základný učiteľ" -G ucitelia ucitel
useradd -m -s /bin/false -c "Samba základný študent" -G studenti student

Čo tento siahodlhý príkaz vlastne robí? Samozrejme pridáva do systému používateľa, ktorého prihlasovacie meno je celkom na konci príkazu. Pomocou voľby -m nariaďujeme vytvoriť domovský adresár (predvolene v /home), voľbou -s nastavujeme neexistujúci prihlasovací shell (používatelia nepotrebujú systémový prístup, len účet), voľbou -c nastavujeme komentár a voľbou -G priraďujeme účet aj do príslušnej skupiny. Tento spôsob vytvorenia účtov ponechá heslo používateľa nenastavené a kvôli Sambe ho nastavovať netreba, iba ak by používateľ potreboval z nejakého iného dôvodu (email, ftp, či shell).

Po vytvorení systémových účtov možno začať pridávať účty do databázy Samby. K tomu si môžete vybrať z dvoch nástrojov, a to smbpasswd alebo pdbedit. S oboma nástrojmi dosiahnete rovnaký výsledok, pričom druhý z nich je prednostne určený pre správu databázy tdbsam (spomínal som pokročilé možnosti), ale pre pridanie účtov si vystačíme so smbpasswd (pretože pdbedit vypisuje dodatočné informácie):

smbpasswd -a administrator
smbpasswd -a trucitel
smbpasswd -a ucitel
smbpasswd -a student

Ak chcete používať pdbedit, jednoducho zmeňte meno príkazu, syntax je rovnaká. Na rozdiel od pridávania systémových používateľov, teraz už je potrebné aj heslo, ktoré si príkaz vždy dva krát (pre overenie) vyžiada. Po pridaní používateľov a nastavení hesiel môžme vyskúšať zo staníc s Windows prístup na zdieľaný počítač PDC. Teraz by ste mali mať možnosť vidieť jeden zdieľaný prostriedok – domovský adresár prihláseného používateľa.

Odstraňovanie používateľov

Pri správe používateľských účtov si s ich pridávaním nevystačíme, pretože ľudia prichádzajú i odchádzajú, potrebujeme účty aj odstraňovať. Odstraňovanie si môžeme hneď aj vyskúšať pretože pri inštalácii si Samba importovala všetky existujúce systémové účty, môžeme všetky nepotrebné odstrániť. začneme teda výpisom všetkých existujúcich účtov pomocou nástroja pdbedit.

pdbedit -L
backup:34:backup
nobody:65534:nobody
lp:7:lp
Debian-exim:101:
root:0:root
daemon:1:daemon
mail:8:mail
statd:102:
news:9:news
bin:2:bin
uucp:10:uucp
identd:103:
proxy:13:proxy
sys:3:sys
dnsmasq:105:dnsmasq,,,
sshd:104:
sync:4:sync
list:38:Mailing List Manager
games:5:games
irc:39:ircd
www-data:33:www-data
gnats:41:Gnats Bug-Reporting System (admin)
man:6:man
libuuid:100:

Ak sa poriadne pozriete na tieto účty, iste prídete na to, že odobrať možno všetky (okrem účtu root, ktorý neskôr bude treba). Existencia týchto účtov v Sambe nie je nijako nebezpečná, len zbytočná. Zo Samby tieto účty odstránime pomocou príkazu smbpasswd alebo pdbedit. V tomto prípade je stručnejší pdbedit, ale opäť je syntax rovnaká, parameter -x nasledovaný menom účtu:

pdbedit -x libuuid

Odstránenie účtu si môžete skontrolovať opätovným vypísaním všetkých účtov. Rovnako ako tieto účty, je možné odstrániť aj účty, ktoré sme už do Samby pridali my sami, lenže pribúda ešte jedna úloha. Tou úlohou je odstránenie účtu aj zo systémovej databázy. Pamätáte sa? Pre vytvorenie účtu v Sambe sme museli najprv vytvoriť účet v systéme. Samozrejme vyššie spomínané účty chceme v systéme ponechať, tak ich mazať nebudeme, ale ak odíde nejaký zamestnanec, budeme ho chcieť zo systému odstrániť úplne. K tomu použijeme príkaz userdel, ktorému pridáme ešte voľbu -r, aby odstránil aj domovský priečinok používateľa, ktorého odstraňujeme.

userdel -r meno_účtu

Niekedy je vhodné si pred samotným odstránením účtu poznačiť UID odstraňovaného používateľa a po odstránení účtu (a domovského adresára) si nechať vypísať všetky súbory, ktoré vlastní tento (vlastne už neexistujúci) používateľ. Možno už nebudú potrebné. Ale tomuto sa tu venovať nebudem.

Zmena hesla

Ďalšou často používanou úlohou správy používateľov je zmena hesla účtu. Poznáte to, používateľ sa začne sťažovať, že niekto v jeho mene robí zmeny (prezradené heslo) alebo prosto svoje heslo zabudol... Zmena (nastavenie) hesla je potrebná aj pre všetky importované účty (ak si ich ponecháte), pretože ich import prebehol bez hesla.

Zmena hesla existujúceho účtu je veľmi jednoduchá, tu nám už ostáva iba nástroj smbpasswd. Jeho použitie je jednoduché, stačí mu zadať meno používateľa, ktorému chceme heslo zmeniť:

smbpasswd student
New SMB password:
Retype new SMB password:

a rovnako ako pri vytváraní účtu, dva krát zadať nové heslo. Pre ďalšie podrobnosti Vás odkážem na manuálové stránky nástrojov smbpasswd a pdbedit.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Nastavenie zdieľania

Nastavenie zdieľania

Pred tým ako sa pustíme do nastavenia samotného primárneho radiča domény (PDC) si ešte pripravíme zdieľané adresáre, ktoré budeme v sieti zdieľať prostredníctvom našej Samby. Pri ich nastavovaní si zároveň ukážeme základné postupy ich nastavenia, ako aj spôsoby riadenia prístupu k nim. Celý tento postup bude zodpovedať nami zvolenej schéme prístupu (administrator, triedny učiteľ, učiteľ žiak).

Najprv si v systéme pripravíme adresáre, ktoré budeme zdieľať. Aby aj ich názvy vypovedali o prístupe nazvime ich takto:

  • adminsky – tu budú mať prístup len členovia skupiny admini;
  • verejny – tu budú mať prístup každý;
  • triedny – tu budú mať prístup členovia skupiny ucitelia a trucitelia, ale právo zápisu len trucetelia;
  • ucitelsky – tu budú mať prístup všetci, okrem členov skupiny studenti.

Nastavenie v systéme

Osvedčilo sa mi vytvoriť pre zdieľanie v sieti samostatnú partíciu (nie je podmienkou) alebo aspoň samostatný adresár, aby to bolo všetko pekne pohromade, takže napríklad vytvoríme adresár /home/sambadir, do ktorého budeme jednotlivé zdieľané adresáre ukladať a aby sa nám zatiaľ neplietli práva súborového systému, nastavíme ich na 777:

mkdir /home/sambadir
chmod 777 /home/sambadir

Vstúpme do tohoto adresára a vytvorme si naše adresáre:

cd /home/sambadir
mkdir adminisky
mkdir verejny
mkdir triedny
mkdir ucitelsky
chmod 777 *

Po dokončení nastavení a správnom rozdelení používateľov do skupín, je vhodné zmeniť tieto práva na niečo striktnejšie. Podstata spočíva v tom, že pri prístupe na disk používa Samba práva aktuálne prihláseného používateľa, povolené v súborovom systéme.

Nastavenie v Sambe

Na začiatku som spomenul, že konfiguračný súbor má nejaké sekcie. V mojom vzorovom základnom to boli sekcie [global] a [home]. V oboch prípadoch sa jedná o špeciálne (systémové) mená, ktorým Samba rozumie. Ak vytvoríme akúkoľvek sekciu s iným menom ako tieto (sú ešte aj ďalšie systémové), bude ich Samba považovať za názov zdieľaného prostriedku (adresára). Takže začneme tým, že vytvoríme sekcie pre každé zdieľanie a do každej sekcie zatiaľ dáme len dve konfiguračné voľby – jedna určí umiestnenie poskytovaného adresára (path) a druhá mu nastaví komentár:

[administrac]
  comment = Adresár pre adminov
  path = /home/sambadir/adminisky

[triedniucit]
  comment = Adresár triednych
  path = /home/sambadir/triedny

[ucitelia]
  comment = Adresár učiteľov
  path = /home/sambadir/ucitelsky

[ziaci]
  comment = Verejný adresár
  path = /home/sambadir/verejny

Všimnite si, že mená sekcií sa nemusia zhodovať s menom zdieľaného adresára. Ak však máte v sieti stroje s Windows 95/98/ME, zaistite aby neboli dlhšie ako 12 znakov, inak nebudú z týchto strojov dostupné. Pre istotu nepoužívam medzery, ale problém by v mene sekcie nemal byť ani medzery ani interpunkcia. Postupom, ktorý som popisoval v časti o konfiguračnom súbore vygenerujeme konfiguračný súbor a znova načítame konfiguráciu.

Nastavenie kódovania

Pravdepodobne bude vhodné nastaviť správne kódovanie textu, pretože narazíte na problémy so zobrazovaním (na strojoch s Windows 95/98). Aby sme sa tomuto vyhli nastavme tieto parametre v globálnej sekcii:

## Charset settings ##
  dos charset = CP852

Ak chcete ladiť ďalej, hľadajte v manuálovej stránke smb.conf aj parametre unix charset, či display charset.

Nastavenie prístupu

Povolenie zápisu

Pri tomto nastavení zistíte, že môžete všetky naše zdieľané priečinky prezerať, ale zatiaľ nikto nemá právo do nich zapisovať. začneme teda našim verejným priečinkom (ziaci), do definície ktorého pridáme parameter writeable nastavený na yes:

[ziaci]
   comment = Verejný adresár
   path = /home/sambadir/verejny
   writeable = yes

Obmedzenie prístupu

Týmto nastavením povolíme zápis pre všetkých používateľov, ktorí sa prihlásia k nášmu serveru. Ak by sme teda povolili writeable pre všetky zdieľania, mohol by každý zapisovať všade, a teda aj študenti. A toto iste nechceme a ako tomu zabrániť si ukážme práve na zdieľaní ucitelia. Do tohoto adresára chceme povoliť prístup všetkých, okrem študentov. Keďže všetci ostatní majú mať aj právo zápisu, povolíme zápis pomocou parametra writeable, ale zakážeme prístup všetkým členom skupiny studenti pomocou parametra invalid users:

[ucitelia]
  comment = Adresár učiteľov
  path = /home/sambadir/ucitelsky
  writeable = yes
  invalid users = +studenti

Voľba invalid users môže obsahovať mená jednotlivých používateľov alebo mená skupín, pričom v našom príklade vidíte, že menu skupiny predchádza znamienko +, ktoré udáva, že máme na mysli systémovú skupinu (ďalšie možnosti sú & a @).

Obmedzenie zápisu

Ďalšou úlohou, ktorá pred nami stojí, je nastavenie prístupu do adresára triednych učiteľov. Jeho zmyslom je uchovávať dokumentáciu, do ktorej by mali mať prístup všetci učitelia, ale zapisovať by mali len triedni učitelia. Samozrejme, ani do tohoto adresára nemajú žiadni prístup žiaci. Tu si pomôžeme voľbou read list:

[triedniucit]
   comment = Adresár triednych
   path = /home/sambadir/triedny
   writeable = yes
   invalid users = +studenti
   read list = @ucitelia 

Z tohoto nastavenia vidíme, že do adresára je možné zapisovať, ale členovia skupiny studenti majú prístup zakázaný (teda aj zápis) a členovia skupiny ucitelia majú zakázaný zápis. Ostatní, teda admini a triedni učitelia majú právo prístupu i zápisu. Rovnaký výsledok môžeme dosiahnuť aj použitím voľby write list, ktorá bude obsahovať zoznam skupín (používateľov), ktorých členovia majú právo zápisu.

[triedniucit]
  comment = Adresár triednych
  path = /home/sambadir/triedny
  invalid users = +studenti
  read list = @trucitelia, @admini

Ktorý spôsob použijete nechám na Vás, ja dávam prednosť tomu prvému.

Povolenie vyvoleným

Ostal nám posledný adresár nášho príkladu. Je to adresár administrátorov, kde budú mať prístup iba oni. V tomto prípade využijeme voľbu valid users. Táto voľba obsahuje zoznam skupín (používateľov), ktorých členovia môžu vstupovať do adresára. Takže môžeme povoliť zápis všeobecne, veď zapisovať môžu len tí, čo sa do adresára dostanú:

[administrac]
  comment = Adresár pre adminov
  path = /home/sambadir/adminisky
  writeable = yes
  valid users = +admini

Na záver už len malá poznámka: nezabudnite povoliť používateľom zápis do ich domovského adresára (sekcia homes), pretože v našom východzom príklade si nemôžu do neho niť uložiť, a tak je vlastne zbytočný. A keď už povoľujete zápis, určite nezabudnite použiť kvóty, pretože skôr alebo neskôr spoznáte, že objem uložených dát rastie do obludných rozmerov a dohováranie je nekonečný a málo účinný proces.

Tu považujem za vhodné spomenúť konfiguračnú voľbu admin users, ktorá určuje administrátorov servera a dáva sa buď do globálnej sekcie (pre celý server) alebo do sekcie príslušného zdieľania, v ktorom ich chceme nastaviť. Títo používatelia v prostredí Samby vystupujú ako root, súbory (aj adresáre) nimi vytvorené bude vlastniť root (so skupinou príslušného používateľa) a budú môcť manipulovať so súbormi a adresármi bez ohľadu na nastavené prístupové práva (vrátane pridávania počítačov do domény):

admin users = @admini

Práva súborového systému

Nespomenul som ešte jeden problém, a tým sú práva súborového systému novovytvorených súborov a adresárov. Nové súbory sú vytvorené s právami na čítanie pre všetkých, ale pre zápis len pre vlastníka súboru. Toto správanie môže byť niekedy želané, pretože súbor bude môcť zmeniť len jeho vlastník. Horšie je to s právami nových adresárov. Tie sú nastavené podobne, čiže každý môže zobrazovať obsah a prechádzať adresárom, ale zapisovať do neho môže len vlastník. Týmto spôsobom by nové adresáre vlastne neboli prístupné pre verejný zápis. Ak teda toto východzie nastavenie nevyhovuje,môžme to zmeniť pomocou volieb create mask (práva nových súborov) a directory mask (práva nových adresárov). Ich hodnota je klasický osmičkový mód práv, napríklad:

create mask = 0666
directory mask = 0777

Týmto nastavujeme súborom práva čítania a zápisu pre všetky kategórie používateľov (rw-rw-rw-) a adresárom práva čítania, zápisu a prechádzania tiež pre všetky kategórie používateľov (rwxrwxrwx). Tieto voľby môžeme dať do sekcie, v ktorej majú platiť, alebo ich môžeme dať do globálnej sekcie, a potom budú platiť pre celý server.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Nastavenie PDC

Nastavenie PDC

V tomto okamžiku máme nastavený súborový server tak, že rozlišuje rôzne úrovne prístupu používateľov a nastal čas, nastaviť ho aby vystupoval ako radič domény. Premena samostatného servera na radič domény nie je nijako zložitá.

Prvou vecou, ktorú musíme urobiť, je pridanie nastavení doménového radiča do globálnej časti konfiguračného súboru:

## Primary domain controller ##
   domain logons = yes

## Browsing ##
   domain master = yes
   local master = yes
   preferred master = yes
   os level = 34

To, že bude Samba vystupovať ako primárny radič domény (Primary Domain ControllerPDC) zaistí voľba domain logons. Zvyšné štyri voľby nastavujú prechádzanie siete a nebudem sa tu nimi zdržiavať.

Druhou vecou, ktorú musíme urobiť, je pripravenie nezapisovateľného, neverejného a neprehliadateľného zdieľania s názvom [netlogon]:

[netlogon]
   comment = Prihlasovacie služby
   path = /home/sambadir/logon
   public = no
   writeable = no
   browsable = no

Nezabudnite vytvoriť adresár /home/sambadir/logon s právami nastavenými tak, aby z neho mohla Samba čítať. Tento adresár slúži na umiestnenie prihlasovacích skriptov, súborov skupinovej politiky a ďalších nástrojov potrebných pre prihlasovacie skripty, (dávkové súbory MS-DOS, ktoré budú spustené pri každom prihlásení do domény, ale o nich neskôr). Aby sa tieto nastavenia aplikovali je potrebné Sambu reštartovať, len nezabudnite pred reštartom skontrolovať a vygenerovať nový konfiguračný súbor.

V tomto okamžiku môžeme nastaviť stroje s Windows 98/ME do našej domény MYSKUPINA. Aby sme to mohli urobiť aj s Windows 2k/XP/Vista, bude treba ešte niekoľko dodatočných krokov, takže nastavte Windows 98 na prihlasovanie do domény a tešte sa (samozrejme ešte nemáme prihlasovacie skripty).

Nastavenie pre Windows 2k a novšie

Keďže operačné systémy Windows 2k, XP a Vista majú riešené prihlasovanie do domény trochu inak a sú na prácu v doméne lepšie pripravené, je treba urobiť jeden krok naviac. Tým krokom je vytvorenie tzv. dôveryhodných účtov (trusted accounts) pre počítače. Dôveryhodný účet nie je účet používateľa, ale účet počítača, ktorý má rovnaké meno ako je NetBIOS meno počítača, pridávaného do domény, aby však boli odlíšené od bežných používateľských mien, majú na konci znak dolár ($). Pre tento účel je dobré vytvoriť samostatnú systémovú skupinu, aby boli účty počítačov pekne spolu, ktorú nazvime povedzme smbcomp:

groupadd --system smbcomp

Teraz môžme vytvoriť účet počítaču, postup bude podobný ako pri bežnom používateľovi, len na koniec mena pridáme dolár a príkazu smbpasswd pridáme parameter -m, aby vedel, že vytvárame počítačový účet. Celé si to ukážme na príklade počítača s menom W2k:

useradd -g smbcomp -d /dev/null -c "účet počítača" -s /bin/false W2k$
smbpasswd -a -m W2k$

Pre tento účet sme nastavili domovský priečinok na /dev/null, pretože počítač domovský priečinok nepotrebuje, rovnako ako shell (/bin/false) a okrem komentára (-c ...)sme mu nastavili aj primárnu skupinu na nami vytvorenú skupinu smbcomp. Všimnite si, že v pri vytváraní dôveryhodného účtu sa smbpasswd nepýta na heslo pre účet.

Chyba načítania profiluKeď sme toto všetko urobili pre všetky naše stroje s Windows 2k, nastal čas všetky ich prihlásiť do domény. Pri nastavovaní domény sa objaví prihlasovací dialóg pre zadanie používateľského mena a hesla, tam zadajte údaje účtu, ktorý je zahrnutý vo voľbe admin users (teda niektorý z členov skupiny admini). Po reštarte nezabudnite v prihlasovacom dialógu nastaviť prihlásenie do domény. Ak boli v počítači vytvorené lokálne účty používateľov, pokojne ich odstráňte, už nie sú potrebné. Po prihlásení používateľa do domény sa zatiaľ objaví informačné okno so správou o neexistencii adresára s profilom používateľa, je to preto, že si profily nechávam na neskôr, takže to nevzdávajte.

Cestovné profily

Cestovné profily sú vymoženosťou, ktorá má zvýšiť používateľské pohodlie. Ich podstatou je, že nastavenie používateľského účtu nie je uložené lokálne, ale na radiči domény, odkiaľ sa po prihlásení prekopíruje do počítača. Myšlienka je to krásna a viem si to predstaviť v heterogénnej sieti. Ale vôbec si to neviem predstaviť v sieti, kde sú nie len rôzne operačné systémy (rôzne verzie Windows) ale aj rôzne HW vybavenie (napr. veľkosť a rozlíšenie monitora). Pravdou je, že v Sambe je možné vytvoriť rôzne profily pre rôzne operačné systémy a dokonca i pre rôzne počítače, ale nikdy som to neskúšal. Uspokojil som sa vždy s vypnutím cestovných profilov, pomocou konfiguračnej voľby v globálnej sekcii:

logon path =

Táto voľba vypne použitie cestovných profilov, vynúti vytvorenie lokálneho profilu pri prvom prihlásení z počítača, a tento lokálny profil pri odhlásení vymazaný nebude, teda bude k dispozícii aj pri ďalšom prihlásení. Zdôrazňujem, že za rovná sa nemá byť nič, ani prázdne úvodzovky v hodnote voľby.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Prihlasovacie skripty a profily

Prihlasovacie skripty

Posledná vec, na ktorú sa spolu pozrieme sú prihlasovacie skripty. Prihlasovací skript je dávkový súbor MS-DOS (*.bat), ktorý je spustený pri každom prihlásení používateľa do domény. Ešte raz poznamenám, že súbor MS-DOS, takže aj jeho riadky musia byť ukončené znakmi CR/LF, nie len LF ako je to v Linuxe. Je niekoľko možností ako to dosiahnuť, len tak námatkovo ma napadá editor KWrite, prekódovanie pomocou recode, či napísanie vo Windows a následné prekopírovanie hotového súboru na správne miesto.

Najväčšia výhoda prihlasovacích skriptov spočíva v ich spúšťaní (vykonávaní) pri prihlasovaní používateľa, pretože to môžeme využiť napríklad na mapovanie sieťových diskov, či nastavenie času (áno, Samba môže plniť úlohu časového servera) v počítači a rôzne ďalšie úlohy. Prihlasovacie skripty sú umiestnené v zdieľaní netlogon, ktoré sme si už vytvorili. Nastavenie cesty ku skriptu určuje hodnoty konfiguračnej voľby logon script, ktorá je predvolene prázdna, teda nie je nastavený žiadny prihlasovací skript:

logon script =

Podobne ako profily, aj prihlasovacie skripty možno rozlíšiť podľa rôznych hodnôt. Ako príklad si ukážme nastavenie tak, že každý používateľ bude mať svoj vlastný prihlasovací skript. O to sa postará premenná Samby %U, ktorá bude nahradená menom práve prihlasujúceho sa používateľa:

logon script = %U.bat

Inou možnosťou, podľa mňa veľmi užitočnou, je použitie rôznych skriptov pre rôzne operačné systémy prihlasovanej stanice. Samba rozpoznáva Sambu (Samba), súborový systém Linux CIFS (CIFSFS), OS/2 (OS2), Windows for Workgroups (WfWg), Windows 9x/ME (Win95), Windows NT (WinNT), Windows 2000 (Win2K), Windows XP (WinXP), Windows XP 64-bit (WinXP64), Windows 2003 (Win2K3) a Windows Vista (Vista). Všetky ostatné systémy sú označené ako neznáme (UNKNOWN), takže premenná %a je nahradená príslušnou tučne zvýraznenou hodnotu:

logon script = %a.bat

Existujú aj ďalšie premenné, ktoré Samba používa, ich popis nájdete v manuáli. Ale iste budete so mnou súhlasiť, že by bolo dosť pracné, a teda náchylné na chyby, udržiavať prihlasovací skript pre každého používateľa (či stroj) zvlášť. Jednym zo spôsobov, ako si to zjednodušiť je vytvoriť jeden (prípadne niekoľko) prihlasovací skript a v adresári [netlogon] vytvoriť pre jednotlivých používateľov (stroje) symbolické odkazy na tento skript. Týmto spôsobom možno znížiť náročnosť správy skriptov a zároveň odlíšiť rôzne skupiny používateľov. Ja tu uvediem príklad použitia jedného spoločného prihlasovacieho skriptu, ktorý nazvime povedzme netlogon.bat, s týmto obsahom:

net time \\PDC /set /y
net use m: /home
net use n: \\PDC\ziaci

Tento skript najprv nastaví čas podľa času na doménovom radiči, potom namapuje domovský adresár ako disk M: a zdieľaný adresár ziaci ako disk N:. Toto riešenie má jednu nevýhodu a to, že na systémoch Windows 2k a novších bude domovský priečinok namapovaný dva krát, ale to jednoducho vyriešime, ak si nastavíme prihlasovacie skripty pomocou %a.bat a tento uložíme s menom Win95.bat, ďalší (bez mapovania /home) napr. Win2K.bat a symbolické odkazy na neho pre WinXP.bat, Vista.bat atď. Všetky v adresári [netlogon].

Mapovanie používateľských skupín

Poslednou vecou, o ktorej sa zmienim, je mapovanie používateľských skupín. Ak ste sa už prihlásili do domény z nejakej vzdialenej stanice, určite ste si všimli, že všetci používatelia majú rovnakú, obmedzenú, pracovnú skupinu (samozrejme na Windows 2k a novších). Aby sme rozlíšili práva používateľov, umožňuje Samba namapovať Unixové používateľské skupiny na skupiny vo Windows, použijeme na to príkaz net groupmap add pre pridanie mapovania alebo modify pre jeho zmenu. Kompletný výpis dostanete zadaním net groupmap.

Menším problémom pre neznalých môže byť fakt, že Samba od verzie 3.0.11 nevytvára mapovanie štandardných skupín, a tak si ho musíme vyrobiť sami. Ak viete čo je treba vytvoriť, tak nemáte problém, ak nie, pomôžeme si dokumentáciou. Konkrétne v dokumente Samba 3 v príkladoch je uvedený skript initGrps.sh, ktorý sa stará o vytvorenie potrebných skupín. My si tento skript upravíme podľa našich potrieb:

{code lang="bash" head="initGrps.sh"}#!/bin/bash

## initGrps.sh

## Mapovanie Doménových skupín Windows na UNIXové skupiny
net groupmap add rid=512 ntgroup="Domain Admins" unixgroup=admini type=d
net groupmap add rid=513 ntgroup="Domain Users" unixgroup=users type=d

## Pridanie vlastných Doménových skupín
net groupmap add ntgroup="TrUčitelia" unixgroup=trucitelia type=d
net groupmap add ntgroup="Učitelia" unixgroup=ucitelia type=d
net groupmap add ntgroup="Študenti" unixgroup=studenti type=d{/code}

Celá zmena spočíva v odstránení časti pre vytváranie systémových skupín (UNIX groups), ktoré už predsa vytvorené máme a v nahradení mien skupín podľa nášho nastavenia. V prvej časti skriptu je vytvorené mapovanie štandardných doménových skupín Windows, v druhej časti vytvárame naše tri vlastné doménové skupiny. Keďže Windows nerozoznáva skupiny podľa mena (nakoniec ani Linux) ale podľa čísla, priraďujeme štandardným skupinám aj RID, teda identifikátor, podľa ktorého Windows skupinu rozpozná.

V tomto okamžiku majú členovia skupiny admini automaticky práva administrátora. Ak chceme prideliť rôzne práva členom rôznych skupín, je to treba urobiť manuálne (alebo pomocou dávkového súboru) na každej stanici, najlepšie pri jej prihlasovaní do domény, aby sme ich nemuseli obchádzať viac krát. Postup pridania doménovej skupiny do štandardnej lokálnej skupiny je rovnaký ako pri pridávaní lokálnych skupín, len je potrebné zvoliť doménu, tak ako to vidno na obrázku.

Pridávanie doménových skupín

Ja napríklad priraďujem skupiny TrUčitelia a Učitelia do skupiny Power Users, a Študenti do skupiny Users (ale pre niektoré predmety potrebujú kvôli programom práva Power users). Tu sa žiadne medze tvorivosti nekladú a môžete si urobiť vlastnú bezpečnostnú politiku, to však nie je cieľom tohoto môjho pojednania. Každopádne uvedené rozdelenie túto tvorivosť umožňuje.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

Firewall a záver

Firewall

Možno nezaškodí spomenúť aj nastavenie firewallu. Pre svoju činnosť Samba potrebuje otvorené porty 137, 138 a 139. Ak sa pozriete do súboru /etc/services, nájdete tam:

netbios-ns 137/tcp # NETBIOS Name Service
netbios-ns 137/udp
netbios-dgm 138/tcp # NETBIOS Datagram Service
netbios-dgm 138/udp
netbios-ssn 139/tcp # NETBIOS session service
netbios-ssn 139/udp

Neviem celkom presne, prečo sú tieto porty vymenované aj pre TCP aj pre UDP. Možno práve tieto informácie vedú mnohých k ich otváraniu pre oba prenosové protokoly. Keď však podrobnejšie nazriete do dokumentácie SMB/CIFS, dočítate sa, že potrebuje pre svoju činnosť tieto porty:

  • 137/UDP – preklad mien (NETBIOS name service);
  • 138/UDP – prehliadanie počítačov v sieti (NETBIOS datagram service);
  • 139/TCP – samotné zdieľanie súborov a tlačiarní (NETBIOS session service). 

Píšem o portoch, ktoré sú nutné pre funkčnosť zdieľania v sieti so starými Windows 9x. Novšie verzie už nepotrebujú tieto porty a vystačia si s portom 445/TCP – priame zdieľanie súborov (SMB Direct), SMB/CIFS priamo cez TCP, bez NETBIOS. Tu len poznamenám, že toto riešenie potrebuje funkčné riešenie DNS a neposkytuje zoznam počítačov v sieti. Ak povoľujete tieto porty, nezabudnite, že bez použitia servera WINS (alebo zlom nastavení jeho použitia) sú okolité počítače zisťované broadcastmi, preto je potrebné povoliť aj broadcasty pre danú podsieť. Dajte aj pozor, že nie vždy musí byť port odosielateľa a prijímateľa rovnaký.

Záver

Tak a sme na konci. Mali by sme teraz mať funkčnú MS Windows doménu, vytvorenú pomocou súborového servera Samba. Máme používateľov rozdelených do skupín, ktoré majú rôzne prístupové práva k zdieľaným prostriedkom servera, ako aj rôzne práva na lokálnych staniciach.

Postup tu popísaný nie je jediné správne riešenie a nie je dokonca ani najlepšie riešenie. Cieľom bolo naviesť čitateľa na vytvorenie funkčného riešenia, na ktorom možno naznačiť princípy nastavenia rôznych úrovní prístupu a nastavovania domény. Určite by sa dalo nastavenie vylepšiť, napríklad použitím rôznych skriptov, napríklad na automatické pridávanie strojov do domény a podobne. Ale to ponechám na samostatné štúdium. Rovnako som sa nezmienil o nastavovaní prehliadania sete (browsing), o použití servera WINS, či o nastavení DNS tak, aby na IP adresy prekladal aj NetBIOSové mená počítačov. Úplne som vynechal prácu s tlačiarňami, hoci i to je silná stránka Śamby. Ale i tak dúfam, že tento návod niekomu pomôže.

Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, zo súhlasom autora (mňa) a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.

FTP (File transfer protocol) - Práca s ftp

Ftp je protokol, pomocou ktorého môžeme prenášať po sieti rôzné súbory. Pritom nezáleží, či je prenášaný súbor textový alebo binárny. Podmienkou je aby ste mali na ftp server kam sa prípájate prístup. Na server možno aj ukládať súbory (upload), aj ich z neho nahrávať (download), len treba mať na to privilégiá. Ak sa prihlásite cez ftp (svojím menom ak na ňom existuje), máte nad súbormi a adresármi tie isté právomoci, ako keby ste sa prihlásili priamo z konzoly. Úživateľom môžeme prístup na server odobrať a niektorý sa isto na server nemôžu príhlasiť ako napríklad root. Je možné sa príhalsiť aj ako užívateľ anonymous, guest alebo ftp. Týto uživatelia nepotrebujú heslo. Môžu sa pohybovať iba po obmedzenom priestore, väčšinou nemôžu nič mazať a prepísovať. Zato si však môže skopírovať súbory ktoré tam pripravil správca.

 

Na prípojenie z nšho počítača na FTP sa používa príkaz ftp. Stačí napísať ftp menoservera.sk (resp. IP) a hneď sa spojíme so serverom. Uvítacie obrázovky sú rozné od druhu ftp servera a od nastavenia spravcom. Mne zobrazílo nasledovnú:

 

petulko@server:~$ ftp localhost
Connected to localhost.
220 ProFTPD 1.3.1 Server ready.
Name (localhost:petulko):      

 

Ak sa chceme príhlasiť pod tým istým menom, pod akým sme prihlásení stačí stláčiť ENTER. Ak chceme iný tak ho napíšeme a stláčime ENTER. Ak je konto chránene heslom ftp server si ho vypýta. Po príhlasení sa objavia ďalšie správy:


331 Password required for petulko
Password:
230 User petulko logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>_

 

Teraz náš ftp server čaká na ďalšie príkazy. Čo teraz? môžeme použiť klasické príkazy známe z BASHu.

ls - výpis súborov aktuálneho priečinku (ls priečinok - výpis súborov zadaného pričinku)

cd priečinok - prejde do priečinka priečinok, cdup - o adresár vyšie

pwd - v ktorom priečinku sa nachádzam

mkdir- vytvorí priečinok

rmdir - zmáže priečinok

delete - odstráni súbor

size - nám vypíše veľkosť súboru

 

Na lokálnom počítači sa po adresároch môžeme pohybovať príkazom lcd. Niečo ako pwd pre lokálny adresár neexistuje, môžeme však s výhodou použiť príkaz lcd. Rovnako aj vypis lokálneho adresára sa dá vyvolať len okľukou použitím !ls. Samotný ! ako príkaz spustí shell, ! a príkaz spôsobí vykonanie daného príkazu operačného systému.

Ftp servery sú nastavené tak, že ak dlhší čas po prihlásení nevykonávame nejaku činnosť odhlásia nás.

Ak spustíme príkaz ftp a nezadám meno servera dostaneme sa do príkazového režimu. Spojenie mžeme nadviazať open menoservera.sk.

 

FTP server ma slúžiť hlavné na prenašanie súborov. Poďme teda k jadru vecí a vysvetlíme si najskôr teóriu. FTP pozná viacej druhov prenosov, najbežnejšie sú ASCII a binárne. Uistite sa, že vždy používate binárny prenos, aj keď ste si istí, že sa prenášajú len textové súbory. Taký prenos sa zapína príkazom bin. Najlepšie je, keď tento príkaz zadáte hneď po príhalsení. Príkazom type si overíme aký typ prenosu máme zapnutý.

 

Ak chceme preniesť súbor zo serveru na lokálný disk zadame príkaz get súbor. Na našom lokálnom disku v aktuálnom priečinku sa vytvára súbor ktorý sme si zvolili. Ak chcete aby sa po každom prijatom kilobajte vypísal znak # zadajte príkaz hash a uistite sa, že dostanete hlásenie, printing je on. Ak ho nedostanete zadajte príkaz ešte raz (tento a zopár ďalších príkazov fungujú ako prepínače - po každom zadaní zmenia nastavenie na opačné - z on na off a opačne). Ak chcete aby vás počítač úpozornil po prenesení súboru pipnutím zadajte príkaz beep. Ak potrebujete aby sa prenašaný ssúbor zapísal na localný disk pod iným menom použíte príkaz get menosuborunaservere novemenosuboru.

V príkaze get sa nedajú použiť znaky ako ? a *. Tie môžeme použiť v príkaze mget, ktorý funguje rovnako ako obyčajný get. V mget môžeme súšasne sťahovať viac súborov ktoré napišeme za sebou a odelime ich medzerou, alebo namiesto dlheho nazvu libwine-dev_0.0.98545457.deb napisať mget libwine*. Ak nastavíme promt na on po každom prenesonom súbore sa nás spyta, že či ma preniesť ďalší.

Ak sa nám z nejakého dôvodu preruší spojenie a máme veľkú časť súboru stiahnútu môžeme skúsiť reget menosuboru. Ak to server podporúje mal by sa súbor doťahať.

 

Ako dostať súbor na server?

Služia na to príkazy put a mput. platí tu všetko ako pri get a mget.

 

Príkazom append prípojíme localný súbor na koniec súboru na servery. Syntax je zhodna so syntaxou get alebo put.

 

Prenos môžeme prerušiť kombináciou <CTRL> + <C>. Ak súbor príjmame prenos sa zastaví hneď, ak súbor posieláme musíme počkať kým druhá strana spracuje príkaz ABOR.

 

Odpojíme sa buď zadaním bye alebo exit a da sa použiť aj kombinácia <CTRL> + <D>.

 

 

 

Inštalačná príručka Ubuntu pre správcov siete

Tu môžete nájsť informácie o tom, ako nainštalovať Ubuntu z tzv. Alternate CD. Alternate CD ponúka oproti štandardnému Desktop CD pokročilé možnosti inštalácie Ubuntu.

Inštrukcie o tom, ako používať Desktop CD, sa nachádzajú na stránke Inštalácia operačného systému Ubuntu.

Vzhľadom na to že preklad tohto návodu potrvá určitý čas, počas ktorého sa určite čoraz viac začnú používať počítače so 64 bitovou architektúrou, zameriame sa práve na preklad príručky pre túto architektúru. V prípade, že budete inštalovať Ubuntu pre starší typ architektúry i386, návod môže byť v niečom nepresný.

 

Copyright © 2004, 2005, 2006, 2007, 2008 the Debian Installer team

Copyright © 2004, 2005, 2006, 2007, 2008, 2009 Canonical Ltd.

 

Podmienky používania

 

Abstrakt

Tento dokument obsahuje inštrukcie na inštaláciu systému Ubuntu 9.04 (s kódovým označením Jaunty Jackalope) pre architektúru IA-64 (ia64). Obsahuje rozsiahlejšie informácie o tom, ako dostať maximum z vašej novej inštalácie Ubuntu.

Inštalácia systému Ubuntu 9.04 “Jaunty Jackalope” pre ia64

Teší nás, že ste sa rozhodli skúsiť Ubuntu, a mame istotu, že zistíte, že distribúcia Ubuntu GNU / Linux je jedinečná. Ubuntu spája vysoko kvalitný slobodný softvér z celého sveta do jedného koherentného celku. Veríme, že zistíte, že výsledok je naozaj viac ako len pozliepanie častí.

Chápeme, že mnohí z vás chcú inštalovať Debian bez toho, aby čítali túto príručku. Inštalátor Ubuntu je navrhnutý tak, aby to bolo možné. Ak nemáte čas čítať celú inštalačnú príručku, odporúčame, aby ste si prečítali časť Inštalácia - ako na to, ktorá vás prevedie základnou inštaláciou. Odkaz na tento manuál môžete použiť ak sa chcete dozvedieť o pokročilých možnostiach alebo keď sa niečo nedarí . Časť Inštalácia - ako na to, môžete nájsť v prílohe A, Installation Howto.

Dúfame, že si nájdete čas prečítať väčšinu z tejto príručky, a že vám poskytne mnoho informácií, ktoré vám zjednodušia proces inštalácie.

Vitajte v Ubuntu

Táto kapitola obsahuje informácie o tom, čo je to projekt Ubuntu a čo je to projekt Debian, na ktorom je projekt Ubuntu založený. Ak už poznáte históriu projektu Ubuntu, pokojne môžete preskočiť túto kapitolu.

Čo je Ubuntu?

Ubuntu je plnohodnotný desktopový operačný systém s jadrom Linux, ktorý je voľne dostupný s podporou od komunity aj s odbornou platenou podporou. Komunita Ubuntu je postavená na myšlienkach zhrnutých v Manifeste Ubuntu: softvér má byť dostupný zadarmo, softvérové nástroje majú byť použiteľné ľuďmi v ich rodnom jazyku a majú brať ohľad aj na ľudí s postihnutím, ľudia by mali mať právo prispôsobovať a meniť svoj softvér podľa svojej potreby.

  • Ubuntu bude vždy zadarmo a nebude ani žiaden poplatok za tzv. "podnikovú verziu". Aj to najlepšie z našej práce dávame k dispozícii všetkým ľuďom za rovnakých slobodných podmienok.
  • Ubuntu obsahuje veľmi kvalitnú a ústretovú infraštruktúru na vytváranie prekladov, ktorú komunita slobodného softvéru dáva k dobru, aby tak urobila Ubuntu použiteľné pre čo najviac ľudí.
  • Ubuntu sa dodáva v pravidelných cykloch. Nová verzia je dostupná každých šesť mesiacov. Môžete používať súčasnú alebo vývojovú verziu. Každá verzia bude podporovaná po dobu 18 mesiacov.
  • Ubuntu je úplne založené na princípoch vývoja otvoreného softvéru, nabádame ľudí aby požívali otvorený softvér, aby ho vylepšovali a šírili ďalej.

Ubuntu je sytém vhodný rovnako pre osobné počítače ako aj pre servery. Aktuálna verzia Ubuntu podporuje architektúry Intel x86 (PC kompatibilné s IBM), AMD64 (Hammer) a PowerPC (Apple iBook a Powerbook, G4 a G5). Ubuntu obsahuje viac ako 1000 kusov softvéru, vrátane linuxového jadra verzie 2.6 a grafického prostredia GNOME 2.26 a zahŕňa všetky štandardné desktopové aplikácie vrátane aplikácií na spracovanie textu a tabuliek, aplikácií prácu v sieti Internet, softvér na vytvorenie webového servera, spracovanie emailov, programovacie jazyky a nástroje a samozrejme aj niekoľko hier.

Sponzorstvo spoločnosti Canonical

Projekt Ubuntu sponzoruje spoločnosť Canonical Ltd. Canonical nepredáva licencie na používanie Ubuntu, a nebude to v žiadnom prípade robiť ani v budúcnosti. Obchodným artiklom spoločnosti Canonical je poskytovanie technickej podpory a profesionálnych služieb súvisiacich s Ubuntu. Odporúčame tiež ďalšie spoločnosti, ktoré ponúkajú pre Ubuntu podporu. Zoznam týchto spoločností nájdete na tomto webe.

Čo je Debian?

Debian je nezisková organizácia, ktorá sa venuje vývoju slobodného softvéru a šíreniu myšlienok slobodného softvéru. Debian vznikol v roku 1993, keď Ian Murdock adresoval otvorenú výzvu softvérovým vývojárom, aby spolu vytvorili ucelenú a koherentnú softvérovú distribúciu založenú na relatívne novom linuxovom jadre. Relatívne malá skupina zasvätených nadšencov, pôvodne financovaná zo zdrojov organizácie Free Software Foundation a ovplyvnená filozofiou GNU, sa v priebehu rokov rozrástla do organizácie pozostávajúcej z asi 1000 vývojárov Debianu.

Vývojári Debianu sú zapojený do rôznych aktivít vrátane administrácie Webu a FTP , grafickému dizajnu, analýze legálnosti a softvérovým licenciám, písaniu dokumentácie a samozrejme správe softvérových balíkov.

V záujme rozširovania našej filozofie a v snahe prilákať vývojárov, ktorí veria tomu, čo Debian predstavuje, v rámci projektu Debian sme publikovali množstvo dokumentov, ktoré vysvetľujú naše hodnoty a sú zároveň aj príručkou pre tých, ktorý chcú vedieť, čo to znamená byť vývojár Debianu:

  • Debian Social Contract (spoločenská zmluva Debianu) definuje záväzky prispievateľov Debianu pre komunitu slobodného softvéru. Ktokoľvek, kto súhlasí s dodržiavaním spoločenskej zmluvy sa môže stať prispievateľ. Každý prispievateľ môže vytvoriť nový softvér a začleniť ho do Debianu - za predpokladu, že softvér spĺňa naše kritériá slobodnosti softvéru a balíček spĺňa naše štandardy kvality.
  • Debian Free Software Guidelines (pravidlá pre slobodný softvér Debianu) je jasný a výstižný súhrn kritérií, ktoré Debian kladie na slobodný softvér. Tento dokument je veľmi vplyvný dokument, má vo svete slobodného softvéru veľký vplyv a je základom pre samotnú definíciu slobodného softvéru - The Open Source Definition.
  • Debian Policy Manual (manuál politiky Debianu) obsahuje rozsiahle špecifikácie štandardov kvality projektu Debian. 

Vývojári Debianu sú tiež zainteresovaní v mnohých ďalších projektoch; niektoré priamo súvisia s Debianom, iné sa dotýkajú celej Linuxovej komunity. Uvedieme niekoľko príkladov:

  • Linux Standard Base (LSB) - štandardný základ Linuxu je projekt zameraný na štandardizáciu základného systému GNU/Linux, ktorý umožňuje vývojárom softvéru a hardvéru tretích strán jednoducho navrhovať programy a ovládače hardvéru pre Linux ako taký, miesto toho aby ich museli navrhovať pre každú distribúciu GNU/Linux zvlášť.

  • Filesystem Hierarchy Standard (FHS) - štandardná hierarchia súborového systému sa snaží štandardizovať rozmiestnenie súborov v súborovom systéme Linuxu. FHS umožňuje vývojárom sústrediť sa na tvorbu programu, bez toho aby sa zapodievali tým, kam sa jednotlivé súbory majú v jednotlivých distribúciách GNU/Linux nakopírovať.

  • Debian Jr. je vnútorný projekt, ktorého cieľom je zistiť či Debian má čo ponúknuť naším najmladším používateľom.

Viac informácií o Debiane, nájdete na stránke Debian FAQ.

Ubuntu a Debian

Ubuntu a Debian sú rozdielne no paralelné a úzko previazané systémy. Projekt Ubuntu sa snaží projekt Debian doplniť v nasledujúcich oblastiach:

Výber balíkov

Ubuntu neposkytuje bezpečnostné aktualizácie a profesionálnu podporu pre všetky balíky dostupné vo svete otvoreného softvéru, ale vyberá si sadu balíkov, ktoré tvoria ucelený a komplexný desktopový operačný systém a poskytuje podporu iba pre túto sadu balíkov.

Užívatelia, ktorý chcú mať prístup ku všetkým balíkom, Ubuntu poskytuje súčasť "universe" (sada balíkov), z ktorej si používatelia systému Ubuntu môžu nainštalovať poslednú verziu balíka, ktorá nie je obsiahnutá podporovanej sade. Väčšina balíkov obsiahnutých v Ubuntu universe, sa nachádza aj v systéme Debian, aj keď existujú aj iné zdroje, z ktorých sa do sady universe balíky tiež pridávajú. Viac informácií o štruktúre webovej distribúcie Ubuntu sa nachádza na stránke o súčastiach Ubuntu.

Vydania

Ubuntu vytvára nové vydanie každých šesť mesiacov a toto vydanie podporuje 18 mesiacov vydávaním každodenných bezpečnostných opráv a záplat na kritické chyby.

Pri príprave nového vydania Ubuntu, “zmrazíme aktuálny stav archívu vývojovej verzie Debianu (sid). Vychádzame z verzie sid a postupne pridávame vlastné vylepšenia, pričom sa zameriavame na zostavenie vydania, ktoré je nezávislé od prípravy vydania Debianu. Tento spôsob je nevyhnutný, pretože kritériá vydania sú veľmi odlišné oproti Debianu.

Napríklad aj je balík vylúčený z Debian testing, pretože sa nedal zostaviť na všetkých jedenástich podporovaných architektúrach, ktoré sú podporované verziou Debian sarge, pre Ubuntu takýto balík môže byť postačujúci ak funguje na troch architektúrach, ktoré Ubuntu podporuje. Balík sa tiež do verzie Debian testing nemusí dostať aj kvôli tomu, že spôsobuje kritickú chybu vo vydaní, táto chyba sa však vo vydaní Ubuntu nemusí prejaviť.

Ako komunita sme si zvolili určité miesta, v ktorých sa odlišujeme od Debianu takým spôsobom, aby sme minimalizovali rozdiely medzi Debianom a Ubuntu. Napríklad zvyčajne do vydania zvolíme najnovšiu verziu Gnome miesto staršej verzie, ktorú obsahuje Debian a snažíme sa o to isté aj s ostatnými kľúčovými súčasťami architektúry, ako sú napríklad X alebo GCC. Tieto rozhodnutia sú zapísané v zozname kľúčových cieľov pre dané vydanie a cieľom našej komunity je zabezpečiť, aby všetky ciele boli naplnené pred uvoľnením vydania.

Komunita vývojárov

Mnoho vývojárov Ubuntu patrí tiež medzi uznávaných členov komunity Debianu. Títo vývojári aktívne prispievajú do Debianu vrámci práce na Ubuntu priamo v Debiane.

Keď vývojári Ubuntu opravia chyby ktoré sa nachádzajú aj v balíkoch Debianu -- vďaka tomu, že sú projekty prepojené, sa to stáva často -- zašlú opravy chýb vývojárom Debianu zodpovedným za daný balíček v Debiane a vytvoria URL adresu systéme na hlásenie chýb Debianu. Dlhodobým cieľom tejto práce je aby záplaty vytvorené tímom, ktorý sa venuje iba Ubuntu, sa ihneď dostali aj do balíkov Debianu, kde ich správcovia Debianu radi spracujú.

Členovia tímu Ubuntu môžu zmeniť akýkoľvek balík, aj ak je spravovaný niekým iným. Správcovia Ubuntu privítajú ak oprava vyrieši problém, tým zároveň podnecujeme diskusiu medzi ľuďmi, ktorí sa zaujímajú o daný balík aby sme zlepšili spoluprácu a odstránili hádky medzi správcami.

Sloboda a filozofia

Debian a Ubuntu sú založené na rovnakej filozofii slobodného softvéru. Obe skupiny sa zaviazali, že budú vytvárať operačný systém slobodného softvéru.

Rozdiel medzi skupinami spočíva v rozdielnom postoji k súčastiam, ktoré nie sú aplikáciami (ako napríklad dokumentácia, písma (fonty), firmware zariadení) a neslobodnému softvéru. Debian distribuuje malé množstvo neslobodného softvéru zo svoji internetových serverov. Ubuntu distribuuje zo svojich internetových serverov aj neslobodné ovládače ako súčasť "restricted" ale nedistribuuje žiadne ďalšie softvérové aplikácie, ktoré nespĺňajú licenčné podmienky, ktoré si Ubuntu stanovilo.

Ubuntu a ostatné odvodeniny Debianu

Existuje mnoho ďalších distribúcií, ktoré používajú rovnakú základnú infraštruktúru (balíky a formát archívov). Ubuntu sa od nich odlišuje v mnohých smeroch.

Po prvé, Ubuntu odosiela záplaty priamo do Debianu hneď ako sú chyby opravované pri vytváraní nového vydania Ubuntu, nie až po tom ako je vydanie hotové. Ostatné distribúcie založené na Debiane, zverejnia zdrojový kód a záplaty ako "veľký tresk" pri vydaní novej verzie, preto je ich veľmi obtiažne spätne začleniť do upstreamu HEAD.

Po druhé, Ubuntu disponuje množstvom prispievateľov, ktorí sú zároveň vývojármi Debianu. Mnoho ďalších distribúcií založených na Debiane nemá ani jedného prispievateľa, ktorý je zároveň aktívnym vývojárom Debianu.

Po tretie, Ubuntu vytvára častejšie a čerstvejšie vydania. Naša politika vydávania novej verzie každých šesť mesiacov je jedinečná vo svete Linuxových distribúcií. Ubuntu vám chce poskytnúť stabilný a bezpečný obraz toho najlepšieho zo sveta otvoreného softvéru.

Čo je GNU/Linux

GNU/Linux je operačný systém: séria programov, ktoré interagujú z počítačom a spúšťajú iné programy.

Operačný systém sa skladá z rôznych základných programov, ktoré potrebuje váš počítač na to, aby mohol komunikovať a prijímať pokyny od používateľov, čítať a zapisovať dáta na diskoch, páskach, tlačiť na tlačiarniach, kontrolovať využitie pamäte a spúšťať ďalšie programy. Najdôležitejšou časťou operačného systému je jadro. V systéme GNU/Linux je jadrom Linux. Zvyšok systému sa skladá z ďalších programov, z ktorých väčšina bola vytvorená v rámci projektu GNU. Vzhľadom k tomu, že samotné linuxové jadro netvorí funkčný operačný systém, je vhodnejšie používať termín "GNU/Linux", miesto skráteného termínu "Linux", ktorý sa na označenie operačného systému často používa.   

Linux je vymodelovaný podľa operačného systému Unix. Od počiatku vývoja bol Linux navrhovaný ako viac-úlohový a viac-používateľský operačný systém. Tieto fakty robia Linux odlišným od ostatných dobre známych operačných systémov. Linux je však ešte viac odlišný ako si viete predstaviť. V porovnaní s ostatnými operačnými systémami Linux nikto nevlastní. Väčšina jeho vývoja pochádza od neplatených dobrovoľníkov.

Vývoj toho, čomu dnes hovoríme GNU/Linux sa začal v roku 1984, keď organizácia Free Software Foundation začala vývoj slobodného systému podobného Unixu s názvom GNU.

Projekt GNU vytvoril kompletnú sadu slobodných softvérových nástrojov určených pre operačný systém Unix™ a operačné systémy jemu podobné ako napríklad Linux. Tieto nástroje umožňovali požívateľom vykonávať rôzne úlohy od bežných (ako napríklad kopírovanie či presúvanie súborov v systéme) po pokročilé (ako napríklad zápis a kompilovanie vlastných programov či sofistikovanú úpravu dokumentov v rôznych formátoch).

Aj keď k vývoju Linuxu prispelo mnoho skupín a jednotlivcov, najväčším prispievateľom je stále organizácia Free Software Foundation, ktorá nielen že vytvorila väčšinu nástrojov používaných v Linuxe, ale vytvorila aj filozofiu komunity, ktorá umožnila vzniknutiu Linuxu.

Jadro - Linux kernel sa prvý krát objavilo v roku 1991, keď fínsky študent informatiky Linus Torvalds veľmi skorú verziu tohto jadra, ktorá mala slúžiť ako náhrada jadra pre systém Minix, odoslal do diskusnej skupiny Usenet s adresou comp.os.minix. Viac informácii sa dozviete na medzinárodnej stránke o histórii Linuxu Linux History Page.

Linus Torvalds pokračoval v koordinovaní niekoľko stoviek vývojárov za pomoci niekoľkých dôveryhodných. Informácie o mailovej diskusnej skupine linux-kernel sa nachádzajú na stránke linux-kernel mailing list FAQ.

Používatelia Linuxu majú nesmiernu slobodu vo výbere svojho softvéru. Napríklad si používatelia Linuxu môžu vybrať z tucta rôznych príkazových riadkov a niekoľkých grafických prostredí. Tento výber je často mätúci pre používateľov iných operačných systémov, pretože nie sú zvyknutí uvažovať o príkazovom riadku alebo grafickom prostredí ako o niečom, čo môžu zmeniť.

Linux sa tiež oproti väčšine ostatných operačných systémov vyznačuje oveľa menšou pravdepodobnosťou zrútenia, schopnosťou spustiť viac aplikácii súčasne a väčšou bezpečnosťou. Kvôli týmto výhodám je Linux najrýchlejšie rozvíjajúcim sa systémom na trhu serverov. V súčasnosti sa však Linux stáva čoraz viac populárny aj pre domácich používateľov a podnikateľov.

Získanie Ubuntu

Informácie o tom ako Ubuntu stiahnuť z Internetu nájdete na webovej stránke Stáhnout (v českom jazyku) alebo download (v anglickom jazyku). Stránka list of Ubuntu mirrors obsahuje kompletný zoznam oficiálnych zrkadiel Ubuntu, takže môžete ľahko nájsť najbližšie, z ktorého bude sťahovanie najrýchlejšie. V čase prekladu tohto článku boli pre lokalitu Slovensko dostupné tri zrkadlá.

Slovakia 1 Gbps 3 zrkadlá
Antik computers & communications s.r.o. http ftp rsync 1 Gbps
Energotel, a.s. http ftp rsync 100 Mbps
Antik Computer & Communications http ftp rsync 100 Mbps

Ubuntu sa dá po nainštalovaní veľmi jednoducho aktualizovať. Inštalačný program nastaví systém tak, aby ste mohli aktualizácie po dokončení inštalácie stiahnuť a nainštalovať, ak je to potrebné.

Ziskanie najnovšej originálnej verzie tejto príručky

Originálna anglická verzia tejto príručky prechádza revíziami. Aktuálnu verziu tejto inštalačnej príručky nájdete na stránke official Install Manual pages.

Členenie inštalačnej príručky Ubuntu

Tento dokument má slúžiť najmä pre neskúsených používateľov Ubuntu (ktorí ho ešte neinštalovali). Príručku sme sa snažili napísať tak, aby k jej pochopeniu bolo potrebných čo najmenej vedomostí a skúseností. Predpokladáme však, že máte aspoň základnú predstavu o tom ako fungujú zariadenia vo vašom počítači.

Skúsení používatelia však v tomto dokumente môžu nájsť zaujímavé informácie, napríklad ohľadne minimálnych požiadaviek na systém, detaily o podpore hardvéru a podobne. Skúseným používateľom odporúčame niektoré časti tejto príručky preskočiť.

Snažili sme sa aby bola táto príručka napísaná chronologicky tak, aby vás krok za krokom previedla procesom inštalácie od začiatku po koniec. Toto sú kroky pri inštalácii Ubuntu, ktorým zároveň zodpovedajú jednotlivé kapitoly tejto príručky:

  1. Určenie toho, či hardvér spĺňa požiadavky pre nainštalovanie systému Kapitola 2, Systémové požiadavky Ubuntu.

  2. Záloha systému, vykonanie potrebného naplánovania a nastavenia hardvéru pred inštaláciou Ubuntu je popísaná v Chapter 3, Before Installing Ubuntu. Ak chcete mať na počítači viac systémov súčasne a pri štarte počítača sa medzi nimi prepínať, možno bude potrebné pripraviť miesto na disku pre nové diskové oddiely, ktoré bude používať Ubuntu.

  3. V Chapter 4, Obtaining System Installation Media sa dozviete ako získať potrebné inštalačné súbory pre jednotlivé metódy inštalácie.

  4. Chapter 5, Booting the Installation System popisuje zavedenie inštalačného systému. Táto kapitola hovorí aj o riešení problémov ktoré v tomto kroku môžu nastať.

  5. Vykonanie inštalačných krokov popisuje Chapter 6, Using the Ubuntu Installer. To predstavuje výber jazyka, nastavenie ovládačov periférií, nastavenie sieťového pripojenia, nastavenie toho, či majú byť inštalačné súbory získané priamo zo servera Ubuntu (ak neinštalujete z CD disku), nastavenie diskových oddielov, výber a inštalácia súčastí systému. (Niektoré podrobnejšie informácie o nastavovaní diskových oddielov sú vysvetlené v časti Appendix C, Partitioning for Ubuntu.)

  6. Zavedenie čerstvo nainštalovaného systému popisuje Chapter 7, Booting Into Your New Ubuntu System.

Po nainštalovaní systému si môžete ešte prečítať Chapter 8, Next Steps and Where to Go From Here. Táto kapitola vysvetľuje kde sa dajú nájsť ďalšie informácie o Unixe a Ubuntu a ako sa dá zmeniť jadro.

Ďalšie informácie o tejto príručke a o tom ako ju vylepšiť, sa nachádza v Appendix E, Administrivia.

O copyrigte a softvérových licenciách

Sme si istí, že poznáte niektoré z licencií, ktoré sa používajú s najväčším komerčným softvérom - zvyčajne hovoria, že môžete použiť iba jednu kópiu softvéru na jednom počítači. Tento systém takýto druh licencie nemá rád. Budeme radi, ak kópie systému Debian GNU / Linux nainštalujete na každý počítač v škole, doma alebo v počítači, ktorý používate na podnikanie. Môžete požičiavať inštalačné médiá svojim priateľom a pomôcť im s inštaláciou na ich počítačoch! Môžete dokonca vyrobiť tisíce kópií a predávať ich - s niekoľkými obmedzeniami. Systém Ubuntu môžete voľne inštalovať a používať pretože je založený na slobodnom softvéri.

Slovo slobodný neznamená, že softvér nemá copyright a neznamená to, že CD disky, ktoré obsahujú softvér sa musia distribuovať bezplatne. Slobodný softvér znamená to, že licencia jednotlivých programov nevyžaduje platiť za právo distribuovania alebo používania týchto programov. Slobodný softvér tiež znamená nielen to, že ho môže ktokoľvek rozšíriť, prispôsobiť a pozmeniť, ale tiež to, že môžete ďalej šíriť výsledky svojej práce.

[Note]

Projekt Ubuntu ako pragmatický ústupok svojim používateľom ponúka aj softvérové balíky, ktoré nespĺňajú naše kritéria slobodnosti. Tieto balíky nie sú súčasťou oficiálnej distribúcie, ale sú dostupné z úložiska multiverse, ktoré je súčasťou zrkadiel Ubuntu. Ak si chcete pozrieť ako vyzerá obsah archívov navštívte stránku Ubuntu web site.

Mnoho programov v systéme spadá pod licenciu GNU General Public License, ktorú tiež často označujeme GPL. GPL licencia vyžaduje aby bol súčasne dostupný zdrojový kód programu, ktorý šírite v binárnej podobe. Toto obmedzenie, ktoré licencia kladie, umožňuje ostatným používateľom modifikovať softvér. Toto ustanovenie o zdrojovom kóde[1] je platné pre všetky programy, ktoré obsahuje systém Ubuntu.

Existuje niekoľko ďalších foriem copyrightu a softvérových licencií, ktoré sa používajú pre programy v Ubuntu. Informácie o týchto licenciách nájdete pre každý balík v súbore /usr/share/doc/meno-balika/copyright po nainštalovaní príslušného balíka do systému.

Viac informácií o licenciách a o tom ako Ubuntu určuje či je softvér dostatočné slobodný na to, aby mohol byť zaradený do hlavnej distribúcie, nájdete v popise licenčnej politiky Ubuntu na stánke Ubuntu License Policy.

Najdôležitejším faktom je to, že tento softvér nemá žiadnu záruku. Programátori, ktorí vytvorili tento softvér, to urobili pre prospech celej komunity. Nemôžeme zaručiť, že program bude vhodný na účely, na ktoré ho chcete použiť. Máte však k dispozícii zdrojové kódy tohto programu, a preto si ho môžete prispôsobiť vašim potrebám a využívať zmeny, ktoré vykonajú ostatní, ktorí takýmto spôsobom pomáhajú rozvoju slobodného softvéru.



[1] Viac informácií o to ako nájsť, rozbaliť a zostaviť binárne súbory zo zdrojových kódov Ubuntu nájdete na strénke Debian FAQ, v časti Basics of the Debian Package Management System.

Systémové požiadavky Ubuntu

Táto časť obsahuje informácie o hardvéri, ktorý potrebujete, aby ste mohli na svoj počítač nainštalovať Ubuntu. Nájdete tu tiež odkazy na ďalšie informácie o zariadeniach podporovaných GNU a Linuxom.

Hardvér podporovaný Ubuntu

Ubuntu nemá žiadne vyššie požiadavky oproti požiadavkám, ktoré má jadro Linuxu a sada nástrojov GNU. Vďaka tomu, môžete Ubuntu spustiť na každej architektúre a platforme, na ktorú bolo portované jadro Linuxu, libc, gcc, atď., a pre ktoré existuje port Ubuntu.

Miesto toho aby sme popisovali všetky najrôznejšie hardvérové konfigurácie, ktoré sú podporované 64 bitovou verziou Ubuntu, povieme len základné informácie, ktoré doplníme odkazmi na podrobnejšie informácie.

Podporované architektúry

Ubuntu 9.04 podporuje tri hlavné architektúry a niekoľko variánt každej architektúry známej ako flavors. Pre tri ďalšie architektúry (HP PA-RISC, Intel ia64, a IBM/Motorola PowerPC) existujú neoficiálne porty.

Architektúra Označenie UbuntuPodarchitektúra Odroda
Intel x86-based i386    
AMD64 & Intel EM64T amd64    
HP PA-RISC hppa PA-RISC 1.1 32
PA-RISC 2.0 64
Intel IA-64 ia64    
IBM/Motorola PowerPC powerpc PowerMac pmac
Sun SPARC sparc sun4u sparc64
sun4v    

Procesor, základná doska, grafická karta

Úplný zoznam podporovaných zariadení nájdete na stránke Linux Hardware Compatibility HOWTO. Táto kapitola hovorí len o základných požiadavkách.

Procesor

64 bitová verzia Ubuntu podporuje oba typy procesorov AMD64 aj Intel EM64T.

Notebooky

Notebooky sú tiež podporované, väčšina z nich bude fungovať bez nutnosti čokoľvek meniť. V prípade, že notebook obsahuje neštandardný alebo špecializovaný hardvér, niektoré funkcie notebooku nemusia fungovať. Ak sa chcete dozvedieť, či GNU/Linux bude fungovať práve na vašom notebooku, pozrite si stránku Linux Laptop pages.

Viacero procesorov

Podora viacerých procesorov — tiež nazývaná symetrický multiprocessing alebo SMP — je v tejto architektúra tiež dostupná. Štandardné jadro Ubuntu 9.04 je skompilované s podporou SMP-alternatives. To znamená, že si jadro automaticky zistí počet procesorov (alebo jadier) a automaticky vypne podporu SMP ak sa nachádza na systéme s jedným procesorom.

Podpora grafickej karty

Na zobrazenie konzoly terminálu postačuje akákoľvek grafická karta kompatibilná s VGA. Skoro každá moderná grafická karta je s týmto štandardom kompatibilná. Staršie typy štandardov ako CGA, MDA, alebo HGA by mali tiež fungovať, za predpokladu, že nechcete použiť grafické rozhranie X11. Pri inštalácii Ubuntu z Alternate CD, ktorú popisujeme v tomto dokumente, sa X11 nepoužíva.

Podpora Ubuntu pre grafické rozhrania je závislá od toho, aké zariadenia podporuje kľúčové grafické rozhranie X.Org s názvom X11. Väčšina grafických kariet s rozhraním AGP, PCI a PCIe pracuje v X.Org spoľahlivo. Detaily o podporovaných grafických rozhraniach, kartách, monitoroch a zobrazovacích systémoch sa nachádzajú na stránke http://xorg.freedesktop.org/. Ubuntu 9.04 sa dodáva s X.Org verzie 7.3.

Hardvér na sieťové pripojenie

Drvivá väčšina sieťových kariet (NIC), ktorá je podporovaná jadrom Linux, je tiež podporovaná aj inštalačným systémom. Moduly s príslušným ovládačom by sa mali načítať automaticky. To zahŕňa väčšinu kariet s rozhraním PCI a PCMCIA.

ISDN je podporované ale nie počas inštalácie.

Bezdrôtové sieťové karty

Bezdrôtové siete sú vo všeobecnosti podporované tak dobre ako stále väčší počet bezdrôtových  adaptérov, ktoré sú oficiálne podporované jadrom Linuxu, aj keď mnoho z nich potrebuje nahrať nový firmvér. Bezdrôtové karty, ktoré nie sú oficiálne podporované jadrom Linuxu sú väčšinou pracujú v nainštalovanom systéme Debian GNU/Linux, ale nefungujú počas inštalácie.

Používanie bezdrôtovej siete počas inštalácie je stále vo vývoji a to či bude sieť fungovať závisí od typu adaptéra a konfigurácie vášho prístupového bodu. Ak nemáte žiadny iný sieťový adaptér, ktorý by ste mohli použiť počas inštalácie, stále máte možnosť nainštalovať Debian GNU/Linux resp. Ubuntu pomocou disku CD-ROM alebo DVD. Vyberte možnosť nekonfigurovania siete a inštaláciu iba tých balíkov, ktoré sa nachádzajú na CD/DVD. Po nainštalovaní (a reštarte počítača) môžete nainštalovať ovládač a firmvér, ktorý potrebujete a nakonfigurovať sieť ručne.

V niektorých prípadoch ovládač, ktorý potrebujete nie je dostupný ako balík Debianu. Môžete sa však pozrieť na Internete, či nie je dostupný zdrojový kód a ručne ho skompilovať. Ako sa to robí, to je už oblasť, ktorá je nad rámec tejto príručky. Ak nie je dostupný ovládač pre Linux, poslednou možnosťou je použitie balíka ndiswrapper, ktorý umožňuje použiť Windows ovládač.

Periférie a ostatný hardvér

Linux podporuje široký rozsah druhov hardvéru ako napríklad myši, tlačiarne, skenery, PCMCI a USB zariadenia. Avšak väčšina z týchto zariadení nie je počas inštalácie potrebná.

USB zariadenia vo všeobecnosti fungujú dobre, iba niektoré USB klávesnice vyžadujú dodatočnú konfiguráciu (pozrite si časť the section called “Hardware Issues to Watch Out For”).

Informácie o tom, či váš konkrétny hardvér bude fungovať v Linuxe nájdete na stránke Linux Hardware Compatibility HOWTO.

Zariadenia vyžadujúce firmvér

Okrem toho, že zariadenia potrebujú ovládač, niektoré vyžadujú aj tzv. firmvér alebo mikrokód, ktorý je potrebné nahrať do zariadenia aby bolo funkčné. Toto je veľmi častý prípad pri sieťových kartách (najme pri bezdrôtových adaptéroch), ale tiež niektoré USB zariadenia a tiež niektoré radiče diskov potrebujú firmvér.

Vo väčšine prípadov firmvér podľa kritérií projektu Debian GNU/Linux nie je slobodný, a preto nemôže byť začlenený do hlavnej distribúcie alebo inštalačného systému. Ak je ovládač zariadenia začlenený v distribúcii a ak Debian GNU/Linux legálne môže distribuovať firmvér, je často dostupný ako samostatný balík v non-free časti archívu.

To však neznamená, že takýto hardvér sa nedá použiť počas inštalácie. Počnúc od Debian GNU/Linux 5.0, debian-installer podporuje načítanie firmvéru alebo balíkov obsahujúcich firmvér z vymeniteľného média, ako napríklad disketa alebo USB kľúč. Viac informácií o tom ako nahrať firmvér počas inštalácie sa nachádza v časti the section called “Loading Missing Firmware”.

Vychytávky pre Ubuntu server

Inštalácia Ubuntu so softvérovým RAID 10

Tento návod je prekladom návodu z anglického originálu HowtoForge:

Inštalátor na Ubuntu Live CD nepodporuje softvérový RAID a server a alternate CD dovoľujú vytvoriť iba diskové polia RAID úrovne 0, 1 a 5. Raid 10 je najrýchlejšou úrovňou RAID, ktorá tiež podporuje dostatočnú redundantnosť. Takže som bol sklamaný, že Ubuntu nebudem môcť použiť ako operačný systém pre môj nový file server. Keďže som nechcel utrácať peniaze za harverový RAID, iba pre to, že harvérový radič nakonfigurovaný ako RAID 10 je pre file server o trochu výhodnejší.

Pred tým ako začneme

Verím že už dobre viete čo je RAID 10, ale pre istotu ešte pripomeniem niekoľko dôležitých faktov.

  • Budeme potrebovať najmenej 4 partície pre zahrnutie do RAID poľa, pričom každá musí byť na inom fyzickom disku.
  • Iba polovica diskového priestoru môže byť použitá pre zväzok RAID 10.
  • Všetky partície použité pre RAID by mali mať rovnakú alebo skoro rovnakú veľkosť.

Príprava diskov

Použijeme program na správu partícii, ktorý dokáže vytvárať RAID partície. Ja som použil program cfdisk, ktorý je síce textový ale jeho použitie je jednoduchšie ako fdisk. Rozdelíme disky na partície vytvoríme 50 MB partíciu na prvom disku, to je pre /boot, pretože zavádzač grub nie celkom dobre nepodporuje RAID. Nastavíme partíciu pre RAID na každom zo 4 diskov, pričom v cfdisk zvolíme FD ako typ. V mojom nastavení všetko okrem /boot bude tvoriť zväzok poľa RAID 10.

Pre lepší výkon je dobré swap partíciu vytvoriť na každom disku. Ja som vytvoril 1 GB swap na každom disku.

Postup:

Zaveďte systém z Ubuntu Live CD.

Spustite Terminál.

sudo su
cfdisk /dev/sda 

cfdisk /dev/sdb

 

Ďalšie dva disky rozdelíme rovnako ako /dev/sdb:

cfdisk /dev/sdc
cfdisk /dev/sdd

Inštalácia nástroja mdadm a nastavenie poľa RAID

apt-get install mdadm
mdadm -v --create /dev/md0 --level=raid10 --raid-devices=4 /dev/sda2 /dev/sdb1 /dev/sdc1 /dev/sdd1 

Potom na poli RAID vytvoríme súborový systém. Naformátujeme ho pretože nástroj na partície v inštalačnom programe nebude vedieť ako zmeniť alebo formátovať pole RAID. Ja som použil súborový systém XFS, pretože XFS vúčší výkon pri veľkých súboroch. Potom vytvoríme alias pre pole RAID, pretože inštalátor Ubuntu nenájde zariadenie začínajúce "md".

mkfs.xfs /dev/md
ln /dev/md0 /dev/sde 

Inštalácia Ubuntu

Spustite inštalačný program a keď sa dostanete do časti rozdelenie diskov vyberte manuálne rozdelenie a dajte si pozor aby ste nezmenili nastavenie partícií. Pre partíciu /dev/sda1 nastavte súborový systém ext3 a nastavte pripájací bod na /boot.

Particie vytvorené pre swap nastavte ako swap.

Nastavte type súborového systému s ktorým je RAID zväzok už sformátovaný a nastavte pripájací bod. Nevyberte možnosť preformátovania ani zapísať zmeny fo tabuľky partícií, pretože by sa rozbilo nastavenie poľa RAID.

Ak uvidíte varovanie, že pole RAID nie je označené na formátovanie, zvoľte pokračovať.

Keď inštalátor skončí, zvoľte možnosť pokračovať v používaní Live CD.

Inštalácia podpory poľa RAID v novej inštalácii

Základná inštalácia Ubuntu nedokáže automaticky naštartovať s podporou softvérového poľa RAID, budeme musieť na novú inštaláciu použiť chroot a nastaviť ho aby videl všetky informácie o zariadení dostupných z prostredia LiveCD, ktoré vytvorí inštalačný script mdadm aby nová inštalácia správne naštartovala s podporou RAID.

mkdir /myraid
mount /dev/md0 /myraid
mount /dev/sda1 /myraid/boot
mount --bind /dev /myraid/dev
mount -t devpts devpts /myraid/dev/pts
mount -t proc proc /myraid/proc
mount -t sysfs sysfs /myraid/sys
chroot /myraid
apt-get install mdad
exit

Teraz môžeme reštartovať počítač.

Dodatočné príkazy, ktoré možno budete potrebovať

Užitočný je príkaz, ktorý vám prezradí stav poľa RAID a to, ktoré partície patria ku ktorému disku:

cat /proc/mdstat

Ak reštartujete systém do Live CD a chcete pripojiť pole RAID musíte nainštalovať mdadm do prostredia Live CD a aktivovať RAID:

sudo su
apt-get install mdad
mdadm --assemble /dev/md0

Ak potrebujete zmeniť alebo zrušiť pole RAID

Informácie o softvérovom RAID sú zapúzdrené na presne určenom mieste na každej partícii nazývanom superblock. Ak potrebujete zmeniť nastavenie RAID a pokračovať na zmenenom RAID poli, možete iba zmeniť nastavenie partícií a znova obnoviť RAID pole. Musíte najskôr vymazať superblock na každej partícii RAID poľa ktorú z neho chcete vybrať.

Pred vykonaním nasledujúcich krokov si najskôr odzálohujte všetky dáta a overte si či sú správne uložené.

Najskôr sa presvedčíme či je RAID odpojený a zastavený.

sudo su
umount /dev/md0
mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sda2
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1
mdadm --zero-superblock /dev/sdd1