Linux jako server: Porovnání verzí
Smazaný obsah Přidaný obsah
m →5. Nastavení systému po instalaci: wikizace |
m →6. Hlavní serverové služby: wikizace |
||
Řádek 691:
Příjemné počteníčko! :o)
=
==
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.
===
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
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.
===
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
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ě".
==
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.
===
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/
===
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
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)
(zadat heslo pro sambu)
setquota fr.horak 10000 12000 0 0 /var/mail
Takže asi proto máme na těžkou práci stroje.
===
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 (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 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
nameserver 194.228.105.
Ří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í.
==
Opět jsem použil jednoduché řešení, balíček
na LAN vidět do Internetu, avšak počítačům z Internetu je vnitřní síť neviditelná.
Po naistalování je
Bez další konfigurace máme tedy okamžitě funkční NAT.
Pokud potřebujeme firewall, i tady nabízí
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:
{{{
Řádek 1 017 ⟶ 921:
== 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)
Dále budou na serveru vytvořena obecně přístupná sdílení:
Řádek 1 034 ⟶ 933:
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:
|