Cíle a volba hardware
Tak konečně jsem si také pořidil něco na hraní. Né, není to nejnovější grafická karta, ani nějaká poslední herní pecka. Rozhodl jsem se postavit si domácí server. Dopředu předestírám, že z této oblasti neumím téměř nic a moje znalosti se budou rozvíjet s tím, jak budu server rozšiřovat a používat.
Přestože jsem svůj server nazval hračkou, jeho primárním účelem bude síťové uložiště dat pro všechny uživatele domácnosti. Další služby budu přidávat podle potřeby a volného času, který mi pro hraní si se serverem zbude. Zápisy se budou objevovat občas s určitým spožděním za realitou, takže berte na zřetel, že již mohu být reálně někde dál...
Cíle
Jelikož v praxi není správa serveru úplně triviální záležitostí, jsem si vědom toho, že se někdy uchýlím k různým, mezi administrátory serverů ne zcela běžným postupům pramenících z toho, že jsem začátečník či proto, že mi daný postup bude prozatím vyhovovat.
a) postavit server pokud možno s co největší variabilitou pro budoucí případná rozšíření
b) postavit server s pokud možno nízkou spotřebou (cíle uvedené v bodech a) a b) by měly být v jakési rovnováze)
c) zprovoznit síťové uložiště pro uživatele domácnosti, kde budou uložena sdílená data, a každý si je bude moci stahovat do svého PC (zohlednit také možnost provozu pole RAID 1)
d) podle zbývajícího elánu, volného času a chuti zprovoznit jakoukoli další službu, která nalezne na domácím serveru praktického využití
Volba hardware
Mým hlavním kritériem je relativní variabilita řešení. V rámci serveru chci mít možnost podle potřeby rozšířovat hardwarové vybavení. Zároveň se budu snažit o co nejnižší spotřebu, nehodlám ovšem dělat krkolomné kompromisy proto, abych ušetřil 5 W.
Možností, která se jakoby sama nabízí, je platforma Intel Little Falls. Po zralé úvaze a dlouhých diskuzích s Lazarem jsem ovšem dospěl k názoru, že tato možnost není zdaleka tak zajímavá, jak se může zdát. Procesory Intel Atom mají sice TDP 4-8 W, ale použitý chipset Intel 945GC se vyznačuje TDP 22,5 W, a tak základní deska s procesorem jako celek nejen, že není výjimečně úsporná, ale kvůli restrikcím Intelu má i mizernou výbavu.
Požadavek na možný provoz RAIDu sice neklade žádné nároky na typ jižního můstku - lze jej provozovat na čemkoli, ale nechceme-li mít RAID například na USB rozhraní měli bychom mít alespoň dostatek SATA portů pro všchna zařízení. Všechny tyto nedostatky platí pro většinu ostatních miniATX řešení jako například VIA, které jsou vždy špatně rozšiřitelné, a mnohdy nejsou ani významně úsporné.
V klasickém mikroATX segmentu je už výběr o poznání lepší. Na straně Intelu je bohužel jedinou zajímavou volbou Intel G31, protože Intel své chipsety vyrábí staršími výrobními postupy a tyto nejsou natolik úsporné, jak by mohly být. Zbytečně vysoká cena Intel procesorů pak znamenala, že jsem patici 775 ze svého výběru vyřadil také.
Naproti tomu platforma AMD/AM2 nabízí velmi úsporné a variabilně vybavené chipsety vyráběné 55nm postupem a to ve spojení s velmi účinnou technologií podtaktování a podvoltování procesoru Cool'n'Quiet činí z AMD pro můj server téměř jasnou volbu.
Protože rozpočet není nafukovací, je třeba si stanovit nějaké priority. Klíčovou komponentou bude nepochybně základní deska, která určí počet a stav I/O portů našeho serveru. Velmi důležitým prvkem je také zdroj, proto jsem volil dražší a účinější. Velmi důležitými jsou také pevné disky. Naopak zcela bezvýznamnou komponentou je procesor, neboť výkonostně bude dostačovat jakýkoli na trhu.
Poslední, ale neméně důležitým paramtetrem je kompatibilita se zamýšleným operačním systémem. Tento bod zde ale myslím nemusím rozebírat...
Pro server jsem tedy zvolil tyto komponenty:
Základní deska: Gigabyte GA-MA74GM-S2H (rev.1.0) (cca 1320 Kč)
Procesor: AMD Sempron LE-1250 EE BOX (cca 735 Kč)
Operační paměť: A-Data 2 GB DDR2 800MHz single channel (cca 390 Kč)
Pevný disk: 2× WD 6400AACS HDD (cca 2× 1580 Kč)
Zdroj: Seasonic S12II 330W (cca 1190 Kč)
Case: Cooler Master Elite 341 (cca 870 Kč, celkem tedy zhruba 7665 Kč)
Jelikož jakákoli běžná integrovaná grafika je pro server holou zbytečností, není třeba připlácet za chipsety typu AMD 780G. Základní deska od Gigabyte se 740G byla tedy jasnou volbou. Na tematicky zaměřeném portále SilentPCreview je velmi oblíbenou a má výborné reference. Základní deska má gigabitovou síťovku a 6 SATA portů, 2 PCI, 1 PCIe a 1 PCIe ×16 slot a pro server je tedy ideální.
Z procesorů má člověk prakticky tři možnosti. AMD Sempron LE-1250, Athlon LE-1640, a Athlon X2 4050e/4450e/4850e/5050e (všechny TDP 45 W). Vzhledem k tomu, že Sempron stojí pár stovek a sloužit bude dobře, nemá vůbec žádný smysl platit dvojnásobek nebo více za výkonější procesor. Základní deska s procesorem se proto vešla do cenové hranice +/- 2000 Kč, a je tedy přímým cenovým konkurentem řešení na bázi Intel Atom.
Single channel RAM jsem zvolil záměrně, protože na jednom paměťovém modulu může člověk ušetřit i několik watů. U pevných disků má člověk v podstatě dvě možnosti. Úsporné 2,5palcové notebookové a nebo klasické 3,5palcové s mnohonásobně větší kapacitou. Disky Western Digital řady Green Power spojují výhody obou těchto kategorií, proto jsem si vybral právě je.
Na zdroji jsem nešetřil a zvolil co nejúčinější zdroj s co nejmenším maximálním výkonem. Skříň jsem zvolil rovněž formátu mikroATX, aby server zbytečně nezabíral místo a skříně Cooler Master mi vyhovují...
RAID ano či ne?
Potřebu provozovat RAID pole musí každý uvážit sám. Mezi uživateli je poměrně často rozšířen omyl, že RAID znamená záloha dat. Pomineme-li RAID 0, o kterém by se jako o záloze asi nevyjádřil nikdo, RAID jako takový chrání data pouze před jediným problémem - poruchou disku. Pokud si uživatel například data smaže omylem, žádný RAID ho před ztrátou neochrání. Kromě ochrany před poruchou HDD je určitou výhodou RAID pole v konfiguraci RAID 1 také vyšší rychlost čtení dat, zápis probíhá stejně rychle jako u jednoho disku, nebo také nepatrně pomaleji. Pro řešení otázky, zda použít RAID, je třeba znát odpovědi na tyto otázky:
- Potřebuji zajistit nepřetržitý provoz serveru?
- Potřebuji vyšší rychlost čtení?
Moje odpověď v obou případech zní NE a proto jsem se rozhodl RAID pole nesestavovat a profitovat raději z dvojnásobné kapacity disků.
Počáteční praktické zkušenosti
Zdroj je absolutně tichý, disky chladné a bezhlučné, procesor vůbec netopí, větrák na chladiči se buď netočí vůbec a nebo jen velmi pomalu (300 rpm). Po HW stránce maximální spokojenost. Všechny komponenty na základní desce jsou plně podporované:
server:/home/admin # lspci
00:00.0 Host bridge: ATI Technologies Inc Device 7911
00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (Internal gfx)
00:06.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 2)
00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode]
00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:12.1 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI1 Controller
00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:13.1 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI1 Controller
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 3a)
00:14.1 IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller
00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
00:14.5 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon 2100
01:05.2 Audio device: ATI Technologies Inc Radeon X1200 Series Audio Controller
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
Pro stavbu 1Gb domácí sítě jsem použil tento switch, všechna zařízení mají 1Gb/s síťovky Realtek RTL8111 a upload či download na FTP se pohybuje v řádech 60-90MB/s. S HW jsem maximálně spokojený.
Zvláštní pozornost bych věnoval pevným diskům Western Digital Green Power. Na SilentPCreview.com se lze dočíst informaci, že některé pevné disky WD řady Green Power trpí problémy s narůstajícími load-cycle. Vzhledem k tomu, že disky relativně často vydávají malé velmi slabě slyšitelné klapnutí, obával jsem se, zda se s tímto problémem nebudu potýkat také. Podle všeho však Western Digital tento problém v Firmwaru již dávno opravil, což dokazují oba mé HDD koupené s odstupem asi dvou dní:
3 Spin_Up_Time 0x0027 142 142 021 Pre-fail Always - 5858
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 10
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 9
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 8
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 10
3 Spin_Up_Time 0x0027 171 139 021 Pre-fail Always - 4441
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 16
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 23
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 14
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 16
Prozatím to tedy vypadá, že mohu tyto vynikající HDD jenom doporučit.
Vzhledem k tomu že nic netopí, není ani co chladit.
Operační systém a instalace
Operační systém
Přestože jsem ani na chvilku nepochyboval, jaký operační systém na server nasadím, tahle volba vůbec nemusí být jednoznačná. Opět záleži na prioritách a požadavcích, možnosti jsou poměrně široké, ale ne každá je pro normálního smrtelníka, jako jsem já.
Já jsem si vybral Opensuse Linux, jednoduše proto, že mi tato Linuxová distribuce vyhovuje nejvíce. Pokud by někdo chtěl znát odpověď na otázku, která distribuce je na server nejlepší, pak odpověď zní: univerzální odpověď neexistuje. Vybrat si musí člověk sám.
Pokud budete tento skromný návod využívat spolu s jinou Linuxovou distribucí například Ubuntu nebo Debian, mějte na paměti, že tyto distribuce nedodržují standard FHS, a proto se například cesty adresářů pro služby serveru (www, ftp) v těchto distribucích liší. Nemluvě o zřejmých rozdílech, jako je balíčkovací systém, kde si všechny distribuce hrají na svém vlastním písečku. Nicméně obsahy konfiguračních souborů služeb jako třeba FTP by měly být stejné.
Zatím co na desktopu mám bleeding-edge verzi Opensuse 11.1 x86-64, pro server jsem zvolil již dostatečně prověřenou verzi Opensuse 11.0. x86-64. Volba 32- nebo 64bitové verze je čistě na vás, osobně nevidím jediný důvod, proč nepoužít 64bitovou. Na rozdíl od Windows jsou linuxové systémy již léta 64bitové a to až na vyjímky opravdu plně 64bitové, včetně softwarového vybavení. Volba 64bitového operačního systému umožňuje v budoucnu jednoduše rozšiřovat operační paměť v podstatě do nekonečna.
Instalace
K instalaci budeme potřebovat instalační médium (já používám DVD), klávesnici, myš a monitor. Pokud nechceme instalovat v grafickém, ale textovém režimu (toto je samozřejmě možné), nebudeme potřebovat myš. Nicméně nevidím důvod, proč si tento komfort zbytečně upírat. Možná je samozřejmě také síťová instalace.
Návodem pro instalaci se zde zabývat nebudu, podrobný návod naleznete na stránkách opensuse. Dovolím si pouze vypíchnout důležité body. V bodě "volba desktopu" zvolte "other / jiný" a položku minimální textový server. Jelikož server po instalaci zavřeme někde do skříně či do sklepa, a pět let ho neuvidíme není třeba žádného grafického rozhaní, které by nám jen zbytečně zabíralo místo.
Systém X-Window je považován ze nejpropracovanější grafické prostředí vůbec. Jelikož byl vyvinult jako síťové grafické prostředí, lze jej efektivně využívat také pro práci v GUI na vzdáleném serveru (našem serveru). Pokud se teoreticky někdy v budoucnu objeví tato potřeba, nebude problém grafické prostředí na server doinstalovat pak. Pro běžné serverové služby je však grafický systém zcela k ničemu a drtivá většina serverů žádné grafické rozhraní vůbec nemá.
Dělení disků
Po volbě rozhraní (minimální textový server) následuje dělení disků. Univerzální recept, jak rozdělit disk neexistuje. Budeme potřebovat minimálně dva oddíly:
- / (kořen)
- swap (odkládací prostor)
Běžně se vytváří také oddíl:
- /home (domovský adresář uživatel)
A pro náš server velmi důležitý oddíl:
- /srv
Na serverech se také běžně vytvářejí samostatné odíly pro /var nebo /tmp, ale to už pro potřeby domácího serveru není tolik podstatné. Pokud vytvoříte pouze první dva zmiňované oddíly, všechny adresáře včetně /home a /srv se budou nacházet v oddíle připojeném na /.
Moje doporučení:
Vytvořte si kořenový adresář / o velikosti alespoň 5GB, odkládací oddíl swap o velikosti 2 násobku RAM a oddíl /srv jako celý zbytek HDD, případně nějakou malou část ještě vyhradte pro domovské adresáře uživatel /home. Všechny oddíly nformátujte souborovým systémem Ext3, odkládací oddíl jako Swap.
Rozdělení mých dvou disků WD6400AACS například vypadá takto:
admin@server:~> df -h
Souborový systém Velikost Užito Volno Uži% Připojeno do
/dev/sda1 30G 1,1G 27G 4% /
udev 942M 108K 942M 1% /dev
/dev/sda2 69G 180M 66G 1% /home
/dev/sdb1 587G 198M 557G 1% /srv
/dev/sda6 485G 198M 460G 1% /zaloha
Jak je vidět, druhý HDD mám celý vyhrazen pro oddíl /srv, a všechny ostatní oddíly mám na prvním disku. Položky udev si nevšímejte, a oddíl swap, který mám jako /dev/sda5 o velikosti 4GB se v tomto výpise nezobrazuje.
Ačkoli je tato kapacita poněkud monstrózní, je vidět, že obsazeno není ani 1,5 GB a systém samotný nacházející se v kořeni / (označen jako /dev/sda1) již kapacitně téměř neporoste. Zbylé adresáře jsou vyhrazeny pro data, takže jejich kapacita lze volit libovolně, dokonce lze jejich přípjné body navolit libovolně a oddíl /srv můžu mít připojený třeba jako /ulozistedat. Pokud víte co činíte, představivosti se meze nekladou, ale není na škodu dodržovat zavedené konvence.
RAID pole
Pokud chcete provozovat RAID pole, můžete jej zprovoznit nyní, nebo tak můžete učinit později. Pokud má být na RAID poli také systém, ne jenom datové partitions, je třeba tak učinit hned.
Pro start z RAID pole je třeba vytvořit jako první oddíl připojený na /boot o velikosti cca 100MB. V tomto oddíle se nachází zaváděč a obraz jádra potřebné ke startu systému. Všecny ostatní oddíly můžete spojit do RAID polí zcela libovolně. V případě, že RAID bude pouze pro data, samostatný startovací oddíl /boot není potřeba.
Tvorba uživatele
Nyní je třeba vytvořit uživatele. Jméno si zvolte jaké chcete, já si nastavil "admin" a nastavte heslo. Doporučuji, aby superuživatel "root" neměl stejné heslo jako admin, odznačte proto příslušnou položku, a v následujcím okně nastavte heslo pro superuživatele. Doporučuji také odznačit položku "automatické přihlášení".
Dopředu předesílám, že administrátorské úkony budete moci provádět jak s pomocí superuživatele root, tak pomocí svého uživatele "admin". Uživateli "admin" je totiž možné jednorázově zvýšit práva pomocí příkazu "sudo". Program sudo zde rozebírat nebudu, jen zdůrazním, že umožňuje jemné nastavení práv pro různé uživatele. Pokud má běžný server vícero správců, bylo by poněkud nevhodné, kdyby se všichni přihlašovali jako tentýž uživatel "root". Program sudo umožňuje přidělit administrátorská práva různým uživatelům, a dokonce každému jinak a jiná.
V základním nastavení bude náš první uživatel (admin) mít po zadání příkazu "sudo" stejná prává jako superuživatel root. Další případní uživatelé budou obyčejní uživatelé. Toto můžeme později zcela libovolně změnit.
Dokončení instalace
Po rozdělení disků následuje souhrn instalace, kde můžete nastavit jaký SW se bude instalovat, kam se nainstaluje zaváděč a podobné parametry systému. Toto nastavení můžeme ponechat celé tak jak je a přistoupit k instalaci. Instalace bude trvat odhadem tak pět minut, a pokud jsme úplně na začátku nezakázali ručně automatickou konfiguraci, systém se sám nakonfiguruje a spustí...
První spuštění a počátky práce na vzdáleném serveru
První spuštění
Po prvním spuštění na nás bliká přihlašovací konzole:
server login _
Místo slovíčka "server" tam pravděpodobně budete mít nějakou změť znaků jakožto náhodně vygenrované jméno počítače. Pokud máte jméno přidělováno pomocí DHCP nebo jste si ho nastavili manuálně při instalaci, bude tam místo "server" toto jméno. Můj server se jmenuje "server".
-----------------------------------------------------------------------------------------
pro další text si prosím zapamatujte následující:
admin = jméno vašeho normálního uživatele
server = jméno vašeho serveru
-----------------------------------------------------------------------------------------
Příhlásíte se svým uživatelským jménem a heslem (v mém případě je to admin) a objeví se konzole:
admin@server:~>
Abych se mohl přihlašovat vzdáleně, je třeba toto povolit ve firewallu, nebo firewall vypnout. Jelikož se jedná o server ve vnitřní síti, firewall teď nepotřebuji a ani konfigurovat nechci, a proto ho vypnu:
sudo /sbin/yast2
Zde se pohybujeme mezi položkami pomocí tabulátoru, a Enteru, označení křížkem nebo odstranění označení křížkem provádíme pomocí mezerníku.
Volba Bezpečnost a uživatelé -> Firewall -> zakázat automatické spuštění firewallu + zastavit firewall nyní.
Nastavení uložíme a prostředí Yastu opustíme.
Nastavení uložíme a prostředí Yastu opustíme. Nyní můžeme server odnést do sklepa, komory či zavřít do skříně a zahodit klíč.
Počátky práce na vzdáleném serveru
Vzdálená správa
Ke vzdálené správě je třeba klient protokolu ssh. Pokud spravujete jako já server z linuxové stanice, klient ssh je ve vašem OS již téměř s jistotou nainstalován, neboť se jedná o zcela základní programové vybavení. Pokud používáte Windows, které základní výbavou příliš neoplývají, budete si muset nějakého klienta opatřit. Všeobecně doporučovaným je PUTTY. Tento program není třeba neinstalovat. Spustitelný soubor Putty.exe seženete zde.
Vzdálené přihlášení
Pokud je server zapnutý, můžu se k němu vzdáleně přihlásit pomocí ssh:
ssh admin@192.168.1.10
IP adresu doplňte podle IP adresy vašeho serveru.
Po zadání hesla na mě kouká příkazový řádek mého serveru:
admin@server:~>
Můžu jej tedy vzdáleně spravovat...
V případě, že na počítači máte Windows použijete k přihlášení putty:
Do kolonky "hostname" vepíšete IP adresu serveru, connection type musí být nastaveno na SSH a klinete na "open". Jste dotázáni na uživatelské jméno a heslo a dále již pracujete standardně v příkazovém řádku serveru.
Uživatelské účty
Na mém serveru jsou po instalaci pouze dva uživatelské účty:
root = superuživatel
admin = uživatel
Jak jsem se již zmínil dříve, uživatel admin může získat administátoská práva pomocí sudo a zadání hesla uživatele root. Při bežném použití bez argumentů sudo zvyšuje uživatelská práva jednorázově a tohoto faktu budem využívat pro bezpečenou administrační práci.
Chceme-li změnit uživatele, v unixových operačních systémech k tomu slouží program "su" (switch user). Zadáním:
su
bez argumentů se přihlásíme jako superuživatel root, a získáme tak práva pro jakoukoli činnost. Odhlášení ze super uživatelského účtu provedeme příkazem:
exit
Program "su" samozřejmě umožňuje změnit přihlášení na libovolného uživatele, nejen superužvatele root. Toho docílíme přidáním argumentu veexit tvaru uživatelského jména účtu, na který se chceme přihlásit. Je li dalším uživatelem v systému "honza" , uživatele admin na honza přepneme příkazem:
su honza
exit
se opět vrátíme na původního uživatele, kterým byl admin.
Samotná práce pod superuživatelským účtem není příliš vhodná. Kromě spravování systému ale také můžeme cokoli smazat a nenávratně tak poškodit systém. Linux, na rozdíl od Windows, se totiž nedohaduje se svým administrátorem co smí a co nesmí. Jakmile je člověk jednou superuživatel, smí vše.
Je-li člověk přihlášen jako superužvatel root, je dobré provést pouze tu nejnutnější administrační práci a odhlásit se příkazem
exit
Předejdeme tak situacím, kdy se člověk "zapomene" a pak něco nenávratně poškodí.
Důrazně doporučuji veškeré administrační úkony provádět pomocí "sudo" jako normální uživatel "admin". Do zadání dalšího příkazu se "sudo", totiž "admin" zůstane bez administračních práv!
Při práci pod běžným uživatelem "admin" s využitím "sudo" pro jednorázové získání administrátorských práv můžete narazit na drobný problém, kdy zatímco jako root, můžete daný program spustit, u "admina" s využitím "sudo" se systém tváří, jako by program neexistoval. Děje se tak proto, že "admin" nemá nastaveny v proměnné PATH (prohledávací cesta) některé adresáře s administračními nástroji jako například /sbin a proto tam program nehledá. Za tímto účelem není třeba ihned upravovat proměnnou PATH. Řešením je buď přihlášení se jako superuživatel root - u kterého tyto programy fungují bez cesty - anebo při využití "sudo" u "admina" doplnění celé cesty k programu. Já se z mnoha důvodů budu snažit maximálně využívat druhý způsob, a proto vždy cestu k programu uvedu.
Správa software
V Opensuse je pro správu software využíván program Zypper. Tento velmi mocný nástroj je určen nejen pro správu softwarových balíků, ale také instalačních zdrojů. Kompletní návod pro použití lze nalézt na stránkách Opensuse.
Spravovat software a instalační zdroje lze pomocí nástroje Yast2, který jsme už použili.
sudo /sbin/yast2
Není ovšem třeba neustále spouštět yast. Většina Linuxových distribucí takovýto nástroj vlastně vůbec nemá.
Nejdříve se tedy podíváme, jaké repozitáře softwaru máme nastaveny:
sudo zypper lr
a vyskočí na nás přehledný výpis
# | Alias | Jméno | povoleno | Obnovit --+-----------------------+-----------------------+----------+-------- 1 | openSUSE-11.0-Updates | Updates for 11.0 | Ano | Ano 2 | openSUSE-DVD 11.0 | openSUSE-DVD 11.0 | Ano | Ne 3 | repo-debug | openSUSE-11.0-Debug | Ne | Ne 4 | repo-oss | openSUSE-11.0-Oss | Ano | Ne 5 | repo-non-oss | openSUSE-11.0-Non-Oss | Ano | Ne
Každý repozitář má své číslo, alias a název. Kterýkoli z těchto atributů můžeme použít pro práci s repozitářem. Mně osobně se jeví jako nejlepší číslo, prostě proto, že je nejkratší. Je dobré vědět, že číslo repozitáře je při každé instalaci systému zvoleno zcela náhodně a proto jejich pořadí v tomto výpisu bude u každého z vás v tento moment jiné. Ve výpisu dále následuje položka povoleno a položka obnovit. Položka "povoleno" indikuje, zda se daný repozitář smí používat pro instalaci software, položka "obnovit" pak určuje, zda bude repozitář před instalací znovu prohlédnut a aktualizován seznam balíků, které obsahuje.
V tento okamžik mám pět základních repozitářů z nichž čtyři jsou povoleny a jediný (updates) je automaticky aktualizován. Tento stav můžeme libovolně měnit. Za praktické považuji zakázat instalaci z DVD média, neboť server nemá stabilně DVD mechaniku a navíc není fyzicky přístupný:
sudo zypper mr -d 2
(protože máte s velkou pravděpodobností DVD pod jiným číslem, než já, nahradtě vtom případě dvojku příslušným číslem z vašeho výpisu)
jsme-li úspěšní, objeví se hláška:
Repozitář 'openSUSE-DVD 11.0' byl úspěšně zakázán.
Novou situaci si můžeme znovu prohlédnout:
sudo zypper lr # | Alias | Jméno | povoleno | Obnovit --+-----------------------+-----------------------+----------+-------- 1 | openSUSE-11.0-Updates | Updates for 11.0 | Ano | Ano 2 | openSUSE-DVD 11.0 | openSUSE-DVD 11.0 | Ne | Ne 3 | repo-debug | openSUSE-11.0-Debug | Ne | Ne 4 | repo-oss | openSUSE-11.0-Oss | Ano | Ne 5 | repo-non-oss | openSUSE-11.0-Non-Oss | Ano | Ne
Zde si opět povšimněte, že byly obnoveny jen ty repozitáře, které jsou povolené. Můžeme tedy přistoupit k instalaci softwaru.
Jelikož se jedná o čistou instalaci, důrazně doporučuji aktualizovat. V případě manuální konfigurace mohla proběhnout aktualizace již při instalaci, ale pokud jste stejně jako já instalovali s automatickou konfigurací, aktualizujte nyní:
sudo zypper update
Následuje výpis aktualizovaných balíků a žádost o svolení aktualizovat. První aktualizace skončí hlášením, že byl aktualizován správce balíků a byl nutný jeho restart. To znamená, že se aktualizovaly jen ty balíčky, které obsahují programové vybavení samotného správce balíků. Opětovně tedy spustíme aktualizaci:
sudo zypper update
Nyní už zypper nabídne podstatně větší množství aktualizací (u mě celkem cca 50 MB) a požádá o svolení. Tato aktualizace skončí informací, že bylo aktualizováno jádro a je třeba restartovat systém.
Ne. Nepůjdeme do sklepa abychom zmáčkli tlačítko reset . Server restartujeme na dálku:
sudo /sbin/reboot
Pokud je vše v pořádku, objeví se hlášení tohoto typu:
Broadcast message from root (pts/0) (Tue Dec 23 13:39:15 2008):
The system is going down for reboot NOW!
A spojení se serverem se ukončí. Než se znovu přihlásíme přes ssh, je třeba vyčkat, než se systém plně restartuje, což závisí spíše na HW, jaký jste si pro server zvolili. V mém případě to je cca třicet sekund.
Toto je od chvíle, kdy jste server sestavili a vložili instalační DVD teprve úplně první restart (po instalaci systém nabootuje přímo bez restartu), a dokud nebudete opět aktualizovat kernel, také restart poslední.
Instalujeme software
Nyní si ukážeme jak nainstalovat nějaký vybraný software. Příklad instalace jsem vybral zcela záměrně....
Prostředí Linuxové konzole může i pokročilému užvateli Windows připadat pusté a nehostinné. Co si budeme vykládat, někdy tak připadá i mě. Následující program sice na serverech asi využívá málokdo, ale já ho mám rád, minimálně pro práci se soubory je ideální. I když samozřejmě umí i mnoho dalších věcí....
Ano, to je on, Midnight Commander:
Kdo pamatuje doby temna MS-DOSu, a používal tehdy Norton Commander, bude se v tomto dvoupanelovém správci souborů cítit jako doma. Použití je skutečně univerzální, a pokud neovládáme standardní unixové textové editory, můžeme jej použít také pro editaci konfiguračních souborů. Moc košer to není, ale funguje to, zvládne to každý a to se počítá.
Nyní si tedy midnight commander nainstalujeme. Balíček s tímto progamem se snad ve všech distribucích jmenuje mc. Podíváme se tedy, zda je balíček mc obsažen v repozitářích. Pokud to víme, můžeme tento úkon samozřejmě přeskočit, ale já jej pro názornost ukážu:
sudo zypper search mc
Zypper nyní vypíše všechny balíčky obsahující řetězec "mc":
Načítají se nainstalované balíčky... S | Jméno | Shrnutí | Typ --+---------------------------+---------------------------------------------------+-------- | arts-gmcop | A Modular Software Synthesizer | balíček | geronimo-tomcat-servlet...| Tomcat Servlet engine for Geronimo | balíček | hmconv | HangulCode Conversion Program | balíček | iceWMCP | An IceWM Configuration Panel | balíček | iceWMCP-addons | An IceWM Configuration Panel | balíček | jakarta-commons-collect...| Jakarta Commons Collections Package | balíček | jakarta-commons-pool-to...| Jakarta Commons Pool Package | balíček | libmcal | Modular Calendar Access Library | balíček | libmcrypt | Data Encryption Library | balíček | libmcrypt-devel | Development Package for Libmcrypt | balíček | libmcs | Library/Tools to Abstract the Storage of Config-> | balíček | libmcs-devel | Include Files and Libraries mandatory for Devel-> | balíček | libmemcache | A client library for memcached | balíček | libmemcache-devel | Development files for libmemcache | balíček | libopensync-plugin-irmc | IrMC Synchronization Plug-In for OpenSync | balíček | libxfce4mcs | Multichannel Setting Management Support for Xfce | balíček | libxfce4mcs-devel | Multichannel Setting Management Support for Xfce | balíček | mc | Midnight Commander | balíček | mc-lang | Languages for package mc | balíček | mcal | A Calendar Based on Libmcal | balíček i | mcelog | Log Machine Check Events | balíček | mcpp | Matsui's C Preprocessor | balíček | mcrypt | Replacement for the crypt Command | balíček | memcached | A high-performance, distributed memory object c-> | balíček | multisync-irmc | An IrMC (SonyEricsson T39/T68i/T610, Siemens S5-> | balíček | multisync-irmc-bluetooth | Bluetooth support for the IrMC plugin for Multi-> | balíček | omctools | Tools to Aid in omc Development and Testing | balíček | openmcu | H.323 Multipoint Control Unit | balíček | openssl-ibmca | The IBMCA OpenSSL dynamic engine | balíček | openssl-ibmca-32bit | The IBMCA OpenSSL dynamic engine | balíček | pcmciautils | Utilities for PC-Cards | balíček | perl-Mcrypt | An Autoload-Capable Interface Module for libmcr-> | balíček | php5-mcrypt | PHP5 Extension Module | balíček | sblim-wbemcli | SBLIM WBEM Command Line Interface | balíček | struts-webapps-tomcat6 | Sample struts webapps for tomcat6 | balíček | termcap | The Termcap Library | balíček | termcap-32bit | The Termcap Library | balíček | tomcat6 | Apache Servlet/JSP Engine, RI for Servlet 2.5/J-> | balíček | tomcat6 | tomcat: fix for directory traversal vulnerability | patch | tomcat6-admin-webapps | The host-manager and manager web applications f-> | balíček | tomcat6-docs-webapp | The docs web application for Apache Tomcat | balíček | tomcat6-javadoc | Javadoc generated documentation for Apache Tomcat | balíček | tomcat6-jsp-2_1-api | Apache Tomcat JSP API implementation classes | balíček | tomcat6-lib | Libraries needed to run the Tomcat Web container | balíček | tomcat6-servlet-2_5-api | Apache Tomcat Servlet API implementation classes | balíček | tomcat6-webapps | The ROOT and examples web applications for Apac-> | balíček | tomcat_apparmor | Tomcat 5 plugin for AppArmor change_hat | balíček | wmctrl | Command line tool to interact with an EWMH/NetW-> | balíček | xfce-mcs-manager | Multi channel settings manager for Xfce | balíček | xfce-mcs-manager-devel | Multi channel settings manager for Xfce | balíček | xfce-mcs-plugins | Plugins for Multi channel settings manager | balíček | xorg-x11-libXdmcp | X.Org Xdmcp library | balíček | xorg-x11-libXdmcp-32bit | X.Org Xdmcp library | balíček | xorg-x11-libXdmcp-devel | Include Files and Libraries mandatory for Devel-> | balíček | xorg-x11-libXdmcp-devel...| Include Files and Libraries mandatory for Devel-> | balíček | yast2-mcs-plugin | YaST2 - MCS plugin for Xfce that starts gsynapt-> | balíček
Jak je vidět, řetězec "mc" obsahuje řada balíčků a jeden patch, a z techto balíčků je nainstalován pouze jeden s názvem "mcelog". Balíček "mc" nainstalován není, a tak si jej nainstalujeme:
sudo zypper install mc
Instalace balíku mc vyžaduje také instalaci balíků "slang" a "mc-lang".
Načítají se nainstalované balíčky...
Následující NOVÉ balíčky budou nainstalovány:
slang mc-lang mc
Celková stahovaná velikost: 1,9 M. Po operaci bude dodatečně využito 6,7 M.
Pokračovat? [ANO/ne]:
Po potvrzení požadavku se Midnight Commander nainstaluje a můžeme jej kdykoli spustit příkazem:
mc
Pokud bychom jej chtěli v budoucnu odinstalovat, stačí zadat:
sudo zypper remove mc
Jak je vidět, správa software je nejen velmi snadná a intuitivní, ale také efektivní a účinná. Dovolím si tvrdit, že nic lepšího než balíčkovací systém zatím nikdo pro správu software nevymyslel.
Monitorujeme hardware
Monitorujeme hardware
Server nám běží a už víme jakým způsobem se k němu přistupuje. Je tedy vhodný čas podívat se, jak můžeme monitorovat stav hardware. Většina příkazů funguje i pod normálním uživatelem, některé informace se však zobrazují jen superuživateli, proto je třeba pro jejich zobrazení třeba použít "sudo". Některé pak normální uživatel použít nemůže. Většina programů se také nachází mimo standardní cesty, které má nstavené běžný uživatel, zejména v adresářích /sbin a /usr/sbin. Pokud neznáte cestu, či nevíte zda jsou potřeba administrátoská práva, je možné se přihlásit jako superuživatel root a násedující příkazy spuštět bez uvedení cesty. Root má totiž všechny zmíněné adresáře v v prohledávací cestě.
Základním informativním nástrojem je lspci. Tento program poskytuje detailní informace o sběrnicích a zařízeních v počítači. Můj server vypadá takto:
sudo /sbin/lspci
Následuje výpis zařízení:
00:00.0 Host bridge: ATI Technologies Inc Device 7911
00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (Internal gfx)
00:06.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 2)
00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode]
00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:12.1 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI1 Controller
00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:13.1 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI1 Controller
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 3a)
00:14.1 IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller
00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
00:14.5 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI2 Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon 2100
01:05.2 Audio device: ATI Technologies Inc Radeon X1200 Series Audio Controller
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
Jak je vidět, všechny zařízení jsou podporována, nikde žádný bubák v podobně (unknown device).
Procesor
Příkaz:
cat /proc/cpuinfo
Výpis pro procesor serveru AMD Sempron:
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 127
model name : AMD Sempron(tm) Processor LE-1250
stepping : 2
cpu MHz : 1000.000
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm extapic cr8_legacy 3dnowprefetch
bogomips : 2010.86
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc 100mhzsteps
Pro srovnání uvádím, jak vypadá výpis dvoujádrového procesoru Intel E5200:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
stepping : 6
cpu MHz : 1200.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips : 5000.15
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
stepping : 6
cpu MHz : 1200.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips : 5000.13
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Paměť
Velikost paměti a udaje o použitém a volném množsví získáme:
free
Následuje výpis paměti:
total used free shared buffers cached Mem: 1927940 90800 1837140 0 4668 38396 -/+ buffers/cache: 47736 1880204 Swap: 4200956 0 4200956
Souborové systémy
Příkaz:
df -hT
Výpis:
Soub. systém Typ Velikost Užito Volno Uži% Připojeno do /dev/sda1 ext3 30G 1,1G 27G 4% / udev tmpfs 942M 108K 942M 1% /dev /dev/sda2 ext3 69G 180M 66G 1% /home /dev/sdb1 ext3 587G 198M 557G 1% /srv /dev/sda6 ext3 485G 198M 460G 1% /zaloha
Pevné disky
K monitoringu pevných disků slouží utilita smartmontools. Tato je standardní součástí instalace a je v systému obsažena. Využívám zejména program smartctl pro testování a monitoring pevných disků. Kompletní výpis velmi širokých možností této utility získáte:
sudo /usr/sbin/smartctl -h
Výpis kompletních inforrmací o disku pak:
sudo /usr/sbin/smartctl -a /dev/sda
Případně:
sudo/usr/sbin/smartctl -a /dev/sdb
....atd, podle toho, kolik disků se na serveru nachází (první je reprezentován /dev/sda, druhý /dev/sdb, třetí /dev/sdc...atd)
Smartmontools jsou také portovány pro Windows, vřele doporučuji.
Pro nastavování různých parametrů pevných disků slouží program hdparm. Kompletní seznam možných nastavení získáme:
sudo /sbin/hdparm --help
Podrobný popis programu naleznete třeba zde
Spouštíme FTP server
Spouštíme FTP server
Tak a je to tady. Dostáváme se k FTP serveru. Jak na FTP server v Opensuse popisuje tento článek. Výchozím FTP serverem v Opensuse je vsftpd, což znamená "Very Secure FTP Daemon". Svému názvu nezůstává nic dlužen, a jedná se skutečně o pravděpodobně o jedno nejbezpečnějších FTP řešení.
Než začneme editovat kterýkoli konfigurační soubor, doporučuji si jej odzálohovat třeba do svého domovského adresáře!
Budeme pochopitelně potřebovat balíček "vsftpd":
sudo zypper install vsftpd
Jakmile máme balíček nainstalován, můžeme se pustit do konfigurace:
Nejprve potřebujeme povolit spouštění vsftpd deamona pomocí xinet.d.. Editujeme tedy soubor (potřebujeme administrátorská práva):
/etc/xinetd.d/vsftpd
a hodnotu
disable=YES
změníme na
disable=NO
Nyní spustíme službu xinet.d:
sudo /etc/init.d/xinetd start
Jsme-li úspěšní, server nám odpoví:
Starting INET services. (xinetd) done
Pomocí chkconfig nastavíme automaticé spuštění služby xinetd při bootu
sudo /sbin/chkconfig xinetd on
Teď je potřeba nastavit vsftp daemona editací souboru
/etc/vsftpd.conf
Návody naleznete zde:
www.tachec.org/
www.g-loaded.eu/
www.linuxjournal.com/
www.linuxzone.cz
Můj konfigurační soubor /etc/vsftpd.conf vypadá takto:
# general settings
write_enable=YES
dirmessage_enable=YES
syslog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
ssl_enable=NO
xferlog_enable=YES
# zmena prav uploadovanych souboru
chown_uploads=YES
chown_username=admin
local_umask=022
#local user settings
local_enable=YES
chroot_local_user=YES
local_root=/srv/ftp
#anonymous user settings
anonymous_enable=YES
anon_world_readable_only=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_root=/srv/ftp
Nasledně restartujte xinetd:
sudo /etc/init.d/xinetd restart
Nakonec je třeba si ujasnit, jak chcete, aby FTP server fungoval a tomu přizpůsobit jeho nastavení. Já si stanovil takovéto pravidla:
1) lokální uživatel "admin" jak už napovídá jeho název, je účet administrátora serveru. Má přístup do složky /srv/ftp je jeho vlastnictvím, odpovídá za obsah složky a může tam nahrávat obsah. Tato složka je nejvyšší úrovní, kam se pomocí FTP dostane.
2) Anonymní uživatel má přístup do složky /srv/ftp. Může tam číst a stahovat od tamtud soubory. Nemůže tam ale žádné soubory nahrát a tato složka je nejvyšší úrovní, kam se pomocí FTP dostane.
3) Veškeré nahrané soubory se stávají vlastnictvím uživatele "admin".
Tomuto záměru odpovídá syntaxe mého souboru /etc/vsftpd.conf. Rozhodl jsem se také upravit vlastnická práva složky /srv/ftp
sudo chown admin /srv/ftp
změní vlastníka tohoto adresáře na uživatele "admin".
Nyní je třeba nastavit uživatelská práva k této složce.
sudo chmod -R 755 /srv/ftp
Tento příkaz znamená, že kompletní obsah složky /srv/ftp se stáne vlastnictvím uživatele "admin". 7 konrkétně znamená, že vlastník (admin) má právo číst, zapisovat aspouštět, a obě 5 znamenají, že skupina a ostatní uživatelé mohou v tomto adresáři číst a spouštět, nemohou ale zapisovat.
Nyní už by měl být FTP server prakticky plně funkční... "Admin" ,může stahovat i uploadovat, anonymní uživatelé mohou pouze stahovat.
Šifrování a další nastavení vsftpd
Jak jsem v této kapitole naznačil, přenos souborů pomocí FTP je nezabezpečený a může dojít ke zcizení uživatelského jména a hesla. Proto není vhodné využívat k uploadu souborů účet, který by umožňoval ovládnutí serveru. Jelikož jsme ovšem použili "vsftpd", existuje možnost jak ochránit FTP přenos pomocí šifrování. Kompletní popis, jak na toto šifrování ale také kompletní how-to k vsftpd naleznete v článku na tachec.org.
Webmin - zakázané ovoce chutná nejlépe
Webmin - zakázané ovoce chutná nejlépe
Webmin je uceléné webové rozhraní pro správu serverových aplikací jako ftp, ssh, mail, www, databází atd... Přístup je zabezpečen pomocí SSL.
Ač se dá předpokládat, že většina z vás bude takovýmto rozhraním nadšena, faktem je, že většina Linuxových distribucí tento opensource software odmítá zahrnout do svých repozítářů, nebo jej dokonce z repozitářů vypustila. Týká se to většiny majoritních distribucí jako Debian, Ubuntu, Opensuse nebo Fedora. Tento krok bývá zdůvodńován zejména rozdílností přístupu, jakým toto rozhraní přistupuje ke konfiguračním souborům a také nižší úrovní bezpečnosti.
Protože používání rozhraní webmin předpokládá využívání software několika třetích stran současně, a také vzhledem k výše uvedenému, jeho instalaci vám doporučovat nebudu....
Ale všichni známe Obecnou školu: "Studenti, kovové předměty se vlivem mrazu stávají lepkavými. Neolizujte proto zábradlí před školou...."
Začneme tím, že stáhneme balíček webminu pro náš systém:
wget http://heanet.dl.sourceforge.net/sourceforge/webadmin/webmin-1.441-1.noarch.rpm
Balíček se stáhne do našeho domovského adresáře /home/admin
Nainstalujeme-jej příkazem:
sudo rpm -ivh webmin-1.441-1.noarch.rpm
Nyní můžeme otevřít prohlížeč a zadat adresu našeho serveru a port 10 000:
192:168.1.xxx:10000
Po zadání identifikačních údajů superuživate root se objeví přehledný interface Webminu:
Podíváme-li sedo nabídky "servers" náš "vsftpd" tam neuvidíme. Je třeba přistoupit k instalaci modulu pro tento server. Stáhneme potřebný modul:
wget http://provider4u.com/images/stories/DOWNLOADS/vsftpd.tar.gz
Nyní v sekci Webmin -> Webmin configurations -> Webmin modules zvolíme "from local file", a v v domovském adresáři vybereme stažený modul:
/home/admin/vsftpd.tar.gz
Modul nainstalujeme a v ve Webmin configurations zvolíme Restart webmin. Pokud v sekci "server" ještě stále nevidíte "vsftpd" ve vašem webovém prohlížeči proveďte refresh stránky a vsftpd se objeví.
Nyní si můžete hrát do sytosti. Webmin má ve svém rozhraní vše. Od startu systému, přes monitoring HW, správu serverových služeb, správu diskových oddílů... Cokoli mě napadlo jsem ve webminu našel buď přímo (systémové nastavení serveru), nebo pomocí externích modulů (některé serverové služby).
Přesto - konfigurace pomocí parametrů .conf souborů je nejen jednodušší a bezpečnější, ale také 100% funkční. Webmin jako takový není officiálně podporován a tento fakt s sebou může přinášet určité problémy. Sám jsem narazil na situaci, kdy webové rozhraní webminu indikuje něco jiného, než co je v příslušném konfiguračním souboru k dané službě. Jestli je to tím, že webmin používá vlastní konfigurační nastavení, což je přístup krajně nesystémový, netuším.
Dojmy z webminu jsou smíšené, prozatím jej používat nebudu.
Docela by mě zajímalo jak funguje webmin i na jiných distribucích. Za tímto účelem zkusím bokem otestovat nějaké Debian-like distro.
Wake On LAN a zálohování
Wake On LAN
Základní deska podporuje Wake-on-LAN. Tato funkce je povolena v případě nastavení v BIOSu:
PME event wake up - ENABLED
Tuto položku najdeme v sekci Power management setup. V mém případě byla tato funkce zapnutá již v základním nastavení BIOSu. K úspěšnému probuzení je třeba poslat serveru tzv. magický packet..
Nebudu vám zastírat, že jsem zde čekal určité problémy, než se doberu k výsledku, ale fungovalo to na první pokus. Skutečně ve mně hrklo, když se zcela vypnutý server stojící vedle mě z ničeho nic rozjel
K zaslání magického packetu jsem použil utilitu ether-wake, která je v opensuse 11.1 (můj počítač) součástí balíčku netdiag. K probuzení stačilo znát pouze MAC adresu síťového rozhraní serveru:
ether-wake -b XX:XX:XX:XX:XX:XX
Server nabootuje a můžeme klasicky přihlásit pomocí ssh:
ssh admin@192.168.1.10
Pokud budeme chtít server později vypnout, postačí k tomu příkaz:
sudo /sbin/halt
Server lze tedy vzdáleně zapínat i vypínat podle libosti!
Zálohování
Zcela zásadní potřebou při provozování serveru je zálohování, konkrétně zálohování inkrementální. Při tomto typu zálohování je provedena první plná záloha, a při každém dalším zálohování se aktualizují pouze položky, které se změnily. To znamená, že jsou zapisovány pouze soubory, které se od poslední aktualizace změnily, a případně jsou na vyžádání také smazány ty soubory, které mezi tím byly smazány a zůstaly pouze v záloze.
K zálohování v systémech unixového typu slouží vynikající program rsync. Pokud máte na desktopu Linux, je už ve vašem systému přítomen, pokud máte Windows, budete si muset jeho upravenou edici opatřit zde: cwRsync.
V následujícím textu ukážu, jakým způsobem lze jednotlivé zálohy provést. V Případě že máte Windows, bude se vaše syntaxe příkazů pro rsync lišit jenom v cestě k zálohovaným datům, neboť windows na rozdíl od Linuxu používaji k označení oddílů a adresářové struktury písmenka a opačná lomítka. A protože Windows spouští program primárně z aktuálního adresáře, je v případě Windows nutné nacházet se v adresáři s rsyncem (nebo globálně nastavit cestu).
Proto v případě Windows začněte práci s rsyncem změnou adresáře (podle toho, kam jse rsync nainstalovali):
cd "c:\program files\cwrsync\bin"
Pokud používáte stejně jako já Linux, je možno rsync používat naprosto standardně, jako jiné konzolové programy.
Syntaxe programu rsync je následující:
rsync -
Kompletní popis možných parametrů a nápovedu zobrazíte pomocí příkazu:
rsync -h
nebo
rsync --help
Pro zálohování doporučuji použít pamatery -a a -v , pokud chcete sledovat průběh pak také parametr - -progress a v případě, že chcete smazat soubory, které od minulé zálohy přestaly existovat pak parametr - - delete
Důležité upozornění:
Cesta ke zdroji dat může končit lomítkem:
/home/ondra/
nebo jménem adresáře:
/home/ondra
V případě, že na konci ponecháte lomítko, bude do cílového adresáře odzálohován pouze obsah adresáře /home/ondra/. Pokud bude cesta ke zdroji dat bez lomítka na konci, bude odzálohován celý adresář, a v cílovém adresáři kam zálohujeme tedy vznikne složka "ondra" a do ní se odzálohuje obsah našeho adresáře /home/ondra. Proto bedlivě uvažte, zda chcete zálohovat včetně zdrojového adresáře, nebo jen soubory a složky v něm obsažené.
Z toho také vyplývá, že následující dva příkazy povedou ke stejnému výsledku:
rsync -av --progress --delete /home/ondra/ /zaloha/ondra
rsync -av --progress --delete /home/ondra /zaloha
V prvním případě musí cílový adresář /zaloha/ondra existovat!
Naopak použití a nepoužití lomítka na konci cílové cesty nemá na zálohování žádný vliv a následující příkazy jsou si ekvivalentní:
rsync -av --progress --delete /home/ondra /zaloha/
rsync -av --progress --delete /home/ondra /zaloha
Lokální záloha
Nejjednodušší zálohou je lokální záloha. V tomto případě se zálohuje z místního adresáře do místního adresáře. To je samozřejmě možné buď na lokálním počítači u kterého fyzicky sedíte, tak pomocí vzdálené správy na vašem serveru - z jedné složky na serveru do druhé. Je tomu tak proto, že po přihlášení pomocí ssh se váš příkazový řádek chová stejně, jako kdyby jste seděli přímo u serveru. Lokální zálohu si tedy ukážeme na příkladě našeho serveru:
Ve složce "/srv/ftp" máme nějaký obsah, který sdílíme ostatním uživatelům. Nyní jsme se rozodli tento obsah odzálohovat do složky "/záloha". (pozor, admin musí mít právo zapisovat do této složky!)
rsync -av --progress /srv/ftp/ /zaloha
Všechno co se nachází ve složce /srv/ftp bylo nyní odzálohováno do složky /zaloha.
Schematicky: /srv/ftp /zaloha
Pokud na serveru provozujeme více služeb, nebo chceme celkově zálohovat více různých typů dat, asi by se nám nelíbilo, kdyby jsme si ve složce /zaloha všechna data pomíchali. V tom případě provedeme zálohu i se zdrojovým adresářem:
rsync -av --progress /srv/ftp /zaloha
Ve složce záloha v tom případě vznikne adresář "ftp" a až do něj se odzálohuje obsah adresáře.
Schématicky: /srv/ftp /zaloha/ftp
Nyní uplnynula nějaká doba od první zálohy a chceme provést její aktualizaci. A protože se chceme zbavit také starých souborů, které jsme ve složce /srv/ftp již dávno smazali, použijeme parametr "- -delete"
rsync -av --progress --delete /srv/ftp /zaloha/
Vzdálená záloha
Zálohování dat z lokálního počítače na vzdálený server se od zálohování mezi lokálními složkami příliš neliší. V podstatě je třeba cílovou cestu uvést s IP adresou a specifikovat, jak se chceme na vzdálený server přihlásit. Jelikož se přihlašujeme pomocí ssh, bude příkaz vypadat nějak takto:
rsync -ave ssh --progress --delete /media/data admin@192.168.1.10:/zaloha/soukrome
Jak je vidět, tak nám přibyl pouze parametr -e, kterým specifikujeme že chceme použít vlastní shell, ssh je jméno shellu, který jsme se rozhodli použít, a následuje standardní zdrojová cesta a cílová cesta. Jelikož se jedná o vzdálený server, musí být uvedena i IP adresa serveru a uživatel, kterého chceme použít pro přihlášení, následuje dvojtečka a standardní cílová cesta.
Po zadání tohoto příkazu jsme dotázáni na heslo uživatele admin, a složka /media/data je odzálohována do složky /zaloha/soukrome na serveru.
Schématicky: lokální PC : /media/data vzdaleny server : /zaloha/soukrome/data
Někdy v budoucnu nastane situace, kdy budeme chtít částečně či úplně ztracená data v lokální složce /media/data obnovit z naší zálohy na serveru. Použijeme stejný příkaz pouze prohodíme zdroj a cíl:
rsync -ave ssh --progress --delete admin@192.168.1.10:/zaloha/soukrome/data/ /media/data
Zde si prosím povšiměte, že jsem na konci zdroje použil lomítko. Mým záměrem je totiž zkopírovat pouze obsah složky "/zaloha/soukrome/data" ze serveru do složky "/media/data" na mém PC. Pokud bych lomítko nepoužil, na mém počítači by ve složce "/media/data" vznikla složka "data" ( /media/data/data ) a až do ní by se skopírovala záloha.
Doporučení: Používejte lomítko na konci zdrojové cesty a parametr "- -delete" s rozvahou. Předejdete tak kopírování dat někam kam nechcete, nebo v případě "- - delete" jejich nechtěnému smazání.
Pokročilá nastavení FTP serveru
Pokročilá nastavení FTP serveru
Nastavení našeho FTP serveru se nachází v souboru:
V originále vypadá tento soubor nějak takto:
/etc/vsftpd.conf
V originále vypadá tento soubor nějak takto:
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# If you do not change anything here you will have a minimum setup for an
# anonymus FTP server.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
# General Settings
#
# Uncomment this to enable any form of FTP write command.
#
#write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
#
dirmessage_enable=YES
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#
nopriv_user=ftpsecure
#
# You may fully customise the login banner string:
#
#ftpd_banner="Welcome to FOOBAR FTP service."
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#
#ls_recurse_enable=YES
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#
#deny_email_enable=YES
#
# (default follows)
#
#banned_email_file=/etc/vsftpd.banned_emails
#
# If enabled, all user and group information in
# directory listings will be displayed as "ftp".
#
#hide_ids=YES
# Local FTP user Settings
#
# Uncomment this to allow local users to log in.
#
#local_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#
#local_umask=022
#
# Uncomment to put local users in a chroot() jail in their home directory
# after login.
#
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#
#chroot_list_enable=YES
#
# (default follows)
#
#chroot_list_file=/etc/vsftpd.chroot_list
#
# The maximum data transfer rate permitted, in bytes per second, for
# local authenticated users. The default is 0 (unlimited).
#
#local_max_rate=7200
# Anonymus FTP user Settings
#
# Allow anonymous FTP?
#
anonymous_enable=YES
#
# Anonymous users will only be allowed to download files which are
# world readable.
#
anon_world_readable_only=YES
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#
#anon_upload_enable=YES
#
# Default umask for anonymus users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#
#anon_umask=022
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#
#anon_mkdir_write_enable=YES
#
# Uncomment this to enable anonymus FTP users to perform other write operations
# like deletion and renaming.
#
#anon_other_write_enable=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#
#chown_uploads=YES
#chown_username=whoever
#
# The maximum data transfer rate permitted, in bytes per second, for anonymous
# authenticated users. The default is 0 (unlimited).
#
#anon_max_rate=7200
# Log Settings
#
# Log to the syslog daemon instead of using an logfile.
#
syslog_enable=YES
#
# Uncomment this to log all FTP requests and responses.
#
#log_ftp_protocol=YES
#
# Activate logging of uploads/downloads.
#
#xferlog_enable=YES
#
# You may override where the log file goes if you like. The default is shown
# below.
#
#vsftpd_log_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note: This disables the normal logging unless you enable dual_log_enable below.
#
#xferlog_std_format=YES
#
# You may override where the log file goes if you like. The default is shown
# below.
#
#xferlog_file=/var/log/xferlog
#
# Enable this to have booth logfiles. Standard xferlog and vsftpd's own style log.
#
#dual_log_enable=YES
#
# Uncomment this to enable session status information in the system process listing.
#
#setproctitle_enable=YES
# Transfer Settings
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
#
connect_from_port_20=YES
#
# You may change the default value for timing out an idle session.
#
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#
#data_connection_timeout=120
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# Set to NO if you want to disallow the PASV method of obtaining a data
# connection.
#
#pasv_enable=NO
# PAM setting. Do NOT change this unless you know what you do!
#
pam_service_name=vsftpd
# Set listen=YES if you want vsftpd to run standalone
#
listen=YES
# Set to ssl_enable=YES if you want to enable SSL
ssl_enable=NO
Všechny volby jsou, jak je vidět, přehledně okomentovány.
Většinou si tento soubor odzálohuji, smažu obsah a napíšu si ho sám. Jednotlivé oblasti si nyní rozebereme trošku podrobněji. Rozhodně se nebudu zaobírat všemi volbami. Většinu z nich ani neovládám. Návodů, jak na to, je plný internet....
Obecná nastavení
listen=YES
Tato volba definuje, zda bude vsftpd spouštěn jako samostatný daemon, nebo jednotně spolu s ostatními službami xinet.d. V našem případě využíváme xinet.d, proto má tato položka hodnotu NO, je zakomentována křížkem, nebo není v souboru vůbec.
write_enable=YES
Povoluje příkazy pro zápis. Pokud není tato volba povolena, nikdo nemůže na server zapisovat!
dirmessage_enable=YES
V případě že při změně adresáře obsahuje nový adresář soubor ".message", je obsah tohoto souboru vypsán formou zprávy. Přidáním položky "message_file" do našeho konfiguračního souboru můžeme jméno takovýchto souborů stanovit jinak.
idle_session_timeout=300
Doba v sekundách za kterou je v případě nečinosti spojení ukončeno serverem. Zkrácení doby omezuje riziko DoS útoku.
data_connection_timeout=120
Doba v sekundách, po které bude uživatel odhlášen, byl-li přerušen datový přenos.
nopriv_user=ftpsecure
Nastavení uživatele , který pro práci se soubory nemá žádná práva. Tento parametr zvyšuje bezpečnost ftpserveru, protože vsftpd tohoto izolovaného uživatele bez práv může pro bezpečné oprace. Uživatel (ftpsecure) musí v systému existovat.
Nastavení logů
syslog_enable=YES
Místo logů do souborů se loguje pomocí syslog daemona. Pokud chcete logy v souboru, tuto volbu zakažte.
xferlog_enable=YES
Informace o stažených a uploadovaných souborech
log_ftp_protocol=YES
Informace o všech FTP požadavcích a odpovědích
vsftpd_log_file=/var/log/vsftpd.log
Bez tohoto parametru budou logy (pokud je logováno do souboru) zapisovány do zmíněného souboru. Nahrazením hodnoty tohoto parametru můžeme logovat jinam.
Nastavení pro lokální uživatele
local_enable=YES
Defaultní nastavení masky je 077, toto nastavení je možno změnit například na 022
chroot_local_user=YES
Uzamkne lokální uživatele v jejich domovských složkách (/home/"username" )
local_root=/srv/ftp
Nadefinování jiného adresáře, kde bude lokální uživatel uzamčen.
local_max_rate=120000
Maximální rychlost přenosu pro lokální uživatele nastaví na 120000 B/s neboli 120 kB/s. Hodnotu lze volit libovolně.
Nastavení pro anonymní uživatele
anonymous_enable=YES
Povolí přihlášení anonymních uživatel
ftp_username=ftp
Uživatelský účet, který bude použit pro anonymní uživatele. Pokud nastavíte tento parametr, účet musí v systému existovat.
anon_world_readable_only=YES
Omezuje možnost anonymních uživatel stahovat pouze soubory, které mají nastaveno přístupové právo číst ("r") u skupiny "other".
anon_upload_enable=YES
Umožní anonymním uživatelům nahrávat soubory na server.
anon_umask=022
Defaultní nastavení masky je 077, toto nastavení je možno změnit například na 022.
anon_mkdir_write_enable=YES
Anonymní uživatel může vytvářet adresáře.
anon_other_write_enable=YES
Anonymní uživatel může provádět další operace pro zápis jako mazání a přejmenování.
chown_uploads=YES
Změní vlastnictví uploadovaných souborů.
chown_username=admin
Vlastníkem těchto souborů se stane uživatel admin.
anon_root=/srv/ftp
Nastaví výchozí adresář anonymního uživatele na /srv/ftp
anon_max_rate=120000
Maximální rychlost přenosu pro anonymní uživatele nastaví na 120000 B/s neboli 120 kB/s. Hodnotu lze volit libovolně.
Chytré odkazy, které vám poradí lépe než já
www.linuxexpres.cz/ - (srozumitelné, česky, zde začněte)
Spotřeba serveru, závěr
Spotřeba serveru
Začátkem ledna jsem provedl upgrade hardware a nějaké úpravy vnitřního uspořádání serveru. Ale o tom podrobněji v další vznikající kapitole. Při této příležitosti jsem provedl orientační měření spotřeby a vyzkoušel různé kombinace hardwaru a jejich vliv na spotřebu serveru.
Hardwarové vybavení serveru a provedený upgrade:
Základní deska: Gigabyte GA-MA74GM-S2H (rev.1.0)
Procesor: AMD Sempron LE-1250 EE BOX upgrade na AMD Athlon 64 X2 4850e EE
Operační paměť: A-Data 2 GB DDR2 800 MHz single channel upgrade na A-Data 2× 1 GB DDR2 800 MHz dual channel
Pevný disk: 2× WD 6400AACS HDD
Zdroj: Seasonic S12II 330W
Case: Cooler Master Elite 341
Měření jsem provedl multimetrem Mastech MY-64. Pro mé měření je více než dostačující a byl právě po ruce. Napětí v rozvodné síti u mě doma je 236 V. Spotřeba byla stanovena monitorováním elektrického proudu odebíraného serverem. Elektrickou zásuvku považuji při tomto měření za absolutně tvrdý zdroj.
Pro jednoduchost budu vypisovat jen měnící se komponenty a jejich spotřebu. Při bootování počítače spotřeba značně a dynamicky kolísá, lze ale subjektivně odhadnout jakýsi průměr. Bežné zatížení serveru jako kopírování souborů, instalace SW a podobně dosahuje maximálně úrovně hodnoty průměrné spotřeby při bootu nebo nižší. Pod položkou boot/load si proto představte průměrnou spotřebu serveru při bootu a zároveň tato položka reprezentuje horní mez spotřeby při běžných serverových činnostech a zátěžích (kopírování souborů, instalace software apod).
Vypnutý server a maximální zaznamenaná spotřeba:
vypnuto: 0,01 A - 0,02 A => 2,36 W - 4,72 W
MAX: 0,35 A = > 82,6 W
Tady je vidět, že napájení PCI sběrnice pro Wake-on-LAN něco stojí. Hodnotu vůbec neberte vážně, protože 0,01 A je na hranici měřitelnosti a může to bý i mnohem méně.
Hodnota MAX znamená maximální špičkovou hodnotu zaznamenanou při bootu počítače, kdy průtok proudu značně a velmi rychle kolísá.
Sempron + 2 GB RAM (jeden modul) + 2× HDD:
Boot/load: 0,25 A => 59 W
Idle: 0,18 A => 42,48 W
X2 4850e + 1 GB RAM (jeden modul) + 1× HDD:
Boot/load: 0,23 A => 54,28 W
Idle: 0,18 A => 42,28 W
X2 4850e + 1 GB RAM (jeden modul) + 2× HDD:
Boot/load: 0,25 A => 59 W
Idle: 0,17 A => 40,12 W
X2 4850e + 2× 1GB RAM (dva moduly) + 2× HDD:
Boot/load: 0,27 A => 63,72 W
Idle: 0,17 A => 40,12 W
Co plyne z měření?
1) Předně. Toto měření je pouze orientační a pouze pro mou potřebu. Zkoumal jsem pouze běžný provoz. Nějaké syntetické zatěžování komponent na max mě nezajímá, Orthos na serveru asi využití nenajde.
2) V idle je vliv použitého CPU, RAM, či množství HDD (jeden vs. dva) pod hranicí měřitelnosti. Proto nemá z hlediska spotřeby velký smysl řešit zda Sempron, X2, single. nebo dual channel, jeden. nebo dva disky. Pokud se ale hodláte zaměřit na absolutní minimalizaci spotřeby pomocí podvoltování a podobně, vliv to samozřejmě mít bude.
3) Vliv jednoho pevného disku navíc v zátěži je necelých 5 W (což odpovídá tvrzení Western Digital).
4) Vliv jednoho 1GB DDR2 modulu v zátěži je necelých 5 W.
5) Vliv použitého CPU není žádný, resp. oba modely jsou podobně úsporné.
Závěr
Článek se neustále vyvíjí, autor do něj přidává nové a nové zkušenosti. Aktuální podobu můžete sledovat v našem fóru, ve vlákně Stavíme všestranný domácí server.
Chcete-li se zapojit do už rozběhlé diskuze o tomto článku a problematice všestranného domácího serveru, následujte tento odkaz.
Autor se vzdal honoráře za článek ve prospěch humanitární organizace Člověk v tísni.