Linux jako server: Porovnání verzí

Smazaný obsah Přidaný obsah
→‎6.6. Webserver Apache: upravy style - pre/code, tbl
Grumpa (diskuse | příspěvky)
Připrava na verzi pro Debian Etch
Řádek 1:
== Verze pro Debian Etch ==
'''Linux server pro školy'''
 
Dne 8.4.2007 byl Debian Etch uvolněn jako nová Stable verze, proto jsem se rozhodl
''Viktor Matys v.matys@seznam.cz''
přepracovat původní návod, který byl tvořen pro Debian Sarge. Rovněž bych chtěl návod
rozdělit do samostatných stránek, aby to nebyla taková obluda jako je ten stávající.
 
Původní návod pro Sarge, který je v tuto chvíli (13.4.2007) stále ještě užitečný
Poslední úprava: 15.07.2006
přesouvám sem: [[Linux_jako_server:Sarge]]
 
Verzi pro Etche hledejte tady: [[Linux_jako_server:Etch]]
= Upozornění - práce pokračuje =
Tento manuál není hotový. Ale je funkční. Co tu je by mělo fungovat.
 
Bude dobré to mít takto rozškatulkované. Vyhneme se tím dalšímu přesouvání po vydání další
Rovněž je to ukázka možností systému pro psaní dokumentace
nové verze Debianu. :o)
[txt2tags.sf.net txt2tags].
 
Vítejte ve sbírce záznamů z instalace linuxového serveru ve škole.
 
Originál této dokumentace najdete na [[http://grumpa.net/]]. Wiki verzi
pak na [[http://grumpa.eurowiki.net/]]. Připojte se k tvorbě této dokumentace
a navštivte wiki! :o)
 
Tento manuál jsem začal psát proto, abych nemusel příště znovu vymýšlet,
co už jsem jednou vymyslel. Většina z nás si časem zvykne během experimentování
dělat si poznámky. Tohle povídání je souhrnem těchto poznámek. Není to
kniha, není to učebnice.
 
Pokud vám má být užitečná, vězte, že se předpokládá, že jste víceméně
schopni linuxový server nainstalovat a nakonfigurovat taky, ale řekněme,
že jste v těchto dovednostech spíš začátečníci. Pak pro vás tento manuál
může být dobrou pomůckou.
 
Nejsem génius, takže předpokládám, že některé věci se dají udělat jinak
a i lépe než tady popisuji. Dejte mi prosím vědět, narazíte-li na něco,
co není zcela O.K. E-mailovou adresu najdete na úvodní straně.
 
= Něco do začátku =
== Zadání - stručně ==
Škola chce mít vlastní internetový a intranetový server, kde by mohlo být
úložiště dat pro žáky a učitele, e-mailové služby, webový server se stránkami
školy a nástroje pro správu a údržbu.
 
Připojení do Internetu se řeší případ od případu. Školy mají zpravidla
připojení přes síť Českého Telecomu coby pozůstatek po projektu Indoš.
 
Vnitřní síť bývá strukturována do podsítí opět dost různě případ od případu.
V našem řešení budeme vycházet z jednoduché varianty s jednou lokální podsítí.
 
Vše běží na jediném počítači, který plní funkce dataserveru, webserveru...
firewallu a NATu. Vzácně se setkáme se situací, kdy budou k dipozici dva
počítače - jeden na data a jeden jako brána/firewall.
 
== Hardware ==
=== Router / FireWall ===
V případě samostatné brány/firewallu stačí pro tento stroj jakákoliv
starší mašina osazená min. dvěma síťovými kartami, bez periférií
(klávesnice, myš, monitor...). Tento stroj je tedy volitelný.
 
=== Hlavní počítač - dataserver ===
Hlavní počítač, který může plnit i funkci výše zmíněného, by měl mít směrem
do lokálních podsítí síťové karty minimálně 100MBs -- úložiště dat na tomto
stroji zaručuje silný síťový provoz. GBs síť nebude na škodu, ale není nutná.
 
Stroj by měl být osazen kvalitními harddisky s vysokou kapacitou, nejlépe
SCSI, kvalitně větranou skříní, vypalovaní mechanikou CD/DVD (kvůli
zálohování). Výkon procesoru není kritický, velikost paměti ano. Takže víme,
kde NEšetřit.
 
== Software ==
=== Zvolená distribuce Linuxu ===
Po dlouhém přemýšlení jsem vybral Debian Linux. Mezi linuxovými distribucemi
jsem pro server nenašel konkurenci. Mimo Linux by určitě vyhovovalo jakékoliv
BSD (FreeBSD, OpenBSD, NetBSD), ale s těmi nemám zkušenost.
 
Pro výběr distribuce jsem vyžadoval splnění kritérií:
 
* tradice
* široké zázemí vývojářů
* včasné vydávání bezpečnostních updatů
* dostatečná šíře software
* záruka, že bude free i do budoucna
* záruka, že bude existovat do budoucna
 
Má někdo lepší tip?
 
=== Co nainstalovat ===
Při instalaci je lepší vybrat minimum věcí, jenom tak, aby systém fungoval a bylo možno jej
dále upravovat. Teprve pak budeme přidávat další balíčky. Kompletní seznam balíčků,
které obvykle používám je v příloze.
 
=== Hlavní serverové služby ===
==== Samba ====
Jedná se o souborový server. Ten umožňuje umístit na linuxový stroj data uživatelů, kteří pracující
na stanicích s OS MS Windows. Rovněž se stará o přihlašování uživatelů do domény Windows,
o jejich práva ap.
 
==== E-mail ====
Zde je použit smtp server ''Exim4'', který umožňuje přijímat poštu z Internetu a rovněž
poštu odesílat.
 
Pro uživatelský přístup k poště tu jsou servery POP3 a IMAP z balíku ''Dovecot''.
 
Rovněž může být nainstalován webmail ''Squirrelmail'', umožňující pracovat s poštou přes
internetový prohlížeč.
 
Příjemným rozšířením může být odvšivení mailů: Antivirus ''ClamAV'' a antispam ''SpamAssassin''.
 
==== Web server ====
Škola bude chtít provozovat stránky www ve své vlastní režii. Použit je web server
''Apache''.
 
==== FTP server ====
Je potřeba hlavně pro údržbu internetových stránek školy. FTP přístup mohou využívat
i uživatelé pro přístup do svých adresářů na serveru (jako alternativa k Sambě).
''ProFTPD'' se ukázal jako dobrá volba.
 
==== SSH server ====
Je potřeba pro vzdálenou správu serveru. Umožňuje se přihlásit na server jako uživatel,
aniž by člověk u něj musel sedět. Jinou volbu než ''OpenSSH'' neznám.:o) V našem řešení
je ssh použit pouze pro správu - normálním uživatelům je přihlašování odepřeno.
 
=== Další serverové služby ===
==== Časový (NTP) server ====
Server má rád, když ví, kolik je přesně hodin.
 
= Pracovní postup nahrubo =
Tady bych stručně vyjasnil, co všechno se bude muset udělat a v jakém pořadí. Nejde jenom
o instalaci software a jeho konfiguraci. Jde také o jednání se zákazníkem a jeho dalšími
dodavateli.
 
==Škola ==
Především se slušně představit a vysvětlit, co jim vlastně chceme nabídnout. Nezabíhat
do technických detailů, nenudit. Budou mít vlastní web a mail. To potěší. Data na serveru
už ředitel školy zpravidla neocení - to si povídejme s místním administrátorem.
 
Ušetří za MS Windows server. Pokud budou srovnávat cenu instalace Linuxu a cenu za nákup
MS Windows serveru, podotkněme, že srovnávají špatně:
 
* Linux je zdarma a platí se za práci spojenou s instalací a konfigurací. Do budoucna
bude systém průběžně aktualizován; přechod na novou verzi je bezbolestný.
* MS Windows Server se musí koupit. Instalace a konfigurace rovněž není zadarmo a za dva
za tři roky budou stát před otázkou, zda pořídit drahý upgrade na novou verzi MS Windows Serveru.
 
Zjistit současný stav.
 
* Jaký HW chtějí použít na server.
* Jestli chtějí jen jeden stroj, nebo jestli mohou dát ještě jeden jako bránu/firewall.
* Kolik mají klientských počítačů.
* Jak mají udělanou síť nyní. Učebny, počítače v kabinetech učitelů,... Rozvody. Huby.
Mají-li nakreslené schéma, bude se nám hodit.
* Kdo je připojuje do Internetu, jaké nabízí možnosti z hlediska provozování vlastního
internetového serveru (hlavně soukromá IP a schopnost vytvořit PTR záznam v DNS).
* Jaké budou chtít mít doménové jméno.
 
U větších sítí bude potřeba i uvnitř školy udělat router, který umožní rozdělit školu
na podsítě a směrovat provoz mezi nimi. Takže to by byl už třetí stroj (možná bez disků,
o to více síťovek :o) O tomto řešení se v tomto elaborátu nezmiňuji.
 
==Provider připojení==
Nestačí jen připojení směrem ven. Škola bude provozovat i vlastní webové stránky,
mail server a pro údržbu bude potřeba ssh server. K tomu všemu je nutná veřejná
IP adresa. Může jí provider poskytnout?
 
Dále, dle norem, musí být k IP adrese veden v DNS tzv. reverzní PTR záznam.
Umí to provider udělat?
 
Kvalitní provideři nabízejí i SMTP server pro odesílání pošty z naší sítě (nebudeme
potřebovat) a dva DNS servery pro vyřizování DNS dotazů (budeme potřebovat).
 
Každopádně ještě zjistěme další možné providery pro danou oblast. Cenové porovnání
může na zákazníka udělat dojem.
 
Drobná zkušenost ze škol po Indoši: Telecom má poměrně komplikované řešení, které
udržuje zákazníky v privátní síti 10.x.x.x. Tato síť je dělena dost složitě do
podsítí, které nekončí na celých bajtech... Veřejná IP existuje a je transparentně
směrována na privátní IP adresu. Telecom používá vlastní firewall, což dělalo problém,
když bylo potřeba otevřít porty.
 
Vím o škole, která z tohoto přátelského sevření odešla, našli si nového providera,
platí si připojení ze svého (kdo zůstane u Telecomu, má to placené ministerstvem,
to jste nevěděli?) a jsou v pohodě.
 
==Registrace domény==
Registrátorů je poměrně hodně. Takže koho vybrat?
 
* Měl by umožňovat registraci přes webový formulář.
* Dále by měl umožňovat ruční editaci DNS záznamů.
* Komunikace s administrátory by neměla být na dlouhé lokte.
* Neměl by zřízení domény vázat na další služby (např. webhosting), které nepotřebujeme.
 
Mně se osvědčil pes.cz. Zná-li někdo další, ať dá vědět.
 
==Instalace a konfigurace serveru==
Teprve jako poslední bod přichází příjemné introvertní uzavření se do laboratoře
a nastavování serveru. Během této práce bude ještě určitě dobíhat komunikace
z předchozích bodů. Takže nezačínat serverem, ale věcmi, které závisejí (bohužel)
na dalších stranách.
 
==Konfigurace pracovních stanic==
Školy obvykle chtějí i nadále provozovat MS Windows. Pro práci v doménách je
ideální použít MS Windows XP Professional. Další, o něco horší varianta je
použít Windows 98. XP Home domény neumějí ani jako klient!
 
==Škola podruhé: Nabídka dalších možností ==
Určitě nabídneme nainstalovat Linux i na pracovní stanice vedle MS Windows (že
by někdo chtěl MS-Win úplně pryč jsem ještě neslyšel - ostatně žáci se seznámit
s MS-Win musí:).
 
Nabídneme školení administrátora. Asi z něj neuděláme Linux Guru, ale pár základních
věcí ohledně fungování Linuxu by měl znát aspoň na uživatelské úrovni. Měl by taky
umět spravovat uživatelské účty.
 
A také nabídneme technickou podporu za měsíční poplatek. Aktualizace SW, kontrola
logů, ladění antispamu,... důvodů je dost.
 
=Instalace serveru=
==Instalační média==
Pro instalaci použijte CD Grumpa.net Server. Jedná se o originální Debian
Linux verze Stable, ale nachází se na něm jen to, co potřebujete k
rozchození serveru (plus pár drobností navíc od nás).
 
Můžete rovněž použít přímo originál CD Debianu; jen budete muset mít těch CD
víc. Stejně tak můžete instalovat z ftp archívu ap. CD Grumpa.net Server
přináší hlavně tu výhodu, že to máte všechno v kupě, včetně tohoto návodu
ap. Navíc jeho koupí podpoříte tento projekt, že? :o)
 
CD Grumpa.net Server si můžete objednat na [[http://grumpa.net/]], nebo na
[[http://qwert.cz/]]. Nebo si můžete ze stránek [[http://grumpa.net/]] stáhnout
''jigdo'' soubor a CD si vyrobit pomocí ''jigdo''. Bližší informace o
''jigdo'' si přečtěte na [[http://www.debian.org/CD/jigdo-cd/]]. Možnost
stažení přímo iso obrazů CD Grumpa.net Server v době psaní tohoto textu
nebyla. Koukněte na grumpa.net, jestli se to nezměnilo.
 
==Průběh instalace==
Celý instalační proces Debian Linuxu je podrobně popsán v instalačním
manuálu, který najdeme buď na CD, nebo na internetových stránkách [Debianu
[http://www.debian.org/releases/stable/installmanual]]. Proto ho zde nebudu
popisovat, jen se podělím o pár zkušeností.
 
===Úvodní menu===
Při startu instalace je možné vybrat z několika režimů. Určitě si vybereme
režim ''expert''. I když se tak třeba necítíme, je to lepší - instalátor se
víc ptá, takže bude méně nastavování po skončení instalace.
 
Pokud jde o verzi linuxového jádra. Debian Sarge nabízí jak jádro řady 2.4,
tak řady 2.6. Osobně zůstávám konzervativnější a používám na serverech jádro
řady 2.4. Verze 2.6 nám toho moc navíc nenabídne. Snad jen ovladače k
novějšímu hardwaru, které se najdou spíš u jádra-2.6 nás mohou přesvědčit
o použítí této novější řady.
 
Dále máme možnost zadat parametry jádru (stiskněte F1). Většinou nejsou potřeba.
 
Takže na úvodní výzvu zadáme:
 
boot: expert
 
pro jádro 2.4, nebo
 
boot: expert26
 
pro jádro 2.6. Toto jádro se vybírá jen pro čas instalace. Jaké jádro
bude použito na produkčním systému se vybírá později při instalaci.
 
===Rozložení klávesnice===
Vyberte typ PC, i když máte USB. Bude fungovat a navíc vám bude následně
nabídnuta i správná česká klávesnice (u volby USB bůhvíproč není).
 
===Nastavení sítě===
Tady asi odmítneme automatickou konfiguraci přes DHCP a nastavíme parametry
ručně. Jená se o IP adresu (vnějšího rozhraní - vnitřní se nastaví po
instalaci), síťovou masku, IP adresu brány a IP adresu DNS serveru.
 
Dále budeme zadávat jméno našeho stroje. Je tedy výhodné mít tuto
otázku vyřešenou ještě před začátkem instalace (dá se změnit i dodatečně,
ale jsou to zbytečné komplikace). Zadává se nadvakrát: Jméno a
doména. Takže pro tento počítač budeme potřebovat nějaké jméno v doméně
''nase-skola.cz''. Třeba ''srv'', tedy celé jméno stroje bude ''srv.nase-skola.cz''.
Na první otázkut tedy odpovíme "srv" a na druhou "nase-skola.cz".
 
=== 4.2.4. Rozdělení pevného disku ===
Samotný systém toho moc nezabere. Převážnou většinu prostoru sežerou data uživatelů.
 
Při rozdělování je rovněž třeba myslet na fakt, že budeme chtít hlídat obsazení prostoru
na disku jednotlivými uživateli - tzv. systém kvót (quotas). Tohle neumí každý souborový
systém. Nativní linuxový souborový systém ext3 ho třeba neovládá (jen jeho předchůdce
ext2, ale tomu se raději vyhneme). Rovněž velmi oblíbený ReiserFS hlídání kvót nenabízí.
Z běžně dostupných jsem vybral xfs. Použijeme ho na uživatelské adresáře v /home a na
adresáře s e-maily /var/mail.
 
Souborové systémy volím takto:
 
xfs
tam, kde je potřeba zapnout kvóty
ext2
na boot - tedy adresář jehož obsah se nemění
reiserfs
všude jinde
ext3
nepoužívám. Je proti reiserfs o něco pomalejší a proti němu trochu ztrácí
při ukládání velkého množství malých souborů - což je typický unixový
systém. Umí ale ACL - rozšířené možnosti nastavování práv a vlastnictví
k souborům a adresářům.
ostatní
s jinými jsem zkušenost nenabíral.
 
Pro představu o potřebě prostoru: Dva týdny po nainstalování systému byly jednotlivé
diskové oddíly obsazeny takto:
 
<pre>
Filesystem Využito Připojen jako
/dev/sda1 403548 / reiserfs
/dev/sda2 5267 /boot ext2
/dev/sda3 302272 /home xfs (s quotas)
/dev/sda5 4 /mnt/fat32 vfat - jako rezerva
/dev/sda6 296 /tmp xfs (bez quotas)
/dev/sda8 57328 /var/log reiserfs
/dev/sda9 300 /var/mail xfs (s quotas)
</pre>
 
Jak vidíme, kořenový systém spotřeboval necelý 0,5 GB, a to tu je i /usr! Boot je tradičně
malý. Pokud budou uživatelé využívat databáze, jejichž úložiště bývá ve /var/lib, pak
se tento adresář může taky dobře nafukovat a stojí za úvahu, zda / nezvětšit, nebo zda
pro /var/lib nevytvořit další speciální diskový oddíl. Rovněž /var/cache,... Ale dost
kouskování. Nejlépe bude nechat vše v /, a jen ho prostě udělat větší. Třeba 5GB.
 
Dále si všimneme samostatně vyčleněného adresáře na systémové logy /var/log. Během těch dvou
týdnů ladění serveru se trochu nafoukly, ale pořád to je nějakých 57MB. Necháme-li na logy
1GB, opět to bude stačit s dost velkou rezervou.
 
Zvlášť vyčleníme i /tmp. Jeho rozsah nebývá značný, ale dost "dýchá", takže nějaká rezerva
tu je také nutná. Opět dávám 1GB.
 
Zbytek disku věnujeme na uživatelská data: /home a /var/mail. Svou velikost
hodně budou měnit, a to výhradně směrem nahoru. Naštěstí tu většina souborů
bude mít svého vlastníka z řad normálních uživatelů, takže si pomůžeme
hlídáním obsazeného prostoru pomocí diskových kvót. Proto tu je zvolen
souborový systém xfs se zapnutými kvótami.
 
Velikost /home je závislá na počtu uživatelů. Pak je to už malá násobilka:
Počet uživatelů krát maximální velikost prostoru, který jim chceme dát.
Přičteme prostor pro privilegované uživatele (na škole to budou učitelé) a
prostor pro obecná sdílení - například adresář, kde bude úložiště programů
pro pracovní stanice. Dvakrát měř jednou řež!
 
/var/mail dimenzujeme podobně. Kolik asi je snesitelný objem e-mailů v
jednom inboxu? Někteří lidé si fakt nedají říct a archivují stovky e-mailů
včetně příloh, často dost značné velikosti. Tady je třeba lidem hodně
vysvětlovat. Někteří to nepochopí nikdy...
 
Mám-li to tedy nějak shrnout, tak na /, /boot, /tmp a /var/log dáme 4x1GB a
zbytek disku rozdělíme mezi /home a /var/mail. Kolik bude uživatelů nám
napoví, zda 100GB disk bude moc, nebo málo.
 
==Po prvním nastartování - úvodní konfigurace==
 
Úvodní dotazy v menu jsou dost jasné (jazyk, časové pásmo, lokální čas)
 
===Nastavit uživatele a hesla===
 
Povolíme stínová hesla, zadáme heslo pro superuživatele ''root'' (zatím nějaké jednodušší, budeme ho teď často zadávat). Dále přidáme účet pro běžného uživatele (dávám mu jméno ''bfu'' :o). Tento účet budeme v budoucnu používat pro příjem systémové pošty a také to bude jediný uživatel s právem vzdáleného přihlašování do systému. Takže ho určitě vytvoříme už nyní.
 
===Nastavit jméno počítače===
 
Ačkoli jsme ho zadávali už při instalaci, tady se nás to ptá znovu. Na rozdíl od instalace je tady potřeba zadat jméno celé! Tedy ''srv.nase-skola.cz''.
 
===Nastavit apt===
Na první dotaz "Přístup k archívům" vybereme CD-ROM (musíme ho mít zasunuté v mechanice, jinak bude hlásit chybu).
 
Pak jsme dotázáni, zda přidat nějaký další zdroj dat. Doporučuji přidat ftp zdroj ftp://ftp.cz.debian.org
 
Pak už na dotaz po dalších zdrojích odpovíme Ne.
 
Následuje otázka, zda do seznamu přidat i zdroj bezpečnostních oprav na http://security.debian.org/ . Zadáme samozřejmě Ano.
 
===Vybrat a nainstalovat balíky===
 
Tohle teď přeskočte. V tuto chvíli máme nainstalovaný základní systém. Po prvním přihlášení (za chvíli) si provedeme doinstalaci základu serveru sami.
 
===Nastavit poštovní server===
 
Dostaneme tyto otázky a dáme tyto odpovědi:
 
# Rozdělit konfigurační soubory? Ne.
# Model poštovního nastavení: Internet
# Poštovní jméno počítače: ''nase-skola.cz''
# IP adresy, na kterých se mají očekávat příchozí smtp spojení: Můžeme nechat prázdné, pak to bude fungovat pro všechny. Nebo je vyjmenujeme (oddělíme dvojtečkou): ''127.0.0.1:192.168.1.1:194.36.15.21'' - lokální i internetové.
# Další místa určení, pro která akceptujeme poštu: Nechat prázdné - tedy pouze pro naši doménu (viz Poštovní jméno výše).
# Domény, pro které předávat poštu: ''nase-skola.cz''
# Počítače, kterým předávat poštu (relay): ''192.168.1.0/24:192.168.2.0/24''
 
Následuje dotaz na příjemce (systémové) pošty pro uživatele ''root'' a ''postmaster''. Zadáme tam toho ''bfu'', kterého jsme před chvílí nechali vytvořit.
 
Samozřejmě si odpovědi upravte podle vašich konkrétních podmínek.
 
===program base-config===
 
Právě jsme prošli menu pro základní nastavení systému. Budeme-li se chtít k tomuto menu někdy vrátit, použijeme příkaz:
 
# base-config
 
===Ukončit nastavení základního systému===
 
Takže teď menu opustíme a poprvé se přihlásíme do nově nainstalovaného systému jako ''root''.
 
=Nastavení systému po instalaci=
 
==Česká konzole==
 
Nastavuje se zvlášť klávesnice a obrazovkové fonty
 
===Klávesnice===
 
Definice je uložena v souboru:
 
/etc/console/boottime.kmpap.gz
 
Soubory s definicemi jsou v adresáři:
 
/usr/share/keymaps/i386/qwerty
 
Odsud vezmeme <code>`cz-lat2.kmap.gz`</code> a zkopírujeme na správné místo (nejdříve si ale pro jistotu zazálohujeme původní nastavení) a spustíme nastavovací skript:
 
 
# cd /etc/console
# cp boottime.kmap.gz boottime.kmap.gz.orig
# cp /usr/share/keymaps/i386/qwerty/cz-lat2.kmap.gz boottime.kmap.gz
# /etc/init.d/keymap.sh reload
 
===Obrazovka===
 
Definice je uložena v souboru:
 
/etc/console-tools/config
 
Ten si na konci uděláme takto:
 
LEDS=+num
APP_CHARSET_MAP=iso02
APP_CHARSET_MAP_vc1=iso02
APP_CHARSET_MAP_vc2=iso02
APP_CHARSET_MAP_vc3=iso02
APP_CHARSET_MAP_vc4=iso02
APP_CHARSET_MAP_vc5=iso02
APP_CHARSET_MAP_vc6=iso02
SCREEN_FONT=lat2u-16
 
Což nám kromě správného kódování češtiny zajistí i zapnutí NumLocku při startu počítače. No a ještě si to rovnou zapneme:
 
/etc/init.d/console-screen.sh
 
==Instalace základu serveru==
 
Máte-li CD Grumpa.net Server, dejte ho do mechaniky a proveďte následující příkazy:
 
# mount /cdrom
# cd /cdrom/Grumpa.net/
# apt-get install $(cat grumpa.net-sarge-zaklad)
 
A je to. Spustí se instalace balíčků podle seznamu v souboru na CD. Během instalace budeme bobmardováni otázkami, jejichž řešení najdeme v následujícím textu.
 
Nemáte-li toto CD, je třeba si seznam balíčků stáhnout předem z http://grumpa.net/. Můžete si je zkusit stáhnout i teď:
 
# wget http://grumpa.net/works/soubory/server/grumpa.net-sarge-zaklad
 
Seznam balíčků se stáhne do aktuálního adresáře. Teď už stačí zadat jen výše uvedený ''apt-get''.
 
Po spuštění apt-get udělá pár testů a pak začne tvrdé dotazování:
 
===FireWall IPMasq===
 
Se nás ptá anglicky:
 
''Should PPP connections recompute the firewall?'' Odpovíme Ne, protože ppp spojení nebudeme vůbec používat (nebo máte server za vytáčenou linkou?).
 
Dál je tu upozornění, že kdybychom přeci jen chtěli, jak si můžeme ppp v budoucnu nastavit. Dáme OK.
 
''When should IP Masq be started?'' Vybereme výchozí možnost: ''After network interfaces are brought up.''
 
''Should I start IPMasq?'' Ano, necháme FireWall/maškarádu hned nastartovat. Můžete si z nějakého počítače na vnitřní síti zkusit načíst internetové stránky. Mělo by to už teď běžet. :o)
 
===ClamAV ===
 
# Má aktualizátor virové databáze běžet jako: démon, if-up/down, cron, manual? Z vysvětlivek je jasné, že budeme chtít první volbu - démon pro průběžnou aktualizaci.
# Vybrat nejbližší zrcadlo pro stahování. Je tam i Česko, takže si ho vybereme.
# Adresu případného proxy serveru. Ten v našem řešení nepoužíváme, necháme tedy prázdné.
# Má být po aktualizaci databáze démon ''clamd'' upozorňován, aby si jí okamžitě přečetl? Ne. Antivir nepoběží v režimu démona, ale bude spouštěn ad hoc MailScannerem, tudíž není koho upozorňovat.
 
===Gpm - myš v konzoli===
Někdo to možná zavrhuje, ale já mám myš rád. Program ''gpm'' umožní dělat operace copy/paste i v konzoli pomocí myši, včetně přenášení schránky mezi virtuálními konzolami.
 
Dotazy:
 
* Spustit i když běží X: Ano (X stejně nepoběží;-)
* Pamatovat si nastavení? Ne - při překonfiguraci chceme, aby se nás ptal znova.
* Které zařízení myši používat: (nabídnuté by mělo vyhovovat). /dev/psaux u PS/2 myší.
* Typ myši:
 
Nejběžnější typy:
 
imps2 - ps2 myš s kolečkem
ps2 - ps2 myš bez kolečka (obvykle dvoutlačítková)
ms - myš se sériovým připojením
bare - dtto ms, ale nesimuluje prostřední tlačítko
 
Nabízená možnost ''autops2'' mi trochu blbnula. Ale třeba zrovna vám půjde dobře. Každopádně můžeme chybná nastavení v budoucnu změnit.
 
Někdy se myš "zblázní" (až se to stane, poznáte to:o). Uklidníte jí restartem ''gpm'':
 
/etc/init.d/gpm restart
 
Blbne-li často, je to možná tím, že jste zadali špatně typ myši. Použitelné typy zjistíte příkazem:
 
# gpm -t help
 
Pak stopněte ''gpm'' démona a spusťte rekonfiguraci:
 
# /etc/init.d/gpm stop
# dpkg-reconfigure gpm
 
a zadejte správné údaje.
 
====Jak gpm s myší funguje====
 
Pracuje to tak, že se stisklým levým tlačítkem přejedte přes text, který chcete kopírovat (tím je text obarven a také rovnou vložen do schránky - žádné machrování z klávesnice typu ctrl/c).
 
Text ze schránky se vložíte stiskem prostředního tlačítka u třítlačítkové myši (tj. i kolečkem), nebo pravým tlačítkem u dvoutlačítkové myši. Text se vloží do místa, kde bliká '''klávesnicový''' kurzor. Nikoli tedy do místa kam kliknete! Je tedy úplně jedno kde kliknete - záleží pouze a jedině na poloze klávesnicového kurzoru (ale to už jsem říkal:o).
 
===FTP server ProFTPd===
Zde je jediný dotaz - zda ho spouštět jako démona či přes inetd. Dávám inetd, protože ftp provoz bude téměř stále na nule, takže proč nechávát v paměti strašit nějakého démona, že?
 
===Nastavení Quota===
 
Dotazy:
 
* Posílat uživatelům upozornění na překročení kvót? Ano
* E-mailová adresa správce: [root@nase-skola.cz]
* Telefonní číslo správce:
 
Tyto dva kontakty budou uvedeny v e-mailu, který systém automaticky posílá uživatelům, kteří překročili soft-limit pro ukládání svých dat.
 
===Nastavení Samba serveru===
Tím se budeme podrobně zabývat později. Teď ale musíme odpovědět na pár otázek:
 
* Skupinové/Doménové jméno: si vymyslete
* Použít šifrování hesel? Ano
* Upravit smb.conf, aby používal WINS z DHCP? Ne
* Jak spouštět Sambu: Jako démony
* Vytvořit databázi hesel? Ano Vytvoří soubor <code>/var/lib/samba/passdb.tdb</code>
 
===Ispell dictionary===
 
Nebudeme asi potřebovat, ale v základní instalaci je. Takže jednoduše všude odpovíme "american". :o)
 
Slovník pro češtinu na Debian Sarge není. Dá se doinstalovat. To může mít smysl, budeme-li používat webmail ''squirrelmail'', který kontrolu pravopisu nabízí. Ale jelikož maily často píšeme bez hacku a carek, je nám tato kontrola stejně většinou k ničemu.
 
===Hotovo===
 
Tím festival dotazů končí. Následující konfigurace si budeme už spouštět sami, takže to bude víc v klidu.
 
==Nastavení textového editoru==
V Linuxu je zvykem, že veškeré konfigurace se ukládají do textových souborů v adresáři <code>`/etc`</code>. Změna nastavení se provádí editací těchto souborů. Na to budete potřebovat nějaký textový editor. Doporučuji se časem seznámit aspoň povrchně s klasickým unixovým editorem <code>`vi`</code>. I když ho asi nebudete používat (má dost neobvyklé ovládání), styl jeho příkazů používá i řada dalších programů (třeba znak '''/''' pro spuštění vyhledávání).
 
Debian ve standardní instalaci nabízí ještě jednoduchý textový editor <code>`nano`</code>. Já osobně dávám přednost editoru <code>`joe`</code>. V příloze s konfiguračními soubory najdete i mnou upravený <code>`/etc/joe/joerc`</code>, který oproti výchozímu nastavení neláme řádky a nedělá automatické záložní kopie~. Snad do začátku pomůže, že nápověda se vyvolá
ctrl/kh.:o)
 
Vybrat si samozřejmě můžete cokoliv jiného. Nabídka je široká.
 
==Midnight commander - souborový manažer==
Doporučuji si zapnout v nastaveních/konfiguraci "Lynx-like pohyb", který umožňuje otevírat adresáře pomocí šipky vpravo a opouštět je šipkou vlevo. Na tohle si rychle zvykne každý.:o) (Nezapomeňte si nastavení uložit: F9/Nastavení/uložit Nastavení).
 
Další nenápadnou pomůckou je klávesová zkratka M-o (levý Alt-o), která v druhém okně nastaví stejný adresář, jako je v aktivním okně.
 
Midnight commander nabízí i dost intuitivní textový editor (copy/paste pomocí myši funguje se současně stitnutou klávesou shift).
 
Rovněž oceníme schopnost práce se vzdálenými stroji, ať už přes ftp, ssh, nebo Sambu.
 
Jinak si přečtěte vestavěnou nápovědu. Je opravdu co číst.:o)
 
==ruční přidávání / odebírání balíčků ==
 
Debian používá pro správu balíčků celkem namakaný systém.
 
===apt - zdroje balíčků===
Většina debianích programů, které manipulují softwarovými balíčky využívá databázi zdrojů ''apt''. Tu najdeme v souboru:
 
/etc/apt/sources.list
 
Tyto zdroje, jak je zřejmé, popisují odkud mají instalační programy balíčky brát.
 
Během instalace jsme měli možnost vybrat jeden hlavní zdroj, zpravidla CD. Do ''sources.list'' Můžeme přidat i další (ručně):
 
deb cdrom:[Debian GNU/Linux 3.1 r0 _Sarge_ - Official - i386 Binary-1 (20050605)]/ unstable contrib main
deb http://security.debian.org/ stable/updates main contrib
deb http://ftp.cz.debian.org/debian/ stable main
deb-src http://ftp.cz.debian.org/debian/ stable main
 
Pozn: První řádek byl rozdělen, aby se to sem vešlo. V souboru ho zase spojte.
 
Ještě jedno místo stojí z pozornost:
 
/var/cache/apt
 
Sem si aptoidní programy ukládají balíčky stažené z Internetových zdrojů, které jste chtěli instalovat. Viz dále apt-get.
 
===aptitude===
 
Je velmi pohodlný program pro správu softwarových balíčků pro konzolové prostředí.
 
Program <code>`aptitude`</code> nabízí vyhledávání v seznamech balíčků. Dělá se to stiskem "/" - lomítko (stejně jako ve všech vi-like programech). Objeví se řádek, do kterého můžeme napsat jméno, nebo část jména, nebo regulární výraz. Nabízí se i pár dašlích vypečeností - viz dokumentace.
 
Když píštete do okénka, hned se hledá. Standardně se prohledávají názvy balíčků. To co píšete se vyskytuje někde uvnitř názvu. Takže "apach" může zobrazit balíčky "Apache", ale i "libapache",... Trváte-li na tom že název musí začínat tím, co píšete, napište jako prvni znak stříšku "^apach". Pak se najde "Apache", ale "libapache" ne.
 
Můžete vyhledávat nejen v názvech, ale i v popisech balíčků. Pak do vyhledávacího okénka napište nejdříve "~d". Zápis "~dapach" tedy bude nabízet balíčky, v jejichž názvu i popisu se vyskytuje "apach".
 
Když pracujeme v grafickém režimu (což se nám na našem serveru nepoštěstí), můžeme použít program <code>`synaptic`</code> - grafická obdoba <code>`aptitude`</code>. Nahlédneme-li do dokumentace obou programů, zjistíme, že ten grafický je jen slabým odvarem toho konzolového. Jako obvykle.
 
===apt-get===
Další možností je použít klascký příkaz <code>`apt-get`</code>. Zvláště v hotovém systému je príma udržovat vše aktuální pomocí této trojice příkazů:
 
# apt-get update
# apt-get upgrade
# apt-get autoclean
 
První si zaktualizuje databázi balíčků, druhý provede aktualizaci software (nainstaluje nové verze balíčků). Protože používáme verzi Debianu "stable", nemusíme se bát, že se toho bude stahovat moc. Půjde vlastně jen o '''bezpečnostní aktualizaci'''. Třetí příkaz
odstraní z cache zastaralé balíčky.
 
===dpkg===
Dál tu máme příkaz <code>dpkg</code>, který pracuje na nižší úrovni než apt-get. Umožňuje například nainstalovat balíček, který jsme si stáhli odjinud, než z debianích zdrojů:
 
# dpkg -i jmeno-souboru-s-balickem.deb
 
dále nabízí možnost vypsat si seznam nainstalovaných balíčků:
 
# dpkg -l
 
vypsat seznam souborů konkrétního nainstalovaného balíčku:
 
# dpkg -L aptitude
 
vypíše obsah balíčku aptitude - všimněme si, že se zadává jen první část jména balíčku.
 
===Znovuspuštění konfigurace balíčku===
Při instalaci si všimnete, že některé balíčky se vyptávají na výchozí nastavení, jak si ho přejeme. Potřebujeme-li tuto základní konfiguraci zopakovat, použijeme příkaz:
 
# dpkg-reconfigure jmeno-balicku
 
==Framebuffer pro konzoli==
Lépe se nám v konzoli bude pracovat, využijeme-li možnosti zvětšit si rozlišení monitoru. To se zajistí parametrem pro jádro vga=nnn. Výchozí nastavení je vga=normal, to zajišťuje rozlišení 25 řádků a 80 znaků v řádku. Změna nastavení se projeví po restartu počítače.
 
{|
| <:>'''vga'''||<:>'''body'''||<)>'''sl.xřád.'''
|-
| <:>normal||<:>-||<)>80x25
|-
| <:>791||<:>1024x768x64k||<)>128x48
|-
| <:>790||<:>1024x768x32k||<)>128x48
|-
| <:>773||<:>1024x768x256||<)>128x48
|-
| <:>778||<:>800x600x64k||<)>100x36
|-
| <:>787||<:>800x600x32k||<)>100x36
|-
| <:>771||<:>800x600x256||<)>100x36
|-
| <:>785||<:>640x480x64k||<)>80x30
|-
| <:>784||<:>640x480x32k||<)>80x30
|-
| <:>769||<:>640x480x256||<)>80x30
|}
 
===grub ===
 
Otevřeme /boot/grub/menu.lst, najdeme řádek "kernel" a přidáme (třeba na konec) onen kouzelný parametr. Takže ten řádek pak může vypadat třeba takto:
 
kernel /boot/vmlinuz-2.6.8-2-686 root=/dev/hda3 ro vga=791
 
===lilo===
 
V obecné sekci souboru /etc/lilo.conf (první část) najdeme a upravíme řádek:
 
vga=791
 
==LogWatch - výpisy logů==
 
Systém, jakož i řada programů vypisuje zprávy o své činnosti do systémových logů, které najdeme v
 
/var/log
 
Studovat bychom je měli nejlépe denně. Zprávy v těchto souborech jsou řazeny chronologicky, takže je těžké se v nich oreintovat. Proto vznikly programy na analýzu logů. Jedním z nich je ''logwatch''. Ve výchozím nastavení ho spustí jednou za den ''cron'' a vygeneruje e-mail pro uživatele ''root'' (mail ve skutečnosti dostane uživatel, kterého jste při instalaci určili jako příjemce e-mailů roota). V tomto e-mailu
je vše uspořádáno přehledně podle služeb, které do logů prováděly zápisy.
 
Příjemné počteníčko! :o)
 
=Hlavní serverové služby=
==Quotas - hlídání obsazeného prostoru==
 
Systém quotas umožňuje nastavit pro jednotlivé uživatele, kolik mohou maximálně obsadit diskového prostoru. Je možno nastavit limit pro objem dat a pro počet souborů. My vystačíme s hlídáním objemu.
 
Jsou tu tři důležité parametry:
 
; soft limit : říká, kolik místa může uživatel obsadit. Tento prostor je možno dočasně překročit až po
; hard limit : Ten je o něco větší než soft limit a je maximální, nepřekročitelnou mezí.
; grace time : nastavuje čas, po který je překročení soft limitu tolerováno. Výchozí nastavení je jeden týden.
 
Kromě průběžného hlídání, systém quotas pravidelně spouští test na překročení soft limitu a sám automaticky pošle varovný e-mail uživatelům, kteří jsou přes.
 
===Předpoklady===
 
Hlídání uživatelských kvót má svoji podporu v linuxovém jádru. Ale aby to mohlo fungovat, budete muset ještě splnit podmínku, že hlídané prostory jsou namountovány na souborovém systému, který kvóty ovládá. O tom jsem psal už v kapitole instalace serveru - rozdělení disku. Vybrali jsme souborový systém <code>`xfs`</code>.
 
Kvótování je třeba nastavit v <code>`/etc/fstab`</code> tak, že přidáme parametr <code>`usrquota`</code>.
Příslušné řádek v tomto souboru pak budou vypadat nějak takto:
 
/dev/sda3 /home xfs defaults,usrquota 0 2
 
Po úpravě fstab je nutné příslušný filesystém odmountovat a znovu namountovat.
 
Dále je potřeba nainstalovat balíček <code>`quotatool`</code>, který obsahuje příkazy pro nastavování a kontrolu kvót.
 
Vlastní hlídání kvót se zapíná standardním způsobem:
 
# /etc/init.d/qouta start
 
Při startu systému se to samozřejmě zapne samo.
 
===Nastavení kvót===
 
Pokud budete přidávat uživatele pomocí dodávaného programu <code>`ug-start.sh`</code>, pak se kvóty budou nastavovat automaticky podle hodnot uvedených v konfiguračním souboru tohoto programu - viz. kapitola věnující se tomuto programu.
 
Přidáváte-li uživatele ručně, nebo chcete-li limity změnit, použijte příkaz:
 
setquota franta 50000 60000 0 0 /home
 
Tedy říkáme, že uživatel franta bude mít v rámci <code>/home</code> soft limit nastaven na 50MB a hard limit na 60MB. Ty další dvě nuly říkají že počet souborů nebude omezován.
 
V našem řešení ještě nastavujeme limity na <code>/var/mail</code>
 
setquota franta 10000 12000 0 0 /var/mail
 
Pokud jde o grace-time, ten nemusíme nastavovat; použije se výchozí hodnota, což je jeden týden. Pokud chceme, tak se to dělá:
 
# setquota -t 604800 0 /home
 
pro všechny uživatele najednou, nebo
 
# setquota -T franta 604800 0 /home
 
pro jednoho konkrétního uživatele. Opět hlídáme limity pro objem (první číslo) a pro počet souborů. Hodnota se zadává ve vteřinách, nula znamená "neomezeně".
 
Pokud přidáváme další uživatele, můžeme si ušetřit práci pomocí příkazu
 
edquota -p franta milos anicka bejby kozlik
 
To říká, aby se uživatelům milos,... nastavily kvóty podle uživatele franta.
 
Informace o obsazení prostoru si může root zjišťovat příkazem <code>`repquota`</code>. Zadá-li se parametr <code>`-v`</code>, dozví se toho ještě víc.
 
A samozřejmě dokumentace a manuálové stránky.
 
Jen ještě jednu informaci. Chcete-li někoho neomezit, nastavíte mu kvóty na 0. Nula znamená "neomezeně".
 
==Správa uživatelů a skupin==
 
Děláme to pro lidi, že? Tohle byl dost kritický moment, protože školy potřebují správu skupin a uživatelů provádět ve vlastní režii, ale nemají administrátory, kteří by ovládali Linuxové systémy. Vyřešil jsem to napsáním skupiny skriptů, které nabízejí systém menu v prostředí konzole (program Dialog), takže není nutné dělat to úplně ručně.
 
Pro začátek si ale zkusme představit, že by se to ručně dělat muselo, aby bylo jasné, co ty skripty dělají.
 
===pojmenovávání skupin===
 
Uspořádávat uživatele do skupin možná není tak úplně nutné. Vystačili bychom možná s jedinou skupinou <code>`users`</code>. Debian má ve zvyku vytvořit každému uživateli stejnojmennou skupinu a zařadit ho do ní (uživatel franta, skupina franta). Nicméně škola je členěna do ročníků a tříd a my to zohledníme, protože nám to usnadní práci s těm, kdo hromadně školu opustí po deváté třídě.
 
Navrhuji systém skupin, kde co třída do skupina. Skupiny mají jméno podle roku, kdy do školy přišly, doplněné písmenem třídy. Takže takhle:
 
název skupiny: z1998b
z jako žáci
1998 - rok nástupu (tedy 7. ročník v roce 2005)
b - 7.B
 
Další skupiny si můžeme samozřejmě vymyslet pro učitele a pro personál. Budeme-li potřebovat pracovat s celou skupinou naráz, jednoznačné pojmenování nám hodně pomůže.
 
===pojmenovávání uživatelů===
 
Jméno uživatele je současně jménem domovského adresáře, který bude vidět jak z Linuxu, tak MS Windows. Také je jménem poštovní schránky. Z toho vyplývá, že by mělo být bez diakritických znamének.
 
Další důležitá věc je, že jméno uživatele musí být uvnitř celého systému jednoznačné - a to i napříč skupinami. Nemohou být dva uživatelé téhož jména. Na to je potřeba dát pozor zvláště při hromadném vkládání uživatelů. Duplicitní uživatel přidán nebude, protože to prostě není možné.
 
===domovské adresáře===
 
Pro přehlednost doporučuji seskupovat uživatelské adresáře do adresářů s názvy skupin takto:
 
```/home/z1998b/fr.horak/
 
===ruční přidávání===
 
Naštěstí nebude potřeba, protože máme zmíněný <code>`ug-start.sh`</code>, ale pro představu: Uživatele je potřeba přidat do systému a přidělit mu heslo pro přihlašování. Je třeba vytvořit skupinu, pokud ještě neexistuje. Je potřeba přidat uživatele do <code>`samby`</code> a také mu musíme nastavit diskové kvóty.
 
Ruční práce by sestávala z tohoto postupu:
 
groupadd -g 10000 z1998b
mkdir /home/z1998b
chown nobody.z1998b /home/z1998b
chmod 775 /home/z1998b
useradd -u 10001 -g z1998b -G (další skupiny) -d /home/z1998b/fr.horak -s /bin/sh -m -k /etc/skel -p fr.horak
(zadat heslo)
smbpasswd -a fr.horak
(zadat heslo pro sambu)
setquota fr.horak 40000 50000 0 0 /home
setquota fr.horak 10000 12000 0 0 /var/mail
 
Takže asi proto máme na těžkou práci stroje.
 
===program ug-start.sh===
 
Nabízí správu skupin a uživatelů pomocí menu. Umožňuje vytvářet, mazat, přejmenovávat a vypisovat skupiny. Dále vytvořit uživatelský
účet, přičemž skupinu vybíráme z menu (nemusíme si jí pamatovat). Uživatele přidá do obou systémů (výchozí i samba), automaticky
nastaví výchozí heslo na <code>123456</code> a nastaví kvóty.
 
Veškeré parametry pro tento program jsou uloženy v souboru s názvem <code>`promenne`</code>, který najdeme v adresáři tohoto skriptu. Najdeme tu mimo jiné:
 
PRAVA_ADR_SKUP=775 # Vychozi prava k adresari skupiny
PRAVA_ADR_HOME=0711 # Vychozi prava k domovskemu adresari
GRP_NO_BEGIN=10000 # Pocatecni hodnota pro cisla skupin /etc/group
GRP_NO_END=15000 # Maximalni hodnota pro cisla skupin /etc/group
USR_NO_BEGIN=10000 # Pocatecni hodnota pro cisla uzivatelu /etc/passwd
USR_NO_END=25000 # Maximalni hodnota pro cisla uzivatelu /etc/passwd
QUOTAH_UZIV_HOME=40000 # Limit hard v KB pro domovsky adresar uzivatele
QUOTAS_UZIV_HOME=30000 # Limit soft v KB pro domovsky adresar uzivatele
QUOTAH_UZIV_MAIL=15000 # Limit hard v KB pro soubor mailu v /var/mail/
QUOTAS_UZIV_MAIL=15000 # Limit soft v KB pro soubor mailu v /var/mail/
 
Takže výchozí práva pro adresáře skupiny a uživatele, rozsah čísel skupiny a uživatele a výchozí velikosti pro systém kvót. Je tam ještě pár dalších věcí, ale do těch zasahovat nebudeme.
 
Uvedené parametry můžete upravit podle vašich potřeb - třeba můžete přidělit větší prostor pomocí kvót.
 
Nastavení, která nebudou jednotlivým uživatelům vyhovovat, můžeme změnit dodatečně ručně. Mám na mysli hlavně kvóty, které mohou ve většině případů vyhovovat (pro žáky), ale nemusí se líbit některým učitelům. O kvótách se tu ale píše jinde, takže to tu už nebudu dál rozmazávat.
 
Program <code>`ug-start.sh`</code> je dodáván ve formě [[Linux:tar|tar]] balíčku, který si vybalíme, nejlépe do podadresáře v adresáři <code>`/root/`</code>.
 
==DNS a DHCP==
Obě tyto služby vyřešíme jedním balíčkem s názvem <code>`dnsmasq`</code>. Funguje jako DNS cache i jako DHCP server. A hlavně je dost jednoduchý.
 
===DNS===
 
DNS (Domain Naming System) je služba, která převádí doménové názvy na Internetu na jejich IP adresy. Doménová jména používají lidé, IP adresy používají počítače mezi sebou. Zhruba řečeno.
 
DNSmasq není plnohodnotný DNS server, ale jen cache. Kešuje DNS dotazy, které z vnitřní sítě vysílají prohlížeče Internetu. První dotaz na nějakou doménu program ještě neumí odpovědět, takže se zeptá nadřízeného DNS serveru. Následující dotaz na stejnou doménu je už vyřízen z keše, tedy podstatně rychleji.
 
===DHCP===
 
DHCP server slouží k poskytování informací o síti počítačům, které nemají pevnou konfiguraci sítě. Takový počítač může vyslat do sítě dotaz na DHCP server a ten mu potřebné údaje pošle. Mezi tyto informace patří především: IP adresa pro dotazující se stroj a příslušná maska sítě. Dále je to adresa DNS serveru, název domény v níž se stroj nalézá, případně další informace.
 
My budeme používat kombinované řešení: Stálé počítače budou mít pevně nastavenou síť. DHCP server pak bude přidělovat IP a další věci počítačům přenosným. Samozřejmě je možné nechat všechny počítače v síti konfigurovat pomocí DHCP. Je to snazší pro začátek. Pro diagnostiku problémů v síti je to ale už o něco horší. Takže si vyberme.
 
Doporučuji nechat DHCP serveru přidělovat IP adresy z rozsahu řekněme 30-99. Adresy 100-250 nechat pro pevně nastavené stroje. Adresy 1-29 a 251-255 pak rezervujeme pro servery ap. Pro pracovní stanice s používat nebudou. Uvedená čísla jsou míněna jako poslední číslo v IP adrese ze sítě 192.168.x.y. Je to tedy to y. X je číslo sítě - obvykle 1, pokud nemáme podsítí více.
 
===Nastavení===
 
Nastavení je prováděno pomocí konfiguračního souboru <code>`/etc/dnsmasqconf`</code>. Tento soubor je opatřen kvalitními komentáři. Nastavíme tu tyto položky:
 
domain-needed
bogus-priv
except-interface=eth0
expand-hosts
domain=nase-skola.cz
dhcp-range=192.168.1.30,192.168.1.100,36h
dhcp-range=192.168.2.30,192.168.2.100,36h
 
První dva parametry zajišťují, že dnsmqsq nebude předávat nadřízeným DNS serverům dotazy ne neúplné názvy domén.
 
Další parametr říká, že požadavky budou vyřizovány na všech síťových rozhraních, vyjma <code>`eth0`</code>, což je rozhraní, které vede za sítě ven. Zbytku Internetu DNS a DHCP serverem být opravdu nechceme.;-) Následující parametr říká, aby k názvům bez domény bylo automaticky přidáváno jméno naší domény - viz další parametr.
 
Další dva řádky přidělují rozsah IP adres pro dvě podsítě. Pokud jde o nadřízené DNS servery, ty si DNSmasq zjišťuje ze standardního
souboru <code>`/etc/resolv.conf`</code>.
 
===resolv.conf===
 
Ten by měl vypadat nějak takto:
 
domain nase-skola.cz
nameserver 127.0.0.1
nameserver 194.228.105.33
nameserver 194.228.105.34
 
Říká, aby požadavky na vyřízení DNS dotazů byly nejdřív vyřizovány tímto strojem (adresa 127.0.0.1), pak budou žádány nadřízené DNS servery. Jejich adresy nám sdělí provider připojení.
 
==NAT a Firewall==
Opět jsem použil jednoduché řešení, balíček <code>`ipmasq`</code>, který je postaven na <code>`iptables`</code> - standardním firewallu pro Linux. Program <code>`ipmasq`</code> nabízí především NAT - překlad adres, tzv. "maškarádu", což umožňuje počítačům
na LAN vidět do Internetu, avšak počítačům z Internetu je vnitřní síť neviditelná.
 
Po naistalování je <code>`ipmasq`</code> okamžitě funkční. Sám si totiž dovede podle nastavení sítě odvodit, jak má pracovat. Do jeho nastavení tudíž není nutno zasahovat. Dokonce i v případě, že je na serveru víc síťových rozhraní než dvě. Dokonce se správně nakonfiguroval i na stroji, kde všechny tři síťové karty vedly do privátních adresních prostorů!
 
Bez další konfigurace máme tedy okamžitě funkční NAT.
 
Pokud potřebujeme firewall, i tady nabízí <code>`ipmasq`</code> řešení. Musíme se ale
podívat do dvou důležitých adresářů:
 
/etc/ipmasq/rules
 
kde jsou nastavena pravidla. Jsou to vlastně skripty, spouštějící <code>`iptables`</code>.
 
/usr/share/doc/ipmasq/examples/stronger
 
V <code>`examples`</code> jsou - jak název říká - ukázky dalším možných pravidel. My si zkopírujeme soubory I80*,A80* a O80* do toho prvního adresáře. Pak si otevřeme ten jehož název začíná A80 a všimneme si řádky:
 
<pre>EXTERNAL_TCP_ALLOW="ftp ssh www pop3 smtp imap https imaps pop3s"</pre>
 
V ní přidáme/ubereme služby, které chceme mít viditelné z venčí, z Internetu.
Možná si tu všimneme věty, abychom názvy protokolů nenahrazovali jejich čísly,
protože to může vést k problémům. Takže tu bude http, a ne 80, atd.
 
Změny otestujeme po restartu <code>ipmasq</code>
 
<pre>/etc/init.d/ipmasq restart</pre>
 
odněkud zvenčí. Programů je na to dost. Nejjednodušší pro Linux bude asi <code>nmap</code>:
 
<pre># nmap nase-skola.cz</pre>
 
== 6.5. Samba fileserver ==
 
Samba je program, který umožňuje linuxovému stroji vystupovat v sítích Microsoft a tvářit se, že na něm jedou MS Windows. Umí tedy vytvářet sdílené složky, ale umí toho postatně víc.
 
Poznámka: Samba patří k tomu složitěšímu, co nás potkává. Nejsem samba-guru, proto vděčně přijmu jakékoliv připomínky či vysvětlení. Díky. Přidám je sem.:o)
 
My využijeme Sambu jako doménový řadič. To nám umožní mít centralizovanou správu uživatelských účtů na linuxovém serveru. To znamená, že uživatelé, kteří se budou přihlašovat na stanicích s MS Windows, budou ověřováni na linuxovém serveru. Na tomto serveru rovněž budou mít úložný prostor pro svoje data.
 
Dále budou na serveru vytvořena obecně přístupná sdílení:
 
programy
kde budou programy pro MS Windows stanice, které budou součástí výuky ve škole
test
kam budou mít žáci právo k zápisu a budou tam ukládat výsledky svých prací. Učitel si je odsud pak může kopírovat kamkoliv jinam.
 
Samba je poměrně rozsáhlý systém, o kterém vyšla i kniha. Doporučuji ji mít.
 
=== 6.5.1. Konfigurace serveru ===
 
Konfigurace se nastavuje v několika souborech. Tím hlavním je:
 
<code>/etc/samba/smb.conf</code>
 
Jeho obsah si teď po částech vypíšeme a rozebereme:
 
<pre>
[global]
netbios name = dataserver
workgroup = obecna
server string = Debian Linux - Samba fileserver
</pre>
Takže jsme řekli, kdo jsme. Workgroup funguje i jako jméno domény.
 
<pre>
wins support = yes
dns proxy = no
name resolve order = wins host bcast
</pre>
Povolili jsme převod jmen na IP adresy pomocí wins databáze. Pokud vyhledávání
ve wins neuspěje, použije se soubor /etc/hosts, jako poslední možnost
je ''broadcast'', což je nejjistější, ale taky nejpomalejší metoda.
 
<pre>
interfaces = 192.168.1.1/24, 192.168.2.1/24, 127.0.0.1/8, localhost
hosts allow = 192.168.1., 192.168.2., localhost
</pre>
Samba bude naslouchat na síťových rozhraních ''interfaces''. Přihlašovat
se mohou stroje (''hosts allow'') s uvedenými IP adresami či jmény. Můžeme
tu zadat i celou síť, jako je to v uvedeném případě, což nám umožní
nezadávat všechny počítače po jednom. Kdyby bylo potřeba nějaký počítač
ze sítě vyloučit, máme v záloze direktivu ''hosts deny''.:o)
 
<pre>
log level = 1
max log size = 1000
log file = /var/log/samba/log.%m
syslog = 0
panic action = /usr/share/samba/panic-action %d
</pre>
Samba bude o své činnosti podávat svědectví do logových souborů. Podrobnost
je nastavena na 1 (dvojka je fakt moc ukecaná a hodí se třeba, když hledáte
chybu. Trojka je maximum). Maximální velikost logu je 1MB (Po překročení této
velkosti je log přejmenován na jmeno.old a otevřen znovu prázdný). Ten .old
samozřejmě přepíše minulý .old. Další parametr říká, kde budou logy umístěny,
a že se jim bude dávat jméno "log-tečka-jméno_počítače". Dále říkáme, že
do sysolgu se nic psát nebude. Panic action moc nerozumím. No, hlavně že
máme řešení (kromě Stopařova průvodce po Galaxii do D.Adamse:o)
 
<pre>
security = user
encrypt passwords = yes
# passdb backend = tdbsam guest
passdb backend = smbpasswd
guest account = nobody
# invalid users = root
unix password sync = yes
passwd program = /usr/bin/passwd %u
# passwd chat = ...
# passwd chat debug = yes
obey pam restrictions = yes
pam password change = yes
</pre>
Zabezpečení je na úrovni ''user'', což je jediná možnost vhodná pro naše účely.
Hesla budou z MS Window strojů chodit zašifrovaná. Dál říkáme, kam se budou
informace o uživatelých ukládat (''backend''), zda do tdb databáze, nebo do smbpasswd,...
(viz níže v kapitole o uživatelských účtech v Sabmě) - tady je vybrán smbpasswd. Pro win uživatele
''guest'' bude použit linuxový účet ''nobody''. Uživatele root si nezablokujeme, protože
by mj. uživatelé nemohli měnit svoje hesla...(z tohodle jsem fakt kvetl). Budeme synchronizovat hesla
v Sambě i v Linuxu - tj. když si uživatel ze stroje s MS Windows bude měnit
heslo, změní se v obou databázích uživatelů. Passwd program je snad jasný,
jen podoktněme, že při nasatavení přes PAM (o kousek níže) by neměl být tento paramter
potřeba - ale ani nepřekáží...
Passwd chat jsem nakonec zakomentářoval, protože ten parametr prostě nechybí! :o)
Poslední dva parametry zajišťují spolupráci Samby a systému ověřování ''pam''.
 
<pre>
socket options = TCP_NODELAY
</pre>
Tohle se tam prostě dává...
 
<pre>
domain master = yes
preferred master = yes
os level = 100
domain logons = yes
</pre>
Tato nastavení zajistí, že náš server bude tím nejdůležitějším v celé windows
síti.
 
<pre>
# logon script = logon.bat
# logon home = \\%N\%U\.winprofile
logon home = \\%N\%U
logon path = \\%N\%U\.winprofile
logon drive = H:
time server = yes
unix charset = iso8859-2
</pre>
Jaký skript se spustí na win mašině, když se uživatel přihlásí. Domovský
adresář uživatele (ten první home by se použil pro stroje s Win98, ta
druhá varianta pro WinXP Pro). Logon path je místem pro ukládání cestovních
profilů. Tu tečku před jménem (.winprofile) dáme proto, aby se složka
chovala jako skrytá. Domovský adresář se zjeví na Win mašině
jako síťový disk H:. Win počítače mohou používat server pro střizování
svých hodinek. Charset nám zajistí, že jména souborů budou vypadat
stejně v Linuxu i MS Windows a to i přesto, že každý používají jinou
znakovou sadu (Linux iso8859-2, MS Windows ibm-852).
 
<pre>
add machine script = /usr/sbin/useradd -s /bin/false -d /tmp '%u'
</pre>
No, tohle jsem zatím nevyužil. Ale možná, že to funguje. Viz kapitola
o přidávání počítačů do domény.
 
<pre>
[netlogon]
comment = Sitova prihlasovaci sluzba
path = /home/admin/netlogon
guest ok = yes
read only = yes
share modes = no
browseable = no
</pre>
Tahle část se týká adresáře s pomůckami pro přihlašování. Mj. se sem dávají
přihlašovací skripty (viz výše ''logon script'').
 
<pre>
[homes]
browseable = no
read only = no
create mask = 644
directory mask = 700
</pre>
Domovské adresáře uživatelů. Po přihlášení uvídí uživatel svůj domovský
adresář buď jako sdílení s adresou \\server\\uziv-jmeno, nebo jako
disk H: (viz výše). Uživatelské adresáře ostatních uživatelů neuvidí
(''browsable''). Může do něj i zapisovat. A jaká unixová práva budou nastavena
když si uživatel vytvoří nový soubor nebo adresář ve své domovské složce.
Nastavení práv je samozřejmě věc důkladného přemýšlení.
 
<pre>
[programy]
comment = Programy pro Windows
browseable = yes
read only = yes
guest ok = yes
path = /home/admin/programy
</pre>
Toto sdílení uvidí všichni uživatelé. Sem se může dát všcheno,
co chceme, aby uživatelé mohli používat bez rizika, že to smažou.
Třeba tu múžou být výukové programy,...
 
<pre>
[test]
comment = Sem muzete zapsat cokoliv :o)
browseable = yes
read only = no
guest ok = yes
path = /home/test
</pre>
Toto je univerzálně využitelné sdílení, kam mohou všichni uživatelé zapisovat.
V našem systému je zamýšleno jako místo, kam můžou žáci ukládat výsledky testů.
Bohužel tu nefunguje možnost nastavit kombinaci práv 333, kdy mohou uživatelé
ukládat, ale nezobrazuje se jim obsah adresáře. Tady si Linux (kde to funguje)
s MS Windows nerozumí. Zkusíte-li to tak nastavit, budou MS Windows při pokusu
otevřít složku s takto nastavenými právy hlásit, že nemáte právo tam vlézt.
V Linuxu tam vlezete, jenom neuvidíte, co tam je za soubory. Toto řešení (''333'')
by aspoň trochu omezilo riziko, že někdo zlomyslný bude mazat soubory kolegů...
 
=== 6.5.2. Přidávání počítačů do domény ===
Aby se mohli uživatelé v doméně přihlašovat, musí to udělat z nějakého počítače.
A Win-doména se nebaví s každým počítačem, ale jenom s takovým, který je
zaregistrovaný v databázi Samby. To se týká pracovních stanic s WinNT/2000/XP.
Máte-li na nich Win98, můžete tuhle kapitolu přeskočit - s nima se do domény
dostanete vždycky.
 
Počítač v doméně "zlegalizujeme" tak, že mu vytvoříme normální uživatelský účet
v Sambě. Podle dokumentace je nutné ho přidat i do ''passwd'', ale jen u
Samby do verze 2.2. Můžu vám prozradit, že to je potřeba i u Samby verze 3.0.:o)
Takže ho přidáme do obou databází.
 
Účet se bude jmenovat stejně, jako je jméno počítače, jen se za název ještě
přidá znak ''$''. Takže:
 
<pre>
# smbpasswd -a pc01$
# useradd pc01$
</pre>
Budeme požádáni o zadání hesla. Na něm nezáleží, takže tam dáme něco univerzálního,
co nikdy nezapomeneme, třeba oblíbené ''123456''.
 
Pak je potřeba aby se klientský počítač v doméně zaregistroval. Přhlásíte se
na něm jako administrátor. Pak Ovládací panely -> Systém -> karta Název
počítače -> tlačítko Změnit. Zadáte název počítače a jméno domény jejímž
bude členem (v našem smb.config máme jméno OBECNA). Až to potvrdíte O.K.
nastane šok - budete požádáni o uživatelské jméno a heslo a nebudete vědět,
která bije.
 
Takže: Jde o uživatelské jméno a heslo uživatele, který smí přidávat stroje
do domény. Ten uživatel se shodou okolností jmenuje ''root'' a musí být
v databázi uživatelů Samby. Tento root nemá v zásadě nic společného s opravdovým
rootem - linuxovým účtem na serveru. Mohou mít tedy odlišná hesla, a řekněme
si na rovinu, měli by mít odlišná hesla.
 
Přeběhneme tedy k serveru a přidáme uživatele ''root'' do databáze uživatelů Samby:
 
<pre>
# smbpasswd -a root
</pre>
O heslo si to řekne samo v zápětí. Pak se můžete vrátit ke klientské stanici
a zadat jméno root a jeho heslo. Po stisku O.K. by se mělo objevit hlášení,
vítající vás do domény. Držím vám palce!
 
Od dalších počítačů už odbíhat nemusíte, roota jste už do Samby přidali.
 
Pro ty, které uživatel ''root'' v databázi hesel Samby znervózňuje:
Po přidání všech počítačů do domény můžete tento účet zase zrušit. Budete-li
v budoucnu potřebovat přidat další stroj (nebo po přeinstalaci MS Windows),
tak si toho pseudo-roota zase na chvíli zřídíte, no.
 
=== 6.5.3. Uživatelé v doméně ===
Jak víme, Linux si udržuje
informace o uživatelých a skupinách v souborech ''passwd'', ''shadow'' a ''group'',
které se nacházejí v adresáři /etc.
 
Sambě tyto soubory ale nejsou moc platné, protože je nemůže využít k ověřování
hesel. Hesla jsou v souboru ''shadow'' uložena zašifrovaně. Pokud se přihlašuje
uživatel ze stroje s MS Windows, přijme Samba jeho heslo, které je už také
zašifrované. Problém je, že jiným šifrovacím mechanismem.
 
Tento problém se dá obejít tak, že se MS Windows stanice nastaví tak, aby posílaly
heslo nešifrovné. To ale přináší zase další problémy, takže to vlastně řešením není.
Víc si o tomto problému přečtěte ve zmíněné knize.
 
Je to vyřešeno takto: Samba si udržuje vlastní databázi uživatelů, obdobnou té linuxové.
Ano je to nepříjemné, ale je to nevyhnutelné: Používání Samby znamená, že budme
mít dvě databáze uživatelů... Tj, přidáváme-li uživatele do systému, musíme ho přidat
dvakrát: Jednou klasicky Linuxově a jednou pro Sambu.
 
Uložení uživatelů v Sambě může být provedeno několika způsoby. V podstatě dvěma.
Buď klasicky v:
 
<pre>
/etc/samba/smbpasswd
</pre>
nebo moderněji v tdb databázi, která se pak nachází v adresáři <code>/var/lib/samba</code>
 
Měli bychom používat ten druhý způsob.
 
Tdb databáze není čitelná textovým prohlížečem. K vypisování jejího obsahu slouží
program ''pdbedit'', který toho ale umí mnohem víc. Výpis uživatelů:
 
<pre>
# pdbedit -L
# pdbedit -Lw
# pdbedit -Lv franta
</pre>
 
Sambový program pro údržbu uživatelů je buď ''smbpasswd'', nebo zmíněný ''pdbedit''.
První je jednodušší, druhý zas toho nabízí podstatně více.
 
Každopádně je dobré připomenout, že k údržbě uživatelských účtů máme k dispozci
mnou spáchaný program ''ug-start.sh'', který se o synchronizaci obou databází stará automaticky
a ještě navíc umí udržovat diskové kvóty.
=== 6.5.4. Mapování uživatelů a skupin win/lin ===
Konfigurační soubor <code>/etc/samba/username.map</code> umožňuje mapovat uživatelská jména a skupiny mezi Linuxem a MS Windows. Příklad
objasní vše:
 
<pre>
mirek = miroslav koyot
spravci = @administrators
nobody = *
</pre>
To co je před rovnítkem je Linuxové jméno, co je za ním jsou odpovídající jména
z MS Windows. Více jmen se odděluje mezerou. Když se tedy uživatel ''miroslav''
bude přihlašovat z win mašiny, bude se ověřovat jako ''mirek'' na Linuxu.
Může se rovněž přihlašovat pod jménem ''koyot''. Jak je to s případnou diakritikou
nevím... Druhý řádek mapuje skupinu spravci na Linuxu na skupinu adminstrators.
Tohle mi nějak nefungovalo. Chtěli jsme mít uživatele, který se po přihlášení
z Win mašiny stane pro tu mašinu administrátorem. Řešil jsem to tak, že jsem
vytvořil skupinu ''spravci'' a namapoval jí na skupinu ''admnistrators'', jak
je vidět výše. Pak jsem toho uživatele do té skupiny ''spravci'' přidal. Bohužel,
po přihlášení se ten uživatel svých výjimečných práv nedočkal...
 
Třetí volba namapuje ostatní (tedy neznámé) uživatele na uživatele ''nobody''.
 
== 6.6. Webserver Apache ==
Má svoje konfigurační soubory v <code>/etc/apache2/</code>. Výchozí nastavení je v souboru
<code>apache2.conf</code>.
 
Podadresáře:
 
<table>
<tr><td><code>sites-available</code></td><td>obsahuje konfiguraci www sajtů - virtuálních domén.</td></tr>
<tr><td><code>sites-enabled</code></td><td>zde jsou linky do <code>sites-available</code> na sajty, které mají skutečně běžet.</td></tr>
<tr><td><code>modules-available</code></td><td> dtto pro moduly severu Apache</td></tr>
<tr><td><code>modeles-enabled</code></td><td>opět analogicky.</td></tr>
</table>
 
=== 6.6.1. Naše nastavení ===
==== 6.6.1.1. Uživatel Webmaster ====
Zřídíme si jeden (pro začátek to stačí) účet pro uživatele, který bude mít
právo měnit internetové stránky. Budeme ho muset vytvořit ručně:
 
# useradd -d /var/www/nase-stranky/ -g www-data -m -p -s /bin/sh webmaster
 
Budeme-li jej chtít využívat i z MS Windows stanic, budeme ho muset přidat
i do samby:
 
# smbpasswd -a webmaster
 
 
==== 6.6.1.2. Adresář pro stránky ====
Podíváme se, zda opravdu existuje adresář <code>/var/www/nase-stranky/</code> a zda má nastaveno vlastnictví <code>webmaster.www-data</code>. Pokud, ne uděláme to.
 
==== 6.6.1.3. Konfigurace Apache ====
Do adresáře <code>/etc/apache2/sites-available/</code> přidáme konfigurační soubor našich stránek. Nazveme ho třeba <code>nase-skola.cz</code>,
aby bylo jasno. Obsah tohoto konfiguračního souboru najdeme v příloze s nastaveními.
Ještě nezapomeneme udělat link:
 
ln -s /etc/apache2/sites-available/nase-skola.cz /etc/apache2/sites-enabled/010-nase-skola.cz
 
Dále v adresáři <code>sites-enabled</code> zrušíme link <code>000-default</code> - už není potřeba:
 
# rm 000-default
 
Pak budeme muset udělat soubor o jednom řádku do <code>sites-available</code> a pojmenujeme
ho třeba <code>namevirthost.head</code>. Jeho obsahem bude tento řádek:
 
NameVirtualHost *
 
A uděláme link
 
ln -s /etc/apache2/sites-available/namevirthost.head /etc/apache2/sites-enabled/000-namevirthost.head
 
Takže nyní máme v <code>sites-enabled</code> dvě položky:
 
000-namevirthost.head
010-nase-skola.cz
 
Restartujeme Apache server:
 
/etc/init.d/apache2 restart
 
a mělo by to fungovat.
 
=== 6.6.2. Stránky uživatelů ===
Apache nabízí možnost, aby si uživatelé zřídili svoje webové stránky.
Musí si udělat adresář ''public_html'' ve svém domovském adresáři.
Jeho obsah pak bude vidět na adrese:
 
http://nase-skola/~uzivatel/
 
Aby to fungovalo budete muset povolit modul <code>userdir</code> a restartovat Apache:
 
# a2enmod userdir
# /etc/init.d/apache2 force-reload
 
Je-li modul aktivován se můžete přesvědčit nahléduntím do adresáře <code>/etc/apache2/mods-enabled</code>, měl by tam být link na userdir.load a userdir.conf.
 
=== 6.6.3. Apache a SSL ===
Přepneme se do adresáře
 
# cd /etc/apache2/ssl
 
Vygenerujeme si soukromý klíč serveru:
 
# openssl genrsa -rand /sbin/fsck -out server.key 1024
 
Místo /sbin/fsck dejte nějaký jiný soubor. Jde jen o počáteční hodnotu
pro generátor náhody. Ale můžete klidně nechat tenhle.
 
Vygenerujeme žádost o certifikát pro certifikační autoritu:
 
# openssl req -new -key server.key -out server.csr
 
Pokud žádost o certifikát nikam nechceme posílat, vygenerujeme si ho sami:
 
# openssl req -x509 -key server.key -in server.csr -out server.crt
 
Do souboru {{{`/etc/apache2/ports.conf`}}} přidáme řádek
 
Listen 443
 
Do souboru {{{`/etc/apache2/sites-available/nase-skola.cz`}}} přidáme
do sekce <VirtualHost> řádek
 
SSLEngine on
 
Do souboru {{{`/etc/apache2/modules-available/ssl.conf`}}} přídáme dva řádky:
 
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
 
Po restartu Apache by měly fungovat už i adresy s protokolem <code>`https://`</code>.
 
==E-mail server Exim4==
 
Debian Linux používá jako výchozí smtp server program Exim4. Jeho možnosti jsou značné, konfigurační soubory nekonečné,... Naštěstí pro jednoduché podmínky se nabízí i poměrně jednoduché řešení.
 
Při instalaci (viz kapitola o instalaci serverových služeb) jsme zadali vše potřebné. Máme-li pocit, že jsme to trochu pohnojili, nebojte, o kousek dál se píše o tom, jak to nastavit dodatečně.
 
Otestovat funkčnost serveru musíme několika způsoby:
 
1. Odešleme e-mail přímo ze serveru:
 
``` # mail [nekdo@seznam.cz]
 
2. Odešleme e-mail odjinud na server. Třeba z toho seznamu.cz na lokální adresu ''[uzivatel@nase-skola.cz]''.
3. Z lokální sítě.
1. Nastavíme si poštovního klienta (k tomu bude potřeba
mít hotové nastavení POP3 nebo IMAP serveru viz další kapitola)
2. a pošleme z něj mail třeba na ten seznam.cz.
3. Pošleme sobě mail odněkud z venku, třeba zas z toho seznamu.
 
Nefunguje? Zkusme se podívat do konfiguračního souboru Exim4. A také na:
 
===Práva k adresáři s e-maily ===
 
Z nějakého záhadného důvodu má adresář ''/var/mail/'', kam se ukládá došlá pošta uživatelů špatně nastavená práva. Vlastníkem adresáře má být ''root.mail'' a práva nastavená na 775.
 
===Konfigurační soubor Exim4 ===
 
Ten není žádná sranda. Naštěstí nám situaci usnadňuje "nadstavba" použitá v Debian Linuxu, konfigurační soubor:
 
/etc/exim4/update-exim4.conf.conf
 
Jeho obsah po nainstalování bude vypadat asi takto:
 
dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains='nase-skola.cz'
dc_minimaldns='false'
dc_relay_nets='192.168.1.0/24:192.168.2.0/24'
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
 
* Other hostnames nepotřebujeme - hostname se převezme ze systému.
* Local interfaces je prázdné - naslouchá se na všch rozhraních.
* Relay-domains - jasné.
 
Jen zmíním: Když se sem dá *(hvězdička), tj všem, uděláte si ze svého počítače tzv. Open Relay a dostanete se na černou listinu spamerských serverů. Tak pozor.:o)
* Minimal DNS - se nastavuje když jsme za vytáčenou linkou a nemáme přímý přístup k DNS serveru. To není náš případ.
* Realy Nets - z jakých sítí si nás mohou nastavit jako smtp server (komu děláme smarthosta)
* Smarthost - kdo dělá smarthosta nám. Nepotřebujeme, jsme ''smart'' dost sami.:o)
* Ostatní direktivy si můžete nastudovat v manuálové stránce:
 
 
# man update-exim4.conf
 
 
===Neobvyklý restart serveru Exim4 ===
 
Po případných změnách v konfiguračním souboru restartujeme server Exim4 trochu neotřelým způsobem:
 
# invoke-rc.d exim4 restart
 
Intuitivnější varianta <code>`/etc/init.d/exim4 restart`</code> se nemá používat. Nemusely by se restartovat dceřiní démoni běžícího serveru (Dceřiný démon, to si nechám patentovat:o).
 
Po restartu se automaticky vygeneruje nový konfigurační soubor z námi zadaných parametrů:
 
/var/lib/exim4/config.autogenerated
 
 
===Pár užitečných příkazů ===
 
 
# mailq
 
Tento příkaz nám zobrazí obsah fronty nedoručených zpráv. Exim se snaží poštu doručovat okamžitě. Není-li fronta prázdná, znamená to obvykle nějaký problém.
 
# exim4 -Mvl kód-zprávy
 
Vypíše i důvody, proč zpráva visí ve frontě. Kód zjistíme předchozím
příkazem ''mailq''.
 
# exigrep [-l] vzor /var/log/exim4/main.log
 
Prohledává zadaný logový soubor a vypisuje řádky odopovídající vzoru.
 
Parametr -l říká, aby se vzor bral doslova a ne jako regulární výraz.
 
# eximstats /var/log/exim4/mainlog
 
Nabízí souhrný výpis toho, co je zaznamenáno v log souborech. Výstup je možné nechat udělat v různých formátech (txt, html, xls - MS Excel).
 
Ještě tu jsou grafické nástroje, které najdeme v balíčcích ''eximon4'', ''geximon'' a ''pfqueue''.
 
'''eximon4''' nabízí v prostředí X velmi primitivní pohled na fronty bez větší možnosti cokoliv ovlivnit.
 
'''geximon''' je daleko lepší, nabízí stav fronty, pohled na log soubory... Ovšem na našem serveru jsme si grafické prostředí nenainstalovali... Ale můžete si ho tam dát. Nejsem váš šéf. :o)
 
'''pfqueue''' oceníme v konzoli - je to obdoba geximonu napsaná pro konzoli. To si na našem serveru užijeme.
 
===Open Realy ===
 
Pokud si myslíte, že nejhorší věc, která vás v souvislosti s provozováním mail serveru může potkat je, že nefunguje, mýlíte se. Nejhorší je, když mail server funguje moc!
 
Od doby, kdy se spam stal strašákem Internetu, vede snaha o jeho omezení k tvrdým restrikcím vůči serverům, které jeho rozesílání umožňují. K takovým serverům patří i ty, které jsou nastavené jako ''open-relay'' - tedy umožňují, aby si je kdokoliv nastavil jako smpt server pro odesílání pošty.
 
Naše nastavení je z tohoto hlediska bezpečné. Jako odesílací smpt mohou náš server používat jen počítače z naší lokální sítě. Přesto stojí za to, nechat si svůj server otestovat.
 
Jednak si zkuste na nějakém počítači mimo vaši síť nastavit poštovního klienta tak, aby používal jako odesílací smtp server právě ten váš, a pak zkuste poslat e-mail někomu jinému (samozřejmě ne v doméně poštovního serveru, který testujeme;). Poštovní klient by měl hodit chybovou hlášku, že smtp server odmítl poštu doručit.
 
Další možností je využít nějakou testovací službu. Například:
 
* [[http://www.ordb.org/]] - oficiální databáze. Tady pozor, skončí-li váš test "úspěšně" (tj. budete otestování jako open-relay pozitivní), stanete se také hned součástí databáze open-relay serverů, tedy se ocitnete na black listu!
* [[http://www.antispam-ufrj.pads.ufrj.br/test-relay.html]] - tady to není tak divoké. Poztivní test vás jen upozorní, ale nikam nezapíše.
* [[http://www.abuse.net/relay.html]] - i zde se jen testuje bez následků.
* [[http://spamlinks.net/prevent-secure-relay-test.htm]] - tady najdete spoustu odkazů na další možnosti jak testovat (včetně výše zmíněných).
 
Otestování funuje zpravidla takto: Zadáte adresu vašeho poštovního serveru a za chvíli se vám začne vypisovat seznam různých pokusů (až špinavých triků), které by na váš server případný spamer mohl zkoušet. Pokud všechny skončí neúspěchem, můžeme si pogratulovat a jít na pivo.
 
Pokud byste se na blacklistu ocitli, můžete se po opravě mail serveru nechat na ordb.org znovu otestovat a v případě, že je vše O.K., tak vás z blacklistu opět vyřadí.
 
==POP3 a IMAP server Dovecot ==
 
Po naistalování Dovecotu tyto služby neběží, je nutno je zpřístupnit v konfiguračním souboru:
 
/etc/dovecot/dovecot.conf
 
A upravíme direktivy:
 
protocols = imap imaps pop3 pop3s
imap_listen = *
pop3_listen = *
imaps_listen = *
pop3s_listen = *
 
Říkáme, že chceme použít imap i pop3, a to jak ve výchozím režimu (imap, pop3), tak i v šifrovaném přes ssl či tsl (imaps, pop3s).
 
Pak můžeme Dovecot spustit (dáme restart pro sichr, kdyby náhodou přeci jen běžel:):
 
# /etc/init.d/dovecot restart
 
Ostatní výchozí nastavení vyhovují. Tzn. že hesla se budou posílat v plaintextu, tedy nešifrovaně. Umí-li klientský mailový program komunikovat přes ssl, pak se bude moci připojit takto, šifrovaně a nešifrovaná hesla vlastně budou šifrovaná (díky ssl). V opačném případě nám budou přes síť běhat hesla nešifrovaná, což může být problém.
 
Dovecot ovládá i zasílání šifrovaných hesel (cram-md5, digest-md5), jenže zde může být problém s klientem (mailovacím programem), který to neovládá...
 
Taky je třeba vzít v úvahu fakt, že tyto ověřovací mechanismy vyžadují vlastní databázi uživatel/heslo, což by znamenalo další komplikaci při přidávání uživatelů do systému. Navíc v této databázi jsou hesla uložena nešifrovaně, takže se nám bezpečnostní problém pouze přesouvá na jiné místo.
 
Proto nakonec volím výchozí nastavení - zasílání nešifrovaných hesel s možností komunikace klienta se serverm přes šifrovanou vrstvu ssl.
 
===Dovecot a SSL ===
 
Dovecot si během instalace sám vygeneruje ceritfikáty, což si lze ověřit v <code>/etc/ssl</code>. Ve svém poštovním klientu tedy můžete použít místo stadnardních portů pro pop3(110) a imap(443) porty zabezpečené: pop3s(995), imaps(993).
 
==WebMail - Squirrelmail ==
Webmail přidává nad e-mailový systém uživatelské rozhraní ovládané z prostředí internetového prohlížeče. Je to to, co známe třeba ze seznam.cz.
 
Projekt Squirrelmail sídlí na internetových stránkách [http://squirrelmail.org/]. V Debian Linuxu má samozřejmě svůj instalační balíček. Balíčky jsou dva: squirrelmail a squirrelmail-locales.
 
Po nainstalování spustíme program
 
# squirrelmail-configure
 
který se ovládá pomocí jednoduchého menu. Nastavují se tu kosmetické věci, jakož i věci podstatné. Například sekce 2-server settings. Většinou ale zjistíme, že výchozí nastavení vyhovuje. Pozoruhodná je sekce 8-pluggins, kde si můžeme zapnout rozšíření, která jsou po instalaci vypnutá. Další plugginy můžeme stáhnout z domovských stránek projektu. Já třeba pro přidávání adres do adresáře nepoužívám standardně dodávaný pluggin <code>`abook-take`</code>, ale stahuji si <code>`address_add`</code>. Stažené plugginy se rozbalují do adresáře
 
/usr/share/squirrelmail/pluggins
 
Po přidání sem, se příslušný pluggin objeví i v menu programu <code>`squirrelmail-configure`</code>, takže si ho pustíme a pluggin zapneme.
 
Výsledky práce nastavovacího programu jsou uloženy v souboru:
 
/etc/suqirrelmail/config.php
 
ve kterém můžeme dělat úpravy i ručně. Rovněž můžeme použít jako výchozí ten, který je v příloze <code>`nastaveni`</code> tohoto návodu.
 
Další soubor, který nás zajímá je:
 
/etc/suqirrelmail/apache.conf
 
Ten si upravíme. V části <code>`VirtualHost`</code> upravíme název, pod jakým si budou uživatelé
webmail z prohlížeče vyvolávat. Třeba: <code>`webmail.nase-stranky.cz`</code>.
 
Poslední věc, kterou musíme udělat je, říct o webmailu http serveru Apache:
 
ln -s /etc/squirrelmail/apache.conf \
/etc/apache2/sites-enabled/020-squirrelmail.conf
 
A pak Apache restartovat. Spustíme prohlížeč internetových stránek a do adresního řádku zadáme adresu webmailu <code>`http://webmail.nase-skola.cz`</code>. Mělo by to fungovat.
 
=== 6.9.1. Česká kontrola pravopisu ===
Za prvé musíme mít nainstalovaný balíček ''aspell'' a český slovník pro aspell. Slovník v Debianu bohužel chybí, takže si ho musíme stáhnout z
[ftp://ftp.gnu.org/gnu/aspell/dict/cs/ ftp.gnu.org] - bereme ''aspell6-...''. A pak ho nainstalovat.
 
V ''squirrelmail-configure'' Je třeba zapnout plugin ''SquirrelSpell'' a pak ručně editovat soubor
 
/etc/squireelmail/sqspqll_config.php
 
a přidat do něj řádek
 
$SQSPELL_APP['Czech'] = '/usr/bin/aspell -d cs -a';
 
za uzavírací složenou závorku prvního ''if''u.
 
Nebo použijeme předvařený konfigurák ze sekce ''nastavení''.:o)
 
Ve webmailu pak objevíme v sekci "nastavení" podsekci "kontrola pravopisu", v níž vedle anglického bude i český slovník. Nastavíme ho jako výchozí a naše nové majly od teď budou bez překlepů a tak...:o)
 
==MailScanner - maily bez spamu a virů ==
===Instalace ===
 
Nainstalujeme balíčky:
 
MailScanner
 
To je program, který se o vše stará, ale sám nic neumí. Tedy praktického. Chroupe všechny e-maily došlé na náš systém a podle konfigurace je předává dalším programům ke kontrole. Typicky to jsou antivirový a antispamový program.
; ClamAV : Antivirový program pro mailové servery. Je spouštěn MailScannerem.
; ClamAV-freshclam : Důležitá součást antiviru - program, který si z Internetu stahuje aktualizace virové databáze.
; ClamAV-docs : Dokumentace se občas hodí. ;-)
; arj, unzoo, unrar, lha : Balíčky doporučované a navrhované balíčkem ClamAV. Obsluhují různé komprimované archivy.
; SpamAssassin : Spamový filtr, založení na přemýšlení a porovnávání obsahu mailu.
; Razor : Spamový filtr, který identifikuje spamy přímo díky spolupráci s internetovou databází.
 
=== 6.10.2. Nastavení - MailScanner ===
 
====MailScanner.conf ====
 
Otevřeme konfigurační soubor
 
/etc/MailScanner/MailScanner.conf
 
a upravíme následující řádky (uvádím jen nové hodnoty):
 
Cesta k adresáři s českými hláškami:
 
%report-dir% = /etc/MailScanner/reports/cz
 
Dále stručné pojmenování naší organizace. (Toto jméno se má - dle instrukcí - nastavit i v souboru <code>/etc/MailScanner/spam.assassin.prefs.conf</code>). Bude vkládáno mj. do hlaviček e-mailů:
 
%org-name% = Nase-Skola
 
Úplné pojmenování organizace. Může být i víceřádkové. Odřádkování se naznačí pomocí ''\n''.
 
%org-long-name% = Naše Škola v Bolívii \n Za Bogottou 35 \n Paranaa
 
Stránky školy, nebo lépe, stránka s vysvětlivkou, proč byl mail odmítnut ap.:
 
%web-site% = www.nase-skola.cz/mailscanner/vysvetlivky.html
 
V sekci kontroly virů musí být nastaveno:
 
Virus Scanning = yes
Virus Scanners = clamav
 
Tento řádek nastavuje hlavičku, která se přidá do mailu, a která říká, jakého skóre mail dosáhnul z hlediska zda je či není spamem:
 
Spam Score Header = X-%org-name%-MailScanner-SpamScore:
 
A tento říká, jak bude skóre označeno. V tomto případě to bude tolik písmenek ''s'', kolik dostal mail "spamových bodů".
 
 
Spam Score Character = s
 
Kdybychom chtěli místo "syčení" skutečně číslo, nastavíme tohle na ''yes'':
 
SpamScore Number Instead Of Stars = no
 
Tato pravidla užijeme v poštovním programu k filtrování spamu. V nastaveních našeho oblíbeného poštovního klienta si najdeme "filtry" a přidáme podmínku, říkající, že když hlavička ''X-Nase-Skola-MailScanner-SpamScore:'' obsahuje "''ssssss''" (tedy minimálně šest bodů), přesuň jí do složky, kterou si na spamy vytvoříme. Nedoporučuji spam automaticky mazat. Může se stát, že se do spamu dostane i něco zdravého a pak budete litovat.:o)
 
Tím jsme s konfiguračním souborem hotovi.
 
====Další nastavení pro MailScanner ====
 
Aby MailScanner spolupracoval s e-mailovým serverem je potřeba ho do procesu
zpracování e-mailů zapojit. Návod (originál) je zde:
 
file:///usr/share/doc/mailscanner/README.exim4
 
A zde je jeho překlad:
 
'''Jak nastavit MailScanner pro Exim4 v režimu démona'''
 
Změníme práva pro uživatele exim4:
 
# chown -R Debian-exim:Debian-exim /var/spool/MailScanner
# chown -R Debian-exim:Debian-exim /var/lib/MailScanner
# chown -R Debian-exim:Debian-exim /var/run/MailScanner
# chown -R Debian-exim:Debian-exim /var/lock/subsys/MailScanner
 
Vytvoříme spoolový adresář pro příchozí frontu (ten první řádek je dobrá finta, co? taky jste to neznali?:o)
 
# mkdir -p /var/spool/exim4_incoming/{db,input,msglog}
# chown -R Debian-exim:Debian-exim /var/spool/exim4_incoming
# chmod -R 750 /var/spool/exim4_incoming
 
Pokud jste si nakonfigurovali Exim4 s parametrem <code>`Split Exim Spool = yes`</code>, což v našem řešení není, tak koukněnte do originál návodu, je tam pár věcí navíc.
 
Vytvoříme logovací adresář pro příchozí frontu:
 
# mkdir -p /var/log/exim4_incoming
# chown -R Debian-exim:adm /var/log/exim4_incoming
# chmod -R 2750 /var/log/exim4_incoming
 
Upravíme soubor
 
/etc/logrotate.d/exim4-base
 
tak aby rotovaly logy v obou frontách. Já to vyřešil tak, že jsem ho zkopíroval do ''exim4-base-mailscanner'' a v něm jsem upravil cestu k logům z exim4 na exim4_incomming.
 
Upravíme soubor
 
/etc/default/exim4
 
takto:
 
* nastavíme QUEUERUNNER na hodnotu `separate'
* přidáme do QUEUERUNNEROPTIONS `-DOUTGOING'
* přidáme do SMTPLISTENEROPTIONS `-odq'
 
Následující řádky přidáme na záčátek souboru
 
/etc/exim4/exim4.conf.template
 
 
 
.ifdef OUTGOING
SPOOLDIR = /var/spool/exim4
.else
queue_only = true
queue_only_override = false
SPOOLDIR = /var/spool/exim4_incoming
log_file_path = /var/log/exim4_incoming/%slog
.endif
 
Zmíněné řádky jsou uvedeny v
 
/usr/share/doc/mailscanner/examples/01_mailscanner_config
 
Pokud bychom měli dělenou konfiguraci (což nemáme), pak bychom místo předchozího přidávání řádků do exim4.conf.template zkopírovali tento soubor (''01_mailscanner_config'') do /etc/exim4/conf.d/main/.
 
Spustíme aktualizaci konfiguračních souborů Exim4 a restartujeme ho (obě akce udělá tento příkaz):
 
invoke-rc.d exim4 restart
 
Upravíme
 
/etc/cron.daily/exim4-base
 
tak, aby byl volán exim_tidydb na oba spool adresáře (tj i na nový exim4_incomming).
 
Upravíme
 
/etc/default/mailscanner
 
a odkomentářujeme řádek:
 
run_mailscanner=1
 
čímž docílíme toho, že od nyní se bude MailScanner automaticky při startu počítače spouštět.
 
Dále nastavíme v
 
/etc/MailScanner/MailScanner.conf
 
 
Sendmail = /usr/sbin/exim4 -DOUTGOING
Sendmail2 = /usr/sbin/exim4 -DOUTGOING
 
Nyní závěrečná třešínka na dortu:
 
/etc/init.d/mailscanner start
 
a už to frčí!
 
===Nastavení ClamAV - antivirus===
 
V našem řešení je antivirus spouštěn MailScannerem. Výchozí konfigurace antivirového programu bude nejspíš vyhovovat. Chcete-li se tím trochu víc zabývat, například proto, že chcete spouštět ClamAV bez MailScanneru, hledejte v dokumentaci.
 
===Nastavení SpamAssassin - antispam===
 
V našem řešení je SpamAssassin spouštěn prostřednictvím MailScanneru. Pokud bychom chtěli systém pouze se spamovým filtrem (bez AntiViru), pak by byl MailScanner zbytečný. V tom případě by stačilo provozovat samotný SpamAssassin. To ale není předmětem této dokumentace.
 
Dokumentace ke Spamassassinu je mj:
 
/usr/share/doc/spamassassin/
perldoc sa-learn
perldoc Mail::SpamAssassin::Conf
 
Soubory s nastavením hledejme zde:
 
<code>/etc/MailScanner/spam.assassin.prefs.conf</code> - Tohle je místo, kde měnit konfiguraci pro SpamAssassin v případě, že používáme MailScanner. Tento konfigurační soubor přebíjí všechny konfigurace SpamAssassinu (zpracovává se jako poslední). Vlastní konfiguráky SpamAssassinu tedy můžeme ignorovat. Jsou to tyto:
 
* <code>/usr/share/spamassassin/</code> - výchozí nastavení (neměnit!)
* <code>/etc/spamassassin/</code> - naše výchozí nastavení pro všechny uživatele
* <code>~/.spamassassin/</code> - soubory uživatele - některé přidává spamassassin sám.
* <code>~/.spamassassin/user_prefs</code> - osobní nastavení uživatelů (spamd ignoruje!)
 
==FTP server ==
 
Slouží k přenášení souborů mezi serverem a počítačem u kterého právě sedíme. Určitě ho využije webmaster pro úpravu internetových stránek - umožní mu to spojit se s kořenovým adresářem stránek odkudkoliv z lokální sítě i z Internetu. Samozřejmě může použít i Sambu - tedy na lokální síti.
 
K dispozici ho budou mít ale všichni uživatelé. Jen nesmíme zapomenout, že ve výchozím nastavení serveru mohou uživatelé procházet celým souborovým systémem, což se nám nelíbí, takže to musíme nastavit tak, aby uživatelé byli "zamčeni" ve svém domovském adresáři a ven z něj se nedostali.
 
Použil jsem ftp server ProFTPD. Při instalaci musíte rozhodnout, jestli má běžet v režimu ''standalone'', nebo ''inetd''. Vybereme ''inetd'', protože není důvod, aby permanentně strašil v paměti. Server po nainstalování hned pracuje. Provedeme jen drobnou úpravu v jeho konfiguračním souboru:
 
/etc/proftpd.conf
 
Hlavně přidáme direktivu
 
DefaultRoot ~
 
ta zajistí, že uživateli se po přihlášení bude jeho domovský adresář jevit jako kořenový
(je tam tzv. chrootnutej). Nedostane se tedy do kořenového adresáře systému a nemůže tak šmejdit tam kde ho nechceme (třeba v /etc).
 
Ostatní výchozí nastavení vyhovují, včetně zablokovaného anonymního přístupu.
 
Pokud jde o uživatele ''webmaster'', při jeho vytváření jsme mu zadali jako domovský adresář <code>`/var/www/nase-stranky`</code>, ale o tom píšu v kapitole o Apache web serveru.
 
==SSH server==
Neboli SecureShell (SSH) slouží ke vzdálenému přihlašování. Nainstalujeme ho proto, abychom se mohli k serveru přihlásit odkudkoliv z Internetu a spravovat ho, jako bychom u něj seděli. Na jednu stranu to zní lákavě, na druhou nebezpečně. Takže jak být opatrný.
 
Po nainstalování OpenSSH (je nainstalován standardně, nemusíme o to prosit) si otevřeme konfigurační soubor:
 
/etc/ssh/sshd_config
 
a přidáme tam direktivu:
 
AllowUsers jenomja
 
Kde <code>`jenomja`</code> je uživatelské jméno, které si zřídíme právě jen pro toto přihlašování. Dáme mu pekleně kvalitní heslo. Z jakéhokoliv počítače se tedy přihlásíme na náš server jedině takto:
 
 
# ssh jenomja@nase-skola.cz
 
Pak jsme požádáni o zadání hesla (toho pekleně kvalitního:) a jsme na serveru. Zbývá jen se přepnout pod superuživatelský účet:
 
$ su -
 
zadat heslo (ještě pekelnější). A už administrujeme.
 
Není dobré nechat jako možnost přihlásit se rovnou jako ''root''. Většina útoků silou na náš server bude vedena snahou přihlásit se jako ''root''. To si časem při studiu systémových logů všimnete. Taky uvidíte, že tu bývají při podobných snahách náhodně generovaná uživatelská jména z rodu těch "normálních" (John, Peter...) takže pro tohoto přihlašovacího uživatele zvolte něco méně tradičního (třeba ''winhacker'':o)
 
Pokud se budete chtít na server přihlásit a nebudete mít k dispozici linuxový (nebo jiný unixový) systém, ale jen MS Windows, nainstalujte si tam program PuTTY, který je náhradou ssh pro win-mašiny. Stáhnout si ho můžete třeba [http://www.chiark.greenend.org.uk/~sgtatham/putty/ odsud].
 
== NIS - sdílení systémových souborů ==
 
Služba ''nis'' slouží ke zjednodušení údržby některých systémových souborů, které máme v síti na všech strojích stejné. Typicky to jsou ''hosts'', ''passwd'', ''group'', ''shadow'', ''ethers'',... NIS umožňuje udržovat tyto soubory na jediném počítači - nis serveru - a ostatní počítače, klienti, si o ně serveru říkají. Bohužel to nejde udělat s libovolnými soubory.
 
Seznam možností je v manuálové stránce ''nsswitch.conf'' (5).
 
Balíček ''nis'' obsahuje serverovou i klientskou část. Při instalaci se ptá na jméno domény nis. To si můžeme vymyslet libovolné - na serveru a stanicích ho pak ale musíme zadat pochopitelně všude stejné.
 
Po nainstalování se automaticky spustí klientská část. Je dobré jí nechat běžet i na serverové stanici, i když na serveru asi budeme číst sdílené soubory přímo a ne přes nis. Běžící klient na serverové stanici nám ale může pomoci při hledání problémů.
 
=== Na serveru ===
 
Po nainstalování balíčku nis:
 
* <code>/etc/default/nis</code> - opravit <code>NISSERVER=false</code> na <code>=master</code>.
* zkontrolujeme si <code>/etc/hosts</code>. Je tu řádek:
 
127.0.0.1 localhost.localdomain localhost
 
Adrese 127.0.0.1 nesmí být přiřazeno jméno hostitele. Mohlo by to působit selhání některých operací (v dokumentaci to není blíže zdůvodněno).
 
* <code>/etc/ypserv.securenets</code> - přidáme sem číslo naší lokální sítě. Například:
 
255.255.255.0 192.168.1.0
 
V Debian Sarge tu je řádek
 
0.0.0.0 0.0.0.0
 
který umožňuje připojení komukoliv, tak ten zakomentářujeme.
* editujeme <code>/var/yp/Makefile</code> - tam najdeme řádek <code>all:</code> za kterým následuje seznam systémových souborů, které chceme prostřednictvím služby nis sdílet. Já jsem odsud vyndal názvy souborů ''rpc'', ''services'' a ''protocols'', protože mám na serveru Debian stable a na stanicích verzi testing a nejsem si jistý, zda by se tyto soubory nemohly lišit. Navíc do těchto souborů stejně nehrabu. Naopak jsem odkometářoval: ''ethers'' a ''networks'' (pokud tyto soubory v <code>/etc/</code> na serveru neexistují, je potřeba je vytvořit aspoň prázdné).
 
Taky je možné přidat soubor aliases (ten navíc vyžaduje odkomentářovat řádek ALIASES o cca 25 řádků výše). Zatím jsem to ale nevyužil. Vlastně nejde. Pohled do manuálové stránky k nsswitch.conf říká, že to není dosud implementováno.
 
A ještě si povšimneme, že soubor shadow se přidává sám o pár řádků pod ''all:'' níže.
 
* zadáme příkaz
 
# /usr/lib/yp/ypinit -m
 
kterým inicializujeme server jako master server. Bude se nás to ptát na jména všech dalších nis serverů v doméně. Máme-li jen ten jeden, ukončíme zadávání CTRL+D a správnost potvrdíme <code>"y"</code>. Pak sledujeme, jak se generují tabulky jednotlivých sdílených souborů (passwd, group,...).
* restartovat:
 
# /etc/init.d/nis restart
 
Sledujeme, které služby startují (ypserv, ypbind, yppasswd).
 
To by mělo stačit. Další možnosti viz. originální dokumentace.
 
====Aktualizace sdílených souborů na serveru ====
 
Kdykoliv v budoucnu něco změníme ve sdílených souborech (přidáme počítač do <code>/etc/hosts</code>, přidáme/odstraníme uživatele ze systému,...) musíme aktualizovat tabulky služby nis takto:
 
# cd /var/yp
# make
 
a restartovat nis:
 
# /etc/init.d/nis restart
 
(asi by stačilo i reload místo restart) (možná není restart vůbec nutný..?).
 
'''Poznámka:''' Příkaz ''adduser'' se v Debianu se snaží chovat inteligentně, takže při přidávání uživatele provede aktualizaci tabulek nis automaticky. To uvidíte. Jenže pak výše zmíněnou aktualizaci (<code>make</code> v <code>/var/yp</code>) spusťte raději ještě jednou ručně. Po ''adduser'' to nebylo zcela košer.
 
===Na klientských stanicích ===
 
====Úprava /etc/nsswitch.conf ====
 
Nejdříve upravíme {{{/etc/nsswitch.conf}}}. Tady si ujasnime, co má stanice brát z vlastních souborů a co z nis serveru. Navrhuji toto:
 
passwd: compat nis
group: compat nis
shadow: compat nis
 
hosts: files nis dns
networks: files nis
 
protocols: db files
services: db files
ethers: nis db files
rpc: db files
 
netgroup: nis
 
To zajistí, že při přihlašování budou nejdříve kontrolovány lokální soubory na stanici a teprve potom služba nis. Toto pořadí je důležité, aby se mohl přihlásit root, když není přístupná síť (obrácené pořadí {{{nis compat}}} by ten problém působilo).
 
Poznámka: Místo ''compat'' - by tu mohlo být i ''files'', stejně compat pravidla asi nevyužijeme.
 
Jména a adresy počítačů (''hosts'') a sítí (''networks'') se budou nejdřív hledat v souborech na stanici a po neúspěchu bude oslovena služba nis. U ''hosts'' navíc ještě pak DNS.
 
Protocols, services a rpc, jak jsem se už zmínil, do nis netahám z důvodu odlišných verzí Debian Linuxu na stanicích a na serveru.
 
Seznam ethernetových karet s převodem na IP adresy (''ethers'') se ale udržuje ručně, takže tady je nis v pořádku.
 
Soubor ''netgroup'' je čistě záležitostí služby ''nis'' - bez ní by tento soubor stejně neměl smysl (např, když ''nis'' nefunguje), takže je tu jen to nis - vždy se vyžádá verze ze serveru.
 
====Instalace balíku nis na stanici====
Nainstalujeme balík nis na všech klietnským počítačích. Při instalaci budeme požádáni o zadání jména domény pro službu nis. Zadáme stejné, jako jsme zadali při instalaci serveru.
 
Po nainstalování vše běží - tj. výchozí nastavení stanice zcela vyhovuje.
 
Můžeme upravit <code>/etc/ypbind.conf</code>, který umožňuje zadat adresu nis serveru "natvrdo", ale výchozí nastavení "broadcast" (které ani nemusíme uvádět)
je v malé síti naprosto vyhovující.
 
====Ověření funkčnosti====
 
K tomu máme pár prima příkazů, které si můžeme zkusit z klientské stanice:
 
<code># ypcat hosts.byaddr</code> - vypíše obsah tabulky vygenerované z /etc/hosts na serveru
 
<code># ypmatch normaluser passwd</code> - to vypíše řádek týkající se uživatele ''normaluser'' z tabulky ''passwd''.
 
<code># ypmatch root passwd</code> - to skončí chybou, protože v souboru ''passwd'' se sdílejí jen uživatelé u UID od 1000 výše (nastaveno je to v <code>/var/yp/Makefile</code>) a root má vždy číslo 0.
 
Seznam všech tabulek poskytovaných službou ''nis'' najdete na serveru v adresáři <code>/var/yp/doména</code> (místo doména dosaďte sktuečné jméno vaší domény).
 
= Užitečné soubory =
 
Hledejte zde: http://grumpa.net/works/soubory/server/
 
*'''grumpa.net-sarge-zaklad''' - je seznam balíčků pro apt-get, který použijeme po nainstalování serveru k doinstalování nezbytných balíčků pro náš server.
* '''grumpa.net-sarge-extras''' - zde jsou balíčky, které najdete na CD Grumpa.net server navíc oproti těm základním. Jelikož na CD zbývá ještě poměrně dost místa, je tu prostor pro vaše návrhy, co ještě na CD přihodit. Pište mi!
* '''nastaveni''' - v tomto adresáři jsou konfigurační soubory, které jsou upravené pro potřeby našeho serveru. Obsahují tedy ta nastavení, o kterých se píše v tomto pojednání. Použijte je po zralé úvaze - v žádném případě je slepě nepřekopírujte!
 
= Changelog - změny v dokumentaci =
2006-07-15
 
Opraveno datum u předchozí položky :o)
 
Vytvořena nově verze pro moinmoin wiki a umístěna na grumpa.eurowiki.net
 
V úvodu dokumentace přidána zmínka o obou umístěních na webu.
 
2006-06-28
 
Přidána sekce věnující se NIS - Network Information Service.
 
Exim4 - Přidány informace o nástrojích pro administraci.
 
2006-04-10
V sekci instalace bylo chybně zadáváno jméno počítače a domény. Opraveno.
 
2005-10-19
Opraveno několik překlepů a upraveno pořadí kapitol tak, aby lépe vystihovalo, co se při instalaci odehrává.
 
2005-10-07
Návod na MailScanner konečně doopravdy přidán :o)
 
2005-10-06 NOVÉ - nastavení
Udělal jsem nový adresář na webu Grumpa.net a na CD, kam budu dávat odzkoušené konfigurační soubory.
 
2005-10-06 MailScanner
Přidán návod na zprovoznění MailScanneru pod Exim4. Návod přeložen z originálu v <code>/usr/share/doc/mailscanner/README.exim4</code>
 
=TODO - co ještě udělat=
Je toho ještě dost k doladění. Ale dá se říct, že v tuto chvíli je tento návod použitelný pro každého, kdo není úplný začátečník. A o to mi šlo.
 
I zde chci poprosit o vaše připomínky a zkušenosti, jakož i o návrhy, co se dá dělat jinak a v čem by se tedy mohl změnit i tento návod.
 
Apache - web server
Tam trochu kecám při nastavování SSL. Takhle by to fungovalo všechno přes https a nic přes http.
 
Dále chci vyřešit návrat k použití 000-default a vše nastavovat jen v přidaných konf. souborech pro jednotlivé weby.
 
[[Kategorie:Linux]]