Úvod
Na Linuxu se dá postavit ledacos, od malého LAMP servříku po komplexní řešení firemního informačního systému s vysokou dostupností. V tomto seriálu se zaměřím spíše na onu první oblast, přičemž věnovat se budu nejenom konkrétním postupům, jak nastavit jednoduchý LAMP server, ale i řadě témat spojených se správou serverů, zejména pak bezpečnosti a monitorování.
U čtenářů budu předpokládat základní znalosti prostředí i správy GNU/Linuxu, tzn. správu softwaru, adresářovou strukturu, práci v příkazové řádce, atd. - linuxový začátečník by se neměl pouštět do správy "ostrého" serveru připojeného k Internetu. Vhodnější je začít buď za pomoci virtualizace, nebo přestavbou staršího počítače na server v domácí síti.
Při výběru distribuce pro server je třeba se odrazit od požadavků - jaký server chcete postavit (jaký software má mít v repositářích), preferujete-li aktuálnost balíčků před stabilitou nebo naopak (obojí mít nejde - viz dále), ale také třeba jaké máte zkušenosti - jaké distribuce znáte a jste schopni hladce spravovat (nasadit na server distribuci, ve které se nevyznáte, není nejlepší nápad).
Jedna z veledůležitých věcí, které je třeba zvážit, je vývojový cyklus vámi zvolené distribuce. Existují v zásadě dva typy vývojových cyklů - periodický a kontinuální (rolling release).
Periodický vývojový cyklus zná asi každý - distribuce udržuje vývojovou větev, kam umisťuje nové balíčky. Jednou za čas se tato větev "zmrazí" (přestane akceptovat nové verze balíčků, akceptuje pouze opravy chyb), otestuje se, odladí se chyby a za nějakou dobu se z této větve vyloupne další vydání distribuce (třeba aktuální Debian 5.0 nebo Ubuntu 9.10). Balíčky v tomto vydání (které se obvykle označuje jako stabilní větev) jsou po určitou dobu udržované - setrvávají sice obvykle ve stejné verzi, ale opravují se u nich zjištěné chyby. Tato doba trvá obvykle do té doby, než se vyloupne další stabilní verze a nějakou dobu se na světě ohřeje (což dává správcům serverů čas naplánovat příslušný upgrade).
Méně známý typ vývojového cyklu mají distribuce jako Gentoo nebo Arch Linux, a sice kontinuální vývoj (rolling release). V rámci něj nedochází k periodickému vydávání nových verzí distribuce, ale k plošné, kontinuální aktualizaci všech balíčků - distribuce má tedy stále aktuální software (bleeding edge). To nevylučuje přítomnost testovacích větví s nejnovějšími balíčky, které se do "stabilní" větve distribuce dostanou až v okamžiku, kdy byly otestovány a bylo shledáno, že fungují.
Kontinuální vývoj zaručuje aktuální software, ale obvykle vede k o něco menší stabilitě (na dostatečné otestování obvykle není čas) a/nebo k problémům při aktualizacích. Dochází totiž ke změnám verzí programů, což obvykle znamená změny v jejich konfiguraci, a pro vás jako správce to znamená, že při každé aktualizaci může program (zejména pak démon) přestat spolupracovat s naším pečlivě odladěným konfiguračním souborem, protože se mezi tím pozměnila jeho syntaxe. Tyto typy distribucí před takovými změnami obvykle varují, což ovšem znamená, že by správce měl před každou aktualizací za domácí úkol projít web distribuce, jestli tam náhodou není napsáno, že po aktualizaci nějaký program (nebo hůř - systémová komponenta) přestane fungovat, pokud se adekvátně neupraví konfigurační soubor.
Naopak periodický vývojový cyklus zajišťuje obvykle o něco větší stabilitu a vzhledem k tomu, že verze programů jsou zmrazeny, nedochází až na výjimky k větším změnám při aktualizacích. Problémem u tohoto typu vývojového cyklu je, že s rostoucím časem software v distribuci zastarává.
Enterprise distribuce s periodickým vývojovým cyklem jako Red Hat Enterprise Linux (RHEL), SUSE Linux Enteprise Server (SLES) či Mandriva Enterprise Server se vyznačují nejenom komerční podporou, ale i relativně dlouhým obdobím, kdy jsou vydávány aktualizace. U RHEL je to třeba 7 let, i když jisté záležitosti jsou řešeny pouze první čtyři roky (update instalačních médií, apod.) u příslušného vydání.
Dobrou zprávou je, že i některé nekomerční distribuce mají dlouhou podporu, například klon RHEL s názvem CentOS nebo Ubuntu LTS. V obou případech však před případným nasazením doporučuji důkladně projít, které věci se řeší prvních pár let a co se pro zbytek inzerované doby podpory už neřeší (zejména pak u Ubuntu LTS seznamy balíčků, ke kterým už nevychází ani bezpečnostní aktualizace po skončení prvních tří let podpory).
Pro správce serverů jsou takové distribuce z jistého pohledu požehnáním - není třeba řešit upgrade každých 6-12 měsíců jako u většiny ostatních distribucí. Samozřejmě je třeba zvážit, že software v takové distribuci zastarává, a za několik let může být rozdíl mezi softwarem v distribuci a aktuálními verzemi propastný.
Při výběru distribuce pro server vás bude zajímat ještě pár věcí. Předně to bude počet vývojářů a rychlost reakcí na problémy (u menších distribucí může být v tomto směru problém). A určitě vás bude zajímat i množství softwaru v repositářích - kupříkladu, mně osobně v základu RHEL/CentOS citelně chyběl OpenVPN server. Takový nedostatek sice někdy lze vyřešit přidáním dalšího repositáře s požadovaným softwarem, ale v takovém případě si musíte uvědomit, že závisíte nejenom na distributorovi, ale i správci daného repositáře. Od něj potřebujete nejenom řádné testování, ale i reakce na případné nalezené chyby a bezpečnostní problémy. Bude je řešit podobně jako distribuce (patchováním a nikoliv změnou verze), nebo do repositářů hodí verzi novou, kde se třeba změnila syntaxe konfiguračních souborů?
Debian je druhou nejstarší žijící distribucí vůbec (hned po Slackwaru). Byl založen v roce 1993 Ianem Murdockem a dnes je jednou z nejznámějších, nejrozsáhlejších a nejuznávanějších distribucí vůbec. Debian je ryze nekomerční a se svými uživateli uzavírá "společenskou smlouvu" (Social contract), ve které se zavazuje mj. k tomu, že zůstane 100% svobodný, zaměřený na uživatele a otevřený (v tom smyslu, že před nimi nebude skrývat známé problémy).
Z Debianu vycházejí některé další distribuce, ať již nekomerční či komerční. Mezi tyto distribuce patří mj. Knoppix, Linspire, Ubuntu či Xandros.
Aktuální verze Debianu je 5.0 s kódovým označením Lenny. Počínaje verzí 6.0 bude mít Debian dvouletý vývojový cyklus - zmrazení nastane každý lichý rok v prosinci s tím, že nové vydání bude následovat v první polovině následujícího roku. Bezpečnostní aktualizace pro starou verzi vycházejí ještě rok po vydání nové verze, což dává správcům dostatek času pro upgrade na aktuální verzi. Verze 6.0 vyjde v první polovině příštího roku.
Z hlediska nasazení na server vyniká Debian svou stabilitou a relativně dlouhým vývojovým cyklem, který představuje jistý kompromis mezi distribucemi s dlouhou podporou jako CentOS nebo Ubuntu LTS, a distribucemi, které vycházejí každých 6-12 měsíců (Fedora, apod.). Jak už bylo zmíněno, Debian je jednou z nejrozsáhlejších distribucí - jeho repositáře čítají 25 tisíc balíčků, což nám dává ohromnou paletu pro výběr serverového softwaru k nasazení, o jehož aktualizaci se postará distribuce.
Delší vývojový cyklus může u Debianu naopak vadit tam, kde záleží na tom, aby byl software aktuální. Tohle do jisté míry řeší repositář Debian-backports, který obsahuje novější verze vybraného softwaru pro stabilní větev Debianu. V případě, že je aktuálnost softwaru důležitá, může být nicméně přesto vhodnější zvolit distribuci s kratším vývojovým cyklem (Fedora, apod.) nebo s kontinuálním vývojem (Gentoo, apod.).