Linux jako internetový server



Podobné dokumenty
PSK3-20. Malý poštovní server I. Instalace

Úvod do Linuxu SŠSI Tábor 1

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Radim Dolák Gymnázium a Obchodní akademie Orlová

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

IT ESS II. 1. Operating Systém Fundamentals

úvod Historie operačních systémů

Operační systém GNU/Linux

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Jemný úvod do Postfixu

Jemný úvod do Postfixu

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Stručná instalační příručka SUSE Linux Enterprise Server 11

Uživatel počítačové sítě

C2115 Praktický úvod do superpočítání

VirtualBox desktopová virtualizace. Zdeněk Merta

Identifikátor materiálu: ICT-3-03

SSL Secure Sockets Layer

Základy informatiky. Operační systémy

Elektronická pošta. elementární služba, výchozí pro některé další jedna z prvních síťových služeb vůbec. základní principy popisují

Linux jako mail server

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu...

Práce s ovými schránkami v síti Selfnet

Instalace a první spuštění Programu Job Abacus Pro

Systém souborů (file system, FS)

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Jak funguje GNU/Linux

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Instalace OS, nastavení systému

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIV Windows server 2003 (seznámení s nasazením a použitím)

3.8 Elektronická pošta

Ing. Jitka Dařbujanová. , SSL, News, elektronické konference

Použití programu WinProxy

1. DATOVÉ SCHRÁNKY OBECNÝ PŘÍSTUP K DATOVÉ SCHRÁNCE DATOVÉ ZPRÁVY... 3

Hodinový rozpis kurzu Správce počítačové sítě (100 hod.)

Alternativní operační systémy. Martin Drlík, Daniel Krotil OSY2A, ITV

Kerio IMAP Migration Tool

Faxový server společnosti PODA s.r.o.

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

Úvod do informačních služeb Internetu

Možnosti využití Windows Server 2003

Střední odborná škola a Střední odborné učiliště, Hořovice

Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... 23

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

Antonín Přibyl - Virtualizace Windows serveru s KVM hypervisorem

SMTPServer - Příručka

Vzdálená správa v cloudu až pro 250 počítačů

Instalace Linux Debian ve VirtualBoxu JAKUB MAZUCH BŘEZEN 2018

Na vod k nastavenı u

Linux na serveru. seminář Arcibiskupského gymnázia v Praze a gymnázia Boženy Němcové v Hradci Králové

Tato zpráva informuje o implementaci LMS (Learning Management Systém) Moodle konkrétně Moodle

Spouštění a konfigurace služeb. Přednáška OSY2 verze :00

(5) Klientské aplikace pro a web, (6) Elektronický podpis

UŽIVATEL, SKUPINA, PROCES

DISTRIBUCE GNU/LINUXU

Příručka nastavení funkcí snímání

Jan Forman Manuál CLASSIFICATIO N: public / veřejný dokument IDE NTIFICATIO N N U MBER: AUTH OR:

Instalace programu ProGEO

Acronis. Lukáš Valenta

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Instalace a základní administrátorské nastavení 602LAN SUITE 5 Groupware

Jednotlivé hovory lze ukládat nekomprimované ve formátu wav. Dále pak lze ukládat hovory ve formátu mp3 s libovolným bitrate a také jako text.

POČÍTAČOVÉ SÍTĚ A KOMUNIKACE OBOR: INFORMAČNÍ TECHNOLOGIE

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Windows 2008 R2 - úvod. Lumír Návrat

Operační systémy: funkce

Střední odborná škola a Střední odborné učiliště, Hořovice

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Projekt do předmětu ISA na FIT. Konfigurace poštovního serveru ISP

Instalace aplikace 602XML Filler

PB169 Operační systémy a sítě

Na různých druzích počítačů se používají různé operační systémy. V průběhu času

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

Činnost operačních systémů. Beránek Pavel 1. KŠPA

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Konfigurace Windows 7

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Bezpečnost webových stránek

Elektronická pošta... 3 Historie... 3 Technické principy... 3 Komunikační protokoly... 3 MBOX... 4 Maildir... 4 Jak funguje POP3...

INSTALACE SW V GNU/LINUXU

Porovnání instalací linuxových distribucí Fedora x Debian Administrace počítačových sítí (2010/2011)

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Inovace a zkvalitnění výuky prostřednictvím ICT Počítačové sítě Vrstvový model TCP/IP Ing. Zelinka Pavel

Analýza síťového provozu. Ing. Dominik Breitenbacher Mgr. Radim Janča

2. Nízké systémové nároky

Linux jako alternativní operační systém

Audit bezpečnosti počítačové sítě. Předmět: Správa počítačových sítí Jiří Kalenský

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1

Instalace SQL 2008 R2 na Windows 7 (64bit)

Příručka pro nasazení a správu výukového systému edu-learning

CYCLOPE PRINT MANAGEMENT SOFTWARE- UŽIVATELSKÁ PŘÍRUČKA

Inovace a zkvalitnění výuky prostřednictvím ICT Počítačové sítě

L i n u x j a k o r o u t e r, f i r e w a l l, D H C P s e r v e r, p r o x y a D N S c a c h e, 2. č á s t

Střední odborná škola a Střední odborné učiliště, Hořovice

Návod na používání webmailu

Transkript:

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: Ing. Zdeněk Bečvář, Ph.D. Praha Č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 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-2 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-3 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 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-4 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 /dev /tmp /boot /mnt /usr /var Sdílené knihovny pro programy v kořenovém souborovém systému. Speciální soubory. Dočasné soubory. Slouží programům a aplikacím pro dočasné ukládání dat nutných pro vykonání určité činnosti. Soubory, které používá zavaděč operačního systému (bootstrap loader). 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ů. 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\. 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 64- bitový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í e- mailů 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ř. vaclav@domena.cz 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, virtual_ domains_maps.cf a virtual_mailbox_maps.cf. - 29 -

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 -