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