Bankovní institut vysoká škola Praha Katedra informačních technologií a elektronického obchodování
Linux jako internetový server Bakalářská práce
Autor:
Václav Matoušek, DiS. Informační technologie, Manažer projektů
Vedoucí práce:
Praha
Ing. Zdeněk Bečvář, Ph.D.
Červen 2010
Prohlášení:
Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a s použitím uvedené literatury.
………………………. Ve Strakonicích dne 7. 6. 2010
Václav Matoušek, DiS.
Poděkování
Děkuji tímto Ing. Zdeňku Bečvářovi, Ph.D. za vstřícnost a poskytnutí cenných rad při vedení této práce.
Anotace práce: Bakalářská práce se zabývá internetovým serverem na platformě Linux, především jeho hlavními rolemi - poštovního a webového serveru. Linux byl zvolen jako bezplatná alternativa ke komerčním službám prostředí Windows a operační systém i všechny zde popisované aplikace jsou volně šiřitelné. Je popsán celý proces instalace a konfigurace jednotlivých služeb a následné ladění a monitorování běžícího systému. Výsledkem této práce je skutečný fungující webový a poštovní server.
Annotation: This bachelor thesis deals with Internet server based on Linux platform, mainly with its roles as a post and web server. Linux is chosen as a free alternative to commercial services and operating systems such as Windows. Also all applications considered in the thesis are freeware. The thesis contains description of installation and configuration processes of all individual services as well as consequent customization and monitoring of the developed system. The outcome of this thesis is the real working web and post server.
Obsah 1
2
3
Linux - systém a výběr vhodné distribuce ............................................................ - 8 1.1
Historie Linuxu .................................................................................................. - 8 -
1.2
Přehled linuxových distribucí .......................................................................... - 10 -
1.3
Ubuntu Linux ................................................................................................... - 12 -
1.4
Jak Linux funguje ............................................................................................ - 14 1.4.1
Jádro a systémové programy ............................................................. - 14 -
1.4.2
Souborový systém ............................................................................. - 15 -
1.4.3
Uživatelské účty a práva ................................................................... - 17 -
Instalace operačního systému............................................................................... - 19 2.1
Výběr hardware................................................................................................ - 19 -
2.2
Instalace jádra systému .................................................................................... - 20 -
2.3
Instalace programů a základních služeb .......................................................... - 21 -
Instalace a konfigurace služeb ............................................................................. - 22 3.1
Přehled služeb .................................................................................................. - 22 -
3.2
Poštovní server ................................................................................................. - 24 3.2.1
Postfix ............................................................................................... - 24 -
3.2.2
Virtualizace a uživatelské účty v MySQL ........................................ - 29 -
3.2.3
Správa serveru - PostfixAdmin ........................................................ - 31 -
3.2.4
Dovecot – IMAP a POP3 .................................................................. - 32 -
3.2.5
Nevyžádaná pošta - Spamassassin .................................................... - 34 -
3.2.6
Webmail ............................................................................................ - 36 -
-5-
3.3
4
Webový server ................................................................................................. - 38 3.3.1
Apache............................................................................................... - 38 -
3.3.2
Virtuální webové servery .................................................................. - 39 -
3.3.3
PHP ................................................................................................... - 41 -
3.3.4
MySQL .............................................................................................. - 43 -
3.3.5
Správa databáze - PHPMyAdmin ..................................................... - 44 -
Ladění a provoz serveru ....................................................................................... - 45 4.1
Analýza logů a monitoring .............................................................................. - 45 -
4.2
Antispamový filtr ............................................................................................. - 48 -
4.3
SMTP autentizace a TLS šifrování .................................................................. - 49 -
Závěry a doporučení..................................................................................................... - 51 Seznam použité literatury ............................................................................................ - 53 Klasické zdroje: .......................................................................................................... - 53 Elektronické zdroje:.................................................................................................... - 54 Seznam použitých zkratek ........................................................................................... - 55 Přílohy ........................................................................................................................... - 57 -
-6-
Úvod Cílem práce je realizace a popis internetového serveru na platformě Linux od prvotní instalace až po konfiguraci jednotlivých služeb a provozování systému. Existuje mnoho programů a služeb pro realizaci vlastního internetového serveru. V majoritním prostředí Microsoft Windows tyto funkce běžně vykonává služba IIS a Microsoft Exchange Server. Pokud chce menší či střední firma nebo i jednotlivec či skupina lidí provozovat pod svou doménou web a poštovní služby, zvolí nejspíš uvedené řešení na platformě Windows, nebo využije služeb webhostingových firem. Využití webhostingu je levnější, ovšem náklady, které jsou za jeho provoz placeny třetí firmě, stoupají s přibývajícím počtem e-mailových schránek a webových prezentací. Pořizovací cena zmiňovaných produktů firmy Microsoft je zase pro menší firmy nebo skupiny lidí příliš vysoká. Linux představuje v tomto případě zajímavou alternativu a nabízí řešení v podobě volně šiřitelného kódu, a to od operačního systému až po jednotlivé aplikace a služby. Realizace takového systému na platformě Linux (mimo nákladů na hardware) je zcela zdarma a přidanou hodnotou je navíc skutečnost, že se v prostředí Linuxu téměř nevyskytují viry a škodlivé kódy. Zranitelná místa se objevují v každém operačním systému, ale díky volně šiřitelnému kódu systému Linux je jejich odhalení snazší a rychlejší než u komerčních produktů. Dalším důvodem, proč jsem si vybral prostředí Linuxu, je i detailní možnost konfigurace jednotlivých služeb a programů a velká variabilita. V první kapitole práce je uvedena stručná historie unixových systémů, přehled nejpoužívanějších distribucí a popis základních vlastností tohoto operačního systému. Druhá kapitola popisuje výběr hardware, proces instalace jádra operačního systému Ubuntu Linux, přidružených systémových aplikací a základních programů. Ve třetí kapitole už se zabývám popisem jednotlivých aplikací, služeb a programů, které budou plnit jednotlivé role serveru a jejich konfigurací a vzájemnou spolupráci. Čtvrtá kapitola potom uvádí základní činnosti nutné pro spolehlivý provoz, vyladění, analýzu a monitorování serveru.
-7-
1 Linux - systém a výběr vhodné distribuce 1.1 Historie Linuxu Tři desetiletí předtím, než dnes již světově známý finský student Linus Torvalds představil v roce 1991 svůj první operační systém Linux, stáli inženýři laboratoří společnosti Bell (divize AT&T) před úkolem vytvořit nový kvalitní operační systém. Na počátku 70. let 20. století tak vznikl projekt Unics (Unary Information and Computing Service), později přejmenovaný na Unix. Jeden z hlavních autorů nového systému Dennis Ritchie sestavil v té době nový programovací jazyk C, do kterého byl také Unix vzápětí z assembleru přepsán. Později přišla firma AT&T v rámci antimonopolního řízení o svou počítačovou divizi a převedla za velmi výhodných podmínek licenci na některé americké univerzity. To byl počátek vzniku různých verzí Unixu, z nichž nejznámější jsou v současné době BSD (Berkeley System Distribution), Irix a Solaris. Dalším důležitým milníkem je rok 1983. V té době byl založen projekt GNU, jehož snahou bylo vytvořit nový operační systém unixového typu, který by byl na rozdíl od Unixu složen výhradně ze svobodného software. Zakladatelem projektu GNU je programátor Richard Stallman, který za tímto účelem sepsal novou licenci GNU GPL (GNU General Public License), pod kterou je dodnes šířen svobodný software. V roce 1991 se mladý student Linus Torvalds ve škole setkal s unixovým operačním systémem Minix. Unixový model ho velmi zaujal a rozhodl se pořídit si ho domů. Po čase zjistil, že Minix je až příliš jednoduchý a navíc k němu nebylo možné sehnat zdrojové kódy. Velké unixové verze byly zase příliš drahé a jako student si je nemohl dovolit. Rozhodl se tedy, že si naprogramuje vlastní operační systém, který by byl podobný Minixu, a bylo by ho možné provozovat na běžném PC. První verze nového operačního systému spatřila světlo světa v září roku 1991 a Torvalds jej pojmenoval přesmyčkou ze svého křestního jména - Linux. Linux je napsán v programovacím jazyce C a z unixových systémů si přinesl například organizaci systému souborů a správu uživatelských účtů a oprávnění.
-8-
Jako každý mladý projekt nebylo ani linuxové jádro od počátku dokonalé, ale během relativně krátké doby si získalo množství příznivců, kteří na jeho vývoji spolupracovali a přispívali vlastními myšlenkami a postupy. Vývoj systému se brzy rozrostl natolik, že se Torvalds rozhodl zcela uvolnit zdrojové kódy a šířit Linux pod svobodnou licencí GNU GPL. Jelikož byl vývoj Linuxu mnohem rychlejší a úspěšnější než vývoj původního operačního systému GNU nazvaného Hurd, došlo vzápětí ke spojení obou projektů a operační systém GNU se začal používat společně s jádrem Linux. [9] Tímto spojením vznikl jeden projekt GNU/Linux, který je velkou částí uživatelů a především v médiích běžně označován poněkud nesprávně zkráceným pojmenováním Linux. Spojením Linuxu, GNU a dalších projektů vznikají takzvané distribuce, které tak tvoří skutečný komplexní operační systém.
-9-
1.2 Přehled linuxových distribucí Distribuce jsou jednou z odlišností Linuxu od jiných operačních systémů. Jsou přímým důsledkem šíření systému pod svobodnou licencí GNU GPL. Každý má právo vzít jádro Linuxu, základní přidružené programy a postavit si kolem nich vlastní systém – distribuci. Pro základní standardizaci a kompatibilitu operačních systémů založených na Linuxu vznikl projekt Linux Standard Base, který se snaží, aby nedošlo k úplnému rozdrobení a vzájemnému odcizení jednotlivých distribucí. Mezi ty nejznámější a hojně používané linuxové distribuce patří Red Hat Linux. V roce 2001 byl dokonce nejrozšířenější distribucí v České republice. Systém má uživatelsky velmi příjemnou instalaci a díky prostředí X-Window i grafické uživatelské prostředí. Jeho instalační systém je založen na bázi tzv. RPM balíčků (Red Hat Package Manager) a obsahuje velké množství softwarových aplikací, z nichž značná část je (na rozdíl od distribuce samotné) také komerčních. Na balíčkovacím systému RPM jsou založeny i některé novější distribuce jako například Mandriva Linux, dříve označovaná jako Linux Mandrake. [10] Slackware Linux je pojmenování jedné z nejstarších distribucí a v minulosti byl také velmi rozšířen. Jeho výhodou je především velmi rychlá instalace a množství dostupných softwarových balíků. Slackware klade velký důraz na stabilitu a bezpečnost. Obsahuje tak pouze stabilní a prověřené verze programů. [10] Oficiální pobočku v České republice otevřela před několika lety distribuce zvaná SuSE Linux. Jedná se o komerční placenou distribuci, která zahrnuje rozsáhlou českou dokumentaci a instalační a technickou podporu. SuSE používá pro správu softwarových balíků již uvedený systém RPM a poskytuje komfortní konfigurační nástroje YaST (Yet Another Setup Tool) pro správu systému, nastavení hardwaru a konfiguraci grafického prostředí. V nedávné době SuSE Linux zaujal svým spojením s dřívějším předním hráčem na poli firemních serverů společností Novell. Měl jsem možnost instalovat a nějaký čas spravovat server se systémem Open Enterprise Server 2, který vznikl spojením stabilního linuxového jádra SuSE 10 s původními kvalitními službami firmy Novell NetWare, tedy službami, jako je například eDirectory (dříve NDS). Takto vzniklý hybridní systém v sobě spojuje to nejlepší z obou systémů a bude zajímavé sledovat, zda se jemu nebo jeho nástupcům podaří ve firemním prostředí konkurovat Microsoft Windows Serveru s jeho Active Directory anebo zcela zanikne jako mnoho jiných podobných projektů. - 10 -
Další ze známých a donedávna také nejpoužívanější distribucí zejména pro serverové nasazení je Debian GNU/Linux. Tato distribuce není vyvíjena jednou firmou nebo skupinou lidí, ale na vývoji jednotlivých balíků této distribuce se podílejí lidé na celém světě. Debian je jednou z mála zcela nekomerčních distribucí. Největší zajímavostí této distribuce je její systém pro instalaci a údržbu softwarových balíků – DPKG (Debian Package Management System) a jeho nadstavba APT (Advanced Packaging Tool). Tento systém dovede automaticky stáhnout a nainstalovat požadovanou aplikaci nebo program i se všemi dalšími potřebnými balíčky, na kterých daná aplikace závisí a jsou nutné k její správné funkci. Uživatel se tak nesetkává s tzv. závislostmi a dalšími nepříjemnými problémy, které bylo třeba řešit na starších linuxových distribucích. I díky tomuto systému je Debian stále oblíbenou a žádanou distribucí. Robustní organizace a politika komunity vývojářů kolem systému Debian GNU/Linux má však za důsledek, že Debian je vyvíjen jen velmi pomalu a na novou verzi uživatelé čekají i několik let. Také kvůli tomu se objevily nové distribuce, které jsou založeny na kvalitním balíčkovacím systému Debianu, ale dále jdou už svojí cestou vývoje. Nejznámějším představitelem nových distribucí založených na Debianu je Ubuntu Linux. Tato poměrně mladá linuxová distribuce má v posledních několika letech na svědomí malou revoluci v historii používání operačního systému Linux.
- 11 -
1.3 Ubuntu Linux Jednoznačný a vždy platný návod, jakou distribuci Linuxu pro který případ použít neexistuje. Je to dáno tím, že distribucí je nepřeberné množství a každá má něco, co se někomu líbí a jiný to naopak zatracuje. Nejlépe to dokazuje situace na českých i zahraničních linuxových komunitních webech, kde se mezi sebou zastánci jednotlivých distribucí neustále přou o výhodách a kvalitách svých oblíbených distribucí a vyjmenovávají chyby a nedostatky těch ostatních. Je to velmi podobné jiné nikdy nekončící internetové válce mezi přívrženci Windows a Mac OS X. Nejlepší je tedy na základě výše uvedených informací o jednotlivých distribucích vědět, k čemu se která nejlépe hodí, jak je zaměřena politika jejího vývoje a šíření a hlavně, zda chceme komerční nebo volně šiřitelnou distribuci. Protože mám zkušenosti se všemi vyjmenovanými linuxovými distribucemi a nejlépe mi vyhovoval se svým balíčkovacím systémem Debian GNU/Linux, hledal jsem distribuci vycházející z tohoto systému. Samotný Debian je velmi robustní a v současné době se nachází ve verzi 5 s kódovým označením Lenny. Ačkoliv to mnoho uživatelů a administrátorů pokládá spíše za výhodu, těm ostatním, mezi které patřím i já, vadí poměrně dlouhý vývojový cyklus, kterým nové distribuce Debianu procházejí. Aplikace, které se objeví v tzv. stable (stabilní) verzi Debianu, jsou tedy vždy řádně odzkoušené a opravdu stabilní, oproti jiným distribucím však také poměrně zastaralé. Proto jsem se rozhodl zvolit Ubuntu Linux, distribuci, která z Debianu vychází, a za těch několik málo let, co byla uvedena, prošla již dlouhou cestu vývoje. První verze Ubuntu 4.10 vyšla v říjnu 2004. Na rozdíl od Debianu od té doby Ubuntu pravidelně vydává nové verze každých 6 měsíců s podporou na dalších 18 měsíců. Za Ubuntu stojí společnost Canonical Ltd., ale systém je šířen bezplatně jako svobodný software. V dubnu roku 2010 byla vydána dosud nejnovější verze Ubuntu 10.04 s označením Lucid Lynx. Ubuntu si za krátkou dobu své existence získalo řadu příznivců. Jedná se o první linuxovou distribuci, které se daří přiblížit a šířit Linux z prostředí, které bylo původně přístupné pouze administrátorům a odborníkům, také mezi běžné uživatele. Také díky nastupujícímu trendu netbooků a výkonově úspornějších notebooků se právě Ubuntu objevilo jako alternativní operační systém k produktům Microsoftu, a to zcela zdarma.
- 12 -
Ubuntu má také kvalitně zpracovanou dokumentaci, silnou technickou podporu přímo na oficiálním webu distribuce a početnou komunitu uživatelů v České republice. Problémy s instalací nebo konfigurací jednotlivých služeb či aplikací je možno řešit prostudováním vlastní WiKi na domovském webu Ubuntu nebo položením dotazu rozsáhlé komunitě na fóru. [11] Základním GUI (Graphical User Interface) systému Ubuntu je prostředí Gnome, které se v současné době značně inspiruje grafickým rozhraním operačního systému Mac OS X. Je vydávána také verze s grafickým prostředím KDE (K Desktop Environment), která je označována jako Kubuntu. Kromě těchto dvou verzí jsou vyvíjeny ještě další jako Edubuntu, které se používá jako výukový prostředek pro základní a střední školy, a Xubuntu s alternativním grafickým prostředím Xfce. Veškeré verze Ubuntu je možné zdarma stáhnout z internetových stránek distribuce. Ubuntu nabízí také verzi pro server, ze které jsou odstraněny balíčky obsahující uživatelský software a kancelářské aplikace a je připravena pro nasazení jako serverový systém. Právě tuto verzi distribuce Ubuntu 10.04 Lucid Lynx Server jsem použil jako výchozí systém při přípravě této práce. [11]
- 13 -
1.4 Jak Linux funguje
1.4.1
Jádro a systémové programy
Operační systém typu Unix se skládá z jádra systému a systémových programů. Uživatel systému potom pracuje s aplikačními programy. Jádro je srdcem operačního systému. Udržuje záznamy souborů na disku, spouští programy, řídí jejich současný běh, přiděluje paměť a další technické prostředky různým procesům, přijímá a odesílá pakety z a do počítačové sítě. Jádro systému samotné toho dělá velmi málo, ale poskytuje základní služby různým nástrojům, pomocí kterých mohou být realizovány všechny ostatní služby. Jádro rovněž hlídá, aby nikdo nemohl přistupovat k zařízením přímo. Když chtějí uživatelé a procesy používat technické prostředky, musí používat nástroje, které nabízí jádro systému. Tímto způsobem je zabezpečena i vzájemná ochrana uživatelů. Nástroje jádra systému, o nichž byla řeč, lze využívat prostřednictvím volání systému (system calls). [4] Systémové programy realizují služby, které se vyžadují od operačního systému. Využívají při tom nástroje, které nabízí jádro systému. Systémové i všechny ostatní programy běží jakoby na povrchu jádra. To se označuje jako uživatelský režim (user mode). Rozdíl mezi systémovými a aplikačními programy je v jejich určení. Pomocí aplikačních programů mohou uživatelé pracovat např. v kancelářských programech, systémové programy jsou pak potřebné k tomu, aby systém vůbec fungoval. Hranice mezi aplikačními a systémovými programy je často dost neostrá. [4] Jádro Linuxu sestává z několika důležitých subsystémů. Jsou to části řízení procesů, správy paměti, ovladačů technických prostředků, ovladačů souborových systémů, správy sítě a další. Nejdůležitějšími subsystémy, bez nichž by systém nemohl fungovat, jsou správa paměti a správa procesů. Subsystém správy paměti zajišťuje přidělování paměťových oblastí a odkládacího prostoru (swap space) jednotlivým procesům, částem jádra a vyrovnávací paměti (buffer cache). Subsystém správy procesů vytváří procesy a přepínáním mezi aktivními procesy, které využívají procesor, zabezpečuje multitasking.
- 14 -
Jádro systému na nejnižší úrovni obsahuje ovladače pro všechny druhy technických zařízení, které operační systém podporuje. Vzhledem k tomu, že existuje celá řada různých typů hardwaru, je počet ovladačů zařízení velký. Je ale mnoho jinak podobných zařízení, které se často liší pouze v tom, jak spolupracují s programy. Takovéto podobnosti umožňují definovat obecné třídy ovladačů, jež podporují podobné operace. [4]
Obr. 1.1 Nejdůležitější části jádra systému Linux [4]
1.4.2
Souborový systém
Soubor je v unixových systémech jedním z nejzákladnějších stavebních kamenů. Téměř vše, co v Linuxu existuje, je souborem. Každý soubor se potom skládá ze tří částí: jméno souboru, administrativní informace a obsah souboru. První dvě složky se souhrnně nazývají metadata a jsou povinné. Administrativní informace jsou například délka souboru, informace o vlastníkovi, práva k souboru, údaje o datu a čase vzniku, modifikaci apod. [4] Systém Linux dnes podporuje více než 20 souborových systémů (FAT, NTFS, HPFS, EXT a řadu dalších). Právě vzhledem k velkému množství různých systémů bylo nutné oddělit implementaci reálných souborových systémů od systémových služeb abstraktní vrstvou. Vznikl tak nový souborový systém VFS (Virtual File System). Programátorům se potom jeví všechny souborové systémy stejné, protože při manipulaci se souborovým
- 15 -
systémem využívají pouze služeb VFS. Hlavní předností VFS je možnost snadno pracovat s různými druhy souborových systémů zároveň. [4] Unix používá stromovou strukturu souborů. Tzv. nelistové soubory ve stromu se nazývají adresáře. Adresář je jeden ze speciálních druhů souborů a jeho úkolem je nést informace o potomcích. Potomek je v tomto případě soubor, jehož předchůdce je právě daný adresář, neboli leží v hierarchii stromu o úroveň níže. Adresář může obsahovat libovolné soubory nebo další adresáře (podadresáře). Kořenový adresář se nazývá kořen (root) a značí se "/". Každý soubor je ve stromu jednoznačně určen absolutní cestou. Absolutní cesta je dostatečným nástrojem k rozlišení souborů, i když mají stejné jméno. Absolutní cesta je například: /home/matousek/nazev_souboru. Relativní cesta neboli určení polohy souboru vzhledem k aktuálnímu adresáři se používá, abychom nemuseli neustále zdlouhavě zadávat absolutní cestu. Každý (i prázdný) adresář v sobě má odkazy na tzv. logické adresáře: . (tečka)
odkaz na pracovní adresář (tedy na sebe sama)
.. (dvě tečky)
odkaz na rodičovský adresář
V systému existuje ještě další významný logický adresář, na který se lze odkazovat, a to pomocí symbolu "~" nebo "~jmeno". Tímto se lze odkazovat na domovský adresář aktuálního uživatele nebo uživatele, jehož jméno je uvedeno za vlnkou. [4] Kořenový svazek root by obecně neměl obsahovat žádné soubory. Všechny soubory by měly být uloženy v podadresářích kořenového adresáře. Standardně obsahuje kořenový adresář root následující podadresáře: /bin
Příkazy potřebné pro zavedení systému a práci běžných uživatelů po jeho zavedení.
/sbin
Podobný jako adresář bin, ovšem soubory v tomto podadresáři nejsou určeny běžným uživatelům.
/etc
Konfigurační soubory – pro tuto práci bude tento adresář nejdůležitějším, neboť většina nastavení serverových služeb a přidružených programů se provádí právě v tomto adresáři a jeho podadresářích.
/root
Domovský adresář superuživatele (viz. kapitola 1.4.3)
/home
V tomto adresáři jsou umístěny domovské adresáře běžných uživatelů systému. - 16 -
/lib
Sdílené knihovny pro programy v kořenovém souborovém systému.
/dev
Speciální soubory.
/tmp
Dočasné soubory. Slouží programům a aplikacím pro dočasné ukládání dat nutných pro vykonání určité činnosti.
/boot
Soubory, které používá zavaděč operačního systému (bootstrap loader).
/mnt
Přípojné místo pro dočasná připojení dalších systémů souborů správcem systému. Slouží pro připojení např. optických mechanik nebo usb disků.
/usr
Prostor pro ukládání dat jednotlivých aplikací. Do adresáře /usr/share/ se standardně instalují aplikace, podobně jako v prostředí Windows do umístění C:\Program Files\.
/var
Systém /var obsahuje data, která se při běžném provozu systému mění. V tomto adresáři bývají umístěny např. webové stránky internetového serveru nebo pošta jednotlivých uživatelů. [4]
1.4.3
Uživatelské účty a práva
Uživatele linuxových systémů lze rozdělit do tří skupin. První skupina, tzv. běžní uživatelé, reprezentuje skutečné uživatele systému, tedy například zaměstnance nebo studenty. Systémoví uživatelé zpravidla nereprezentují skutečné uživatele, ale tyto uživatelské účty jsou využívány pro běh systémových služeb a aplikací. Typický systémový uživatel je například daemon, mail, news nebo nobody. Z bezpečnostních důvodů mají systémoví uživatelé většinou znemožněno přihlašování do systému. Superuživatel neboli root má v systému zcela výhradní postavení. Slouží k administraci systému a jeho práva jsou neomezená. V Linuxu jsou informace o všech uživatelích uloženy v souboru /etc/passwd. Tento soubor obsahuje vždy jméno uživatele, jeho domovský adresář, šifrované heslo a další doplňkové informace o uživatelském účtu. Obsahuje také jedinečné číslo UID (Unique Identification), kterým je každý uživatel v systému jednoznačně identifikován.
- 17 -
Kromě uživatelů používá Linux ještě skupiny uživatelů, které mají podobně jako uživatelské účty také své jedinečné identifikační číslo GID (Group Identification). Na základě těchto jednoznačných identifikátorů je potom možné jednotlivým uživatelům a skupinám uživatelů definovat přesná přístupová práva a oprávnění k přístupu k souborům a procesům a tím tedy přesně definovat mantinely, ve kterých se mohou uživatelé v systému pohybovat. Každému souboru potom můžeme definovat tři úrovně přístupových oprávnění: vlastník (owner), člen skupiny (group) a ostatní (others). Pro daný soubor pak lze každé z uvedených skupin přiřadit libovolnou kombinaci tří základních práv: právo na čtení (read), právo na zápis (write) a právo spouštět soubory (execute). Jak již bylo uvedeno, i adresáře jsou v Linuxu soubory, takže udělením práva read pro adresář umožňujeme danému uživateli číst obsah tohoto adresáře. Právo write pak v adresáři dovoluje vytvářet nové soubory a mazat ty stávající. Právo execute umožňuje uživateli vstoupit do adresáře a odkazovat se na soubory a adresáře v něm obsažené. V závislosti na zvolené distribuci má každý uživatel v Linuxu přidělen tzv. shell neboli příkazový interpret. Uživatelé prostředí Windows si takový shell představí nejlépe jako příkazový řádek (command). Nejčastěji používaným shellem je Bash, který po přihlášení uživatele do systému čeká na příkazy od uživatele. V dnešní době se i v Linuxu stejně jako u ostatních systémů stále častěji používá grafické uživatelské rozhraní (GUI), nicméně znalost základních příkazů shellu může uživateli výrazně pomoci při práci se svým počítačem. Naopak naprosto nevyhnutelná je potom znalost příkazového řádku na poli serverů, kde příkazový interpret a editace konfiguračních souborů stále vládne nad grafickými aplikacemi, především kvůli své rychlosti a obrovskému množství konfiguračních možností a voleb.
- 18 -
2 Instalace operačního systému 2.1 Výběr hardware Volba vhodného hardware pro instalaci Ubuntu Serveru je poměrně snadnou záležitostí. Samotný systém má na hardware velmi nízké nároky. Minimální požadavek na operační paměť je 256MB a pro samotnou instalaci a systém je třeba přibližně 1GB úložného prostoru na pevném disku. Ubuntu je možné provozovat na 32-bitových i 64bitových procesorech Intel a AMD. Při výběru hardware je tedy vhodné se řídit především rolí, kterou bude server plnit. Plánujeme-li server nasadit jako souborový server (Samba), bude třeba zajistit vhodné úložiště s dostatečně velkou kapacitou. Pro provoz aplikací a databázového systému MySQL bude zase důležité vybavit nový systém alespoň 1GB operační paměti. Vše ale záleží na přepokládaném zatížení a počtu uživatelů. V dnešní době se problémy s nedostačujícím hardware pomalu stávají minulostí a trendem je naopak nevyužitelně vysoký výkon hardware dělit za použití techniky virtualizace mezi více systémů. Při realizaci této práce byl k dispozici server Dell PowerEdge 2850 v provedení rack vybavený dvěma procesory Intel Xeon 3.00 GHz, 2 GB operační paměti a čtyřmi pevnými disky v zapojení RAID 5 (Redundant Array of Inexpensive/Independent Disks) s celkovým využitelným úložným prostorem o velikosti 130 GB. Na tomto serveru je z důvodu už zmiňovaného sdílení hardwarových prostředků nainstalován virtualizační nástroj ESXi. Tento volně dostupný produkt společnosti VMware nabízí snadno použitelné řešení virtualizace operačních systémů. Systém VMware ESXi se instaluje přímo na hardware serveru, kde mezi hardware a operační systém vkládá robustní virtualizační vrstvu. VMware ESXi dělí fyzický server na řadu nezávislých a přenositelných virtuálních strojů, které mohou na jednom fyzickém serveru běžet současně. Každý virtuální stroj pak představuje kompletní systém s procesory, pamětí, připojením k síti, úložištěm a systémem BIOS (Basic Input-Output System). Virtuální stroje jsou od sebe zcela odděleny virtualizační vrstvou, díky které se chyba konfigurace nebo pád aplikace v jednom virtuálním stroji neprojeví v ostatních virtuálních systémech. - 19 -
2.2 Instalace jádra systému Samotný instalační proces Ubuntu Serveru po zavedení z instalačního média probíhá (na rozdíl od desktopové verze) v textovém prostředí, tak jak je to běžné v distribuci Debian. Některé bloky instalačního programu jsou přeloženy do češtiny, jiné s uživatelem komunikují v angličtině. Před instalací je možné otestovat paměť počítače nebo provést test pevných disků, a předejít tak případných chybám, které by se mohly projevit v průběhu instalace nebo při chodu systému. V prvním kroku je uživateli nabídnuta možnost automatické detekce klávesnice. Systém vyzve uživatele k zadání sekvence kláves, podle kterých pak správně určí, jakou klávesnici má k dispozici. Po tomto kroku následuje automatická detekce sítě. V případě, že je počítač už připojen k síti, ve které se nachází DHCP (Dynamic Host Configuration Protocol) server, požádá jej systém už v tuto chvíli o zapůjčení IP adresy. Následuje automatická detekce připojeného hardwaru a pevných disků. Je možné použít asistované rozdělení disků nebo si ručně nastavit velikost jednotlivých logických diskových oddílů a jejich systém. Standardně Ubuntu použije první část disku pro souborový systém naformátovaný jako ext4 (Fourth Extended Filesystem) a druhý oddíl jako tzv. swapovací neboli odkládací oddíl, kam jsou ukládány dočasné soubory potřebné pro instalaci. Ten je naformátován starším souborovým systémem ext2 (Second Extended Filesystem). Po přípravě rozdělení disků zobrazí systém dvakrát výzvu pro zkontrolování a potvrzení a teprve poté dojde k zapsání změn na pevný disk. Nyní následuje instalace základní části systému, která trvá přibližně tři minuty a je již zcela automatická. Po základní instalaci nás systém vyzve, abychom v systému vytvořili nového uživatele. Ubuntu na rozdíl od svého předka Debianu používá systém, který známe z prostředí Windows jako Řízení uživatelských účtů. Při instalaci systému není automaticky
vytvořen
uživatel
root
s neomezenými
právy,
ale
pouze
běžný
neadministrátorský účet. Teprve zadáním sekvence sudo nebo su před požadovaným příkazem a následným zadáním hesla se stáváme na krátký okamžik superuživatelem a přebíráme rootovská privilegovaná oprávnění. Tento systém přináší vyšší úroveň zabezpečení vyřazením známého účtu root, který útočníci nejčastěji zkouší napadnout brutální silou. Vyžádáním hesla před poskytnutím neomezených práv také systém uživatele upozorňuje, aby si dobře rozmyslet připravovaný krok, který může mít pro systém fatální důsledky. - 20 -
2.3 Instalace programů a základních služeb Po nainstalování jádra systému a vytvoření uživatelských účtů ke správě je čas k nainstalování základního programového vybavení a služeb. Ještě poměrně nedávno byla u řady linuxových distribucí instalace požadovaných služeb především časově náročnou záležitostí. Uživatel musel v textovém režimu ručně zvolit programy, jednotlivé balíčky a komponenty, které na sobě závisí. Ubuntu nabízí rychlou instalaci základních serverových služeb ve formě tzv. úloh. Úloha obsahuje balíčky různých služeb nutných pro chod některé z činností serveru. K dispozici je například úloha LAMP server, která obsahuje instalační balíčky sady svobodného softwaru pro implementaci webových stránek a zahrnuje webový server Apache, databázi MySQL a programovací jazyk PHP. Vybrané služby jsou potom nainstalovány na server ve výchozím nastavení. Během krátkého procesu, při instalování databázového systému MySQL, vyzve instalační program uživatele k zadání administrátorského hesla k databázi. Tento krok ihned při instalaci serveru řeší dřívější problém s výchozím nebo neexistujícím heslem pro administrátorský přístup k databázi. Protože vedle webového serveru chceme provozovat především poštovní server, je vhodné kromě úlohy LAMP zvolit také úlohu Mail Server a nainstalovat tak na systém základní aplikace pro chod poštovního serveru Postfix a Dovecot. Už nyní jsme instalačním procesem dotázáni na variantu připojení počítače k internetové síti pro budoucí snadnější konfiguraci poštovního systému. Po kompletní instalaci jádra systému a základních služeb proběhne úklid a čištění dočasných souborů instalace a následně také poslední krok, kterým je instalace zavaděče (boot loaderu) GRUB do hlavního zaváděcího záznamu (Master Boot Record) pevného disku počítače.
- 21 -
3 Instalace a konfigurace služeb 3.1 Přehled služeb Dvě základní role, které internetový server vykonává, je role poštovního a webového serveru. Je možné zvolit různé programy a jejich kombinace, které budou tyto služby zajišťovat. V této krátké kapitole je uveden jejich stručný přehled. Dále budou instalovány ještě některé další služby a programy, které usnadní správu a pomohou s konfigurací. Páteří poštovního serveru bude odzkoušený a stabilní program Postfix [4]. O doručování do virtuálních schránek a stahování pošty přes protokoly IMAP a POP3 se bude starat program Dovecot. Virtualizace poštovních účtů bude provedena s použitím databáze MySQL a správa poštovního serveru, domén a jednotlivých schránek bude svěřena
programu
PostfixAdmin.
Filtrování
nevyžádané
pošty
zajistí
software
Spamassassin a přístup k samotným poštovním schránkám přes uživatelsky přívětivé webové rozhraní bude obsluhovat program RoundCube. Webový server je v linuxovém prostředí nejlépe svěřit aplikaci Apache. Nutností a dnes samozřejmostí pro provozování dynamických webových stránek je podpora programovacího jazyka PHP, kterou obstará program PHP5, a velmi důležité je mít k dispozici také některý z databázových systémů. S PHP nejlépe spolupracuje databáze MySQL, která bude spravována prostřednictvím webové aplikace PhpMyAdmin. Poslední aplikací, která není nutná k provozu webového serveru, ale nabízí důležité funkce pro monitorování a sledování provozu, je program PhpMyVisites. Na tomto místě ještě v krátkosti zmíním některé služby a programy, které nejsou nutné pro samotný chod internetového serveru, nicméně usnadní práci při konfiguraci, správě, testování a monitorování serveru. První je služba SSH (Secure Shell), díky níž lze vzdáleně spravovat libovolný počítač. Protokol SSH byl navržen jako náhrada za dříve používaný nezabezpečený program telnet. Na rozdíl od něj a dalších starších programů pro vzdálené přihlášení (rlogin, rsh apod.) přenáší SSH data šifrovaně na základě vygenerovaného páru soukromého a veřejného klíče. V Ubuntu SSH zajišťuje program OpenSSH, který standardně naslouchá na portu číslo 22.
- 22 -
Abychom se vyhnuli neustálým robotickým útokům hrubou silou (Brutal Force) na tuto službu, je vhodné změnit číslo portu, na kterém server SSH naslouchá. Na rozdíl od jiných veřejných služeb, jako je služba HTTP (port 80) nebo SMTP (port 25), které je pro správné fungování nutné ponechat na výchozích hodnotách, si u SSH můžeme klidně dovolit přesunout aplikaci na libovolný volný port. Já na svých instalacích používám port 22222. Změna naslouchajícího portu se provede editací konfiguračního souboru SSH, který je v adresáři /etc/ssh/sshd_config. Na řádku Port přepíšeme hodnotu na číslo portu, na který chceme službu přesunout. Po uložení je k provedení změn nutné provést restart služby příkazem /etc/init.d/sshd restart. Od této chvíle již běží služba na novém portu. Další aplikace, která usnadňuje a zrychluje práci se serverem, je program Midnight Commander. Jedná se o správce souborů podobného známému Norton Commanderu, který byl používán v operačním systému MS DOS. Midnight Commander vytváří textové uživatelské rozhraní, které usnadňuje správu adresářů a souborů, editování konfiguračních souborů a další funkce. Protože standardně není v distribuci Ubuntu obsažen, je nutné jej nejprve nainstalovat příkazem aptitude install mc. Při vzdáleném přihlášení z prostředí Windows prostřednictvím programu Putty a služby SSH se může objevit problém s chybným zobrazováním programu Midnight Commander. Je to způsobeno odlišným kódováním obou aplikací a pro nápravu je nutné v konfiguračním okně Translation programu Putty nastavit znakovou sadu na UTF-8. Posledním malým programem, který bude instalován, je program Nmap. Tato jednoduchá aplikace umožní zjistit otevřené porty na místním nebo vzdáleném počítači a služby, které na nich naslouchají. Instalace se provede jednoduchým příkazem aptitude
install
nmap a skenování místního počítače zápisem nmap
localhost. Na serveru se vyhneme používání nezabezpečených služeb jako je FTP (File Transfer Protocol). Tato sice stále poměrně často používaná služba pro přenos souborů představuje pro systém bezpečnostní riziko, protože přenášená data, uživatelská jména i hesla jsou zasílána jako běžný text (plaintext) a nejsou nijak šifrována ani chráněna proti odposlechu. K přenosu souborů z prostředí Windows na server je lepší použít zabezpečený protokol SSH a programy jako jsou WinSCP.
- 23 -
3.2 Poštovní server 3.2.1 Postfix Každý e-mail začíná jako textový soubor, který připraví odesílatel ve svém poštovním klientu (Outlook, Thunderbird a další). Poštovní klient se připojí na mailový server odesílatele pomocí protokolu SMTP a e-mail mu odevzdá. Mailový server odesílatele zkontroluje IP adresu odesílatele, aby se přesvědčil, že tento odesílatel má právo přes něj odesílat poštu, zkontroluje velikost a případně provede testy e-mailu na přítomnost virů nebo detekci spamu. Na základě adresy příjemce poté zjistí, kterému poštovnímu serveru e-mail doručí. V tuto chvíli mohou nastat tři případy: 1. E-mail je určený příjemci, který se nachází přímo na daném serveru anebo příjemci, jehož doménu tento poštovní server obsluhuje. Potom se poštovní zpráva nebude posílat do internetu, ale doručí se lokálně do mailové schránky příjemce. 2. Zpráva není určena lokálnímu příjemci a poštovní server si z DNS (Domain Name Service) MX záznamu zjistí adresu poštovního serveru příjemce. DNS záznam MX uvádí adresu poštovního serveru pro danou doménu. Není-li MX záznam nastaven, poštovní server odesílatele se pokusí získat adresu poštovního serveru příjemce z A záznamu, který převádí IP adresu na jmenný název. Spojí se s ním a e-mail mu předá. 3. Poštovní server odesílatele nedokáže zjistit, komu má zprávu doručit. V takovém případě se server pokusí o doručení později (např. není možné kontaktovat DNS server), anebo vrátí e-mail odesílateli (např. tehdy, pokud na cílovém serveru neexistuje adresa příjemce nebo má příjemce plnou e-mailovou schránku). Když se zpráva dostane na poštovní server příjemce, nastává poslední fáze přenosu a tou je příjem pošty pomocí protokolů IMAP nebo POP3. O to se postará opět e-mailový klient příjemce. Schéma fungování internetové pošty, tak jak zde bylo popsáno, zobrazuje obrázek 3.1
- 24 -
Obr. 3.1 Cesta elektronické pošty od odesílatele k příjemci
Nejdůležitější roli v popsaném řetězci hraje tzv. MTA (Mail Transfer Agent). Ten zajišťuje předávání zpráv lokálně v rámci jednoho systému nebo mezi různými poštovními servery. Právě takovým MTA je v tomto případě program Postfix. Postfix vznikl už v roce 1998 jako open-source, tedy program s otevřeným zdrojovým kódem. Od té doby prošel dlouhým vývojem, i když jeho základní filozofie a struktura zůstává neměnná. Postfix je implementovaný jako jeden hlavní proces (master), který spouští obslužné démony (dílčí programy) vykonávající specifické operace. Jednotlivé služby se spouštějí jako samostatné procesy a zabezpečují např. odesílání a přijímání emailů z internetu, lokální doručování apod. Hlavní vlastnosti MTA Postfix jsou: flexibilita škálovatelnost funkční bohatost snadná konfigurace a správa robustnost, stabilita, bezpečnost nízké systémové nároky
- 25 -
Démoni, které spouští master proces Postfixu: qmgr: čeká na přijaté zprávy a zabezpečuje jejich doručení cleanup: zpracuje přijatý e-mail, přidá ho do fronty přijatých zpráv a informuje o jeho příchodu démona qmgr smtpd: naslouchá na portu 25 a přijímá SMTP požadavky. Všechny přijaté zprávy jsou pak přesměrovány na démona cleanup. pickup: čeká na lokálně napsané e-maily a přesměruje je opět na démona cleanup trivial-rewrite: přepisuje adresu do standardizované formy, přidává název domény k lokálním e-mailům apod. Také určuje, co se stane s e-mailem a kam se bude doručovat. local: doručuje zprávy do lokálních e-mailových schránek smtp: doručuje e-maily z fronty, které jsou určené pro jiné poštovní servery
Obr. 3.2 Blokové schéma MTA Postfix - 26 -
Samotný program Postfix byl nainstalován již při procesu instalace operačního systému.
Konfigurační
soubory
Postfixu
jsou
standardně
umístěny
v adresáři
/etc/postfix. Nejdůležitější z nich jsou soubory master.cf – hlavní konfigurační soubor služeb a main.cf – hlavní konfigurační soubor samotného Postfixu, ve kterém se nastavuje vše pro správnou funkci a vyladění poštovního serveru. Démon Postfixu se startuje příkazem /etc/init.d/postfix start. Po každé změně v konfiguraci Postfixu je nutné znovu načíst konfigurační soubory příkazem postfix reload. Kompletní konfigurační soubory Postfixu jsou vloženy jako příloha této práce, proto zde uvedu jen několik základních parametrů poštovního serveru ze souboru main.cf, které jsou nezbytně nutné pro správnou funkčnost poštovního serveru. myhostname = server.example.com Určuje plné jméno serveru, standardně se použije jméno získané z operačního systému (příkaz hostname). mydomain = example.com Určuje doménové jméno poštovního serveru. inet_interfaces = all Seznam adres síťových rozhraní, na kterých se přijímá pošta. mydestination = $myhostname, $mydomain, localhost Doménové adresy, které považuje Postfix za lokální a pro které přijímá poštu. relay_domains =
$mydestination
Doménové adresy, pro které Postfix umožňuje příjem pošty pro další zpracování (Relay). home_mailbox = Maildir/ Při nastavování této důležité direktivy se musíme rozhodnout, jakým způsobem chceme jednotlivé e-maily ukládat a spravovat. Existují dvě varianty. Při volbě Maildir/ se budou jednotlivé e-maily ukládat do domovské složky každého uživatele a to tak, že každý e-mail bude samostatným souborem. Zvolíme-li druhou možnost (volba mailbox), všechny e-maily se ukládají do jednoho úložiště
(standardně
/var/mail/jmeno_uzivatele),
přičemž
jmeno_uzivatele představuje vždy jeden soubor, ve kterém jsou všechny e-maily daného uživatele hromadně uloženy.
- 27 -
my_networks = 127.0.0.0/8, 192.168.1.0/24 Určuje rozsah síťových adres, ze kterých bude poštovní server umožňovat odesílání prostřednictvím protokolu SMTP. Při nesprávné konfiguraci této direktivy můžeme snadno znemožnit místním uživatelům odesílání pošty, nebo naopak vystavíme poštovní server obrovskému riziku zneužití jako tzv. open relay server, přes který pak může odcházet nekontrolovatelné množství spamu do celého internetu. mailbox_size_limit = 0 Nastavení maximální velikosti poštovních schránek uživatelů. Hodnota 0 znamená, že kvóta na velikost poštovních schránek není nastavena message_size_limit = 16384000 Nastavení maximální velikosti zprávy, kterou bude možné prostřednictvím poštovního serveru přijmout nebo odeslat. disable_vrfy_command = yes Tato direktiva zakazuje pro protokol smtp ověřovací příkaz VRFY. Tím si případný útočník nebo spamovací robot může zjišťovat existenci poštovních schránek pro následné spamování nebo pokus o útok na systém.
V tuto chvíli je poštovní server Postfix nakonfigurován tak, že bude umět přijímat poštu pro domény uvedené v parametru mydestination. Aby byl ovšem e-mail pro příjemce např.
[email protected] serverem přijat, musí být na serveru skutečně fyzicky vytvořený uživatelský účet pojmenovaný vaclav. Takový účet je možné vytvořit příkazem adduser vaclav. Ovšem v případě, že budeme chtít poštovní server využívat pro více než několik málo uživatelů, nebo dokonce používat poštovní server pro více domén, zjistíme, že je takovéto řešení nepoužitelné. Musíme opustit koncepci fyzických účtů a zvolit jiný způsob.
- 28 -
3.2.2
Virtualizace a uživatelské účty v MySQL
Omezené možnosti linuxových účtů řeší tzv. virtualizace. Základní myšlenka je taková, že uživatelské účty neexistují na serveru fyzicky, ale pouze jako záznamy v nějakém databázovém systému nebo jen v textovém souboru. Tato koncepce elegantně řeší problém s velkým množstvím uživatelských účtů a lze ji snadno použít i na více domén na jednom poštovním serveru. V navrženém systému bude pro virtuální poštovní schránky používán databázový systém MySQL. Databáze MySQL byla na systém nainstalována již při rozšířené instalaci operačního systému. Nejprve tedy v MySQL vytvoříme databázi postfix a stejnojmenného uživatele, který má plná oprávnění na tuto databázi. Program PostfixAdmin, který bude popsán níže, vytvoří automaticky v databázi potřebné tabulky pro evidenci virtuálních uživatelů a pro přístup a ukládání do e-mailových schránek. V tuto chvíli je nutné odnaučit Postfix používat lokální uživatelské účty a přinutit ho spolupracovat s připravenou databází MySQL. Zatímco při doručování do lokálních schránek byl každý e-mail zpracován s právy příslušného uživatelského účtu, při virtuálním uspořádání nic takového není možné, a tak je třeba vytvořit jeden účet, pod kterým bude probíhat doručování do virtuálních schránek. Vytvoříme tedy uživatelský účet vmail s UID (jedinečný identifikátor uživatele) a skupinu vmail s GID (jedinečný identifikátor skupiny) 5000. Tímto číselným identifikátorem později přiřadíme v Postfixu příslušný účet. groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /home/vmail -m Dále je potřeba vytvořit propojovací konfigurační soubory, které umožní Postfixu přistupovat do databáze MySQL, a provést některé změny v konfiguračním souboru main.cf. V adresáři, kde jsou umístěny konfigurační soubory postfixu, vytvoříme pomocné
konfigurační
soubory
virtual_alias_maps.cf,
domains_maps.cf a virtual_mailbox_maps.cf.
- 29 -
virtual_
Do konfiguračního souboru potom přidáme následující řádky, kde nastavíme nově vytvořeného uživatele vmail s UID 5000 jako výchozí účet, pod kterým se bude doručovat pošta do lokálních uživatelských schránek, a zadáme cesty k propojovacím konfiguračním souborům pro přístup programu Postfix do databázového systému MySQL: virtual_alias_maps = mysql:/etc/postfix/virtual_alias_maps.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /var/mail virtual_mailbox_domains = mysql:/etc/postfix/virtual_domains_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/virtual_mailbox_maps.cf virtual_minimum_uid = 5000 virtual_transport = virtual virtual_uid_maps = static:5000 Volbou virtual _mailbox_base = /var/mail také změníme úložiště pro e-mailové schránky uživatelů, které byly do této chvíle umístěny v domovských adresářích fyzicky vytvořených uživatelů. V umístění /var/mail se budou nacházet složky s příchozí a odchozí elektronickou poštou každého uživatele, který bude na serveru vytvořen. Pro správu domén, které bude poštovní server obsluhovat, virtuálních uživatelských schránek, přesměrování a dalších nástrojů už nebudou stačit pouze konfigurační soubory samotného MTA Postfix, ale bude nutné použít nějaký grafický nástroj nejlépe s webovým uživatelským rozhraním.
- 30 -
3.2.3
Správa serveru - PostfixAdmin
PostfixAdmin je grafický konfigurační nástroj, který umožňuje spravovat poštovní server založený na Postfixu. Protože není standardně součástí rozsáhlé databáze programů pro Ubuntu, je nutné tento program stáhnout z internetu a nainstalovat jej ručně. Program se nainstaluje do umístění /usr/share/postfixadmin. Protože se jedná o webovou aplikaci, je nutné z umístění, ve kterém budou webové stránky, vytvořit symbolický odkaz (symlink) do této složky. PostfixAdmin je kompletně napsaný v PHP a jeho hlavním konfiguračním nástrojem je soubor /usr/share/postfixadmin/ config.inc.php. Důležité je, že program po své konfiguraci přes webové rozhraní vytvoří v databázi MySQL potřebné tabulky, kam se budou ukládat informace o doménách, uživatelských účtech a poštovních schránkách. S těmito tabulkami je již Postfix díky konfiguračním souborům z minulé kapitoly připraven pracovat. V konfiguračním souboru PostfixAdminu jsou mimo jiné volby pro nastavení formátu, ve kterém budou v MySQL ukládána hesla. Nyní je nutné se rozhodnout, zda budou hesla uživatelů přístupná, nebo kryptovaná. Každý ze způsobů má své výhody a nevýhody. Pokud zůstanou hesla v podobě prostého textu (plaintext), bude mít správce serveru v případě potřeby v budoucnu možnost zapomenuté heslo uživateli zaslat. Pokud bude použit nějaký způsob kryptování (např. MD5), k heslům se nedostane ani administrátor systému, ale vedení takové databáze je zase mnohem bezpečnější. V poslední době se nad uchováváním hesel v prostém textu v databázích různých internetových serverů rozbouřila ostrá diskuze a na provozovatele se snesla vlna kritiky, že dostatečně nechrání autentizační údaje svých klientů. Získáním přístupu do takové databáze hacker automaticky získává přístup k účtům a citlivým údajům všech uživatelů. Ve spojení s častým zvykem uživatelů používat stejné heslo pro přístup k více účtům a službám je dopad případného zneužití přístupových údajů uživatelů kritický a je třeba takovému riziku předcházet. Jádro poštovního systému s virtuálními účty je v tuto chvíli připraveno a je ještě potřeba nakonfigurovat přístup do e-mailových schránek uživatelů přes protokoly IMAP a POP3.
- 31 -
3.2.4
Dovecot – IMAP a POP3
Dvojice protokolů POP3 (Post Office Protocol) a IMAP (Internet Message Access Protocol) slouží ke vzdálenému přístupu do e-mailové schránky uživatele umístěné na poštovním serveru. POP3 je ten starší z obou protokolů a byl standardizován v roce 1996. Vychází však z ještě starších protokolů POP1 a POP2, jejichž vývoj sahá až do roku 1984. Někdy se také ještě můžeme setkat pouze s označením POP bez udání čísla verze protokolu, toto označení dnes ale téměř výhradně znamená POP3. Princip protokolu POP3 je takový, že ze vzdáleného poštovního serveru se stáhnou do klientského programu všechny zprávy uživatele. Je potom možné na serveru zachovat kopie těchto zpráv, ale standardní použití protokolu je takové, že se zprávy přetahují a archivují v klientském programu uživatele a samotná schránka poštovního serveru je až do příchodu další nové zprávy prázdná. Tak jako mnoho dalších internetových protokolů, které vznikaly ve stejné době, podporoval POP3 původně pouze nešifrované přihlašovací mechanismy. Hesla tedy mezi klientskou aplikací a serverem putují nezabezpečeně, což je v dnešní době poměrně velké bezpečnostní riziko. Protokol POP3 podporuje několik autentizačních metod, jako je metoda APOP, která využívá pro zabezpečení přenosu hesla již dříve zmiňovanou hash funkci MD5. Dále mohou klienti celou POP3 komunikaci šifrovat užitím uvedeného mechanismu SSL či modernějšího TLS. Protokol POP3 má pro svou komunikaci běžně určen port 110, pokud použijeme jeho zabezpečenou variantu označenou POP3S, bude pracovat na portu 995. Na rozdíl od protokolu POP3 požaduje novější protokol IMAP
trvalé připojení
k e-mailové schránce (tzv. on-line), ale nabízí také některé pokročilé možnosti správy schránky. Zatímco u protokolu POP3 se stahují do klientského programu všechny celé zprávy, prostřednictvím protokolu IMAP si klientský program stáhne pouze záhlaví těchto zpráv a samotné zprávy až v případě, že si chce uživatel zprávu přečíst. Všechny zprávy tedy zůstávají umístěny na serveru a mění se u nich pouze jejich stav (přečtená, nepřečtená, odpovězeno). Tím, že se zprávy nestahují do lokálních klientských aplikací a zůstávají stále umístěny na serveru, umožňuje uživatelům přistupovat do svých schránek z libovolného místa a počítače. IMAP navíc dokáže pracovat i se vzdálenými složkami a uživatel tak může vytvářet nové složky nebo je mazat a e-maily mezi nimi podle své vůle přesouvat. Díky těmto vlastnostem se protokol IMAP stal základem webových e-mailových klientů známých jako webmaily. - 32 -
Protokol IMAP je v současné době používán ve své verzi 4 a ve své nezabezpečené podobě pracuje na TCP portu 143. Stejně jako u protokolu POP3 je možné celou komunikaci zašifrovat použitím mechanismu SSL a potom komunikace probíhá na portu 993. Protokol IMAP toho ve srovnání s POP3 nabízí nesrovnatelně více, ovšem je to protokol velmi komplikovaný, a tedy také značně náchylnější k chybám a složitější při implementaci. Prohledávání velké e-mailové schránky může značně zatěžovat server, a má-li uživatel ve své schránce několik tisíc e-mailů, můžou se objevovat problémy s dlouhou časovou prodlevou při synchronizaci klientské aplikace se serverem. V naší instalaci jsem se rozhodl zprovoznit a nakonfigurovat pro vzdálený přístup k e-mailovým schránkám oba dva protokoly. Jeden z programů, který funguje jako POP3 a IMAP server a navíc dokáže přistupovat k virtuálním poštovním schránkám uloženým v MySQL, je program Dovecot. Je to velice lehký svobodný software, jehož autoři dbají od počátku vývoje především na bezpečnost. Podporuje také zabezpečené verze obou protokolů POP3S a IMAPS, které budeme při komunikaci s klientskými programy preferovat. Dovecot se instaluje ze tří základních balíčků, z nichž první obsahuje samotné jádro programu a druhé dva podporu vybraných protokolů. Instalaci provedeme příkazem: aptitude
install
dovecot-common
dovecot-imapd
dovecot-
pop3d Instalační soubory jsou po instalaci standardně umístěny v adresáři /etc/dovecot. Nejdůležitější je soubor dovecot.conf, ve kterém je třeba nakonfigurovat protokoly, které budeme používat, typ autentifikace, který jsme zvolili v PostfixAdminu, a především umístění e-mailových schránek uživatelů. V našem případě se jedná o umístění /var/mail/ a dovecotu ho sdělíme zápisem var/mail/%d/%n. E-mailovou schránku uživatele
[email protected] bude hledat v umístění /var/mail/domena.cz/ vaclav, což je přesně tam, kde potřebujeme. Dále je třeba se zaměřit na konfigurační soubor dovecot-sql.conf, ve kterém předepíšeme dovecotu, jakým způsobem se bude dotazovat do databáze na uživatelské jméno a heslo.
- 33 -
3.2.5
Nevyžádaná pošta - Spamassassin
Nevyžádaná pošta neboli spam představuje jeden z nejpalčivějších problémů současného internetu. Denně projde světovou sítí kolem 150 miliard nevyžádaných zpráv, podle některých zdrojů je dnes až 96% všech e-mailů nevyžádaných. Jen čtyři zprávy ze sta tedy nejsou spam a podle vyhlídek IT bezpečnostních firem se s nástupem nových technologií a služeb, jako jsou sociální sítě, podíl nevyžádané pošty ještě zvýší. [7] Provozovat poštovní server bez nějaké předem promyšlené detekce a odstraňování spamu je v dnešní době nemyslitelné. V našem případě tuto funkci svěříme programu Spamassassin. Tento opět volně šiřitelný software dokáže pomocí různých metod a jejich kombinací poměrně spolehlivě detekovat, zda je e-mail spamem, nebo ne. Spamassassin nainstalujeme příkazem: aptitude install spamassassin a hlavní konfigurační soubory najdeme potom v adresáři /etc/spamassassin. Ještě předtím, než budeme Spamassassin používat, musíme ale nastavit automatické spouštění démona. To provedeme v konfiguračním souboru /etc/default/spamassassin nastavením volby ENABLED=1. Nejdůležitější metodou, kterou Spamassassin na detekci nevyžádané pošty používá, je tzv. Bayes filtr. Bayesova analýza na základě předchozích znalostí dokáže s velkou mírou pravděpodobnosti vyhodnotit, zda je zkoumaná zpráva spam, nebo tzv. ham (korektní e-mailová zpráva). Jak vysoká bude pravděpodobnost úspěšného označení spamu závisí doslova na tom, jak si Spamassassin sami vycvičíme. V počátku je totiž nutné předložit Spamassassinu co největší množství reálných vyžádaných a nevyžádaných zpráv, které program zanalyzuje a výsledky analýzy uloží do své databáze. Na základě různých algoritmů, výskytu podobných slov a slovních spojení pak Spamassassin každý nově příchozí e-mail podrobuje srovnávacímu testu a vyhodnotí, zda se mu zpráva jeví jako nevyžádaná, nebo korektní. Úspěšnost pak závisí do velké míry na kvalitě a množství předložených vzorků e-mailů. Učení
Spamassassinu
provedeme
příkazem
sa-learn
--spam
--dir
/var/mail/uzivatel/.Inbox/spam. Všechny e-maily v této složce si program zapamatuje jako nevyžádané. Pro správnou detekci je neméně důležité naučit Spamassassin poznávat i korektní poštu příkazem sa-learn
--ham
--dir
/var/mail/uzivatel/.Inbox/ham. Učení lze zautomatizovat a pomocí Cronu nebo jiné služby pro pravidelné spouštění úloh nastavit třeba denní provádění. Aby začal - 34 -
Spamassassin provádět Bayes testy, musí mít ve své databázi uloženo nejméně 200 vzorků spamu a hamu. Zjištění stavu Bayes databáze provedeme příkazem sa-learn –dump magic. Konečné vyladění antispamového filtru provedeme v konfiguračním souboru /etc/spamassassin/local.cf, kde nastavíme jednotlivým filtrům a metodám, které Spamassassin vykonává, příslušné skóre a rozhodneme, při jak vysokém skóre už má Spamassassin e-mail považovat za spam. V tuto chvíli už Spamassassin umí detekovat nevyžádanou poštu, ale ta je zatím stále doručována do mailových schránek uživatelů. Je třeba, aby antispamový filtr ještě přidal zprávě, kterou uzná jako nevyžádanou, nějaké stigma, jednoznačné označení, že se skutečně jedná o spam, a informoval o tom MTA Postfix. To provedeme následujícím zápisem do konfiguračního souboru /etc/spamassassin/local.cf: add_header all Flag _YESNOCAPS_ add_header spam Status _YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ add_header spam Level _STARS(s)_ Tímto zápisem přikážeme Spamassassinu, aby každou zprávu hned v záhlaví označil jako vyžádanou, nebo nevyžádanou. Pro ladění a testování je vhodné, aby také uvedl skóre, které zprávě přiřadil, a zobrazil filtry, které byly aplikovány. Parametrem Spam Level potom přiřadí podle skóre zprávě příslušný počet hvězdiček. Doručovací program na základě počtu přiřazených hvězdiček e-mail umístí do složky Spam, do místní karantény, smaže jej nebo odmítne. Několik změn teď bude potřeba udělat i v konfiguraci Postfixu, aby věděl, jak zacházet
s e-maily
označenými
jako
spam.
Vytvoříme
si
soubor
/etc/postfix/spam_check, který bude obsahovat zápis /^X-Spam-Status: Yes.*/ REDIRECT
[email protected]. E-maily označené jako spam budou v tomto případě přeposílány na k tomu účelu vytvořenou schránku spam, kterou správce serveru čas od času zkontroluje, aby se ujistil, zda nejsou omylem označovány jako spam i korektní zprávy. Pokud bychom direktivu REDIRECT nahradili zápisem DISCARD, vyřadíme karanténu a pošta identifikovaná jako spam bude automaticky Postfixem odmítnuta. - 35 -
Nesmíme zapomenout tento nově vytvořený konfigurační soubor propojit s Postfixem a přikázat mu, aby prováděl kontrolu hlaviček příchozích e-mailů. Do hlavního konfiguračního souboru Postfixu /etc/main.cf vložíme zápis: header_checks = regexp:/etc/postfix/spam_check header_checks = pcre:/etc/postfix/spam_check
3.2.6
Webmail
Webmail je v dnešní době asi nejčastěji používaným rozhraním pro přístup k elektronické poště a pomalu vytlačuje klasické aplikace e-mailových klientů, jako jsou třeba Microsoft Outlook nebo Mozilla Thunderbird. Ve spojení s protokolem IMAP umožňuje uživateli mít svou poštu přístupnou z jakéhokoliv místa na světě s připojením na internet a bez nutnosti instalovat a konfigurovat klientský software. Díky pokročilým webovým technologiím jako je AJAX, souhrnně označovaným jako Web 2.0, nabízí webové rozhraní přístupu k poště uživateli komfort podobný tomu, na který byli zvyklí z klasických
klientských
aplikací.
Nejrozšířenějším
webmailem
používaným
na linuxových poštovních serverech byl dlouhou dobu program SquirrelMail. Jeho vývoj však ustrnul v čase a nepřizpůsoboval se novým technologiím, takže ho v oblibě nahradily jiné programy. Mě nejvíce zaujal program RoundCube, který za sebou sice nemá dlouhý vývoj, nicméně mezi jednotlivými verzemi jsou velké kvalitativní skoky a v té současné se může porovnávat s webovými aplikacemi nejznámějších freemailových poskytovatelů. RoundCube je kompletně napsaný v PHP, bohatě obsahuje technologii AJAX, díky níž je uživatelské rozhraní příjemné, intuitivní a snadno ovladatelné. Licence programu je pochopitelně opět GNU GPL. Instalace je tentokrát o něco složitější, protože RoundCube není obsažen v základních instalačních balíčcích Ubuntu. Je potřeba instalační soubor stáhnout z internetových stránek RoundCube, nejlépe verzi pro debian označenou příponou .DEB. Program potom nainstalujeme příkazem dpkg –i roundcube-core_0.4_all.deb. RoundCube se nainstaluje
do
/usr/share/roundcube,
v /etc/roundcube. - 36 -
konfigurační
soubory
jsou
potom
Po instalaci je třeba v hlavním souboru main.inc.php nasměrovat RoundCube do správného umístění uživatelských schránek a také nastavit http adresu pro přístup k webmailu. To se provede v konfiguračním souboru apache.conf, kde vytvoříme alias (symbolický odkaz) z internetových stránek serveru do místa, kde je RoundCube nainstalovaný: Alias /mail /usr/share/roundcube/ Vytvořením tohoto aliasu je zaručeno, že na internetové adrese www.domena.cz/mail bude naslouchat webmail RoundCube.
Obr. 3.3 Blokové schéma poštovního systému
- 37 -
3.3 Webový server 3.3.1
Apache
Apache je název nejrozšířenějšího webového serveru na světě [12]. Tak jako veškerý ostatní software uváděný v této práci je i Apache šířen s otevřeným zdrojovým kódem pod licencí GNU GPL. Apache začal být vyvíjen v roce 1993 ve středisku NCSA (National Center for Supercomputing Aplications) na Illinoiské univerzitě. Původně byl projekt vyvíjen pod názvem NCSA HTTPd a díky otevřenému zdrojovému kódu na něm brzy začala spolupracovat celá řada vývojářů, která k aplikaci dodávala své úpravy - patche. Odtud také nový projekt vzešlý z HTTPd dostal své jméno Apache a vznikla organizace Apache Group, koordinující vývoj této aplikace. Stávající verze Apache2 již neobsahuje nic z původního zdrojového kódu HTTPd. Už od roku 1996 si Apache drží první místo před druhým Microsoft IIS v počtu nasazených webových serverů na internetu [12]. Většina webových stránek, které na internetu navštívíme, fungují právě na této serverové aplikaci. Apache se stal mezi vývojáři a správci IS natolik populární, že nezůstal jen záležitostí linuxového světa, ale brzy se rozšířil i na podobné systémy BSD, Solaris, Mac OS X, a později dokonce i na platformu Windows. Dnes je běžně používán Apache nebo jeho klony jako součást různých komplexních aplikací pro Windows, jako jsou například Triády nebo populární webový server XAMPP. Apache používá standardní porty pro HTTP komunikaci, tedy port 80 a port 443 pro zabezpečenou verzi HTTPS. Podobně jako Postfix jsme i Apache nainstalovali již při instalaci rozšířených služeb operačního systému v první kapitole této práce. Standardně je pracovním adresářem Apache složka var/www/ a konfigurační soubory jsou umístěny v /etc/apache2/. Ten, který obsahuje nejdůležitější konfigurační soubory, má název apache2.conf. Po nainstalování serveru je Apache ihned připraven k provozu ve svém defaultním režimu.
To
lze
ověřit
zadáním
adresy
http://localhost
nebo
http://127.0.0.1 do prohlížeče internetu. Pokud služba neběží, spustí se ručně příkazem /etc/init.d/apache2 start. Apache tedy nepotřebuje pro svůj start žádné zásadní úpravy konfiguračních souborů. Pro následné vyladění serveru je možné použít následující direktivy konfiguračního souboru apache2.conf:
- 38 -
ServerRoot /etc/apache2 – hlavní adresář, ve kterém Apache hledá konfigurační soubory Timeout 300 – definuje, jak dlouho bude server čekat na přijetí požadavku od klienta. Čas udávaný v této direktivě je v sekundách. KeepAlive On – funkce Keep Alive umožňuje zpracovat více požadavků v čase jednoho spojení. Pokud je tato direktiva nastavena, počítá se čas od posledního spojení daný zápisem KeepAlive Timeout, a nepřijde-li do vypršení tohoto limitu od klienta další požadavek, je spojení ukončeno. KeepAlive Timeout 15 – čas, který bude Apache čekat na další požadavek od klienta, než s ním ukončí spojení StartServers 10 – udává, kolik volných démonů služby bude spuštěno (standardně hodnota 10) MaxClients 150 – maximální počet démonů, které mohou běžet ve stejný čas Listen 80 – na kterém portu bude Apache naslouchat. V nestandardních případech můžeme tuto hodnotu změnit. Po konfiguraci souborů je třeba do složky /var/www/ umístit webovou prezentaci, která bude obsahovat soubor index.html nebo index.php, a jednoduchý webový server je plně funkční. Problém nastává v případě, že budeme chtít na jednom serveru hostovat více webových prezentací a domén. V takové případě musíme stejně jako u poštovního serveru použít jako řešení virtualizaci.
3.3.2
Virtuální webové servery
Virtualizace elegantně vyřeší problém vícenásobného hostování webových prezentací a domén. Apache2 je na toto řešení dopředu připraven a má pro tento účel ve svém hlavním konfiguračním adresáři vytvořeny podadresáře /etc/apache2/sitesavailable a etc/apache2/sites-enabled. Jediným souborem je v této chvíli v obou složkách soubor default. Jedná se o jeden a tentýž konfigurační soubor, který je fyzicky umístěn ve složce sites-available, a ve složce sites-enabled je na něj vytvořen symbolický odkaz neboli symlink. Budeme-li chtít například hostovat na serveru - 39 -
doménu domena.cz, vytvoříme si podle vzoru souboru default nový konfigurační soubor s názvem domena.cz a nakonfigurujeme ho tak, aby Apache veškeré požadavky na adresu www.domena.cz přesměroval do umístění /var/www/domena.cz. To provedeme direktivou DocumentRoot
/var/www/domena.cz. Tento adresář
musíme vytvořit, nahrát do něj připravenou prezentaci a nastavit mu oprávnění chmod 755. Toto číselné vyjádření přístupových práv znamená, že vlastník složky bude mít oprávnění ke čtení i zápisu do adresáře, a členové skupiny i ostatní uživatelé budou mít přístup pouze ke čtení. Následně vytvoříme symbolický odkaz do adresáře etc/apache2/sitesenabled, čímž sdělíme webovému serveru, že je nový webhosting aktivní. Pro provedení změn je nutné restartovat webserver příkazem /etc/init.d/apache2 restart. Máme-li v pořádku nastaveny DNS záznamy naší domény, bude po restartu nový hosting přístupný, což otestujeme zadáním www.domena.cz do internetového prohlížeče na libovolném počítači. Takovýchto virtuálních webových hostingů můžeme na serveru zřídit libovolné množství. Pokud budeme chtít některý z webů dočasně znepřístupnit, stačí smazat příslušný symbolický odkaz v /etc/apache2/sites-enabled a restartovat webový server. Opětovným vytvořením symlinku se web stane znovu funkčním.
- 40 -
3.3.3
PHP
Internet se v posledních letech výrazně vyvíjí a klasický statický obsah internetového dávnověku vystřídaly webové aplikace pracující na technologii AJAX a dalších technologiích souhrnně označovaných jako Web 2.0. Internet patří sociálním sítím, webovým aplikacím, redakčním systémům, ale i malé webové prezentace se dnes téměř neobejdou bez základních možností komunikovat se svými návštěvníky a reagovat na jejich chování. Neumožňovat na webovém serveru nějakým způsobem generovaný dynamický obsah by bylo velkou chybou, zvláště pokud webový server Apache umí skvěle spolupracovat s předním zástupcem dynamicky generovaného obsahu. PHP (původně Personal HomePage, dnes rekurzivní zkratka pro Hypertext Preprocessor) je skriptovací programovací jazyk, který je určen především pro tvorbu dynamických webových stránek. Nejčastěji se začleňuje přímo do struktury jazyka HTML nebo XHTML, což se hojně využívá při programování webových aplikací. Kromě internetu se PHP používá i pro tvorbu konzolových a desktopových aplikací. Syntaxe jazyka PHP vychází z programovacích jazyků Perl, C, Java a Pascal a jeho velkou výhodou je, že není vázán pouze na platformu Linux. PHP skripty lze bez problémů provozovat na mnoha různých operačních systémech a serverech. Podporuje mnoho rozšiřujících knihoven, dokáže pracovat s většinou databázových systémů (MySQL, ODBC, MSSQL, Oracle, PostgreSQL) a podporuje také většinu internetových protokolů (HTTP, FTP, SMTP, POP3, IMAP, LDAP). Skriptovací jazyk PHP se u vývojářů stále těší velké oblibě a jeho nasazení se používá nejčastěji v kombinaci s webovým serverem Apache a databázovým systémem MySQL. Pro tuto kombinaci, kterou i Ubuntu nabízí jako jeden komplexní instalační balíček, se vžilo označení LAMP (Linux, Apache, MySQL, PHP). Už od své instalace je PHP silně provázáno s webovým serverem Apache. Konfigurační
soubor
PHP
najdeme
na
Ubuntu
v umístění
/etc/php5/apache2/php.ini. Jednotlivých direktiv, které je možné v tomto konfiguračním souboru použít, je obrovské množství, proto na tomto místě budou uvedeny opět jen ty důležité nebo často používané: max_execution_time = 30 – definuje nejdelší dobu, po kterou je možné provádění jednoho skriptu memory_limit = 16M – maximální možné využité paměti jedním skriptem - 41 -
register_globals
= Off – takzvané superglobální proměnné. Superglobální
proměnné jsou předdefinovaná pole, která obsahují hodnoty proměnných získané od uživatele. V dřívějších verzích PHP byla tato volba ve výchozím nastavení povolena a představovala pro systém velké bezpečnostní riziko ve formě nedokonalých skriptů, kterým bylo možné díky superglobálním proměnným podstrčit fingovaná data. Pokud je to možné, je dobré ponechat tuto volbu zakázánu. file_uploads = On – určuje, zda bude možné prostřednictvím HTTP nahrávat na server soubory (například jako přílohy různých webových formulářů atp.). upload_max_filesize = 2M – maximální možná velikost nahrávaného souboru Všechny tyto volby a mnoho dalších můžeme nastavit přímo napevno v konfiguračním souboru php.ini pro všechny weby hostované na serveru. Stane se také, že potřebujeme ale na některém webu konkrétní direktivy povolit a na jiném je zakázat. K tomu slouží konfigurační soubor .htaccess, který se umístí do kořenového adresáře webové prezentace, ve které chceme měnit nastavení PHP. Možnost používání souboru .htaccess musí být předtím povolena v hlavním konfiguračním souboru Apache /etc/apache2/apache2.conf.
- 42 -
3.3.4
MySQL
Pro provoz těch nejjednodušších internetových stránek by možná dosavadní spojení webového serveru se skriptovacím jazykem PHP mohlo stačit, ovšem jakmile budeme chtít na některém webu použít guestlist, diskuzní fórum, vkládání obrázků, přihlašování uživatelů nebo jinou složitější aplikaci, dostáváme se před problém, kam ukládat získaná data. Tím prvním, co nás napadne, je použít nějaký textový soubor, do kterého budeme prostřednictví PHP skriptů data zapisovat. Je to použitelné, rychlé, ale brzy přijdeme na to, že takovýto způsob je náchylný k chybám, nepřehledný a těžko upravovatelný. Navíc ho lze používat jen pro ty skutečně nejméně náročné aplikace. Musíme se tedy poohlédnout po nějaké databázi, do které bude možné získaná data přehledně uspořádat. Nejpoužívanější databází na platformě Linux je právě databáze MySQL. Tento databázový systém byl původně vytvořen švédskou firmou MySQL AB, kterou počátkem roku 2008 odkoupila společnost Sun Microsystems (ta je zase dceřinou společností známé firmy Oracle Corporation). Jako všechny předchozí aplikace je i tento databázový systém šířen pod bezplatnou licencí GPL, ovšem existuje i komerční placená verze. Stejně jako PHP je i MySQL technologie multiplatformní, lze ji tedy provozovat bez ohledu na používaný operační systém. I z toho důvodu má vysoký podíl na celkovém množství v dnešní době používaných databází, ovšem stejně jako jazyk PHP i pro databázi MySQL je původním domovským prostředím především Linux. Ve světě Windows vládne kombinace jazyka ASP a konkurenční databáze založená také na SQL jazyku - MSSQL. Databáze MySQL výborně spolupracuje s programovacím jazykem PHP a tato kombinace se dá skvěle použít pro tvorbu dynamických webových aplikací. Samotná databáze už byla nainstalována při rozšířené instalaci operačního systému, a dokonce už jsou v ní umístěná data v podobě virtuálních uživatelských účtů poštovního serveru z kapitoly 3.2.2. Jediným problémem tedy může být správa databázového systému, která je při používání příkazového řádku poměrně složitá a nepřehledná. Řešení existuje v podobě externích aplikací především s webovým rozhraním, které správu databáze usnadní a graficky zpřehlední.
- 43 -
3.3.5
Správa databáze - PHPMyAdmin
Správce serveru, kde budou webové aplikace využívat databázi MySQL a kde jsou virtuální poštovní účty nakonfigurovány s použitím této databáze, bude potřebovat čas od času kontrolovat databázový systém, vytvářet nové databáze, mazat nepotřebné, provádět zálohování uložených dat apod. Příkazový řádek se k tomuto, jak jsem již zmínil, příliš nehodí a je třeba ke správě databáze použít některý webový nástroj. Velice kvalitní je aplikace PHPMyAdmin, která umožňuje všechny potřebné úkony ke správě databázového systému a nabízí přívětivé grafické uživatelské rozhraní. Celá aplikace je napsaná v PHP a v současné době je k dispozici ve více než 50 jazykových verzích včetně české. Po nainstalování příkazem aptitude install phpmyadmin se PHPMyAdmin uloží do umístění /usr/share/phpmyadmin a v konfigurační složce webového serveru Apache se objeví maličký konfigurační soubor phpmyadmin.conf. V něm je důležitý hned první řádek se zápisem Alias /phpmyadmin /usr/share/phpmyamin. Tento alias umožňuje přistupovat k aplikaci PHPMyAdmin přes internetové stránky, i když není umístěna ve složce, které je k tomu určená, tedy /var/www/. Stačí tedy zadat do prohlížeče adresu domena.cz/phpmyadmin a dostaneme se k přihlašovacímu dialogu, kde se přihlásíme uživatelským jménem root a heslem, které jsme zvolili při instalaci databáze. Tento alias můžeme pochopitelně libovolně změnit, ale je třeba vždy po každé takovéto změně restartovat webový server Apache. Samotná práce v aplikaci PHPMyAdmin je velmi intuitivní a není nutné ji zde podrobněji popisovat. Jako správce můžeme vytvářet databáze a uživatele, kteří k nim mohou přistupovat, a nastavovat jim různé úrovně oprávnění. Kromě grafického rozhraní je zde také pole pro vložení textového dotazu přímo v SQL jazyce a možnost importování a exportování tabulek nebo celých databází.
- 44 -
4 Ladění a provoz serveru 4.1 Analýza logů a monitoring Sledování systému, vyhledávání případných chyb v systému a jejich náprava bude pro správce serveru v této fázi hlavní činností. Základem bude práce s centralizovaným monitorovacím nástrojem Linuxu - Syslogem. Syslog je defaultně předinstalovaný démon, který se spouští automaticky ihned po bootování operačního systému, aby mohl zaznamenávat všechny informace od startu systému až po jeho vypnutí. Rozsah monitorovaných událostí je obrovský. Dá se říci, že každá událost je nějakým způsobem zalogována a je v budoucnu vyhledatelná. Pro velký objem zaznamenávaných událostí a snadnější analýzu logů, zapisuje Syslog společné události do různých souborů. Hlavním pracovním adresářem Syslogu je /var/log, kde najdeme následující logovací soubory: syslog
Tento log je základním a nejdůležitějším logem většiny linuxových distribucí a je do něj zaznamenávána většina systémových událostí.
auth.log
Zde jsou zaznamenávány všechny úspěšné i neúspěšné pokusy o přístup do systému nebo spuštění určitého procesu. V tomto logu budeme hledat především stopy po pokusech o neoprávněný přístup k systému.
mail
Důležitý logovací soubor při provozování poštovního serveru. Jsou v něm uchovávány informace o veškerém dění kolem MTA Postfix a přidružených aplikací. Budou zde kompletní informace o každém e-mailu, který projde systémem, od jeho přijetí, analyzování antispamovým filtrem až po doručení do schránky uživatele a vyzvednutí přes POP3 nebo IMAP.
mail.err
Protože soubor mail je příliš obsáhlý, v tomto logu jsou uchovávány pouze potencionálně problémové informace pro rychlejší analýzu.
- 45 -
Logovacích souborů je mnohem více, zde jsem uvedl jen ty nejdůležitější. S narůstajícím počtem aplikací a služeb, které na server nainstalujeme a budeme provozovat, bude narůstat i počet logů. Zajímat nás budou tedy minimálně ještě následující logy:
/var/log/apache2/access.log,
/var/log/mysql.log,
/var/log/roundcube a /var/log/aptitude. Z uvedeného je vidět, že procházení a důkladná analýza všech logů je práce, která by jednomu zkušenému správci vystačila každý den na několik hodin. Proto je vhodné si tuto činnost nějakým způsobem zautomatizovat a usnadnit. Můžeme použít některý nástroj, který nám s analýzou logovacích souborů pomůže a vybere pouze ty záznamy, které jsou pro nás skutečně důležité a znamenají nějakou mimořádnost, chybu nebo pokus o neoprávněný přístup do systému. Jedním z takových nástrojů je program Logcheck, který ke své práci využívá démona Cron, což je v linuxových systémech nástroj na automatizované a opakované provádění určitých operací a skriptů. Podle toho, jak si Logcheck nakonfigurujeme, prochází Logcheck za nás pravidelně systémové logy a vytvoří jeden, ve kterém najdeme vždy pouze ty nejdůležitější a potencionálně závažné události, které se v systému přihodily. Tento výpis si můžeme díky Cronu nechat zaslat na e-mail a mít tak například každé ráno k dispozici výpis důležitých událostí na serveru z předešlého dne, jehož analýza zabere maximálně několik málo minut. Dalším zajímavým nástrojem na monitorování a analýzu provozu systému je webová aplikace Webmin, což je vlastně jednoduchá sada CGI a PHP skriptů, která po nainstalování umožní spravovat server v částečně grafickém prostředí prostřednictvím webového prohlížeče. Komunikace probíhá na portu číslo 10000, jehož defaultní hodnotu můžeme nastavit libovolně. Veškerá přenesená data jsou v tomto případě nutně šifrována, protože Webmin nabízí skutečně většinu nástrojů ke správě a kontrole celého serveru. Zajímavou a moderní alternativou k Webminu je program Splunk. Ten díky implementaci technologie Web 2.0 nabízí skutečně komfortní monitoring a analýzu systémových nástrojů, služeb a procesů. Funguje také jako webová aplikace a pro svou činnost nakonfiguruje malý webový server na portu 8000. Po přihlášení máme k dispozici přehledné výpisy o stavu jednotlivých služeb, výpisy z logovacích souborů, analýzy, grafy atp. Jedná se o velmi zajímavý nástroj, který dokazuje, že i linuxové serverové systémy nezůstanou navždy pouze u příkazového řádku a editace konfiguračních souborů. Poslední zde zmíněný monitorovací nástroj je program PHPMyVisites, který už nemonitoruje stav systému nebo systémových služeb, ale je určen k monitorování návštěvnosti a chování uživatelů webových stránek, které jsou umístěny na serveru. Tato - 46 -
jednoduchá open source aplikace napsaná v PHP umožňuje přehledně zobrazit a analyzovat statistiky návštěvnosti a přístupů pro server jako celek nebo pro konkrétní weby a domény, které na serveru hostují. Podává vyčerpávající přehled o vstupních a výstupních stránkách, kterými uživatelé přicházejí a odcházejí, trasování návštěvnosti, země původu návštěvníka, hardwarovou konfiguraci stroje návštěvníka, vyhledávané klíčové slovo ve vyhledávači, které návštěvníka na stránky zavedlo, a mnohé další statistiky a analýzy. Je zde pohromadě vše, co webmaster potřebuje k optimalizaci, přehledu a zvýšení návštěvnosti svých webů. V květnu 2010 firma Google umožnila uživatelům svého vyhledávače používat šifrované vyhledávání. Tento na první pohled naprosto jasně kladný krok k lepšímu zabezpečení přenášených a vyhledávaných dat ovšem okamžitě rozpoutal velkou diskuzi právě kvůli analyzátorům webového provozu a přístupovým statistikám. Ty jsou do jisté míry základním kamenem k určování návštěvnosti a dalších parametrů, které ve výsledku jednotlivé weby hodnotí a stanovují tak jejich cenu a následné zisky z reklam pro majitele těchto webů. Právě šifrované vyhledávání, které spustila největší internetová firma, dělá starosti celému internetovému analyzačnímu businessu. Díky šifrovanému vyhledávání se totiž nepřenáší v hlavičce internetové stránky hodnota referer. V té jsou přitom běžně přenášeny informace o tom, z které stránky návštěvník přišel, a analyzační skript tak přichází o cenný zdroj informací. Tato událost ukazuje, jak je současný webový svět a business vzájemně úzce propojen a jak zdánlivě drobná změna může postihnout celý analytický sektor. Bude zajímavé sledovat další vývoj v této oblasti.
- 47 -
4.2 Antispamový filtr Program Spamassassin, který zajišťuje filtrování a označování nevyžádané pošty, je sice připraven a třídí příchozí poštu, ovšem kvůli stále novým technikám spamovacích robotů je vhodné udržovat tento program v dobré kondici a neustále ho zásobovat novým spamem, na kterém se bude učit. K této práci je vhodné zapojit uživatele. Webmail RoundCube je na to již připraven a stačí přimět uživatele, aby spam, který proklouzne do jejich poštovní schránky, přesunuli do složky Spam. Potom je třeba prostřednictvím automatizovaného spouštěče úloh Cron nastavit pravidelné provádění učení spamu z těchto složek. K tomuto účelu vytvoříme vlastní jednoduchý skript, který bude automaticky třeba každý týden proveden. Můžeme si vytvořit i vlastní log, abychom se v případě potřeby mohli podívat, jak je učení spamu účinné a kolik neoznačených spamů proklouzne do uživatelských poštovních schránek. Po analýze a provedení automatického učení budou spamy smazány. Tento skript může vypadat třeba takto: date >> /var/log/spam.log echo automatické učení spamu >> /var/log/spam.log sa-learn --spam --dir /var/mail/domena/schranka/.Junk/new >> /var/log/spam.log echo OK >> /var/log/spam.log echo mazání označeného spamu >> /var/log/spam.log rm /var/mail/domena/schranka/new/* >> /var/log/spam.log echo OK
>> /var/log/spam.log
Nejprve přidáme do logovacího souboru spam.log aktuální informace o datu a čase učení a spustíme skript sa-learn, který provede učení ze schránek uživatelů. Označení Junk se používá v programu RoundCube pro adresář obsahující spam. Výsledek se opět zapíše do souboru spam.log a následující skript provede vyprázdnění schránek a smazání spamu. Tímto zajistíme serveru vysokou výkonnost a spolehlivost při označování nevyžádané pošty.
- 48 -
4.3 SMTP autentizace a TLS šifrování Existují ještě dvě oblasti, kde je možné server lépe zabezpečit a zvýšit komfort používaných služeb. Jedná se o proces odesílání zpráv protokolem SMTP a výběr doručených zpráv přes POP3 a IMAP. Abychom mohli pro příjem a odesílání používat šifrované spojení, musíme nejprve v adresáři
s konfiguračními
/etc/postfix/ssl,
do
soubory kterého
Postfixu později
vytvořit
umístíme
následující
vygenerované
adresář: certifikáty.
Generování certifikátů zajišťuje program OpenSSL a provádíme ho v adresáři /etc/postfix/ssl jako root, tedy pomocí příkazu sudo (viz kapitola 2.2): openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 openssl req -new -key smtpd.key -out smtpd.csr openssl
x509
-req
-days
3650
-in
smtpd.csr
-signkey
smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 Těmito příkazy si vygenerujeme dvojici takzvaných vlastnoručně podepsaných (self signed) certifikátů cakey.pem a cacert.pem, které následně nabídneme poštovním klientům k šifrování spojení se serverem. Protože nám certifikáty nevydala žádná oficiální certifikační autorita, může se v klientských aplikacích objevit problém v podobě vyskakující hlášky s neověřeným certifikátem (MS Outlook). Abychom se této hlášky zbavili, je nutné certifikát importovat do poštovního programu jako důvěryhodný. Následně je ještě nutná úprava konfiguračních souborů Postfixu a Dovecotu, zadání cest k umístění certifikátů u obou konfiguračních souborů a reload MTA Postfix. Potom je třeba v klientském programu zaškrtnout používání šifrovaného spojení a veškerá komunikace přes protokoly SMTP, POP3 i IMAP může probíhat zabezpečeně. Zbývá vyřešit poslední problém a tím je vzdálené využívání SMTP serveru. Uživatelé, kteří používají pro přístup ke své poště desktopové poštovní klienty a mají mobilní zařízení, se kterým cestují mimo lokální síť, zjistí, že nemohou vzdáleně odesílat svou poštu. To je dáno direktivou mynetworks v konfiguračním souboru Postfixu, která - 49 -
povoluje odesílat uživatelům poštu pouze z lokální důvěrné sítě. Pokud bychom povolili odesílání i mimo tuto síť, může se server snadno stát kořistí spamovacích robotů a fungovat jako open relay server. Problém můžeme řešit vždy změnou SMTP serveru nastaveného v poštovním klientu na SMTP server aktuálního ISP, což je ovšem řešení velmi nepraktické a pro běžné uživatele nepoužitelné. Druhou možností je používat při cestách mimo lokální síť webmailovou aplikaci, ovšem pokud je uživatel zvyklý používat Outlook a mít v něm veškerou korespondenci, není ani toto řešení ideální. Kromě vytvoření VPN (Virtual Private Network) mezi uživatelským zařízením a LAN sítí existuje ještě možnost tzv. SMTP autentizace. Při implementaci SMTP autentizace se poštovní server při každém pokusu o odeslání zprávy bude dotazovat na uživatelské pověření k této činnosti. To prokážeme nejlépe jménem a heslem, a abychom nemuseli uživatelům generovat nové autentizační údaje, můžeme použít jméno a heslo, kterým se přihlašují do svých schránek. Klientské poštovní programy jsou na tuto možnost připraveny a stačí zaškrtnout příslušnou volbu u nastavení e-mailového účtu. Na straně serveru to pro nás bude představovat opět úpravu konfiguračních souborů Postfixu a nainstalování dvou balíků libsasl2-modules-sql
a
libsasl2-modules.
V konfiguračním
souboru
main.cf přibude větší množství řádků, kterými propojíme SMTP démona Postfixu se jmény a hesly uloženými v databázovém systému a povolíme proces ověřování při SMTP spojení. Kompletní a okomentovaný konfigurační soubor je přílohou této práce. Tímto jsme zaručili, že uživatelé mohou odesílat svou poštu z desktopových poštovních klientů i mimo síť LAN a zároveň není možné ani z lokální sítě odesílat bez autentizace přístupovým jménem a heslem, čímž předcházíme případnému zneužití ze strany neoprávněného přístupu do sítě nebo využití smtp serveru viry a škodlivými kódy, které se dostanou do lokální sítě.
- 50 -
Závěry a doporučení Cílem bakalářské práce bylo popsat server na platformě Linux od prvotní instalace operačního systému, přes konfiguraci jednotlivých služeb, až po vyladění a spolehlivý chod systému. Nejprve zkušebním a testovacím zařízením a později zároveň hmatatelným výsledkem této práce je skutečný fungující webový a poštovní server, na kterém jsou úspěšně provozovány zde popisované služby a procesy. Systém v současné době obsluhuje jako poštovní server domény dobrej.net, goggles.cz a glasswall.cz a je na něm uloženo více než deset
webových
projektů
nebo
stránek,
které
jsem
v minulosti
vytvořil.
K webovému rozhraní e-mailové schránky je možné se přihlásit na adrese www.dobrej.net/start. Ke správci poštovního serveru PostfixAdmin je možné se přihlásit také přes webový prohlížeč na adrese http://www.dobrej.net/postfixadmin. Linux je zejména na serverovém poli mocným nástrojem a jak je vidět z výsledků této práce, může systém, který si uživatel sám vytvoří a nakonfiguruje podle svého, bez problémů obstarávat služby a funkce srovnatelné s komerčními aplikacemi konkurenčního prostředí Windows IIS a Microsoft Exchange server. Z hlediska stability a bezpečnosti je na tom navíc lépe než produkty Microsoftu, a proto mu na poli profesionálních i amatérských internetových serverů právem náleží prvenství v celosvětovém počtu instalací. Ve firemním prostředí, kde je web a mail pouze jednou z doplňujících služeb doménového prostředí a systému Active Directory, zde již má lepší postavení Microsoft se svým nejnovějším produktem Windows 2008 Server, kterému nemůže linuxové prostředí, zejména kvůli kvalitní a propracované správě uživatelských účtů a systému práv, konkurovat. Vlastní linuxový server vidím jako vhodné řešení zejména pro malé a střední firmy, případně jinou komunitu lidí, kteří chtějí pod svou doménou a na vlastním hardwaru provozovat svůj poštovní server a umístit na něj také své webové prezentace nebo webové a intranetové aplikace.
- 51 -
V závislosti na dalších požadavcích a konkrétní situaci by bylo možné tento server dále rozšiřovat. Ve firemním prostředí by mohl zároveň plnit funkci směrovače (router), který by odděloval venkovní internetový svět od privátního prostředí lokální sítě. K tomu by bylo možné a vhodné jako doplněk provozovat také firewall, který by filtroval a kontroloval komunikaci mezi vnitřní sítí a internetem. Další služby, o které by bylo možné systém rozšířit, je DNS server, který by vyřizoval požadavky překladu adres pro celou privátní síť, a Samba server, který umožňuje vzdálený přístup k souborům v systémech Windows. K dvěma hlavním rolím poštovního a webového serveru by tedy přibyly další role. Role firewallu, kterou by mohl zabezpečit například program IPTables, role DNS serveru (program Bind) a role souborového serveru (program Samba). Výhled do budoucna v oblasti řešení internetových služeb je v současnosti značně nejistý. a
Stále
častější
hardwarových
výskyt
prostředků
pojmu
Cloud
prostřednictvím
Computing počítačových
(sdílení sítí
softwarových
resp.
internetu)
v celosvětovém IT prostředí dává tušit, že bude snaha většinu služeb dále přesouvat k velkým internetovým poskytovatelům. Pro firmy by to znamenalo značnou úsporu nákladů na správu svých vlastních informačních systémů. Proti tomuto řešení však stojí strach ze ztráty soukromí uživatelů, vystavování důvěrných materiálů v cizím prostředí a nárůst moci společností, u kterých by byla data ukládána.
- 52 -
Seznam použité literatury KLASICKÉ ZDROJE: [1]
Linux : Dokumentační projekt. 4. aktualizované vydání. Brno : Computer Press a.s., 2007. 1334 s. ISBN 978-80-251-15251.
[2]
AULDS, Charles. Linux - administrace serveru Apache. Praha : Grada Publishing a.s., 2003. 535 s. ISBN 80-247-0640-7.
[3]
HUNT, Craig. Linux - síťové servery. Praha : Soft Press s.r.o., 2003. 672 s. ISBN 80-86497-59-3.
[4]
KRAFFT, Martin F. The Debian system : concepts and techniques. San Francisco : No Starch Press, Inc., 2005. 605 s. ISBN 1-59327-069-0.
[5]
NEMETH, Evi; SNYDER, Garth; HEIN, Trent R. Linux : Kompletní příručka administrátora. Brno : Computer Press a.s., 2004. 828 s. ISBN 80-722-6919-4.
[6]
WARD, Brian. How Linux works. San Francisco : No Starch Press, Inc., 2004. 351 s. ISBN 1-59327-035-6.
- 53 -
ELEKTRONICKÉ ZDROJE: [7]
HANDL, Jan. Lupa : Server o českém internetu [online]. 17. 2. 2009 [cit. 2010-0308]. Naprostou většinu odeslaných e-mailů tvoří spam. Dostupné z WWW:
.
[8]
NORIS, Ivan. Deja-vix.sk/sysadmin : Príručka systémového administrátora [online]. 6/4/2007 [cit. 2010-05-21]. Služby mailového servera. Dostupné z WWW: .
[9]
STALLMAN, Richard. GNU.org [online]. c2009 [cit. 2010-05-17]. GNU Hurd/ The Hurd and Linux. Dostupné z WWW: .
[10]
Linux.cz : České stránky systému GNU/Linux [online]. c2007 [cit. 2010-05-11]. Dostupné z WWW: .
[11]
Ubuntu.cz [online]. c2010 [cit. 2010-05-03]. Dostupné z WWW: .
[12]
Securityspace.com [online]. 2010-06-01 [cit. 2010-06-08]. Dostupné z WWW: .
- 54 -
Seznam použitých zkratek AJAX
Asynchronous JavaScript and XML
technologie vývoje interaktivních aplikací
ASP
Active Server Pages
zpracování skriptu na straně serveru (Microsoft)
AT&T
American Telephone and Telegraph
americká telekomunikační spol.
APT
Advanced Packaging Tool
balíčkovací systém Debian
BIOS
Basic Input-Output System
základní vstupně-výstupní systém počítače
BSD
Berkeley Software Distribution
distribuce systému Linux
DNS
Domain Name System
systém doménových jmen
DPKG
Debian Package
balíčkovací systém debian
EXT
Extended Filesystem
žurnálový souborový systém
FAT
File Allocation Table
jednoduchý souborový systém
FTP
File Transfer Protocol
protokol pro přenos souborů
GID
Group Identification
jednoznačné identifikační číslo skupiny
GNU
GNU's Not Unix
rekurzivní zkratka projektu
GPL
General Public License
všeobecná veřejná licence
GUI
Graphical User Interface
grafické uživatelské rozhraní
HPFS
High Performance File System
moderní souborový systém
HTML
HyperText Markup Language
jazyk pro tvorbu stránek
HTTP
HyperText Transfer Protocol
protokol pro přenos stránek
IMAP
Internet Message Access Protocol
protokol pro vzdálený přístup do poštovní schránky
KDE
K Desktop Environment
grafické linuxové prostředí
LAMP
Linux Apache MySQL PHP
zkratka označující sadu svobodného softwaru pro implementaci dynamických www stránek
LAN
Local Area Network
místní počítačová síť - 55 -
LDAP
Lightweight Directory Access Protocol
protokol pro přístup k datům
MD5
Message-Digest Algorithm
hašovací funkce
MBR
Master Boot Record
hlavní spouštěcí záznam disku
MTA
Mail Transfer Agent
poštovní doručovací program
MX
Mail Exchanger Record
poštovní záznam v DNS
NDS
NetWare Directory System
adresářový systém NetWare
NTFS
New Technology File System
moderní souborový systém
ODBC
Open Database Connectivity
konektivita otevřené báze
PHP
Hypertext Preprocessor
skriptovací jazyk
POP3
Post Office Protocol
protokol pro vzdálený přístup k internetové poště
RPM
Red Hat Package Manager
balíčkovací systém distribuce Red Hat
SMTP
Simple Mail Transfer Protocol
protokol pro přenos elektronické pošty
SQL
Sructured Query Language
databázový programovací jazyk
SSH
Secure Shell
program pro zabezpečenou komunikaci
SSL
Secure Socket Layer
bezpečná komunikace serveru a klienta
TCP
Transmission Control Protocol
základní internetový protokol
UCS
Universal Character Set
mezinárodní standard pro kódování
UID
User Identifier
jednoznačné identifikační číslo uživatele
URL
Uniform Resource Locator
jediná a jedinečná adresa
UTF-8
UCS Transformation Format
způsob kódování řetězců znaků
VFS
Virtual File System
virtuální souborový systém
VPN
Virtual Private Network
virtuální soukromá síť
WWW
World–Wide Web
svět opředen pavučinou
- 56 -
Přílohy Příloha č. 1
Hlavní konfigurační soubor programu Postfix main.cf
Příloha č. 2
Konfigurační soubor programu Dovecot dovecot.conf
Příloha č. 3
Konfigurační soubor pro přístup programu Dovecot do databáze MySQL dovecot-sql.conf
Příloha č. 4
Konfigurační soubor programu Spamassassin local.cf
Příloha č. 5
Hlavní část konfiguračního souboru programu Apache apache2.conf
Příloha č. 6
Ukázka jednoho ze souborů složky /etc/apache2/sitesavailable. Každý soubor v této složce představuje jeden virtuální webový server.
Příloha č. 7
Konfigurační soubory pro přístup programu Postfix do databáze MySQL virtual_alias_maps.cf, virtual_domains_ maps.cf a virtual_mailbox_maps.cf
- 57 -