Odlehčený streamovací server pro domácí použití

Podobné dokumenty
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.

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Instalace SQL 2008 R2 na Windows 7 (64bit)

Instalace Microsoft SQL serveru 2012 Express

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

Konfigurace Windows 7

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

plussystem Příručka k instalaci systému

WNC::WebNucleatCreator

Kapitola 1: Úvod. 1.1 Obsah balení. 1.2 Požadavky na systém. Česky

ČSOB Business Connector

Registr práv a povinností

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

Konfigurace pracovní stanice pro ISOP-Centrum verze

B Series Waterproof Model. IP Kamera. Uživatelský manuál

Jazz pro Účetní (export) Příručka uživatele

IP kamera. Uživatelský manuál

Kerio VPN Client. Kerio Technologies

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

1 Webový server, instalace PHP a MySQL 13

APS Administrator.OP

Semestrální projekt do předmětu SPS

Instalace. Samotný firewall již je s největší pravděpodobností nainstalovaný Zjistíme dle parametru při použití. aptitude search iptables

Uživatelský manuál WEB SERVICE V3.0 IP kamer Dahua

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

FIO API PLUS. Verze 1.1.1

TC-502L TC-60xL. Tenký klient

Edu-learning pro školy

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

Návod na instalaci HW certifikátu aplikace PARTNER24

Manuál pro práci s kontaktním čipem karty ČVUT

Správa zařízení Scan Station Pro 550 a Servisní nástroje zařízení Scan Station

Šifrování Autentizace Bezpečnostní slabiny. Bezpečnost. Lenka Kosková Třísková, NTI TUL. 22. března 2013

Nastavení programu pro práci v síti

Operační systémy 2. Firewally, NFS Přednáška číslo 7b

Aplikace GoGEN Smart Center

OpenSSL a certifikáty

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

Při konfiguraci domácího směrovače a bezdrátové sítě se setkáte s obrovským počtem zkratek, jejichž význam je jen málokdy dostatečně vysvětlen.

Návod pro připojení k síti VŠPJ prostřednictvím VPN Vysoká škola polytechnická Jihlava

CS OTE. Dokumentace pro externí uživatele

Téma 11: Firewall v CentOS. Nastavení firewallu

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

Patrol Management System 2.0

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

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

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

1 Správce licencí Správce licencí Správce licencí Start > Všechny programy > IDEA StatiCa > Správce licencí Soubor > Správce licencí Licence

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

TC-502L. Tenký klient

Kerio IMAP Migration Tool

log in AHD_DVR Průvodce rychlým startem První část: základní operace

LAN se používá k prvnímu nastavení Vašeho DVR a když potřebujete nastavit síť na Vašem DVR pro používání po internetu.

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

Použití programu WinProxy

1. Připojení k Internetu

EPLAN Electric P8 2.7 s databázemi na SQL serveru

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

TACHOTel manuál 2015 AURIS CZ

Manuál. k aplikaci WD FileAgent

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

Redakční systém Joomla. Prokop Zelený

Na vod k nastavenı ovy ch schra nek Administrace

NÁVOD K POUŽITÍ. IP kamerový systém.

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

Systémové požadavky Xesar

Bezdrátové routery LTE & UMTS datové a hlasové brány

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

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í,

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

Instalace systému Docházka 3000 na operační systém ReactOS Zdarma dostupné kompatibilní alternativě k systému Windows

Obslužný software. PAP ISO 9001

STRUč Ná Př íruč KA pro Windows Vista

CMS. Centrální monitorovací systém. Manuál

1. Instalace MySQL Serveru Konfigurace MySql Serveru Vytvoření struktury databáze...3

INSTALAČNÍ MANUÁL. TME gadget

MICRO DVB-T STICK. Uživatelský manuál. Watch & record Digital TV programs on Your PC! MT4167

Technologické postupy práce s aktovkou IS MPP

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

PREMIER E Agent. Jak to funguje?

Firewally a iptables. Přednáška číslo 12

Uživatelská dokumentace

Nastavení elektronického výpisu v Internet Bance

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

Audit bezpečnosti počítačové sítě

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

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Registr práv a povinností

Mobilita a roaming Možnosti připojení

XTB VPS. XTB Virtual Private Server manuál

Generování žádosti o certifikát Uživatelská příručka pro prohlížeč Opera

NÁVOD K OBSLUZE ARC Wireless: SplitStation5 (+ iflex2 - vnitřní AP 2,4 GHz vč. 3 dbi antény)

ABRA Software a.s. ABRA on- line

APS Web Panel. Rozšiřující webový modul pro APS Administrator

Evidence majetku a Windows 8

IFTER-EQU Instalační manuál

Nahrávání image flash do jednotek APT81xx, PPC81xx

Transkript:

Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Vyšší odborná škola informačních služeb v Praze Oskar Altman Odlehčený streamovací server pro domácí použití Bakalářská práce 2011

P r o h l á š e n í Prohlašuji, že jsem bakalářskou práci na téma Odlehčený streamovací server pro domácí použití vypracoval samostatně a použil pouze zdrojů, které cituji a uvádím v seznamu použité literatury. V Praze dne 19. prosince 2011. podpis autora

Název bakalářské práce: Odlehčený streamovací sever pro domácí použití Abstrakt: Cílem této práce je navrhnout a realizovat řešení pro příjem, zpracování a následné vysílání pozemního televizního signálu označované zkratkou DVB-T do lokální sítě LAN. Studie popisuje návrh a implementaci řešení na vlastní server. Součástí práce je návrh webového rozhraní pro snadné ovládání vysílání a plánování nahrávání televizních pořadů. Práce obsahuje popis získání, instalace a konfigurace aplikací, které jsou zapotřebí k realizaci. Studie se také zabývá bezpečností celého řešení a popisuje klíčová bezpečnostní opatření na straně serveru. Klíčová slova: DVB, streamování do sítě LAN, plánování nahrávání, dekódování videa, Apache, PHP, MySQL, Getstream-poempel, online rozhraní.

Title of the Bachelor s thesis: Lightweight streaming server for home use Abstract: This thesis is focused on solution for processing and streaming DVB-T signal to local network. Thesis describes whole lightweight solution with installation and configuration system and aplications. Thesis also describe own design of online interface for easy control of streaming or planning recording from DVB-T LAN stream. Another component of this document are security key issues of used applications. Key words: DVB, streaming to LAN, planinng recording, video encoding, Apache, MySQL, PHP, Getstream-poempel, online interface.

Obsah 1 Úvod... 7 1.1 Úvod do problematiky DVB... 7 1.2 Požadavky na realizaci... 9 1.1.1 Rozdělení požadavků na realizaci řešení... 9 1.1.2 Podrobná analýza požadavků... 10 2 Realizace vlastního řešení... 14 2.1 Instalace OS... 14 2.2 Konfigurace systémových služeb na serveru... 15 2.2.1 Webový server Apache.... 15 2.2.2 Skriptovací jazyk PHP... 16 2.2.3 Databázový server MySQL... 17 2.2.4 Nástroje pro práci s DVB v Linuxu... 18 2.3 Konfigurace systému... 20 2.3.1 Aktualizace data a času... 20 2.3.2 Konfigurace služeb po startu systému... 20 2.4 Zabezpečení serveru... 21 2.4.1 Šifrování komunikace mezi klientem a webovým serverem... 21 2.4.2 Nastavení autorizace uživatelů oproti webovému serveru... 23 2.4.3 Vynucení přístupu přes protokol HTTPS... 24 2.4.4 Konfigurace firewallu na serveru... 24 2.4.5 Konfigurace firewallu na výchozí bráně (gateway)... 26 2.5 Realizace aplikačního rozhraní... 27 3 Vlastní přínos... 32 4 Závěr... 33 5

Literatura... 35 Seznam příloh... 36 Seznam obrázků... 37 Přílohy... 38 6

1 Úvod V úvodní kapitole je popsána problematika DVB vysílání v domácím prostředí. Jsou zde definovány požadavky na realizaci a implementaci odlehčeného řešení včetně specifikace funkcionality webového rozhraní, které bude sloužit k jednoduchému ovládání vysílání DVB-T signálu v rámci lokální sítě a plánování nahrávání pořadů z televize. 1.1 Úvod do problematiky DVB Téma absolventské práce jsem zvolil, protože jsem hledal nenáročné řešení pro příjem, zpracování a vysílání pozemního televizního signálu v rámci domácí lokální sítě, které lze implementovat na můj stávající server. V rámci prohloubení svých znalostí programování webových stránek v jazyce PHP, jsem se rozhodl vytvořit webový front end k celému řešení. Práce řeší otázku, jak uspokojit požadavky všech členů rodiny co se týče nahrávání a sledování televizních pořadů a zároveň minimalizovat náklady na realizaci. Například v některých domácnostech společně bydlí rodiče, děti i prarodiče. To jsou tři generace. Každá má velmi odlišné požadavky na sledování televizních pořadů. Jejich požadavky lze uspokojit nákupem několika televizorů a k tomu ještě několika nahrávacích zařízení. To je poměrně nákladné řešení. Za předpokladu, že alespoň jeden člen z každé generace vlastní osobní počítač, lze uvedenou problematiku vyřešit nákupem televizních tunerů v provedení do PCI, PCI-E nebo USB. Cena jednoho tuneru se pohybuje kolem jednoho až dvou tisíc korun. To je mnohem levnější než nákup nové televize. Ovšem i použití televizních tunerů má své nevýhody. Výrobci dodávají k televizním tunerům software, pomocí kterého lze jednoduše ovládat vysílání, některé umí i pokročilejší funkce jako je nahrávání pořadů, dekódování videa v reálném čase nebo pauza aktuálního vysílání atd. Jenže právě tyto operace jsou velmi náročné na hardwarové prostředky počítače. Pro majitele netbooků, je takové řešení nemyslitelné, protože mohou použít jen televizní tunery v provedení do USB, které mají vyšší provozní režii než tunery v provedení do PCI slotu. Netbooky jsou vybaveny úspornými procesory s maximální spotřebou kolem 10 Wattů. Takové procesory nejsou schopny v reálném čase dekódovat video při zachování snímkovací frekvence 25 snímků za sekundu. 7

Tato práce si klade za cíl řešení výše nastíněných problémů. To znamená řešení domácího vysílání a nahrávání televizního signálu dostupné pro více uživatelů, které má nízkou režii a pohodlné ovládání realizované přes webové rozhraní. Řešení bude realizováno jako serverová služba, která bude dostupná na zvolené IP adrese a definovaném portu. Uživatel použije klienta pro přehrávání DVB-T vysílání, dle své libosti, za předpokladu podpory přehrávání HTTP streamu na straně klienta. Pokud bychom nekladli důraz na odlehčené provedení celého řešení, existuje spousta aplikací, které umí přijímat, dekódovat i nahrávat DVB-T signál. Jedním ze známých multimediálních opensource přehrávačů, který to umí, je VLC player [12]. Jenže VLC player má poměrně velkou režii. Další ještě více propracovaný software, který řeší danou problematiku je MythTV [7]. MythTV zvládá všechny výše zmiňované funkce, dokonce podporuje plánování nahrávání pomocí EPG signálu. To je signál, který se vysílá v multiplexu společně s kanály. Každý vysílaný program v televizi má svoje unikátní ID, které se vysílá v EPG signálu. Jediné co třeba udělat, je stáhnout televizní program na týden dopředu v XML formátu a ten importovat do aplikace MythTV. Řešení pomocí tohoto software je velmi náročné na hardwarové prostředky, především na procesor a operační paměť. Pro splnění vytyčeného cíle práce je zapotřebí splnit tyto dílčí úkony: o Zohlednit stávající hardware a jeho omezení z pohledů hardwarových prostředků, použitého operačního systému nebo počtu volných slotů k osazení televizními tunery o Zvolit vhodné aplikace pro realizaci řešení o Zjistit na jakých frekvencích se vysílají jednotlivé multiplexy v Praze o Zjistit jaké programy se vysílají v jednotlivých multiplexech o Vytvořit skripty pro automatizaci procesu spouštění vysílání o Zvolit vhodné nastavení aplikace pro dekódování nahraných videí, tak aby nahraná videa měla rozumnou velikost a kvalitu obrazu o Zajistit implementaci nové služby, aniž by došlo k omezení stávajících služeb na serveru nebo narušení bezpečnosti systému o Navrhnout a vytvořit víceuživatelské webové rozhraní pro snadné ovládání vysílání a plánování nahrávání televizních pořadů 8

1.2 Požadavky na realizaci 1.1.1 Rozdělení požadavků na realizaci řešení Systémové požadavky o Realizace na stávajícím hardware o Nízké počáteční náklady o Nízké provozní náklady o Co nejnižší režie celého řešení Bezpečnostní požadavky o Šifrovaná komunikace mezi klientem a serverem při práci s webovým rozhraním o Vynucení přístupu přes zabezpečené spojení pomocí protokolu HTTPS o Databázový systém poběží lokálně na serveru o Uživatelská hesla budou kryptována pomocí kryptovací funkce SHA1 o Všechny procesy vysílání a nahrávání poběží pod běžným uživatelem o Video archiv bude online přístupný a bude vyžadovat autorizaci uživatele o Webové rozhraní bude ošetřeno oproti SQL injekcím o Aplikační logika nebude mít přímý přístup do systému, ale pouze přes příkazové prostředí systému, do kterého se přihlásí lokálně pomocí SSH Uživatelské požadavky o Zobrazení aktuálně naplánovaných videí a jejich barevné rozdělení dle stavu nahrávání o Zobrazení informací o vysílání (zapnuto/vypnuto, multiplex) o Podpora více uživatelů o Snadné plánování nahrávání o Snadné ovládání vysílání o Odkazy na video archiv a televizní program o Logování událostí do databáze 9

o Úspěšné i neúspěšné pokusy o přihlášení do aplikace o Zapnutí, vypnutí nebo změna vysílaného multiplexu o Naplánování nahrávání o Odhlášení uživatele z aplikace o Logika aplikace Kontrola jestli se právě nahrává, pokud ano nedovolí uživateli přepnout vysílaný multiplex Kontrola správného zadání časových údajů při plánování nahrávání 1.1.2 Podrobná analýza požadavků Jedním z požadavků je využít k realizaci stávající hardware. Jedná se o stolní počítač se základní deskou s integrovaným procesorem Intel Atom D510 a integrovanou grafickou kartou. Stroj disponuje dvěma moduly RAM o celkové kapacitě 4GB. K ukládání dat slouží dva pevné disky, každý má kapacitu 1,5TB. Pro snížení pravděpodobnosti ztráty dat je v systému se nakonfigurován softwarový RAID 1 (viz konfigurace OS). Celková výsledná použitelná kapacita disků v zapojení typu RAID 1 je 1,5TB. Řada procesorů Intel Atom je známá svojí nízkou spotřebou, která se pohybuje od 4 do 13W TDP podle verze procesoru. V tomto případě se jedná o verzi Intel Atom D510. Je to dvoujádrový procesor s frekvencí 1,6GHz a maximálním výstupním výkonem 13W. Pro příjem DVB-T signálu poslouží TV karta AverTV Hybrid Super 007 v provedení do PCI slotu. TV karta byla zvolena s ohledem na dobrou podporu v Linuxu. Základní deska disponuje pouze jedním PCI slotem. To přináší omezení, které bude třeba vyřešit v návrhu. V jednu chvíli bude server schopen naladit, a tudíž i vysílat pouze jeden multiplex. Je tedy potřeba zajistit přepínání multiplexů, které se budou streamovat podle potřeby uživatele. Při nahrávání televizních pořadů, je důležité zajistit, aby v době nahrávání nedošlo k přepnutí vysílaného multiplexu. Z výše uvedených důvodů, bude aplikace ovládána přes webové rozhraní, jehož logika se postará o správnou režii celého řešení. Hlavním požadavkem je nenáročnost použitých aplikací i samotného operačního systému. Jako operační systém byl zvolen Linux [12], protože je velmi stabilní a může běžet na plnohodnotné úrovni bez zbytečně zatěžujícího grafického prostředí. Nesporná výhoda Linuxu oproti jiným OS je jeho nulová pořizovací cena. 10

Ze softwaru pro příjem, zpracování a vysílaní DVB-T signálu v rámci lokální sítě byl nakonec vybrán program Getstream-poempel, který vyvinul Michael Meier [10]. Getstreampoempel je převzatý z aplikace Getstream, kterou vytvořil Florian Lohoff. V obou případech je jedná o opensource aplikace distribuované pod licencí GNU GPL v.2 [8]. Hlavní rozdíl mezi aplikacemi je v zápisu konfigurace. Getstream-poempel má logičtější a přehlednější zápis konfiguračního souboru. Další rozdíly jsou popsány na webu autora aplikace. Getstreampoempel je unikátní a velmi odlehčená aplikace, která signál z televizního tuneru vysílá po síti tak jak je v původním formátu. To je klíčová vlastnost a má největší podíl na nízké režii celého řešení, protože se video nemusí dekódovat v reálném čase. Přepínání multiplexů a plánování nahrávání je možné ovládat z příkazové řádky Linuxu. Nicméně taková forma ovládání je vhodná pouze pro někoho, kdo již umí alespoň trochu ovládat příkazové prostředí Linuxu [8]. Pro běžného uživatele bude vhodnější zvolit formu ovládání přes webové rozhraní, které bude online dostupné z internetu i lokální sítě na adrese https://tv.edulinux.info. Webové rozhraní bude realizováno za pomocí webového serveru Apache [3] s použitím skriptovacího jazyka PHP a databáze MySQL [5]. Webové rozhraní bude jednoduché, přehledné a uživatelsky přívětivé. Rozhraní bude podporovat více uživatelů, dále bude možné zapnout a vypnout streamování na síti nebo přepnout vysílaný multiplex. Mezi další funkce patří plánování nahrávání, výpis aktuálně naplánovaných akcí a kontrola nahrávání, která během nahrávání nedovolí uživateli přepnout vysílaný multiplex. Nahrané video se automaticky dekóduje do MPEG-4 formátu. Původní video se smaže a nové dekódované video se uloží na disk do složky, která bude přístupná danému uživateli přes web jako video archiv z adresy https://tv-archiv.edulinux.info. Uživateli se nakonec odešle email s odkazem na uložené video. Aplikace bude rozlišovat mezi běžným uživatelem a administrátorem. Administrátor bude mít k dispozici navíc možnost výpisu událostí, které zachycují jednotlivé úkony uživatelů při práci s aplikací do databáze. Mezi takové úkony patří přihlášení a odhlášení uživatele do aplikace. Změna vysílaného multiplexu, naplánování nahrávání nebo špatné pokusy o přihlášení do aplikace. Správce bude mít k dispozici výpis všech nahraných videí společně s informací kdy, co a kdo nahrál. Správce bude mít přístup k administraci databáze přes online administrační rozhraní Phpmyadmin [5], které bude dostupné na adrese https://pma.edulinux.info. 11

Obrázek č. 1. - Usecase diagram uživatelských akcí Z pohledu bezpečnosti potřebujeme zajistit vynucení přístupu přes HTTPS protokol. To znamená, že Apache sice bude naslouchat požadavkům také na portu 80 (http protokol), ale jakmile obdrží požadavek přes http protokol, vyzve klienta, aby svůj požadavek upravil a znovu odeslal přes protokol HTTPS. Tím se vyhneme nežádoucímu odposlechnutí uživatelského jména a hesla během komunikace mezi klientem a serverem. Uživatelské přístupy budou uloženy v databázi, odkud je logika aplikace bude číst. Uživatelská hesla se budou ukládat do databáze takovým způsobem, že se z hesla nejprve vytvoří jeho otisk pomocí hashovaní funkce SHA1. To znamená, že během přihlašovacího procesu aplikace vygeneruje otisk hesla zadaného uživatelem pomocí hashovaní funkce SHA1 a tento otisk porovná s otiskem, který je uložen v databázi. Pokud jsou otisky shodné, uživatel bude úspěšně přihlášen. 12

Samotná aplikační logika nebude mít přímý přístup k operačnímu systému. V PHP existuje funkce exec(), pomocí které můžeme zadávat systémové příkazy do příkazového řádku. Aplikační logika bude předávat systémové příkazy pomocí lokálního přístupu do systémové konzole pomocí služby SSH a za použití autorizace privátním klíčem [8]. To znamená, že v systému bude existovat uživatel, který bude mít oprávnění spouštět skripty, které zajistí zapnutí streamování, nahrávání a dekódování nahraných videí. Přihlášení aplikační logiky do systému je zajištěno pomocí privátního klíče vygenerovaného funkcí RSA o délce klíče 1024 bitů. Tento klíč je umístěn v zabezpečené složce na webovém serveru, do které nemá nikdo přístup, pouze aplikační logika. Toto má výhodu, že aplikace použije soubor s uloženým klíčem na serveru a nemusí mít ve zdrojovém kódu uložené uživatelské heslo v čitelné podobě. Další výhodou je, že veškeré úkony na pozadí serveru se provádějí pod jednotným uživatelským účtem, jehož akce se logují do systému. 13

2 Realizace vlastního řešení Tato kapitola popisuje výběr vhodného softwaru a jeho konfiguraci na domácím serveru s operačním systémem Linux, distribuce Debian. Je zde popsána konfigurace webového serveru Apache, databázového serveru MySQL a skriptovacího jazyka PHP. Dále je popsáno, jak se pracuje s nástroji pro příjem DVB-T signálu. Klíčovou záležitostí je nastavení aplikace getstream-poempel. Významnou část kapitoly tvoří popis zabezpečení serveru a služeb na něm běžících. V poslední části kapitoly se týká realizace webového rozhraní pomocí skriptovacího jazyka PHP. 2.1 Instalace OS Již je k dispozici připravený server s operačním systémem Linux distribuce Debian. Pro ucelenost této práce popíšu v několika krocích získání instalačního media a několik možností jak nabootovat instalační médium. Po získání obrazu instalačního média z repozitáře ČVUT (viz http://ftp.sh.cvut.cz/mirrors/debian-cd/current/amd64/iso-cd/) zvolíme vhodnou formu instalačního média. V případě, že vlastníme externí / interní CD-ROM mechaniku, vypálíme obraz instalačního média na CD. Další možností je zkopírovat obraz instalačního média na USB flash disk. Také můžeme využít metody instalace OS ze sítě. Tato metoda se nazývá PXE boot [8]. Pro použití metody PXE boot je potřeba mít v sítí server, na který se nakopírují soubory obrazu instalačního média. Mezi tyto soubory patří jádro a obraz systému. Na serveru se nastaví služba TFTP a DHCP. Do konfigurace DHCP serveru se přidají 2 parametry, které při procesu přiřazení IP adresy, společně s IP adresou sdělí klientovi adresu TFTP serveru v síti a název souboru, na který se má klient dotázat. Klient po obdržení IP adresy pošle požadavek na stažení souboru z TFTP serveru. V tomto souboru jsou odkazy na jádro a obraz instalačního systému, které si klient stáhne z TFTP serveru. Výhoda PXE boot metody spočívá v možnosti snadné instalace OS ze sítě LAN. Každý si může vytvořit vlastní instalační menu, které nabídne na výběr k instalaci několik různých operačních systémů nebo jejich verzí. Zvolili jsme obraz instalačního média, který obsahuje pouze základní komponenty OS a ostatní aplikace, které budeme chtít nainstalovat, se stáhnou z repozitáře během procesu 14

instalace (za předpokladu, že máme funkční připojení k internetu). Instalační médium díky tomu zabírá jen pár stovek MB, obvykle do 500 MB. Průvodce instalace OS nás provede základní konfigurací systému, volbou požadovaných aplikací atd. Nová verze instalačního průvodce umožňuje nakonfigurovat softwarový RAID. Volíme softwarový RAID typu 1 tzv. mirroring. Obsah jednoho disku bude shodný s obsahem druhého disku. Disky rozdělíme podle potřeby na jednotlivé oddíly a nakonec oddíly zformátujeme zvoleným formátem systému souborů. Byly zvoleny 3 oddíly. Kořenový oddíl pro operační systém (/), oddíl pro domovské adresáře uživatelů (/home) a oddíl pro data (/data). Dále se nastavil swap oddíl. To je vyhrazené místo na disku, které se dočasně využívá jako odkládací prostor, když je nedostatek paměti RAM. Po rozdělení disků se zvolí aplikace, které se společně se systémem nainstalují. Seznam aplikací potřebných k realizaci: o Webový server: Apache 2.2.16 o Databázový server: MySQL 5.1.49 o Souborový server: Samba 3.5.6 o Skriptovací jazyk: PHP 5.3.3 o Nástroje pro práci s DVB-T: Dvb-apps, Dvbtune, Getstream-poempel, o Další aplikace: Cron, Wget, SSH, Openssl, Ffmpeg, Phpmyadmin, Sendmail. 2.2 Konfigurace systémových služeb na serveru 2.2.1 Webový server Apache. Konfigurační soubory Apache se nacházejí v adresáři /atc/apache2/. Webový front end bude dostupný z URL adresy http://tv.edulinux.info. Administrační rozhraní k databázi bude mít adresu pma.edulinux.info. Nahraná a zkonvertovaná videa se budou ukládat do složky /data/dvbt/, která bude dostupná přes web z adresy http://tv-archiv.edulinux.info. To vše bude zajišťovat jeden webový server. 15

Webový server Apache [3] standardně umožňuje konfiguraci pouze jedné kořenové složky, ve které jsou umístěny zdrojové kódy webových stránek nebo soubory. Takže v případě, že chceme mít na serveru online rozhraní pro ovládání DVB-T tuneru, rozhraní pro administraci databáze a video archiv nahraných videí, budou jednotlivá rozhraní dostupná z adresy edulinux.info/pma nebo edulinux.info/tv-archiv. V zadání požadujeme použití doménových adres třetího řádu, jako je například tv-archiv.edulinux.info. Proto Apache umožňuje konfiguraci takzvaných virtuálních hostů (kontextů). V praxi to pak funguje tak, že do konfigurace Apache přidáme kontext Virtualhost a pro každou aplikaci, webovou stránku atd. vytvoříme v konfiguraci kontext Virtualhost, kterému definujeme název virtuálního kontextu, cesty k souborům s logy, cestu do kořenového adresáře virtuálního kontextu a případně další vlastnosti, jako je například šifrování komunikace mezi klientem a serverem pomocí SSL/TLS vrstvy nebo autorizaci uživatelů při přístupu na server pomocí modulu do Apache [4] (viz kapitola zabezpečení serveru). Příklad konfigurace virtuálního kontextu pro naše online rozhraní na ovládání DVB-T tuneru je uveden v příloze č. 11. Díky virtuálním kontextům, můžeme hostovat na webserveru i webové stránky či aplikace třetích stran. Každý HTTP požadavek, který Apache obdrží, se porovná s názvy virtuálních kontextů a poté se požadavek přiřadí do příslušného kontextu. Pro snadnou administraci databáze MySQL nainstalujeme phpmyadmin. Do konfigurace Apache vložíme další virtuální kontext, kterému nastavíme jméno pma.edulinux.info. Phpmyadmin bude pak dostupný na adrese http://pma.edulinux.info. Protože protokol HTTP posílá hesla zadaná uživatelem v plaintextu (=v čitelné podobě), hrozí odposlechnutí hesla uživatele třetí stranou. Proto přidáme do konfigurace několik direktiv, které zajistí vynucení šifrování komunikace mezi klientem a serverem (viz kapitola 2.4.1). 2.2.2 Skriptovací jazyk PHP Jedná se o nejrozšířenější jazyk pro programování dynamických webových stránek nebo online aplikací [5]. Příkazem aptitude install php5 nainstalujeme skriptovací jazyk PHP verze 5. Protože online rozhraní pracuje s databází MySQL [5] a přihlašuje se na server pod uživatelem, který pak spouští jednotlivé procesy, je 16

zapotřebí doinstalovat podporu PHP pro služby SSH a MYSQL. Po instalaci dodatečných modulů, ověříme, zda se nám dané moduly načítají do konfigurace PHP. Ve složce /etc/php5/conf.d/ by se měli nacházet soubory s příponou ini, ve kterých je definován název modulu. Hlavní konfigurační soubor php.ini se nachází ve složce /etc/php5/apache2/. Pomocí funkce phpinfo() se může vygenerovat HMTL kód, který zobrazí aktuální nastavení PHP včetně výpisu aktuálních hodnot proměnných, informací o načtených modulech a jejich nastaveních. Vytvoříme soubor info.php a v něm zavoláme výše uvedenou funkci, která vygeneruje přehlednou tabulku v HTML kódu. Poté do prohlížeče zadáme adresu http://edulinux.info/info.php a za předpokladu, že je soubor info.php správně umístěn, zobrazí se zmiňovaná tabulka s informacemi o nastavení PHP. 2.2.3 Databázový server MySQL Databázi MySQL nainstalujeme příkazem aptitude install mysql-server Po instalaci spustíme službu a přihlásíme se jako uživatel root do databáze příkazem mysql u root Prvotní přihlášení je bez hesla. Ihned po přihlášení je dobré si změnit heslo pro uživatele root. Pro jednodušší a přehlednější ovládání databáze nainstalujeme na server Phpmyadmin. To je online rozhraní pro administraci databáze MySQL [5]. Rozhraní je dostupné na adrese http://pma.edulinux.info. Po přihlášení do Phpmyadmin založíme novou databázi s názvem dvbt a nového uživatele dvbt, kterému přiřadíme veškerá oprávnění pro databázi dvbt. Dále založíme tři tabulky. Jejich návrh je zobrazen na obrázku č. 2. Obrázek č. 2 - Návrh databázového systému pro webové rozhraní 17

V souboru /etc/mysql/my.cnf se nachází konfigurace databáze. Databázi nastavíme, aby se služba spouštěla pouze lokálně. Tím zamezíme případným nechtěným pokusům o přihlášení k databázi ze sítě. 2.2.4 Nástroje pro práci s DVB v Linuxu Instalace televizního tuneru v Linuxu obnáší získání firmware, který je potřeba nahrát do složky /lib/firmware/. Dále je nutné zavést potřebné ovladače do jádra systému (dvbcore, saa7134). Příkazem lsmod vypíšeme aktuální moduly zavedené do jádra. Příkaz lspci vypíše všechna PCI zařízení. Pokud systém vidí televizní tuner a zároveň máme zavedené příslušné ovladače v jádře systému, měli bychom pomocí příkazu dmesg vidět zprávu o úspěšném nahrání firmwaru pro televizní tuner. K naladění tuneru, zjištění informací o vysílaných multiplexech a jejich kanálech slouží aplikace w-scan. aptitude install dvb-apps w-scan Výše uvedený příkaz nainstaluje aplikace w-scan, tzap, scan. Nyní můžeme zjistit, co se v naší lokalitě vysílá za multiplexy pomocí příkazu w_scan -c cz f t x > multiplexy Parametr c určuje zemi, -f udává typ DVB vysílání a poslední parametr x říká, aby se vygeneroval výstup pro použití nástroje scan. Vytvoří se soubor multiplexy a v něm je seznam českých multiplexů, jejich frekvence a další informace. Takto vypadá obsah souboru multiplexy z 29.11.2011: T 634000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CESKE RADIOKOMUNIKACE T 730000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # SIT 1 CESKA TELEVIZE T 778000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE # Sit 3-Czech Digital Group T 818000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE # Telefonica o2 18

Pomocí nástroje scan zjistíme, jaké kanály se vysílají v příslušných multiplexech. Příkaz scan multiplexy > kanaly.conf vytvoří soubor kanaly.conf, ve kterém bude seznam vysílaných kanálu z jednotlivých multiplexů. Ukázka obsahu souboru kanaly.conf, který byl vygenerován pomocí nástroje scan z druhého multiplexu ze dne 29.11.2011 je: NOVACINEMA:634000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_6 4:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:411:514 NOVA:634000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRAN SMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:111:513 BARRANDOVTV:634000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_ 64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:311:2049 PrimaCOOL:634000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64 :TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501:511:770 Výpis celého souboru je v příloze č. 7. Síla signálu přijímaného kanálu ČT1 se dá zjistit pomocí příkazu: tzap c kanaly.conf CT1 Výstup vypadá takto: using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' tuning to 730000000 Hz video pid 0x0101, audio pid 0x0111 status 00 signal 9c9c snr 4a4a ber 0001fffe unc 00000000 status 1f signal 9d9d snr fbfb ber 00000824 unc ffffffff FE_HAS_LOCK status 1f signal 9d9d snr fdfd ber 00000776 unc 00000000 FE_HAS_LOCK Hodnoty jsou uváděny v hexadecimálních jednotkách. Pokud je tedy hodnota signálu ffff jedná se o maximální sílu signálu. SNR udává odstup signálu od šumu. Ber udává zkreslení signálu. Nástroj tzap slouží k nalezení vhodné pozice pro anténu tuneru. Klíčovou aplikací je Getstream-poempel. Pomocí příkazu wget http://www.mulder.franken.de/getstream-poempel/getstream-poempel- 20060526.tar.gz stáhneme zdrojové kódy aplikace. Následně rozbalíme příkazem tar xzvf./getstream-poempel-20060526.tar.gz Pak se přepneme do adresáře se zdrojovými kódy a zkompilujeme příkazem make 19

Protože je k dispozici pouze jeden TV tuner, rozdělíme si konfiguraci na 3 části. Momentálně jsou v Praze vysílané 4 multiplexy, ale ten čtvrtý je testovací a nebudu ho již nadále zmiňovat. Připravíme si tedy 3 startovací skripty, které spustí Getstream-poempel a naladí ho na jeden ze tří multiplexů. To znamená rozdělit soubor kanaly.conf na 3 části, dle jednotlivých multiplexů. Soubory jsou pojmenované jako acko730mhz.conf, becko634mhz.conf a cecko818mhz.conf. Jednotlivé spouštěcí skripty se od sebe liší v souboru, který definuje kanály příslušných multiplexů a v nastavení streamování, konkrétně v portech, kam se streamují jednotlivé kanály. Konfigurace jednotlivých startovacích skriptů, jsou uvedeny v příloze. 2.3 Konfigurace systému 2.3.1 Aktualizace data a času Nástroj pro aktualizaci data a času v Linuxu je ntp [8]. Příkazem /etc/init.d/ntp start se spustí služba a příkazem ntpq p zjistíme, dle jakých serverů se provádí časová aktualizace. Konfigurace se nachází v /etc/ntp.conf a není třeba ji upravovat. 2.3.2 Konfigurace služeb po startu systému Pro snadné ovládání služeb, které se spouští po startu systému, slouží nástroj chkconfig. V tomto případě požadujeme, aby se po zapnutí nebo restartu serveru všechny potřebné služby spustily automaticky po startu systému. Jedná se především o tyto služby: o ntp -> aktualizace data a času o ssh -> ssh démon o apache2 -> webový server o mysql -> databázový server o cron -> služba pro periodické spouštění úloh 20

2.4 Zabezpečení serveru 2.4.1 Šifrování komunikace mezi klientem a webovým serverem Abychom mohli šifrovat komunikaci mezi klientem a webovým serverem za pomocí SSL/TLS vrstvy, je potřeba nastavit webový server tak, aby naslouchal požadavkům také na portu 443, což je standardně definovaný port pro tento účel. Dále je potřeba vytvořit certifikáty (ověřené /neověřené), které se uloží na server a podle kterých se bude komunikace mezi klientem a serverem šifrovat. Podle certifikační politiky máme několik možností jak získat platný certifikát. Za pomocí nástroje Openssl si můžeme vygenerovat tzv. žádost o podpis certifikátu [8]. Tato žádost se pak odešle certifikační autoritě (třetí strana), která žádost podepíše za finanční poplatek a odešle nám podepsaný certifikát. Seznam platných certifikačních autorit je integrovaný v prohlížeči a ten pak ověřuje, zda je certifikát ověřený platnou certifikační autoritou či nikoliv. Tady chci upozornit na fakt, že důvěryhodná certifikační autorita je taková, kterou někdo nějak určil jako důvěryhodnou. Jediné co nám v této oblasti zajišťuje důvěryhodnost je finanční poplatek za podepsání certifikátu a naše vlastní důvěra v organizaci, která toto provádí. Další možností je vygenerovat si vlastní certifikační autoritu, kterou pak podepíšeme žádost o podpis certifikátu. Takto vytvořená certifikační autorita samozřejmě není na seznamu platných certifikačních autorit. Pokud ji ale importujeme do prohlížeče, bude to mít stejný efekt jako by byla platná. Jedinou nevýhodou je, že ji musíme importovat do každého webového prohlížeče, který chceme používat. Rozdíl mezi důvěryhodným a nedůvěryhodným certifikátem spočívá v zobrazení upozornění o nedůvěryhodnosti webové zdroje při prvotním pokusu o přístup. Poslední možností, je tzv. sám sebou podepsaný certifikát. Takto vygenerovaný certifikát, poslouží dobře pro naše účely, ale webový prohlížeč nám stále bude zobrazovat upozornění o nebezpečnosti webové stránky. Výsledný efekt je stejný jako v případě, že máme vlastní certifikační autoritu, ale neimportovali jsme ji do prohlížeče. Tudíž upozornění o nedůvěryhodnosti webového zdroje se nezbavíme. Pokud použijeme sám sebou podepsaný certifikát, ušetříme si tři kroky (generování certifikační autority, generování žádosti o podpis certifikátu a samotný podpis certifikátu). 21