http://seidl.cs.vsb.cz/wiki2/api.php?action=feedcontributions&user=Sei01&feedformat=atomDavid Seidl - Příspěvky uživatele [cs]2024-03-29T00:50:57ZPříspěvky uživateleMediaWiki 1.34.0http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=277SOS2024-03-21T09:08:23Z<p>Sei01: /* Pátá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a expanze proměnných [https://is.muni.cz/el/1433/jaro2004/PV004/um/1283/20310.html]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home #toto řešení funguje jen do restartu, korektně je nutné editovat /etc/fstab<br />
service quota start #nezapomeňte službu povolit, ať se zavádí po startu<br />
quotacheck /dev/sdb1 <br />
quotaon /dev/sdb1 <br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=276SOS2024-03-21T07:58:46Z<p>Sei01: /* Pátá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a expanze proměnných [https://is.muni.cz/el/1433/jaro2004/PV004/um/1283/20310.html]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home #toto řešení funguje jen do restartu, korektně je nutné editovat /etc/fstab<br />
service quota start #nezapomeňte službu povolit, ať se zavádí po startu<br />
quotacheck /dev/sdb1 #pokud jste udělali vše správně tento krok netřeba<br />
quotaon /dev/sdb1 #pokud jste udělali vše správně tento krok netřeba<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=275SOS2024-03-21T07:58:29Z<p>Sei01: /* Pátá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a expanze proměnných [https://is.muni.cz/el/1433/jaro2004/PV004/um/1283/20310.html]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home # toto řešení funguje jen do restartu, korektně je nutné editovat /etc/fstab<br />
service quota start #nezapomeňte službu povolit, ať se zavádí po startu<br />
quotacheck /dev/sdb1 #pokud jste udělali vše správně tento krok netřeba<br />
quotaon /dev/sdb1 #pokud jste udělali vše správně tento krok netřeba<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=274SOS2024-03-21T07:57:53Z<p>Sei01: /* Pátá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a expanze proměnných [https://is.muni.cz/el/1433/jaro2004/PV004/um/1283/20310.html]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home # toto řešení funguje jen do restartu, korektně je nutné editovat /etc/fstab<br />
service quota start #nezapomeňte službu povolit, ať se zavádí po startu<br />
quotacheck /dev/sdb1 #pokud jste udělali vše správně tento krok netřeba<br />
quotaon /dev/sdb1 #pokud jste udělali vše správně tento krok netřeba<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=273SUS2024-03-13T11:22:04Z<p>Sei01: /* Čtvrtá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* "Poté co vykonám tento předmět budu Linuxový správce" - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
https://sysprog21.github.io/lkmpg/<br />
https://medium.com/dvt-engineering/how-to-write-your-first-linux-kernel-module-cf284408beeb<br />
https://hackernoon.com/how-to-write-your-first-linux-kernel-module<br />
https://tldp.org/LDP/lkmpg/2.6/html/x121.html<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor, je možné že pro novější jádra bude nutné moduly upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
nft list ruleset > /etc/nftables.conf<br />
systemctl nftables enable<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=272SUS2024-03-13T07:03:47Z<p>Sei01: /* Čtvrtá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* "Poté co vykonám tento předmět budu Linuxový správce" - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
https://sysprog21.github.io/lkmpg/<br />
https://medium.com/dvt-engineering/how-to-write-your-first-linux-kernel-module-cf284408beeb<br />
https://hackernoon.com/how-to-write-your-first-linux-kernel-module<br />
https://tldp.org/LDP/lkmpg/2.6/html/x121.html<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor, je možné že pro novější jádra bude nutné moduly upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
nft list ruleset > /etc/nftables.conf<br />
systemctl nftables enable<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS(en)&diff=271SOS(en)2024-03-11T11:59:23Z<p>Sei01: /* Lesson 1 (Linux history, Virtualbox, Debian instalation) */</p>
<hr />
<div>== Literature ==<br />
<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
* http://www.comptechdoc.org<br />
* https://www.debian.org/<br />
<br />
You can find much information on the internet, use Google<br />
<br />
= Lesson 1 (Linux history, Virtualbox, Debian instalation) =<br />
Install Virtualbox (www.virtualbox.org) on your computer or use Virtualbox on computer in class.<br />
<br />
* Working with Virtualbox software [https://www.virtualbox.org/].<br />
# I recommend reading the documentation for this program.<br />
# If you work on a school PC, request an increase in user quota from the trainer.<br />
<br />
* Installation of the Debian distribution in a virtualized environment [http://www.debian.org/] [http://www.debian.cz/].<br />
# In the home directory, download the iso file with the current installer of the distributed Debin version netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] for systems with an amd64 processor (i386 is probably history).<br />
# If you are working on your own laptop, I strongly recommend using DVD iso files [https://www.debian.org/CD/http-ftp/#stable] for installation. In case of high WiFi load, the installation using 'netinstal' is very tedious.<br />
# Create a new virtual machine named Debian, type Linux, version Debian<br />
# A minimum amount of memory is sufficient to install a virtual PC<br />
# Create a virtual hard disk of type VDI or VMDK, Dynamically allocated with a size of 8GB<br />
# Switch to the Global Tools menu and create a new network interface named 'vboxnet0', leave the settings as default.<br />
# Select two network cards for the virtual PC, set the first to NAT status and the second to 'Host only adapter' status (In the Virtualbox menu in File->Preferences->Network->H.only networks, there must be at least one hostonly network )<br />
# Run the created virtualized computer and set the downloaded iso file as a CD<br />
# Run the installation of the Debian distribution in a text environment (the graphical installer tends to be slower)<br />
## For installation, I recommend choosing the English language, you can choose Czech as well, the location ''Czech Republic'' and the keyboard as you like<br />
## To connect to the network, choose the interface included in the NAT network, typically enp0s3<br />
## Choose the name of the computer, enter the domain (I recommend vsb.cz), the password for the root user and create a regular user and also enter the password for him.<br />
## Partition the disk, choose Assisted - use the entire disk, select a virtual disk, put all the files in one area and write the changes to the disk.<br />
## If the installation process asks for another CD, ignore this question if you are installing from 'CD netinstall'. If installing from a complete DVD set, scan the other DVDs as well.<br />
## Set up a package manager for the Czech Republic, from the ftp.cz.debian.org server, without a proxy server.<br />
## You don't have to join the package popularity survey.<br />
## Select the SSH Server program to install and '''deselect''' all other tools.<br />
## Please do not install the GUI. It doesn't belong on the server.<br />
## Choose to install the GRUB bootloader in the main boot entry to the /dev/sda device<br />
## Finish the installation, start your Debian and login as root or regular user<br />
## To 'revive' the second network card, enter in your Debian under the root user: ''dhclient enp0s8'', this interface will get an IP address and you can connect to the virtual PC via SSH protocol, you can find out what IP address your virtual PC got by command ''ip address''<br />
<br />
* Basic commands for working in the command line [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/ kibo/2006/5/command-line]<br />
# Log in to your Debian and try out all the basic command line commands.<br />
# For all other work, it is necessary to be able to handle basic operations in the command line. Above all, creating, deleting, copying and moving files or folders, moving in the directory structure. For further work, it is also necessary to be able to use at least one text editor.<br />
# For beginners, I recommend installing Midnight Commander into the system using the ''apt install mc'' command.<br />
<br />
<br />
Download iso file with network installation of debian distribution of GNU/Linux. (www.debian.org)<br />
<br />
'''Practise'''<br />
<br />
Install debian on your virtual PC identically as in lecture.<br />
<br />
= Lesson 2 (Bash script) =<br />
* Linux and command line. http://linuxcommand.org<br />
* Basic linux command https://maker.pro/education/basic-linux-commands-for-beginners<br />
* http://www.comptechdoc.org/os/linux/usersguide/linux_ugbasics.html<br />
<br />
'''Practise'''<br />
<br />
On your server in the /opt/SOS/villages/ directory create a directory structure where the directory name will match the names of all villages in the Czech Republic <br />
whose name contains "ova" and does not contain the word "Nova". Replace any spaces with underscores. <br />
List of villages in text form can be found here: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
<br />
* BASH programming http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html<br />
* Advanced Bash-Scripting Guide http://tldp.org/LDP/abs/html/<br />
* Bash Scripting Tutorial https://ryanstutorials.net/bash-scripting-tutorial/<br />
<br />
'''Practise'''<br />
<br />
On your server in the /opt/SOS/post/ directory, create a directory structure where the name of the directories will match the names of all the post offices<br />
in the Czech Republic whose phone number contains a 5 digit and does not contain a pocket of numbers 55. Replace any spaces with underscores.<br />
You can find a list of Czech postal text here: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
<br />
>>> "Praha 10";"10000";"Cernokostelecka 2020/20, Praha";"'''274774998'''";"274776503";"B" <<< phone number is bold<br />
<br />
In each folder, create a text file with any name. In the file, list all names of the post offices in the Czech Republic with the same number of letters as the current folder name.<br />
<br />
<br />
= Lesson 3 (init process, systemd) =<br />
* https://www.gnu.org/software/grub/<br />
* https://en.wikipedia.org/wiki/Systemd<br />
* https://www.freedesktop.org/wiki/Software/systemd/<br />
<br />
'''Practise'''<br />
Create a bash script and service for systemd. The script scans all the subdirectories in the /home folder. <br />
If it finds a file whose name ends in * .backup, it moves this file to the /backup directory. Use ''find'' to search.<br />
<br />
'''Practise'''<br />
Create a bash script and service for systemd. The script finds the size of all directories in the / home folder. <br />
If the size of one of the directories is larger than 1kB, a file named "THE_MAX_FILE_SIZE_HAS_BEEN_EXCEEDED" <br />
will be placed in this folder.<br />
<br />
= Lesson 4 (hard disks management, RAID) =<br />
* https://www.techradar.com/how-to/computing/everything-you-need-to-know-about-linux-commands-1321955/3<br />
* https://www.makeuseof.com/tag/mounting-hard-disks-partitions-using-linux-command-line/<br />
* https://raid.wiki.kernel.org/index.php/RAID_setup<br />
* https://en.wikipedia.org/wiki/Standard_RAID_levels<br />
<br />
'''Practise'''<br />
Add another four SATA drives to your virtualized PC. Create a RAID 5 with one spare disk above them.<br />
<br />
Create file system ext4 on raid a mount raid to /home folder. Copy all data. <br />
Modify the / etc / fstab file so that the raid connection to the / home automatically happens after the system starts.<br />
<br />
Try set one disk from raid as demage, and check if raid work correctly.<br />
<br />
= Lesson 5 (user management, file permissions, disk quota) =<br />
* https://linux.die.net/man/8/adduser<br />
* https://www.computerhope.com/unix/adduser.htm<br />
* https://www.digitalocean.com/community/tutorials/how-to-enable-user-and-group-quotas<br />
* https://www.pluralsight.com/blog/it-ops/linux-file-permissions<br />
<br />
Test user file: http://seidl.cs.vsb.cz/download/jmena.txt<br />
<br />
'''Practise'''<br />
Create a script that creates 50 users in your virtualized PC.<br />
Generate and set the primary password for each user.<br />
After the first user logon, please force a new password.<br />
Define disk quotas for all newly created users.<br />
<br />
= Lesson 6 (networking, iptables) =<br />
* https://wiki.debian.org/NetworkConfiguration<br />
* https://www.debian.org/doc/manuals/debian-reference/ch05<br />
* https://wiki.debian.org/iptables<br />
<br />
'''Practise'''<br />
Configure your virtual machine so that the "hostonly" interface receives a static IP address after the PC restarts.<br />
<br />
Create a startup script that initializes the firewall using iptables.<br />
The default policy for INPUT will be DROP.<br />
Disable all traffic to the server (INPUT), enable only tcp port ports 80 and 443.<br />
Only enable port 22 from defined IPs from any interface.<br />
<br />
Configure SNAT for all packets coming out of the enp0s3 interface.<br />
<br />
= Lesson 7 (LAMP, DHCP, NFS) =<br />
Install MySQL in debian<br />
https://dev.mysql.com/downloads/repo/apt/<br />
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/<br />
<br />
https://httpd.apache.org/<br />
https://www.isc.org/downloads/dhcp/<br />
http://nfs.sourceforge.net/nfs-howto/ar01s03.html<br />
<br />
<br />
'''Practise'''<br />
Install on your virtual PC LAMP server and run Mediawiki.<br />
<br />
<br />
== Final Test ==<br />
<!--<br />
A typical final test looks like this:<br />
<br />
* Create clear virtual PC<br />
* install Debian 9 on virtual PC as small installation (insrtall only ssh package during installation proces)<br />
* Add next 3(4) disks and create RAID1(5) with or without SpareDisk<br />
* Format the Raid as EXT4 file system, and mount the RAID as /home directory (correctly edit file /etc/fstab)<br />
* Write script an bash language, create 100 users, with default pasword a add user quota for all new users<br />
* Create group “student” and add 5 users to this group<br />
* Create directory with all permission for group student<br />
* Install LAMP server, and run Mediawiki<br />
* Write script in bash language, set firewall in this script, set default policy in INPUT chain as DROP,<br />
enable connection to the web server only from 255 defined address<br />
* Create service Firewall and start your script with previous item after computer started<br />
--><br />
<br />
Minimum points from Final test is 30. Maximum is 50. <br><br />
You can use all information source (webpage, own notes, books). <br><br />
Please, during the test '''do not use''' any online communication! <br><br />
The test lasts 2 hours.<br><br />
<br><br />
<br />
= Final Test version A =<br />
* ( 5p) Create clear virtual PC and install Debian 11 on virtual PC as small installation (insrtall only ssh package during installation proces)<br />
* (10p) Add next 3 disks and create RAID1 with one SpareDisk<br />
* ( 5p) Format the Raid as EXT4 file system, and mount the RAID as /home directory (correctly edit file /etc/fstab)<br />
* (10p) Write script an bash language, create 100 users, with default pasword a add user quota for all new users<br />
* ( 5p) Create group “share” and add 5 users to this group<br />
* ( 5p) Create directory /share with all permission for group share and set no permission for others<br />
* (10p) Install LAMP server, and run Mediawiki<br />
* (10p) Write script in bash language, set firewall in this script, set default policy in INPUT chain as DROP,<br />
enable connection to the web server only from defined network<br />
* ( 5p) Create service Firewall and start your script with previous item after computer started<br />
<br />
= Final Test version B =<br />
* ( 5p) Create clear virtual PC and install Debian 11 on virtual PC as small installation (insrtall only ssh package during installation proces)<br />
* (10p) Add next 3 disks and create RAID5 without one SpareDisk<br />
* ( 5p) Format the Raid as EXT4 file system, and mount the RAID as /home directory (correctly edit file /etc/fstab)<br />
* (10p) Write script an bash language, create 100 users, with clear pasword a add user quota for all new users<br />
* ( 5p) Create group “student” and add 5 users to this group<br />
* ( 5p) Create directory /student with all permission for group student and set no permission for others<br />
* (10p) Install LAMP server, and run Mediawiki<br />
* (10p) Write script in bash language, set firewall in this script, set default policy in OUTPUT chain as DROP,<br />
enable connection to the web server only from 10 defined address<br />
* ( 5p) Create service Firewall and start your script with previous item after computer started</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=270SUS2024-03-06T10:07:14Z<p>Sei01: /* Třetí přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* "Poté co vykonám tento předmět budu Linuxový správce" - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
https://sysprog21.github.io/lkmpg/<br />
https://medium.com/dvt-engineering/how-to-write-your-first-linux-kernel-module-cf284408beeb<br />
https://hackernoon.com/how-to-write-your-first-linux-kernel-module<br />
https://tldp.org/LDP/lkmpg/2.6/html/x121.html<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor, je možné že pro novější jádra bude nutné moduly upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=269SUS2024-03-06T07:17:58Z<p>Sei01: /* Třetí přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* "Poté co vykonám tento předmět budu Linuxový správce" - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
https://sysprog21.github.io/lkmpg/<br />
https://medium.com/dvt-engineering/how-to-write-your-first-linux-kernel-module-cf284408beeb<br />
https://hackernoon.com/how-to-write-your-first-linux-kernel-module<br />
https://tldp.org/LDP/lkmpg/2.6/html/x121.html<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=268SOS2024-02-29T07:14:45Z<p>Sei01: /* Druhá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a expanze proměnných [https://is.muni.cz/el/1433/jaro2004/PV004/um/1283/20310.html]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=267SUS2024-02-21T07:47:25Z<p>Sei01: /* Literatura */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* "Poté co vykonám tento předmět budu Linuxový správce" - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=266SUS2024-02-21T07:46:47Z<p>Sei01: /* Co od tohoto předmětu očekávat nemůžete */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* "Poté co vykonám tento předmět budu Linuxový správce" - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=265SUS2024-02-21T07:45:54Z<p>Sei01: /* Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=264SOS2024-02-19T09:51:24Z<p>Sei01: /* Literatura */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=MediaWiki:Sidebar&diff=263MediaWiki:Sidebar2023-07-26T14:16:10Z<p>Sei01: </p>
<hr />
<div>* navigation<br />
** kontakt|Kontakt<br />
<br />
* Výuka<br />
** OSY|Operační systémy<br />
** ARP|Architektury počítačú<br />
** APPS|Architektury počítačú a paralelních systémů<br />
** ATP|Automatizace tech. procesů<br />
** AI|Aplikovaná elektronika<br />
** PS(FMMI)|Počítačové systémy(FMMI)<br />
** SOS|Správa operačních systémů<br />
** SOS(en)|Administration of Operating Systems<br />
** ZMD|Zpracování multimediálních dat<br />
** PS(FEI)|Počítačové systémy(FEI)<br />
** SUS|Správa unixových systémů<br />
** SUS(en)|UNIX Systems Management<br />
<br />
* Kurzy<br />
** LPS|Linux/Poštovní Server<br />
<br />
* SEARCH<br />
* TOOLBOX<br />
* LANGUAGES</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=262SOS2023-04-20T11:15:13Z<p>Sei01: /* Osmá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=261SUS2023-04-19T07:06:23Z<p>Sei01: /* Finální test (12.4.2023) */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (xx.xx.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=260SOS2023-04-13T07:32:29Z<p>Sei01: /* Zadání finálního testu (1.6.2020 8:00-10:30) */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
<!--<br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
--><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=259SOS2023-04-13T07:31:35Z<p>Sei01: /* Zadání finálního testu verze B (13.5.2022) */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (x.x.2023)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci, pro identifikaci raidu použijte UUID. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /studenti. V systému vytvořte skupinu studenti a přidejte do ní 10 uživatelů. Složka /home/studenti bude umožňovat přístup jen uživatelům patřícím do skupiny studenti (rwx). Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině studenti a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=258SOS2023-04-13T07:25:53Z<p>Sei01: /* Zadání finálního testu verze A (13.5.2022) */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (x.x.2023) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému, pro identifikaci raidu použijte UUID.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní deset uživatelů. Složka /projekty bude umožňovat přístup (rwx) jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP (INPUT, OUTPUT) na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=257SUS2023-04-12T07:09:08Z<p>Sei01: /* Finální test (13.5.2022) */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (12.4.2023) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=256SOS2023-04-11T07:31:04Z<p>Sei01: /* Pátá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=255SUS2023-04-06T09:47:28Z<p>Sei01: /* Sedmá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro ty kteří neumí svůj hostovský operační systém přesvědčit, aby používal jeho DNS, můžu doporučit prohlížeče jako Lynx neno Carnobyl https://github.com/fathyb/carbonyl .<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=254SUS2023-04-05T06:53:01Z<p>Sei01: /* Osmá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt install apache2 dovecot-imapd libapache2-mod-php mariadb-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=253SUS2023-03-30T09:37:17Z<p>Sei01: /* Sedmá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Zamezení změny resolv.conf v debianu<br />
https://wiki.debian.org/resolv.conf<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=252SOS2023-03-29T08:11:27Z<p>Sei01: /* Pátá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=251SUS2023-03-23T10:51:55Z<p>Sei01: /* Šestá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je někdy nutné upravit konfiguraci:<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=250SUS2023-03-22T09:27:54Z<p>Sei01: /* Šestá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu váš_login.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=249SUS2023-03-20T12:22:02Z<p>Sei01: /* Čtvrtá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home -> cp<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv<br />
sys<br />
tmp -> t-bit<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je nutné do konfigurací dopsat:<br />
dnssec-enable yes;<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu vaše_příjmení.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=248SUS2023-03-14T18:58:58Z<p>Sei01: /* Čtvrtá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv -> cp<br />
sys<br />
tmp<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je nutné do konfigurací dopsat:<br />
dnssec-enable yes;<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu vaše_příjmení.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=247SUS2023-03-14T18:54:06Z<p>Sei01: /* Čtvrtá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres (doporučeno)<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables (zastaralé)<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv -> cp<br />
sys<br />
tmp<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je nutné do konfigurací dopsat:<br />
dnssec-enable yes;<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu vaše_příjmení.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=246SUS2023-03-14T18:26:54Z<p>Sei01: /* Čtvrtá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Povolení přenosu paketů mezi interface<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
Starý způsob s iptables<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv -> cp<br />
sys<br />
tmp<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je nutné do konfigurací dopsat:<br />
dnssec-enable yes;<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu vaše_příjmení.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=245SUS2023-03-14T18:25:14Z<p>Sei01: /* Čtvrtá přednáška */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres<br />
nft add table nat<br />
nft add chain nat postrouting { type nat hook postrouting priority 100 \; }<br />
nft add rule nat postrouting masquerade<br />
<br />
Starý způsob s iptables<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv -> cp<br />
sys<br />
tmp<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je nutné do konfigurací dopsat:<br />
dnssec-enable yes;<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu vaše_příjmení.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=244SOS2023-02-24T10:55:10Z<p>Sei01: /* Sedmá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2022/23 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=243SOS2023-02-24T10:25:55Z<p>Sei01: /* Druhá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=242SOS2023-02-24T10:23:24Z<p>Sei01: /* Druhá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=241SOS2023-02-24T10:17:29Z<p>Sei01: /* Osmá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=240SOS2023-02-24T10:17:16Z<p>Sei01: /* Osmá přednáška */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=239SOS2023-02-24T10:15:57Z<p>Sei01: /* Témata jednotlivých přednášek a navazujících cvičení */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška. V přednáškách nemusí být všechny informace zcela aktuální!</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=238SOS2023-02-24T10:12:58Z<p>Sei01: /* Kombinované studium */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 4 a všechny budou bodované. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=237SOS2022-06-14T08:25:53Z<p>Sei01: </p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=236SOS2022-06-13T09:36:55Z<p>Sei01: </p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=235SOS2022-06-13T09:36:45Z<p>Sei01: </p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|250px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=234SOS2022-06-13T09:36:33Z<p>Sei01: </p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png|50px]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=233SOS2022-06-13T09:35:53Z<p>Sei01: </p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
[[Soubor:Oa_licencecc_cc_by_rectangle.png]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=Soubor:Oa_licencecc_cc_by_rectangle.png&diff=232Soubor:Oa licencecc cc by rectangle.png2022-06-13T09:34:55Z<p>Sei01: </p>
<hr />
<div></div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=231SOS2022-06-13T06:50:06Z<p>Sei01: </p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
Toto dílo podléhá licenci [https://creativecommons.org/licenses/by/4.0/deed.cs Creative Commons Uveďte původ 4.0 Mezinárodní License].<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=230SOS2022-05-13T06:58:39Z<p>Sei01: /* Zadání finálního testu verze B (29.4.2022) */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (13.5.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SOS&diff=229SOS2022-05-13T06:58:18Z<p>Sei01: /* Zadání finálního testu verze A (29.4.2022) */</p>
<hr />
<div>[[Soubor:Msmt.jpg]]<br />
<br />
<br />
'''Změny týkající se tohoto předmětu v dalších letech'''<br><br />
Na základě podnětů studentů, kteří tento předmět vykonali v prvním roce jeho existence, jsme se rozhodli udělat několik změn, kterýma by jsme chtěli na tyto připomínky reagovat.<br><br><br />
''Co by jsme chtěli změnit:''<br><br />
* Ve cvičeních týkající se programování v jazyce BASH budou lépe voleny vstupní soubory tak, aby nedocházelo k problémům s češtinou.<br />
* Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.<br />
<!--* Pro testování firewallu bude k dispozici připravený virtuální počítač s minimalistickou distribucí GNU/Linux.--><br />
* Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.<br />
* Ke každému tématu budou k dispozici na webových stránkách klíčová slova, jejíž význam bude probíraný na přednášce.<br />
* Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.<br />
* Od počátku bude virtuální stroj obsahovat dvě síťové karty.<br />
* Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.<br />
<br><br />
''Co osvědčilo:''<br><br />
* Přednášky zůstanou více interaktivní s praktickými ukázkami.<br />
* Zachová se bodování všech cvičení s mírným přebytkem bodů.<br />
* Obtížnost úloh ve cvičení se zdá být dostačující.<br />
* Finální test bude opět obtížnější, nicméně je to nutné proto, aby se oddělili výborní, dobří a průměrní studenti. Pro nováčky to bude obtížné, ale zajisté splnitelné. Obtížnost bude odpovídat znalostem studenta vysoké školy.<br />
<br />
<br />
<big>'''Předmět Správa operačních systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, komplexní znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa operačních systémů by vás měl seznámit s principy, které se používají v operačních systémech Unixového typu. Seznámíte se velmi podrobně s tím jak systém funguje. Jak probíhá spouštění systému, zavádění jednotlivých služeb, jaké jsou zvyklosti při konfiguraci a správě služeb. Jaké nástroje se využívají pro řešení problémů a mnoho dalších. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* <u><b>Programovat se bude!!! A hodně.</b></u> - Správa Linuxu je o programování především. Bez toho aby jste uměli programovat ve skriptovacím jazyce Bash nebo jiném jazyce se při správě prostě neobejdete. Jako příklad si představte, že máte server kde je 10tis uživatelů a vy máte zjistit kdo se blíží k dosažení diskové quoty a poslat mu email. Dá se to samozřejmě udělat skriptem na pár řádků nebo to můžete dělat tři měsíce ručně :-).<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
''English book''<br />
* http://seidl.cs.vsb.cz/download/linuxfun.pdf<br />
* http://www.tldp.org<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý. <br />
<br />
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --><br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. <br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">ZywdNYbmE94</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce<br />
cat, cut, grep, sort, tr, echo<br />
#!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ .....<br />
if...then...else , test, []<br />
<br />
Programování ve skriptovacím jazyku BASH; proměnné, cykly [https://www.cyberciti.biz/faq/bash-for-loop/], podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; <br />
Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a regulární výrazy [http://www.regularnivyrazy.info/] [http://cs.wikipedia.org/wiki/Regul%C3%A1rn%C3%AD_v%C3%BDraz] [http://www.root.cz/clanky/regularni-vyrazy-1/]<br />
<br />
Cvičení:<br />
* Práce v příkazovém řádku; operace přesměrování.<br />
* Interpret příkazů, vícenásobné přesměrování, cykly.<br />
<br />
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte stejnou adresářovou strukturu jako je na serveru linedu.vsb.cz v adresáři /home/fei (pouze vytvořit adresáře bez uživatelských práv). Vytvořte pouze ty adresáře které obsahují číslice "00".<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem tří sousedů nad a tří pod aktuální složkou<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí v ČR jejíž název obsahuje "ova" a neobsahuje slovo "Nova". Případné mezery nahraďte podtržítky. Seznam obcí v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/seznam-obci-cr.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí které začínají na stejné jméno.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech obcí nebo jejich částí v ČR, jejichž směrovací číslo obsahuje číslici 5. Případné mezery nahraďte podtržítky. Seznam obcí s PSČ v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/obce_psc.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí ze stejného okresu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž telefonní číslo obsahuje číslici 5 a neobsahuje dvojici číslic 55. Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí deset nad a deset pod.<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Ve vašem serveru v adresáři /opt/SOS vytvořte adresářovou strukturu kde název adresářů bude odpovídat názvům všech pošt v ČR jejíž adresa obsahuje znak "/" a neobsahuje znak "s" nebo "S". Případné mezery nahraďte podtržítky. Seznam pošt v ČR v textové podobě najdete zde: http://seidl.cs.vsb.cz/download/posty.csv.txt<br />
b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.<br />
<!-- <br />
V každém adresáři vytvořit soubor se jménem obcí jejichž název začíná stejným slovem.<br />
--><br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">tlUNt4JWXXA</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
* Většinu informací jsem čerpal z následujících stránek:<br />
https://www.root.cz/serialy/nebojte-se-systemd/ <br><br />
http://www.abclinuxu.cz/serialy/systemd <br><br />
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php <br><br />
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot <br><br />
'''Systemd'''<br />
man systemd.unit<br />
<br />
Příklad jednotky typu služba<br />
'''[Unit]'''<br />
Description=TLP system startup/shutdown<br />
Wants=bluetooth.service NetworkManager.service<br />
After=multi-user.target bluetooth.service NetworkManager.service<br />
Before=shutdown.target<br />
<br />
'''[Service]'''<br />
Type=oneshot<br />
ExecStart=/usr/bin/tlp init start<br />
ExecStop=/usr/bin/tlp init stop<br />
<br />
'''[Install]'''<br />
WantedBy=multi-user.target<br />
<br />
''Závislosti v části [Unit]''<br />
<br />
*'''Requires'''<br />
Při aktivaci se aktivují všechny jednotky specifikované v tomto seznamu. V případě že selže aktivace některé jednotky ze seznamu nebo nějaká selže za běhu, <br />
bude deaktivována i tato. Tento parametr nedefinuje pořadí spouštění jednotek, spuštěny budou všechny najednou, pokud to neurčí jiný parametr.<br />
*'''Wants'''<br />
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v<br />
*'''After,Before'''<br />
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost,<br />
jen určuje pořadí spouštění. Více viz příklad.<br />
*'''Conflicts'''<br />
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak. <br />
<br />
''Sekce [Service]''<br />
* "-" v parametru znamená že nenulový návratový kod neznamená chybu<br />
* je možné zadat více příkazů oddělených středníkem<br />
* je nutné zadat plnou cestu k příkazu<br />
* není možné používat | > 2> >> &<br />
<br />
<br />
*'''ExecStart'''<br />
Toto je příkaz, který bude spuštěn při startu jednotky. Zde může být maximálně jeden příkaz, který bude považován za hlavní proces. Výjimky viz níže. *'''ExecStartPre'''<br />
Pomocné příkazy spouštěné po spuštění/před spuštěním hlavního příkazu, může jich být více. V případě, že kterýkoliv z těchto příkazů selže a není uvozený pomlčkou, spouštění je okamžitě zastaveno a hlavní proces nemusí být vůbec spuštěn.<br />
*'''ExecStartPost'''<br />
Analogie ExecStartPre. ExecStartPost je spouštěn až ve chvíli, kdy je služba považována za nastartovanou, co přesně to znamená, si povíme níže.<br />
*'''ExecReload'''<br />
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)<br />
*'''ExecStop'''<br />
Slouží pro zastavení jednotky, po proběhnutí jsou zbývající procesy ukončeny signálem SIGKILL. Pokud tedy nepotřebujeme nějaké speciální ukončování, není nutné tuto položku specifikovat.<br />
*'''ExecStopPost'''<br />
Příkaz spuštěný vždy po skončení běhu služby, i v případě neočekávaného ukončení služby. Vhodné pro vyčištění pomocných souborů či na půl spuštěné inicializace. <br />
<br />
<br />
Typ služeb<br />
<br />
*'''simple'''<br />
Výchozí typ. Očekává se, že hlavní proces je příkaz v ExecStart. Také je nutné, aby sockety (pokud nějaké má) byly již spuštěny, protože systemd okamžitě začne startovat další jednotky. Jednotka je považovaná za nastartovanou ve chvíli, kdy byl spuštěn hlavní proces.<br />
*'''dbus'''<br />
Podobné typu simple. Navíc ale musí být specifikováno pole BusName, což je adresa, přes kterou komunikují ostatní procesy s touto službou. Jednotka je považována za nastartovaou, poté co je zaregistrováno poslouchání na dané adrese. Tedy až v tuto chvíli se začnou spouštět jednotky na této závislé a příkaz v ExecStartPost. Také je automaticky nastavena závislost na dbus.<br />
*'''oneshot'''<br />
Podobné typu simple. Jen je služba považována za nastartovanou ve chvíli, kdy proces spuštěný ExecStart skončil. Toto je jediný typ, který může obsahovat více příkazů v ExecStart.<br />
*'''notify'''<br />
Opět podobný typu simple. Očekává se, že pošle signál přes tzv. systemd system notifikací (viz man sd_notify), až bude nastartovaná.<br />
*'''forking'''<br />
Systemd očekává chování standradních UNIX-ových démonů. Tedy spuštěný proces zavolá fork() a ukončí se. Hlavní proces je pak syn tohoto procesu. Jednotka je nastartovaná ve chvíli, kdy je ukončen proces puštěný ExecStart.<br />
*'''idle'''<br />
Tato jednotka je spuštěna až ve chvíli, kdy jsou všechny ostatní transakce vyřízeny. V podstatě se používá pouze pro potlačení výstupu služeb na výstup přihlašovací konsole. <br />
<br />
''Sekce [Install]''<br />
WantedBy=default.target - jednotka bude spuštěna po startu<br />
<br />
'''Příkazy'''<br />
systemctl <br />
systemctl help dbus<br />
systemctl is-active dbus<br />
systemctl is-enable dbus <br />
systemctl is-enabled dbus<br />
systemctl is-failed dbus<br />
systemctl status dbus<br />
systemctl list-dependencies dbus<br />
systemctl list-dependencies --all<br />
systemctl daemon-reload<br />
<br />
/usr/lib/systemd/system ;jednotky instalované z repozitářů<br />
/usr/lib/systemd/user ;uživatelské jednotky<br />
/etc/systemd/system<br />
/etc/systemd/user<br />
<br />
<!--<br />
'''SystemV'''<br />
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d<br />
inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d<br />
<br />
#!/bin/sh<br />
### BEGIN INIT INFO<br />
# Provides: apache2<br />
# Default-Start: 2 3 4 5<br />
# Default-Stop: 0 1 6<br />
### END INIT INFO<br />
<br />
. /lib/lsb/init-functions<br />
case $1 in<br />
start)<br />
;;<br />
stop) <br />
;;<br />
esac<br />
--><br />
<br />
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč <br />
Lilo [http://cs.wikipedia.org/wiki/LILO];<br />
Grub [http://cs.wikipedia.org/wiki/GRUB] [http://www.gnu.org/software/grub/] a <br />
Grub2 [http://www.root.cz/clanky/poznejte-boot-loader-grub2/] [http://wiki.ubuntu.cz/grub2] [http://www.abclinuxu.cz/zpravicky/tutorial-o-grub2], <br />
využití zaváděcího RAMdisku [http://trac.assembla.com/mkinitramfs];<br />
inicializace systému, spuštění procesu INIT [http://www.root.cz/man/5/inittab/];<br />
spouštění služeb [http://www.linuxexpres.cz/praxe/jak-startuje-system] [http://www.abclinuxu.cz/faq/skripty/jak-spustit-skript-pri-startu-systemu-distribuce-debian] [http://www.petrjanousek.net/blog/index.php?id=65];<br />
Cyklické spouštění příkazů s skriptů [http://cs.wikipedia.org/wiki/Cron] [http://cs.wikibooks.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_spou%C5%A1t%C4%9Bn%C3%AD_%C3%BAloh]<br />
<br />
Cvičení:<br />
* Programování skriptů a využívání regulárních výrazů (cykly for a while), příkaz sed a využívání regulárních výrazy<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM.<br />
Například nah_cislo=`echo $RANDOM`.<br />
<br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce náhodný počet souborů v rozmezí 1000 až 2000 s náhodným <br />
číselným jménem xxx.txt kde xxx je náhodné číslo.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle délky jména<br />
Rozdělit do složek podle dělitelnosti jména délky<br />
Rozdělit do složek podle délky jména v intervalu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle velikosti souboru<br />
Rozdělit do složek podle dělitelnosti velikosti souboru<br />
Rozdělit do složek podle velikosti souboru v intervalu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1. <br />
S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.).<br />
Pro definici možných přípon použijte pole, případně funkci. <br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do složek podle přípon<br />
Zatarovat pouze ty soubory se jménem větším než xxx<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodným počtem řádků.<br />
Kde MAX je celé číslo větší než 1.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Rozdělit do a více složek tří složek<br />
Zatarovat pouze ty soubory se sudým počtem řádků<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX, kde MAX je celé číslo větší než 1,<br />
s náhodným počtem čísel ( čísla v definovaném rozmezí min až max).<br />
Bez použití odřádkování.<br />
b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.<br />
<!-- <br />
Co n-té slovo ENTER<br />
--><br />
<br />
=== Čtvrtá přednáška === <br />
<youtube width="200" height="180">2bgkPu-eMYQ</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install system-config-lvm mdadm<br />
<br />
/dev/sda-z<br />
fdisk -l, cfdisk, mkfs.ext4<br />
/etc/fstab<br />
<br />
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1<br />
watch "cat /proc/mdstat"<br />
<br />
pvcreate /dev/sdb1<br />
vgcreate test /dev/sdb1<br />
lvcreate -L 50M -n padesat test<br />
<br />
vgextend test /dev/sdc1<br />
lvextend -L 150M /dev/test/padesat<br />
resizefs /dev/test/padesat 150M<br />
<br />
Filesystémy používané v OS Linux [http://www.linuxexpres.cz/praxe/linuxove-souborove-systemy];<br />
Základní vlastnosti [http://cs.wikipedia.org/wiki/Souborov%C3%BD_syst%C3%A9m] [http://www.linuxsoft.cz/article.php?id_article=772]<br />
Tvorba filesystému a práce s oblasti disků [http://www.root.cz/man/8/mkfs/ mkfs] [http://www.posmura.cz/index.php?option=com_content&view=article&id=100:pikaz-fdisk&catid.. fdisk] [http://tldp.org/HOWTO/Partition/fdisk_partitioning.html fdisk] [http://www.debian.cz/~masik/czinst/releases/slink/i386/cfdisk.txt cfdisk] [http://www.root.cz/clanky/jak-rozdelit-disk-spravne-s-gnu-parted/ parted];<br />
Správa diskových oddílů v GNU/Debian [http://cs.wikipedia.org/wiki/Fstab /etc/fstab];<br />
<!-- Diskové quoty [http://www.linuxexpres.cz/praxe/jak-ovladnout-kvoty] --><br />
LVM [http://www.root.cz/clanky/uvod-do-lvm/#ic=articles-related&icc=lvm-prakticke-ukazky-17056]<br />
<br />
Cvičení:<br />
* Tvorba vlastního startovacího skriptu<br />
* Cyklické spouštění skriptů<br />
<br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů <br />
větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů <br />
větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE".<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup<br />
přesune tento soubor do adresáře /backup<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude<br />
ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte startovací skript. Skript projde všechny složky v adresáři /home. Do každé složky přidá soubor info, který bude obsahovat<br />
informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
to samé v cronu<br />
--><br />
<br />
=== Pátá přednáška ===<br />
<youtube width="200" height="180">FggHmPPSL3k</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
'''Klíčová slova:'''<br />
apt-get install openssl quota<br />
<br />
adduser, deluser<br />
useradd, userdel<br />
<br />
useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta<br />
<br />
/etc/passwd<br />
/etc/group<br />
/etc/skell<br />
/etc/shadow<br />
<br />
mount -o remount,usrquota,grpquota /home<br />
service quota start<br />
quotacheck /dev/sdb1<br />
quotaon /dev/sdb1<br />
edquota franta<br />
<br />
chmod<br />
chown<br />
chgrp<br />
<br />
S - Bit<br />
T - Bit<br />
<br />
<br />
Správa uživatelských účtů, vytvoření a mazání uživatelů [http://www.linuxsoft.cz/article.php?id_article=248] [http://www.linuxvbashi.cz/ucty-a-prava];<br />
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava];<br />
PAM moduly [http://www.abclinuxu.cz/clanky/bezpecnost/autentizacia-v-linuxe-pomocou-pam] [http://d3s.mff.cuni.cz/~ceres/sch/osy/text/ch07s01s01.html], diskové quoty [https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/]<br />
<br />
Cvičení:<br />
* Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Do svého virtualizovaného PC přidejte další SATA disk. Tento disk naformátujte souborovým systémem ext4 a připojte ho jako adresář /home.<br />
Přičemž zachovejte veškerý obsah původního adresáře /home.<br />
Do svého virtualizovaného PC přidejte dalších pět SATA disků. Vytvořte nad nima SW RAID6 s jedním spare diskem.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">LpgYKDjmRcg</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
'''Klíčová slova:'''<br />
/etc/network/*<br />
<br />
cat /etc/network/interfaces<br />
auto enp0s3<br />
iface enp0s3 inet dhcp<br />
<br />
allow-hotplug enp0s3<br />
iface enp0s3 inet static<br />
address 192.168.0.1<br />
netmask 255.255.255.0<br />
broacast 192.168.0.1<br />
<br />
ip route add default via 192.168.0.254<br />
ip route del default via 192.168.0.254<br />
<br />
route add default gw 192.168.0.1 //přidá defaultní gateway<br />
route del default gw 192.168.0.1 //odebere defaultní gateway<br />
<br />
/etc/resolv.conf //konfigurace DNS, základem je řádek ''nameserver IP_ADRESA''<br />
<br />
Výborný článek se základy zde [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
iptabels -t filter, iptabels -t nat, iptabels -t mangle<br />
iptables -P INPUT ACCEPT //defaultní politika<br />
iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0<br />
iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1<br />
iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100<br />
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT //pustí pakety procházející systémem s cílovými IP 192.168.0.0/24<br />
iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80<br />
iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80<br />
<br />
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0<br />
echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů<br />
<br />
iptables-save > /etc/iptables<br />
iptables-restore /etc/iptables<br />
<br />
<br />
Linux jako aktivní síťový prvek, routing [http://www.linuxsoft.cz/article.php?id_article=302],<br />
NAT, Firewall [http://www.root.cz/serialy/vse-o-iptables/] [http://www.abclinuxu.cz/blog/Debian_Lenny/2009/10/zakladni-konfigurace-linux-firewallu-pomoci-iptables]<br />
<!--<br />
<br> '''Live distribuce vhodné pro testování nastavení Firewallu'''<br />
<br><br />
#TTY Linux (60MB) [http://ttylinux.net/Download/ttylinux-pc_i686-16.1.iso.gz]<br />
#Knoppix (700MB) [ftp://ftp.plusline.de/pub/Knoppix/knoppix-cd/KNOPPIX_V7.2.0CD-2013-06-16-EN.iso]<br />
#Ubuntu (800MB) [http://releases.ubuntu.com/saucy/ubuntu-13.10-desktop-i386.iso]<br />
<br />
Další předinstalovaná virtuální PC naleznete na http://virtualboxes.org/images/ .<br />
--><br />
<br />
Cvičení:<br />
* Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [http://seidl.cs.vsb.cz/download/jmena.txt] )<br />
<!-- tvoření uživatelských účtů, přístupová práva, práva skupin --><br />
<br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Nad RAIDem vytvořit LVM.<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Po prvním přihlášení uživatele vynuťte zadání nového hesla. Zřiďte skupinu, do které budou patřit všichni uživatelé.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
Přidat spare disk.<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt.<br />
Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli nastavte prázdné prvotní heslo.<br />
Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript, který ve vašem virtualizovaném PC vytvoří 50 uživatelů. Každému uživateli vygenerujte a nastavte prvotní heslo.<br />
Uživatel bude při přihlášení upozorněn, že si heslo musím do 1 dne změnit. Všem nově vytvořeným uživatelům definujte diskové quoty.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Sedmá přednáška ===<br />
<b>V akademickém roce 2021/22 tuto přednášku vynecháme.</b><br><br />
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409];<br />
Balíčkovací systémy [http://www.linuxexpres.cz/praxe/linuxove-balickovaci-systemy-1] [http://www.root.cz/serialy/balickovaci-system-distribuce-debian-gnulinux/] ; Tvorba vlastního instalačního balíčku<br />
<br />
'''Systém APT'''<br><br />
nízká úroveň:<br />
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku<br />
<br />
střední úroveň:<br />
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku<br />
dpkg -r geg <-- odinstalace<br />
dpkg -l 'gettext*' <-- info z bal systému<br />
dpkg -L gftp-text <-- jaké soubory balík obsahuje<br />
dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje<br />
<br />
vyšší úroveň<br />
apt-get install <br />
apt-get remove<br />
apt-get update && apt-get upgrade<br />
apt-get source mc<br />
apt-cache stats<br />
apt-cache show mc<br />
apt-cache search mcedit<br />
apt-cache depends mc<br />
<br />
Vytvoření balíčku<br />
<br />
tmp<br />
|-- DEBIAN<br />
| |-- control<br />
| |-- postinst<br />
| |-- preinst<br />
| `-- md5sums<br />
`-- etc<br />
|--neco.conf<br />
.<br />
.<br />
.<br />
<br />
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums<br />
<br />
#cat control<br />
<br />
Package: nazev_baliku<br />
Version: 0.01<br />
Section: sekce - především oficiální balíky<br />
Priority: optional (důležitost, nechte vždy optional)<br />
Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |)<br />
Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze)<br />
Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all)<br />
Installed-Size: 2717 (velikost složky /usr/ v kB)<br />
Maintainer: vase_jmeno <vase.emailova@adresa.cz><br />
Description: Krátký popis v AJ<br />
Dlouhý popis v AJ<br />
.<br />
Druhý odstavec dlouhého popisu, obvykle vaše URL<br />
<br />
dpkg-deb -b slozka nazev_0.1_i386.deb<br />
<br />
<br />
<br />
<br />
<br />
<br />
Cvičení:<br />
* Programování sktriptu pro natavení firewallu a rourování<br />
<!--<br />
* Pro některá zadání je vhodné nainstalovat "lehký" http server, například ''apt-get install lighttpd''<br />
Zprovoznění https na lighttpd<br />
cd /etc/lighttpd/certs<br />
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes<br />
chmod 400 lighttpd.pem<br />
Do souboru /etc/lighttpd/lighttpd.conf přidejte tyto řádky:<br />
$SERVER["socket"] == ":443" {<br />
ssl.engine = "enable" <br />
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" <br />
}<br />
Restartujte službu httpd<br />
--><br />
Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro INPUT bude ACCEPT.<br />
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443.<br />
Port 22 povolte jen z definovaných IP.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude DROP.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT bude ACCEPT.<br />
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443.<br />
Port 22 povolte jen na definované IP adresy.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém vašeho virtuálního PC tak, aby rozhraní "Síť pouze z hostem" obdrželo po restartu PC statickou IP adresu. <br />
Vytvořte startovací skript, který inicializuje firewall pomocí iptables.<br />
Defaultní politika pro OUTPUT a INPUT bude DROP.<br />
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443.<br />
Odchozí provoz povolte pouze na portu 22.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">672DyTiauWc</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.<br />
<br />
Základní síťové služby; <br />
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache],<br />
DHCP server [http://www.root.cz/clanky/linux-jako-dhcp-server/] ,<br />
NFS [http://www.linuxexpres.cz/praxe/sdileni-pomoci-nfs] [http://nfs.sourceforge.net/nfs-howto/]<br />
a jiné;<br />
Nástroje pro kontrolu spuštěných síťových služeb [http://cs.wikipedia.org/wiki/Netstat netstat] [http://cs.wikipedia.org/wiki/Tcpdump tcpdump] [http://nmap.org nmap] [http://www.ex-parrot.com/pdw/iftop/ iftop] [http://www.linuxsoft.cz/article.php?id_article=278]<br />
<br />
Přidání uživatele do databáze MariaDB<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Přidání databáze MySQL do Debianu<br />
* Stáhnout následující balíček:<br />
https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb<br />
* Doinstalovat lsb_release<br />
apt install lsb-release<br />
* nainstalovat balíček<br />
dpkg -i mysql-apt-config_0.8.12-1_all.deb<br />
* Aktualizovat balíky z internetu<br />
apt update<br />
* Nainstalovat MySQL<br />
apt install mysql-server<br />
* Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf<br />
[mysqld]<br />
default_authentication_plugin=mysql_native_password <br />
<br />
<br />
Cvičení:<br />
* Vytvoření firewalu zaváděného ze startovacího skriptu<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
Úkoly: <br />
<br />
'''Zadání 1'''<br />
a - Vytvořte skript v jazyce Bash, který vypíše všechny uživatele v systému a uvede hodnoty využití jejich diskových quot.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku quota. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program.<br />
U každého uživatele poté skript vypíše počet spuštěných programů.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ''ps''. <br />
Tento balíček použijte k instalaci skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 3'''<br />
a - Vytvořte skript v jazyce Bash, který bude se cyklicky spouštět a bude do souboru vždy do jednoho řádku vypisovat čas a<br />
zatížení systému zjištěné ze souboru /proc/loadavg.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 4'''<br />
a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí <br />
programu ''tar''.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 5'''<br />
a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ''./skript parametr1 parametr2''<br />
Prvním parametrem můžou být následující slova: ''http'', ''https'', ''ssh'', ''telnet''. <br />
Druhým parametrem může být ''accept'' nebo ''deny''. <br />
Skript při zadání ''./skript http deny'' zakáže pomocí ''iptables'' přístup na PC protokolem http.<br />
Ostatní parametry se zachovají obdobně.<br />
Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislosti balíčku. Tento balíček použijte k instalaci<br />
skriptu do systému.<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
<br />
<!--<br />
Všechna zadání testujte pomocí druhého virtualizovaného PC<br />
<br />
'''Zadání 1'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Zakažte propouštění všech paketů procházejících z eth1 na eth0 s jinou cílovou ip než z rozsahu 158.196.0.0/16<br />
<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
'''Zadání 2'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http a https server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 3'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 4'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na ssh server pouze z rozsahu IP adres vaší vnitřní sítě<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
<br />
'''Zadání 5'''<br />
a - Nakonfigurujte systém tak, aby na rozhraní eth1 serveru nastavil statickou IP adresu a eth0 dynamickou IP adresu<br />
Vytvořte standardní startovací skript, který bude při startu systému v runlevelu 2, zavádět pravidla firewallu<br />
Při zastavení firewallu se vyprázdní všechny tabulky a nastaví se defaultní politika na ACCEPT<br />
Nainstalujte webový server podporující protokoly http a https<br />
Nastavte pravidla firewallu tak, aby byl prováděn překlad zdrojových IP adres u paketů vycházejících z eth0 <br />
Povolte přístup na http server z rozhraní eth1 pouze protokolem https<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<br />
--><br />
<br />
=== Devátá přednáška === <br />
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti<br />
Chcete si vytvořit jednoduchý řídící systém založený na GNU/Linux, Raspberry-PI je výborná volba. Přesto, že je to opravdu malinký počítač, který nijak neoplývá výkonem dovede přehrát film v HD rozlišení. Jeho obrovská přednost je GPIO port, obsahující rozhraní I2C, SPI, RS232 a 8 VV portů. Díky těmto portům lze připojit velké čidel, teploty, tlaku, náklonu a mnoho dalších. http://www.raspberrypi.org/<br />
<br />
Cvičení:<br />
* Instalace a konfigurace LAMP serveru<br />
* Instalace DHCP serveru<br />
* Instalace NFS serveru<br />
<br />
Na školním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br><br />
<br />
'''Zadání 1'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC <br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 2'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 3'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 4'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
'''Zadání 5'''<br />
a - Na serveru nainstalujte DHCP server, který bude přiřazovat IP adresy, masku sítě, defaultní router a DNS všem počítačům připojeným na rozhraní enp0s8<br />
Na serveru nainstalujte webový server Apache a nastavte provoz na http s https<br />
Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC<br />
b - Modifikace zadání dle pokynů vyučujícího.<br />
<!-- <br />
<br />
--><br />
<br />
=== Desátá přednáška ===<br />
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy<br />
<br />
Cvičení:<br />
* Závěrečný test<br />
<br><br />
<br />
== Zadání finálního testu verze A (13.5.2022) ==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou staticky. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3bodů'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další tři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID který bude odolný proti výpadku dvou disků. Na RAID '''vytvořte jeden oddíl''' a naformátujte ho souborovým systémem ext4. Tento souborový systém připojte jako složku /home. Nakonfigurujte systém tak, aby připojení diskového pole proběhlo vždy po startu systému.<br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá definovaný počet uživatelských účtů ve tvaru uz001 až uz###, kde ### bude číslo zadané jako parametr skriptu. Zařiďte, aby číslo nemohlo přesáhnout 3 cifry. Interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít prázdné heslo a budou nuceni si ho po prvním přihlášení změnit. Každému uživateli se při vytvoření účtu vytvoří v domovské složce soubor READ_ME.txt . Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V kořenovém adresáři vytvořte složku /projekty. V systému vytvořte skupinu projekty a přidejte do ní 10 uživatelů. Složka /projekty bude umožňovat přístup jen uživatelům patřícím do skupiny projekty. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině projekty a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br><br />
'''3body'''<br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.<br />
* Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.<br />
* Povolte přístup na http a https ze všech rozhraní a IP adres.<br />
* Povolte provoz ICMP na všech rozhraních.<br />
* Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat). <br />
Funkčnost firewallu demonstrujte.<br><br />
* Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
8) Nainstalujte server DHCP a nakonfigurujte ho tak, aby v síti Host only network dynamicky přiřazoval 100 ipv4 adres. Spolu s IP adresou předávejte klientským počítačům také všechna potřebná nastavení pro jejich práci v síti.<br />
<br><br />
'''8bodů'''<br><br />
<br />
<br />
9) Nainstalujte server NFS a vyexportujte složku /var/www/html pro všechny počítače v síti „Host-only network“. Správnou funkci demonstrujte.<br><br />
'''5bodů'''<br><br />
<br />
<br />
<!--<br />
== COVID 19 (2020) ==<br />
Vzhledem k nemožnosti pořádat přednášky na VŠB, vytvořil jsem dvě přednášky na youtube. Prosím omluvte kvalitu, která není nejlepší. Přednášky jsem dělal bez střihu, takříkajíc na první dobrou. Takže tam najdete chyby, přeřeky a překlepy. Inu jako v mé klasické přednášce. Pokud by jste mělo nějaké dotazy, prosím napište mi email. Témata která nebyla probírána ve škole nebo na videopřednášce nebudou součástí finálního testu.<br />
<br />
* Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk<br />
* Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y<br />
<br />
Pro zájemce uvádím i přednášky z SUS, jen pro skalní příznivce, nic z toho nebude ve finálním testu.<br />
<br />
* Systém DNS https://youtu.be/KaACbGBGmVQ<br />
* LAMP server https://youtu.be/rdRy1V8esl0<br />
* Poštovní server https://youtu.be/BLmeg8O7gGw<br />
<br />
<br />
Finální test bude probíhat ve virtualizačním prostředí VmWare, provozovaném na serverech https://ki-vi-ucebna1.vsb.cz/ a https://ki-vi-ucebna2.vsb.cz/ . SSH přístup bude možný skrze servery ki-vi-ucebna1-gw.vsb.cz, ki-vi-ucebna2-gw.vsb.cz . <br />
<br />
Servery jsou pro testování k dispozici od 23.4. V tomto prostředí nemůžete měnit nastavení virtualizovaného PC a ani nemůžete vytvářet nová PC. Stále můžete jako vzor využívat virtualizované počítače na svých soukromých počítačích. Pokud máte virtualizované počítače na počitačích ve škole, je možné si tyto počítače stáhnout prostřednictvím scp a serveru linedu.vsb.cz.<br />
<br />
'''Finální test 2020'''<br />
Testovací kolo finálního testu probělo bez větších technických problémů. Děkuji všem kteří se zúčasnili. Ostrý finální test proběhne v úterý '''5.května 2020 od 8h'''.<br />
Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu.<br />
Test bude ukončen 5.května v 10:30. V tuto dobu všichni své virtuály '''vypnou''' a zapnou je až při kontrole!!!<br />
Během testu budeme k dispozici na hangouts pro případné řešení technických problémů.<br />
<br />
Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. <br />
Vždy vám budeme volat z hangout na váš školní hangouts účet. Vy nám nasdílíte plochu a budeme se bavit o vaši práci. Teprve až na náš pokyn spustíte váš virtuál, '''né''' dříve.<br />
Prosím aby jste v daný den od 10:30 byli k dispozici na hangouts. Budeme se snažit vám dát s předstihem vědět zhruba kdy se na vás dostane.<br />
<br />
'''Opravný termín finálního testu 2020'''<br />
Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první.<br />
<br />
<br />
Zkoušející David Seidl<br />
'''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 <br />
'''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077<br />
'''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142<br />
<br />
Zkoušející Jan Kožusznik<br />
'''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042<br />
'''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095<br />
'''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037<br />
<br />
--><br />
<br />
<!--<br />
<br />
== Zadání vzorové verze finálního testu (30.4.2020 8-11hod) ==<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''3body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home/raid po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou ucet00 až ucet99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP a SSL. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ki-vi-ucebna1-gw či ki-vi-ucebna2-gw. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''3body'''<br><br><br />
<br />
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br><br />
'''12bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po své spuštění vytvoří adresář /backup pokud ještě neexistuje v tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility 'tar' zálohovány jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohama starších 5 dnů.<br><br />
'''8bodů'''<br><br><br />
<br />
--><br />
<br />
== Zadání finálního testu verze B (29.4.2022)==<br />
1) Ve virtualizačním prostředí Virtualbox vytvořte PC s jedním pevným diskem a dvěma síťovými kartami. Jednu kartu připojte do sítě NAT a druhou do sítě "Host-only network". Na toto virtualizované PC nainstalujte aktuální OS Linux/Debian v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.).<br><br />
'''3body'''<br><br />
<br />
2) Nakonfigurujte systém tak, aby síťová karta na rozhraní NAT dostávala IP adresu prostřednictvím protokolu DHCP (z Virtualboxu) a druhá karta bude mít IP adresu nastavenou pevně. Pro konfiguraci obou rozhraní využijte standardní metody používané v distribuci Debian.<br><br />
'''3body'''<br><br />
<br />
3) Do virtualizovaného PC přidejte další čtyři pevné disky o kapacitě alespoň 200MB. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku. Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složka /home po startu systému. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br />
<br />
4) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 100 uživatelských účtů. Loginy budou user00 až user99, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Jako parametr skriptu bude možné zadat defaultní heslo pro vytvářené uživatele. Skript otestuje zdali je heslo delší než 5 znaků. V případě, že nebude zadaný parametr, bude heslo prázdné. Všem uživatelů definujte diskové kvóty.<br><br />
'''12bodů'''<br><br />
<br />
5) V adresáři /home vytvořte složku /vsichni. V systému vytvořte skupinu vsichni a přidejte do ní 10 uživatelů. Složka /home/vsichni bude umožňovat přístup jen uživatelům patřícím do skupiny vsichni. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině vsichni a nikoli skupině uživatele, který ho vytvořil. <br><br />
'''5bodů'''<br><br />
<br />
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br><br />
'''3body'''<br><br />
<br />
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br><br />
'''8bodů'''<br><br />
<br />
8) Na server nainstalujte DHCP server a nakonfigurujte ho tak, aby dynamicky přiřazoval 50 IP adres do sítě Host only network. Spolu s IP adresou budou počítačům zasílána také veškerá potřebná síťová konfigurace. <br><br />
'''8bodů'''<br><br />
<br />
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.<br />
* Povolte přístup na http a https z libovolné IP adresy. <br />
* Povolte provoz ICMP na všech rozhraních. <br />
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br><br />
'''12bodů'''<br><br />
<br />
<br />
<!--<br />
Ve virtualizačním prostředí Virtualbox vytvořte nový pořítač s jednou síťovou kartou a jedním diskem.<br />
1) Na disk nainstalujte distribuci OS Linux Debian, pro kořenový adresář použijte celý disk a souborový systém ext4<br />
2) Do systému přidejte další disk a namountujte ho jako adresář /home a použijte souborový systém ext3<br />
3) Vytvořte 10tis uživatelů a jejich domovských adresářů, jejich jména budou generována ve tvaru pppccc kde ppp je malé písmeno od aaa až po zzz a ppp je číslo od 000 do 999.<br />
5) Uživatelům nastavte rozumnou quotu<br />
6) Na serveru spusťte LAMP server, tak aby každému uživateli umožnil prezentovat své webové stránky ze svého domovského adresáře ve složce ~/public_html<br />
7) Vytvořte skript, který bude pravidelně každý den kontrolovat zaplnění jednotlivých složek v domovském adresáři a v případě že se bude blížit překročené quoty <br />
zapíše tomuto uživateli do jeho domovského adresáře soubor s názvem: "Blizi_se_prekroceni_quoty".<br />
--><br />
<br />
== Zadání finálního testu (1.6.2020 8:00-10:30) ==<br />
<br />
Zadání bude zveřejněno v době konání testu.<br />
<br />
Vaše virtualizované počítače budou 1.6 v 7:30 vypnuty a uvedeny do defaultního stavu!!! Všechna data se tímto ztratí.<br />
Počítače zapněte v 8:00 a pracujte na nich dle zadání níže. V 10:30 budou všechny počítače administrativně vypnuty. Doporučuji aby jste si je vypnuli sami již dříve.<br />
Po skončení testu Vám budu postupně volat přes google hangout na váš školní google účet. Obhájíte svou práci a dostanete zápočet (v ideálním případě).<br />
Problémy řešte se mnou přes hangout.<br />
<br />
''' Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace.'''<br />
''' Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.''' <br />
<br />
''' !!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!''' <br />
<br />
<br />
1) Přihlaste se do virtualizačního prostředí VmWare a ve svém virtualizovaném počítači nainstalujte OS Linux/Debian 10 v minimalistické verzi, pouze s podporou protokolu SSH (bez XWindows, apod.). Instalaci proveďte na disk sda. Instalační CD je k počítači již připojeno<br><br />
'''2body'''<br><br><br />
<br />
2) Ve virtualizovaném PC využijte disky sdb, sdc a sdd. Z těchto disků vytvořte v systému RAID, který bude odolný proti výpadku jednoho disku a přičemž '''ne'''bude použit disk jako "horká" záloha. . Na tomto RAID poli '''vytvořte jeden oddíl''' a ten naformátujte souborovým systémem ext4. Nakonfigurujte systém tak, aby se oddíl vytvořený na RAID poli připojoval jako složku /home/ po startu systémy. Využijte standardní systémovou konfiguraci. <br><br />
'''10bodů'''<br><br><br />
<br />
3) Vytvořte spustitelný skript v jazyce bash, který do systému přidá 50 uživatelských účtů. Loginy budou usr00 až usr49, interpret pro všechny uživatele bude /bin/bash a uživatelům se vytvoří domovský adresář ve složce /home. Uživatelé budou mít jednotné defaultní heslo a po prvním přihlášení bude systém vyžadovat změnu hesla. Všem uživatelů definujte diskové kvóty.<br><br />
'''10bodů'''<br><br><br />
<br />
4) V adresáři /home vytvořte složku ''/home/sdileni''. V systému vytvořte skupinu '''sdileni''' a přidejte do ní všechny uživatele se sudým číslem v loginu. Složka ''/home/sdileni'' bude umožňovat plný přístup jen uživatelům patřícím do skupiny sdilenu. Pokud některý z uživatelů vytvoří v této složce soubor, tento bude automaticky patřit skupině '''sdileni''' a nikoli domovské skupině uživatele, který ho vytvořil. <br><br />
'''4bodů'''<br><br><br />
<br />
5) Nainstalujte webový server Apache2 s podporou PHP, SSL a userdir. Pro testování můžete použít konzolový webový prohlížeč 'lynx' spuštěný se serveru ''linedu.vsb.cz'', ''ki-vi-ucebna1-gw.vsb.cz'' nebo ''ki-vi-ucebna2-gw.vsb.cz''. Zkušenější můžou použít utilitu simpleproxy na vyšších portech.<br><br />
'''2body'''<br><br><br />
<br />
6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br><br />
'''6bodů'''<br><br><br />
<br />
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP. <br />
* Povolte do systému přístup pro službu SSH pouze z definovaných IP adres (vyberte několik adres kde to bude možné otestovat).<br />
* Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16). <br />
* Povolte provoz ICMP na všech rozhraních. <br />
Funkčnost firewallu demonstrujte.<br />
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)<br><br />
'''10bodů'''<br><br><br />
<br />
8) Vytvořte skript v jazyce bash. Tento skript se bude automaticky spouštět každý všední den o půlnoci a o víkendu ve dvě ráno. <br />
Skript po svém spuštění vytvoří adresář /backup (pokud ještě neexistuje). V tomto adresáři vytvoří soubor jehož název bude odpovídat datu. Do tohoto souboru bude postupně pomocí utility ''tar'' zálohovat jednotlivé složky v adresáři /home. Pokud bude v zálohované složce soubor s názvem no_backup, tak se tato složka zálohovat nebude. Skript zajistí mazání složek se zálohami starších 5 dnů.<br><br />
'''6bodů'''<br><br><br />
<br />
== Změna jazyka v konzole ==<br />
<br />
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:<br />
<br />
''dpkg-reconfigure locales'' # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno.<br />
''dpkg-reconfigure console-setup'' # vybrat UTF8, Latin2, font a jeho velikost<br />
''dpkg-reconfigure console-data'' # vybrat klavesnici<br />
<br />
Pokud nemáte k dispozici ''console-data'' tak je nainstalujete pomocí ''apt-get install console-data''<br />
<br />
== O humor není u tučňáka nouze ==<br />
<br />
Jelikož by jste již měli být znalý většiny Linuxových fíglů. Zde příkládám pár veselostí, kterýma se Linuxáci baví.<br><br />
Pokud vám bude nějaký program chybět, tak ho nainstalujte ''apt-get install '''chybejici-program''' '' , samozřejmě pod rootem nebo se sudo na začátku (platí pro distribuci Debian a jeho klony).<br />
<br />
'''Mašinka'''<br />
# sl<br />
<br />
'''Zakřičte si v příkazovém řádku'''<br />
# figlet Linux<br />
<br />
'''Zakřičte si barevně příkazovém řádku'''<br />
# toilet -f mono12 -F metal Linux<br />
<br />
'''Kráva říká'''<br />
# cowsay Linux<br />
<br />
# for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done<br />
<br />
'''Moudra'''<br />
# fortune<br />
<br />
# fortune | cowsay<br />
<br />
'''Popovídejte si'''<br />
# aptitude moo<br />
# aptitude -v moo<br />
# aptitude -vv moo<br />
# aptitude -vvv moo<br />
# ...<br />
# ...<br />
<br />
'''Koukněte na konec helpu'''<br />
# aptitude -h<br />
# apt-get -h<br />
<br />
'''Pozadu'''<br />
# echo Ahoj | rev<br />
<br />
'''Matrix'''<br />
# cmatrix<br />
<br />
'''Obrázky'''<br />
# jp2a *.jpg<br />
<br />
'''A co film'''<br />
# vlc -V aa film.*<br />
<br />
'''Kočička'''<br />
# oneko<br />
<br />
'''Hoří...'''<br />
# apt-get install libaa-bin<br />
# aafire</div>Sei01http://seidl.cs.vsb.cz/wiki2/index.php?title=SUS&diff=228SUS2022-05-13T06:57:44Z<p>Sei01: /* Finální test (13.4.2022) */</p>
<hr />
<div><big>'''Předmět správa unixových systémů'''</big><br><br><br />
== Podmínky absolvování předmětu ==<br />
=== Denní studium ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů ze cvičení a minimálně 30 bodů z finálního testu.<br />
* Všechna cvičení budou bodovaná. Ve cvičeních se budou řešit úkoly týkající se správy operačního systému Linux.<br />
* Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.<br />
<br />
* Poslední cvičení bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému a vybraných služeb. Každý student dostane specifický úkol týkající se pokročilé správy služeb OS. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
* Cvičení nebudou nahrazována a proto zcela záměrně je celkový možný bodový zisk větší než 100 bodů, pokud se tedy na některé ze cvičení nedostavíte nebo z organizačních důvodů cvičení odpadne, stále máte možnost získat plný počet bodů.<br />
<br />
=== Kombinované studium (v době COVID19 jsou témata i přednášky pro kombinovanou formu identické jako pro prezenční studenty) ===<br />
* Předmět je hodnocen klasifikovaným zápočtem. Pro jeho získání je zapotřebí získat minimálně 30 bodů z jednotlivých tutoriálů a minimálně 30 bodů z finálního testu.<br />
* Tutoriálů bude celkem 5 (rok 2018/2019 pouze 4) a všechny budou bodovaná. V tutoriálech se budou řešit úkoly týkající se správy operačního systému Linux. Za každý tutoriál je možné získat až 15 bodů.<br />
<br />
* Poslední tutoriál bude probíhat pouze závěrečný test. Tento test bude hodnocen maximálně 50 body. V závěrečném testu bude muset student prokázat, pokročilé znalosti správy operačního systému. Každý student dostane specifický úkol týkající se nasazení OS Linux jako serveru. Od studenta se očekává že provede instalaci serveru a korektní instalaci a konfiguraci požadovaných služeb.<br />
<br />
== Co můžete od tohoto předmětu očekávat ==<br />
Předmět Správa unixových systémů by vás měl seznámit s principy, které se používají v operačních systémech unixového typu. Předmět bude zaměřen především na správu služeb, které jsou běžně pod unixovými systémy provozovány (email, www, DNS). Část výuky bude taky věnována procesu překladu jádra operačního systému a vývoji ovladačů pro GNU/Linux. Přesto že výuka bude probíhat na distribuci Debian, principy jsou identické pro všechny distribuce OS Linux, ale také pro většinu systémů unixového typu.<br />
<br />
== Co od tohoto předmětu očekávat nemůžete ==<br />
* Poté co vykonám tento předmět budu Linuxový správce - chyba, cesta k dobrému Linuxovému správci je přes mnoho probdělých nocí nad konfiguracema, kompilacema a jinýma komplikacema. Dobrého správce z vás udělá jen dobrá zkušenost a tu ve škole nezískáte.<br />
* Pro to aby jste se stali kvalitní správci, je nutné ovládat mnohé diagnostické nástroje a taky je dobré umět programovat v jazyce Bash. Ovládání těchto nástrojů je pro dobrého správce nutnost.<br />
<br />
== Literatura ==<br />
Obrovská výhoda Linuxového světa je to že většina věcí je velmi dobře a podrobně zdokumentována. Webových stránek i tištěné literatury je opravdu velké množství. Všechna témata, která budeme probírat jsou již velmi dobře popsána na webu. U každé přednášky se budu snažit uvést několik odkazů na webové stránky věnované probírané tématice.<br><br><br />
''Doporučené weby:''<br />
* http://www.root.cz<br />
* http://wikipedia.org<br />
* http://linuxsoft.cz<br />
* http://www.linuxexpres.cz<br />
<br />
''Doporučené knihy:''<br />
* Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1<br />
* SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.<br />
* JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338<br />
* JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842<br />
<br />
== Co budete potřebovat na cvičení ==<br />
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili [https://www.virtualbox.org/ Virtualbox] a to z mnoha důvodů. Především je to volně šiřitelný a multiplatformální program, který může bez omezení používat každý.<br />
<br />
== Témata jednotlivých přednášek a navazujících cvičení ==<br />
<b>V době distanční výuky byla většina přednášek zpracována i na youtube. Přednášky budou k dispozici vždy poté co proběhne "živá" přednáška.</b><br />
<hr><br />
<!-- <youtube width="200" height="180">vUdyoWP6BZw</youtube> --><br />
<br />
=== První přednáška ===<br />
<youtube width="200" height="180">w3lsMLrR7js</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br />
<br />
Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; <br />
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; <br />
Distribude OS Linux [http://cs.wikipedia.org/wiki/Seznam_distribuc%C3%AD_Linuxu] [http://www.linuxexpres.cz/distro/srovnani-linuxovych-distribuci]; <br />
Příkazový řádek; možnosti příkazového řádku, základní příkazy [http://www.root.cz/clanky/prikazovy-radek-pritel-nejvernejsi/];<br />
význam složek v kořenovém adresáři [http://cs.wikibooks.org/wiki/Linux:Adres%C3%A1%C5%99ov%C3%A1_struktura]<br />
<br />
Cvičení:<br />
* Práce se software Virtualbox [https://www.virtualbox.org/].<br />
# Doporučuji prostudovat dokumentaci k tomuto programu.<br />
# Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.<br />
<br />
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/].<br />
# Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal <br><br>[https://www.debian.org/distrib/netinst https://www.debian.org/distrib/netinst] pro systémy s procesorem amd64 (i386 je už asi historie).<br />
# Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [https://www.debian.org/CD/http-ftp/#stable]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.<br />
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian<br />
# Pro instalaci virtuálního PC postačí i minimum paměti<br />
# Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB<br />
# Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní. <br />
# Pro virtuální PC navolte dvě síťové karty, první uveďte do stavu NAT a druhou do stavu 'Host only adapter' (V menu Virtualboxu v položce File->Preferences->Network->H.only networks, musí existovat alespoň jedna síť typu hostonly)<br />
# Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor <br />
# Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)<br />
## Pro instalaci doporučuji zvolit anglický jazyk, dle libosti je možné volit i češtinu, umístění '''Česká republika''' a klávesnice dle libosti<br />
## Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3<br />
## Zvolte jméno počítače, zadejte doménu (doporučuji vsb.cz), heslo pro uživatele root a vytvořte běžného uživatele a taktéž mu zadejte heslo.<br />
## Rozdělení disku zvolte Asistované - použít celý disk, vyberte virtuální disk, zařaďte všechny soubory do jedné oblasti a zapište změny na disk.<br />
## Pokud se instalační proces zeptá na další CD tak tento dotaz ignorujte, pokud instalaci provádíte z 'CD netinstall'. Instalujele-li z kompletní sady DVD, proskenujte i další DVD.<br />
## Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.<br />
## K průzkumu popularity balíků se připojovat nemusíte.<br />
## Vyberte pro instalaci program SSH Server a '''zrušte''' výběr všech ostatních nástrojů.<br />
## Prosím neinstalujte grafické rozhraní. To na server nepatří.<br />
## Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda<br />
## Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel<br />
## Pro 'oživení' druhé síťové karty zadejte ve vašem Debianu pod uživatelem root: ''dhclient enp0s8'', tím získá toto rozhraní IP adresu a vy se na virtuální PC můžete připojit prostřednictvím protokolu SSH, jakou IP adresu vaše virtuální PC získalo zjistíte příkazem ''ip address''<br />
<br />
* Základní příkazy pro práci v příkazové řádku [http://wiki.ubuntu.cz/z%C3%A1kladn%C3%AD_p%C5%99%C3%ADkazy] [http://www.abclinuxu.cz/blog/kibo/2006/5/prikazovy-radek]<br />
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.<br />
# Pro veškerou další práci je nutné zvládnou základní operace v příkazové řádce. Především vytvoření, smazání, kopírování a přesouvání souborů či složek, pohyb v adresářové struktuře. Pro další práci je také nutné umět používat alespoň jeden textový editor.<br />
# Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''.<br />
<br><br />
* Je pro vás také k dispozici zip soubor se zkomprimovanou složkou Debian s čistou instalací Debianu. Heslo pro roota je root a uživatel je sei01 a heslo je sei01. Zip soubor je k dispozici zde: [http://www2.cs.vsb.cz/seidl/iso/Debian.tar.gz Debian-VirtualBox]<br />
<br><br />
<br />
=== Druhá přednáška ===<br />
<youtube width="200" height="180">12wjktQp_48</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ty pazvuky, které se občas vyskytly. Příště se pokusím to vyřešit.<br />
<br />
<br />
Jádro operačního systému Linux. Historie a současnost [https://cs.wikipedia.org/wiki/Linux_%28j%C3%A1dro%29].<br />
Kompilace jádra [http://www.abclinuxu.cz/clanky/navody/cesta-do-hlubin-kompilace-jadra-1].<br />
<br />
Cvičení:<br><br />
<br />
Do vašeho virtuálního PC stáhněte aktuální verzi jádra operačního systému linux. Jádro rozbalte do standardního adresáře a pro jeho kompilaci použijte následující config soubor [http://seidl.cs.vsb.cz/iso/config_4.15.7] (Za pomoc s opravou chyby v configu moc děkuji p.Svobodovi). Jako řetězec v položce ''local version'' použijte '''svůj login'''.<br />
<br />
Je nutné doinstalovat tyto nástroje ''make gcc libncurses-dev bc xz-utils libelf-dev libssl-dev bison flex''<br />
<br />
Po kompilaci jádra, instalaci firmware a modulů, zkontrolujte zdali je kernel korektně nakopírovaný do složky ''/boot'' a zdali se vytvořila i složka s moduly. Taktéž zkontrolujte korektní úpravy provedené v zavaděči GRUB. Pokud proběhlo vše v pořádku restartujte PC a po restartu ověřte, že systém naběhl s novým kernelem.<br />
<br />
=== Třetí přednáška ===<br />
<youtube width="200" height="180">-gPDfINgPJU</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tvorba ovladačů jádra. Tématika ovladačů jádra Linuxu je velmi rozsáhlá a vývoj v této oblasti je velmi dynamický a ke změnám může docházet celkem často. Základní informační kanál je samozřejmě dokumentace ke konkrétnímu kernelu. Obecné informace lze získat i z mnohých internetových zdrojů. Upozorňuji že informace jsou mnohdy zastaralé, takže je nutné sledovat i kdy byl daný článek vydaný. Základní principy jsou platné stále, ale rady ve fóru z roku 2008 už opravdu nebudou aktuální :-). <br />
<br><br><br />
Odkazy na internetu:<br />
http://www.security-portal.cz/search/node/Tvorba%20modul%C5%AF<br />
<br />
https://www.kernel.org/doc/Documentation/<br />
https://www.kernel.org/doc/Documentation/kbuild/modules.txt<br />
<br />
Odkazy na vzorové moduly funkční s jádrem 4.2.1. (pozor pro novější jádra je nutné program upravit)<br />
http://seidl.cs.vsb.cz/iso/module_sample.tar<br />
<br><br />
Cvičení:<br><br />
Pro vámi zkompilované jádro vytvořte modul či moduly na kterých budete demonstrovat práci s rutinama čtení a zápisu do souboru ve složkách proc a dev. Prosím použijte nějaký netriviální příklad.<br />
<br />
=== Čtvrtá přednáška ===<br />
<youtube width="200" height="180">E8LiotxM9oM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
ISC-DHCPD server, netboot. Tématem přednášky bude DHCP server isc-dhcpd-server, který je nejčastěji používaný ve větších sítích. Další téma bude vytvoření sítě s bootováním bezdiskových PC pouze ze sítě. Zapotřebí bude také využití serveru NFS jako síťového diskového úložiště.<br />
<br />
Konfigurace statické IP v /etc/network/interfaces<br />
auto enp0s8<br />
iface enp0s8 inet static<br />
address 192.168.57.2<br />
netmask 255.255.255.0<br />
broadcast 192.168.57.255<br />
<br />
Instalace ISC-DHCPD<br />
apt install isc-dhcp-server<br />
<br />
/etc/dhcp/dhcpd.conf<br />
<br />
/etc/default/isc-dhcp-server<br />
<br />
Zprovoznění překladu síťových adres<br />
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE<br />
echo 1 > /proc/sys/net/ipv4/ip_forward<br />
<br />
TFTP server<br />
apt install tftpd-hpa<br />
<br />
/etc/default/tftpd-hpa<br />
<br />
Konfigurace TFTP pro netboot<br />
subnet 192.168.57.0 netmask 255.255.255.0 {<br />
range 192.168.57.100 192.168.57.200;<br />
option broadcast-address 192.168.57.255;<br />
option routers 192.168.57.2;<br />
'''next-server 192.168.57.2;'''<br />
'''filename "pxelinux.0";'''<br />
}<br />
<br />
Image pro instalaci Debianu<br />
http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz<br />
http://ftp.cz.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz<br />
<br />
Instalace NFS<br />
apt install nfs-kernel-server<br />
<br />
Vytvoření adresářové struktury pro vzdálená PC a export prostřednictvím NFS<br />
bin -> cp<br />
boot -> cp<br />
dev<br />
etc -> cp<br />
home<br />
lib -> cp<br />
lib64 -> cp<br />
media<br />
mnt<br />
opt -> cp<br />
proc<br />
root -> cp<br />
run<br />
sbin -> cp<br />
srv -> cp<br />
sys<br />
tmp<br />
usr -> cp<br />
var -> cp<br />
<br />
Export FS v /etc/exports<br />
/tftpboot/Debian/root 192.168.57.0/24(rw,async,no_root_squash) <br />
/home 192.168.57.0/24(rw,async)<br />
<br />
Bootmenu v souboru pxelinux.cfg/default<br />
DEFAULT vesamenu.c32<br />
PROMPT 0<br />
<br />
MENU TITLE Boot Menu<br />
<br />
LABEL Debian - NetBoot<br />
KERNEL /Debian/vmlinuz-3.16.0-4-686-pae<br />
APPEND initrd=/Debian/initrd.img-3.16.0-4-686-pae root=/dev/nfs nfsroot=192.168.57.2:/tftpboot/Debian/root ip=dhcp rw<br />
<br />
Struktura adresářů v /tftpboot<br />
Debian<br />
ldlinux.c32<br />
libcom32.c32<br />
libutil.c32<br />
pxelinux.cfg<br />
pxelinux.0<br />
vesamenu.c32<br />
<br />
Cvičení:<br />
1) Na svém virtuálním serveru zprovozněte službu DHCPD a tftp, tak aby server umožňoval bootování bezdiskových stanic. Na nakonfigurujte serveru překlad síťových adres "SNAT", tak aby server poskytoval bezdiskovým stanicím přístup na internet. Pro bezdiskové stanice bude server exportovat kořenový adresář a adresář home.<br />
2) Modifikace zadání dle pokynů cvičícího.<br />
<br />
=== Pátá přednáška ===<br />
Vzhledem k náročnosti probíraného tématu v předchozí přednášce bude pátá přednáška a cvičení věnována pouze řešením problémů z předchozí přednášky.<br />
<br />
=== Šestá přednáška ===<br />
<youtube width="200" height="180">5gc9mqd1T2Y</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
Omlouvám se za ten nepříjemný hudební podkres videa. Jedná se o video z minulého roku. Nicméně je stále aktuální.<br><br />
<br />
Systém DNS. Prinární a sekundární autoritaticní DNS server bind9.<br />
<br />
Pro základní instalaci budeme potřebovat pouze:<br />
apt install bind9<br />
apt install dnsutils udns-utils<br />
<br />
<br />
Věnujte pozornost složce /etc/bind<br><br />
<br />
Definice zónového souboru<br />
$TTL 3h ;doba expirace všech záznamů<br />
@ IN SOA ns1.example.cz. spravce.example.cz. ( ; autoritativní DNS server + email správce bez @<br />
2018040302 ; seriové číslo, často ve formě data<br />
4h ; jak často si stahuje data sekundární server<br />
2h ; za jak dlouho se má sek.server pokusit stáhnout data při neúspěchu<br />
2w ; kdy platnost dat v sek.serveru vyprší<br />
1h ) ; jak dlouho si mají data pamatovat cache servery<br />
;<br />
@ IN NS ns1.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
@ IN NS ns2.example.cz. ; autoritativní servery pro doménu, musí mít i A záznamy<br />
<br />
<br />
example.cz. IN MX 10 smtp.example.cz. ; primární emailový server<br />
example.cz. IN MX 20 smtp2.example.cz. ; sekundární emailový server<br />
example.cz. IN A 192.168.56.101 ; primární záznamy<br />
ns1 IN A 192.168.56.101<br />
ns2 IN A 192.168.56.102<br />
smtp IN A 192.168.56.101<br />
smtp2 IN A 192.168.56.102<br />
www IN CNAME example.cz.<br />
wiki IN CNAME example.cz.<br />
test IN CNAME example.cz.<br />
subdomena1 IN A 192.168.56.101<br />
subdomena2 IN CNAME example.cz.<br />
www1 IN A 192.168.56.101<br />
www2 IN A 192.168.56.101<br />
<br />
_http._tcp IN SRV 1 2 80 www1 ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2<br />
<br />
_http._tcp.www IN SRV 1 2 80 www1.example.cz. ; _http sluzba, _tcp protokol, 1 priorita, 2 váha<br />
IN SRV 5 3 80 www2.example.cz.<br />
<br />
*._tcp IN SRV 0 0 0 . ;ostatní služby nejsou podporovány<br />
<br />
<br />
Do named.conf.local je nutné uvést odkaz na zónový soubor<br />
zone "example.cz" {<br />
type master; ;jedná se o primární server pro danou doménu<br />
file "/etc/bind/db.example.cz";<br />
};<br />
<br />
Pro kontrolu je možné použít nástroj dig:<br />
dig example.cz @127.0.0.1<br />
dig _http._tcp.example.cz SRV @127.0.0.1<br />
<br />
Přidání sekundárního serveru:<br />
* primární server<br />
acl "example.cz" {<br />
192.168.56.101;<br />
};<br />
<br />
zone "example.cz" {<br />
type master;<br />
file "/etc/bind/db.example.cz";<br />
allow-transfer { "example.cz"; };<br />
};<br />
<br />
* sekundární server<br />
masters example.cz-master { 192.168.56.101; };<br />
<br />
zone example.cz {<br />
type slave;<br />
file "/var/cache/bind/db.example.cz";<br />
masters { example.cz-master; };<br />
};<br />
<br />
<br />
Reverzní záznamy:<br />
* soubor /etc/bind/db.192.168.56<br />
$TTL 86400<br />
56.168.192.in-addr.arpa. IN SOA ns1.example.cz admin.example.cz. (<br />
20120820 ; serial<br />
4h ; slave refresh<br />
2h ; slave retry interval<br />
2w ; slave data expiration<br />
1h ) ; maximum caching time when lookups fail<br />
;<br />
56.168.192.in-addr.arpa. IN NS ns1.example.cz.<br />
56.168.192.in-addr.arpa. IN NS ns2.example.cz. <br />
<br />
10.56.168.192.in-addr.arpa. IN PTR webserver.example.org.<br />
1.56.168.192.in-addr.arpa. IN PTR router.example.org.<br />
<br />
V named.conf.local je nutné uvést odkaz na tento soubor<br />
zone "56.168.192.in-addr.arpa" {<br />
type master;<br />
file "/etc/bind/db.192.168.56";<br />
};<br />
<br />
Pro správnou funkci DNS forwarding je nutné do konfigurací dopsat:<br />
dnssec-enable yes;<br />
dnssec-validation yes;<br />
<br />
<br />
<br />
Cvičení: Na dvou virtuálních PC zprovozněte primární s sekundární DNS jako autoritativní DNS pro doménu vaše_příjmení.cz . V DNS uveďte záznamy: SOA, NS, A, CNAME a SRV. Nakonfigurujte také DNS pro reverzní záznamy IP rozsahu, který využíváte v lokální síti.<br />
<br />
=== Sedmá přednáška ===<br />
<youtube width="200" height="180">Pw2lPpGKZyw</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
Tématem bude webový server apache2. Hlavním tématem bude provoz virtuálních domén a provoz serveru LAMP, tedy kombinace Linuxu, Apache, MySQL a PHP.<br />
<br />
Pro instalaci serveru Apache2 na debianu zadejte ''apt-get install apache2''<br />
Rozšíření Apache a podporu PHP se provede ''apt-get install libapache2-mod-php''<br />
Server MySQL se nainstaluje příkazem ''apt-get install mysql-server''<br />
<br />
Pro otestování správné funkce LAMP serveru je dobré použít nějaký vhodný projekt, například [https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz MediaWiKi]<br />
<br />
Přidání uživatele do databáze<br />
# mysql -u root -p<br />
MariaDB [(none)]> use mysql<br />
MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki';<br />
MariaDB [mysql]> \q<br />
<br />
# mysql -u root<br />
MariaDB [(none)]> CREATE DATABASE wiki;<br />
MariaDB [(none)]> use wiki<br />
MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost;<br />
Query OK, 0 rows affected (0.01 sec)<br />
MariaDB [wiki]>\q<br />
<br />
Cvičení: Na virtualizovaném PC zprovozněte dvě virtuální domény www.vaše_příjmení.cz a wiki.vaše_příjmení.cz . Vše korektně uveďte v DNS (viz předchozí cvičení). Doména www.vaše_příjmení.cz bude obsahovat testovací stránku se souborem index.html . Pro doménu wiki.vaše_příjmení.cz rozšiřte Apache o podporu php a doinstalujte MySql server. Na této doméně nakonfigurujte software Mediawiki.<br />
<br />
=== Osmá přednáška ===<br />
<youtube width="200" height="180">mk2gzRLQmJM</youtube><br><br />
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br><br />
<br />
* Poštovní server je jeden z nejdůležitějších služeb, které dnes internet poskytuje. Jedním z nejvíce využívaných serverů pro poskytování poštovních služeb je postfix.<br />
* Postfix je nicméně pouze služba, která poštu doručuje mezi servery a do schránek uživatelů, pro doručení pošty k uživateli se běžně využívají protokoly IMAP nebo POP3. Druhý jmenovaný je již značně na ústupu. Jedním ze serverů pro doručování pošty uživatelům je Dovecot.<br />
* Další zcela běžnou službou při poskytování poštovních služeb je možnost správy pošty prostřednictvím webového klienta. Jedním z velmi používaných je Roudncube.<br />
<br><br><br />
* Jako relay pro postfix v prostředí univerzitní sítě použijte prosím mrk032-dev.vsb.cz<br />
<br><br><br />
<br />
Do virtualizovaných PC budeme potřebovat následující balíčky:<br />
apt-get install apache2 dovecot-imapd libapache2-mod-php mysql-server roundcube postfix<br />
<br />
==== Postfix - základní konfigurace ====<br />
/etc/postfix/main.cf<br />
/etc/postfix/master.cf<br />
<br />
#plně kvalifikované jméno systému<br />
myhostname = mail.seidl.cz<br />
<br />
#které domény systém obsluhuje<br />
mydestination = mail.seidl.cz, localhost.seidl.cz, seidl.cz , localhost<br />
<br />
#domovské sítě<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 <br />
<br />
#honza.cz ; pokud má email jen místní část, připojí se tato doména <br />
myorigin = /etc/mailname <br />
<br />
#kam se mají předávat emaily, pokud se zakomentuje bude se využívat systém DNS<br />
relayhost =<br />
<br />
==== Postfix - vyhledávací tabulky ====<br />
cat /etc/aliases<br />
david: sei01@seidl.cz<br />
<br />
newaliases<br />
<br />
* Kanonické mapování<br />
cat /etc/postfix/canonical<br />
sei01@seidl.cz david.seidl@seidl.cz <br />
<br />
postmap /etc/postfix/canonical<br />
<br />
cat /etc/postfix/main.cf | grep canonical_maps<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
recipient_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
* Podporované formáty tabulek<br />
postconf -m<br />
<br />
==== Fronty postfixu ====<br />
postqueue -p //výpis zpráv ve fronntě<br />
postqueue -s vsb.cz //znovu pošle zprávy pro doménu vsb.cz<br />
<br />
postsuper -d DBA3F1A9 //vymaže zprávu<br />
postsuper -d ALL //vymaže vše<br />
postsuper -h DBA3F1A9 //zadrží zpráv<br />
postsuper -H DBA3F1A9 //pustí zprávu<br />
postsuper -r DBA3F1A9 //opakované zařazení zprávu<br />
<br />
postcat -q DBA3F1A9 //vypíše zprávu<br />
<br />
==== Místní doručování (mailbox, maildir) ====<br />
cat /etc/postfix/main.cf | grep home_mailbox<br />
home_mailbox = Maildir/<br />
<br />
V některých případech je možné zadat parametr ''mail_spool_directory = /var/spool/mail pro mailbox nebo mail_spool_directory = /var/spool/mail/ pro maildir'', je ale nutné vytvořit pro uživatele složky s jejich jmény<br />
<br />
==== Server IMAP dovecot ====<br />
<br />
Změna formátu z mailbox na maildir<br />
cat /etc/dovecot/conf.d/10-mail.conf | grep mail_location<br />
#mail_location = mbox:~/mail:INBOX=/var/mail/%u<br />
mail_location = maildir:~/Maildir/<br />
<br />
Povolení ověření bez zabezpečení (pro běžný provoz velmi nebezpečné!!)<br />
cat /etc/dovecot/conf.d/10-auth.conf | grep disable_plaintext_auth<br />
disable_plaintext_auth = no<br />
<br />
==== Webový IMAP klient Roundcube ====<br />
Ve /var/www/html udělat link ''ln -s /var/lib/roundcube/'' nebo virtuální doménu<br />
<br />
V souboru /ect/roundcube/config.inc.php změnit:<br />
$config['default_host'] = '127.0.0.1'; //samozřejmě pokud je imap server na stejném serveru jako LAMP<br />
<br />
Cvičení:<br> <br />
* Na virtualizovaném PC zprovozněte poštovní server pro vaši doménu. Korektně nadefinujte DNS záznamy včertně záznamů SRV pro tuto doménu. Pro uživatele definujte správné aliasy a kanonické názvy, tak aby přihlašovací údaje byly odlišné od názvu emailu. Například přihlašovací jméno bude sei01, ale odchozí i příchozí pošta bude david@seidl.cz .<br />
* Uživateli umožněte přístup k poště pomocí serveru dovecot-imapd. Pro jednoduchost umožněte přihlášení prostřednictvím hesla zadaného prostým textem. (Tohle v reálném světě internetu nikdy nedělejte)<br />
* Zprovozněte webový IMAP klient roundcube.<br />
<br />
<hr><hr><br />
<br />
== Finální test (13.5.2022) ==<br />
<br />
Hodnocení finálního testu není pouze na základě toho zdali Vám konfigurované služby správně fungují.<br />
Hodnotit se bude především zdali konfiguracím '''rozumíte''' a máte povědomí o tom jak služba funguje.<br />
''Opsat konfiguráky umí s prominutím cvičená opice.'' <br />
Naopak pokud Vám služba nebude fungovat a ukážete mi jak jste se snažili problém vyřešit, můžete stále získat plný počet bodů.<br />
<br />
Během finálního testu máte k dispozici veškeré dostupné zdroje (knihy, poznámky, internet).<br />
Zakázána je jakákoli online komunikace!<br />
<br />
=== Zadání finálního testu verze A ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat ISC DHCP server, tftp server, NFS a bind9 server.<br />
* Na serveru zprovozněte systém, který umožní bootování bezdiskových stanic. <br />
* Stanice bude mít svůj root file systém mountovaný do svazku exportovaného prostřednictvím serveru NFS. Stejně bude mít mountovaný i adresář /home.<br />
* Bezdiskové stanice budou bootovat do boot menu, kde si bude moc uživatel vybrat mezi spuštěním OS nebo instalací Debianu. <br />
* Named server bude fungovat pouze jako relay a nebude spravovat žádnou doménu.<br />
* Na serveru bude zprovozněný source NAT, který umožní přístup bezdiskovým stanicím do internetu.<br />
<br><br />
<br />
=== Zadání finálního testu verze B ===<br />
* V prostředí Virtualbox vytvořte virtualizované PC (nebo i více PC), které bude obsahovat servery Apache2 s podporou PHP a SSL, postfix, dovecot a bind9.<br />
* Na server bind9 nakonfigurujte jednu doménu (váš_login.cz), v této doméně uveďte všechny potřebné záznamy (SOA, MX, A, CNAME, SRV).<br />
* Zprovozněte server postfix, tak aby spravoval emaily pro vaši doménu a emaily doručoval lokálně ve formátu Mailbox.<br />
* Zprovozněte server dovecot pro vyzvedávání pošty protokolem IMAP. <br />
* Na webovém serveru nakonfigurujte virtuální doménu mail.vas_login.cz na které poběží webový emailový klient a na které bude možné spravovat emaily z vaší domény.<br />
* Na webovém serveru nakonfigurujte virtuální doménu wiki.vas_login.cz a zprovozněte na ni MediaWiki.<br />
<br><br />
<br><br />
'''Pro úspěšné vykonání závěrečného testu není důležité zdali systém funguje, ale je důležité zdali víte jak funguje!'''<br><br />
Součástí závěrečného testu bude i ústní zkouška, která se může týkat libovolného tématu probíraného v SUS.</div>Sei01