SOS
Změny týkající se tohoto předmětu v dalších letech
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.
Co by jsme chtěli změnit:
- 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.
- Jako doporučený jazyk při instalaci bude angličtina, klávesnice pak už dle libosti každého.
- Pro instalaci Debianu na vlastní notebooku bude doporučeno použít instalační DVD tak, aby instalace nebyla závislá na kvalitě připojení.
- 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.
- Již od počátku budeme lpět na vzdálené správě pomocí protokolu SSH.
- Od počátku bude virtuální stroj obsahovat dvě síťové karty.
- Vytváření uživatelských účtů v závěrečném testu bude na základě vstupního souboru.
Co osvědčilo:
- Přednášky zůstanou více interaktivní s praktickými ukázkami.
- Zachová se bodování všech cvičení s mírným přebytkem bodů.
- Obtížnost úloh ve cvičení se zdá být dostačující.
- 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.
Předmět Správa operačních systémů
Obsah
- 1 Podmínky absolvování předmětu
- 2 Co můžete od tohoto předmětu očekávat
- 3 Co od tohoto předmětu očekávat nemůžete
- 4 Literatura
- 5 Co budete potřebovat na cvičení
- 6 Témata jednotlivých přednášek a navazujících cvičení
- 7 Zadání finálního testu verze A (29.4.2021)
- 8 Zadání finálního testu verze B (23.4.2021)
- 9 Zadání finálního testu (1.6.2020 8:00-10:30)
- 10 Změna jazyka v konzole
- 11 O humor není u tučňáka nouze
Podmínky absolvování předmětu
Denní studium
- 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.
- 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.
- Cvičení bude celkem 9 přičemž na každém cvičení můžete obdržet až 8 bodů.
- 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.
- 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ů.
Kombinované studium
- 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.
- 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ů.
- 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.
Co můžete od tohoto předmětu očekávat
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.
Co od tohoto předmětu očekávat nemůžete
- 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.
- Programovat se bude!!! A hodně. - 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ě :-).
Literatura
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.
Doporučené weby:
Doporučené knihy:
- Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1
- SNYDER, Garth; HEIN, Trent; NEMETH, Evi. Linux : Kompletní příručka administrátora, 2. aktualizované vydání. [s.l.] : Computer Press, 2008. 976 s.
- JELÍNEK, Lukáš. Vytváříme vlastní distribuci Linuxu. Brno : Computer Press, 2010. 304 s. ISBN 9788025124338
- JELÍNEK, Lukáš. Jádro systému Linux. Brno : Computer Press, 2008. 688 s. ISBN 97880 25120842
English book
Co budete potřebovat na cvičení
Na cvičeních budeme pracovat ve virtualizovaném počítači. Jako virtualizační prostředí jsme zvolili 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ý.
Pokud budete pracovat na cvičení na školním počítači, požádejte vyučujícího o navýšení diskové quoty.
První přednáška
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.
Historie OS Unix a jeho vývoj[1]; OS Linux vznik a koncepce [2]; Distribude OS Linux [3] [4]; Příkazový řádek; možnosti příkazového řádku, základní příkazy [5]; význam složek v kořenovém adresáři [6]
Cvičení:
- Práce se software Virtualbox [7].
- Doporučuji prostudovat dokumentaci k tomuto programu.
- Pracujete-li na školním PC zažádejte si u cvičícího navýšení uživatelské quoty.
- Do domovského adresáře stáhněte iso soubor s aktuálním instalátorem distribude Debin ve verzi netinstal
https://www.debian.org/distrib/netinst pro systémy s procesorem i386 nebo amd64 dle vašeho procesoru. - Pokud pracujete na vlastním notebooku důrazně doporučuji použít pro instalaci DVD iso soubory [10]. V případě velkého vytížení WiFi je instalace pomocí 'netinstal' velmi zdlouhavá.
- Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian
- Pro instalaci virtuálního PC postačí i minimum paměti
- Vytvořte virtuální pevný disk typu VDI nebo VMDK, Dynamicky alokovaný o velikosti 8GB
- Přepněte se do menu Global Tools a vytvořte nový síťový interface s názvem 'vboxnet0', nastavení ponechte defaultní.
- 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)
- Spusťte vytvořený virtualizovaný počítač a nastavte jako CD stažený iso soubor
- Spusťte instalaci distribuce Debian v textovém prostředí (grafický instalátor bývá pomalejší)
- 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
- Pro připojení k síti zvolte rozhraní zařazené do sítě NAT, typicky enp0s3
- 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.
- 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.
- 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.
- Nastavte správce balíků pro Českou republiku, ze serveru ftp.cz.debian.org, bez proxy serveru.
- K průzkumu popularity balíků se připojovat nemusíte.
- Vyberte pro instalaci program SSH Server a zrušte výběr všech ostatních nástrojů.
- Prosím neinstalujte grafické rozhraní. To na server nepatří.
- Zvolte instalaci zavaděče GRUB do hlavního zaváděcího záznamu do zařízení /dev/sda
- Dokončete instalaci, spusťte váš Debian a přihlaste se jako uživatel root nebo jako běžný uživatel
- 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
- Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce.
- 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.
- Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem apt-get install mc.
- 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: Debian-VirtualBox
Druhá přednáška
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.
Klíčová slova: standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce cat, cut, grep, sort, tr, echo #!/bin/sh, . , for, switch, while, until, $@, $0, $1, $$ ..... if...then...else , test, []
Programování ve skriptovacím jazyku BASH; proměnné, cykly, podmínky [13]; Program sed [14] [15] a regulární výrazy [16] [17] [18]
Cvičení:
- Práce v příkazovém řádku; operace přesměrování.
- Interpret příkazů, vícenásobné přesměrování, cykly.
Chcete-li využívat utilitku 'GET' nainstalujte si následující balík 'apt install libwww-perl'
Na stolním PC které je v učebně prosím klikněte na odkaz: [19]
Úkoly:
Zadání 1 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". b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 2 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 b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 3 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 b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 4 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 b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Zadání 5 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 b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího.
Třetí přednáška
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.
Klíčová slova:
- Většinu informací jsem čerpal z následujících stránek:
https://www.root.cz/serialy/nebojte-se-systemd/
http://www.abclinuxu.cz/serialy/systemd
http://www.servispckupka.cz/rozdil-mezi-bios-a-uefi.php
https://www.linuxexpres.cz/praxe/ne-upravujte-uefi-a-secure-boot
Systemd
man systemd.unit
Příklad jednotky typu služba
[Unit] Description=TLP system startup/shutdown Wants=bluetooth.service NetworkManager.service After=multi-user.target bluetooth.service NetworkManager.service Before=shutdown.target [Service] Type=oneshot ExecStart=/usr/bin/tlp init start ExecStop=/usr/bin/tlp init stop [Install] WantedBy=multi-user.target
Závislosti v části [Unit]
- Requires
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, 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.
- Wants
Slabší varianta Requires. Funguje stejně, jen nevadí, pokud nějaká závislost selže. Dokumentace tuto variantu doporučuje.v
- After,Before
Jednotka je aktivována až po startu nebo před startem definovaných jednotek. Tento parametr nedefinuje explicitní závislost, jen určuje pořadí spouštění. Více viz příklad.
- Conflicts
Když je tato jednotka aktivována, jsou zastaveny všechny konfliktní a naopak.
Sekce [Service]
* "-" v parametru znamená že nenulový návratový kod neznamená chybu * je možné zadat více příkazů oddělených středníkem * je nutné zadat plnou cestu k příkazu * není možné používat | > 2> >> &
- ExecStart
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 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.
- ExecStartPost
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.
- ExecReload
Příkaz, který se má spustit v případě načítání nové konfigurace (spuštění systemctl reload jednotka)
- ExecStop
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.
- ExecStopPost
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.
Typ služeb
- simple
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.
- dbus
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.
- oneshot
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.
- notify
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á.
- forking
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.
- idle
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.
Sekce [Install]
WantedBy=default.target - jednotka bude spuštěna po startu
Příkazy
systemctl systemctl help dbus systemctl is-active dbus systemctl is-enable dbus systemctl is-enabled dbus systemctl is-failed dbus systemctl status dbus systemctl list-dependencies dbus systemctl list-dependencies --all systemctl daemon-reload /usr/lib/systemd/system ;jednotky instalované z repozitářů /usr/lib/systemd/user ;uživatelské jednotky /etc/systemd/system /etc/systemd/user
SystemV
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d inittab, runlevel, getty, /etc/init.d/rc, /etc/init.d/*, /etc/rc?.d, update-rc.d #!/bin/sh ### BEGIN INIT INFO # Provides: apache2 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO . /lib/lsb/init-functions case $1 in start) ;; stop) ;; esac
Zavádění OS Linux [20], zavaděč Lilo [21]; Grub [22] [23] a Grub2 [24] [25] [26], využití zaváděcího RAMdisku [27]; inicializace systému, spuštění procesu INIT [28]; spouštění služeb [29] [30] [31]; Cyklické spouštění příkazů s skriptů [32] [33]
Cvičení:
- 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
Na stolním PC které je v učebně prosím klikněte na odkaz: [34]
Úkoly:
Pro zadání kde je zapotřebí získání náhodného čísla, můžete použit systémovou proměnnou RANDOM. Například nah_cislo=`echo $RANDOM`.
Zadání 1 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 číselným jménem xxx.txt kde xxx je náhodné číslo. b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 2 a - Vytvořte skript v jazyce BASH, který vytvoří v definované složce soubory se jménem 1 až MAX s náhodnou velikostí. Kde MAX je celé číslo větší než 1. b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 3 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. S náhodnou příponou ( jpg jpeg txt doc xls html php docx sh apd.). Pro definici možných přípon použijte pole, případně funkci. b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 4 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ů. Kde MAX je celé číslo větší než 1. b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Zadání 5 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, s náhodným počtem čísel ( čísla v definovaném rozmezí min až max). Bez použití odřádkování. b - Modifikace vámi vytvořených souborů dle pokynů vyučujícího.
Čtvrtá přednáška
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.
Klíčová slova: apt-get install system-config-lvm mdadm /dev/sda-z fdisk -l, cfdisk, mkfs.ext4 /etc/fstab mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1 watch "cat /proc/mdstat" pvcreate /dev/sdb1 vgcreate test /dev/sdb1 lvcreate -L 50M -n padesat test vgextend test /dev/sdc1 lvextend -L 150M /dev/test/padesat resizefs /dev/test/padesat 150M
Filesystémy používané v OS Linux [35]; Základní vlastnosti [36] [37] Tvorba filesystému a práce s oblasti disků mkfs fdisk fdisk cfdisk parted; Správa diskových oddílů v GNU/Debian /etc/fstab; LVM [38]
Cvičení:
- Tvorba vlastního startovacího skriptu
- Cyklické spouštění skriptů
Na stolním PC které je v učebně prosím klikněte na odkaz: [39]
Úkoly:
Zadání 1 a - Vytvořte startovací skript. Skript zjistí velikost všech adresářů ve složce /home . Pokud bude velikost některého z adresářů větší než 1kB, bude v této složce umístěn soubor s názvem "BYLA PREKROCENA MAX VELIKOST SLOZKY". b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2 a - Vytvořte startovací skript. Skript zjistí počet souborů všech podadresářích ve složce /home . Pokud bude počet spuborů větší než 100, bude v této složce umístěn soubor s názvem "BYL PREKROCEN MAX POCET SOUBORU VE SLOZCE". b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3 a - Vytvořte startovací skript. Skript projde všechny podadresáře ve složce /home . Pokud najde soubor jehož název končí na *.backup přesune tento soubor do adresáře /backup b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4 a - Vytvořte startovací skript. Skript "zataruje" složku /etc a vytvořený soubor uloží do složky /backup . Jméno souboru bude ve tvaru ve které bude možné identifikovat kdy byla záloha provedena. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5 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 informaci o tom kdy byl systém spuštěn a kdy došlo k předchozímu vypnutí. b - Modifikace zadání dle pokynů vyučujícího.
Pátá přednáška
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.
Klíčová slova: apt-get install openssl quota adduser, deluser useradd, userdel useradd -m -s /bin/bash -c "Bezny Franta Uzivatel" -p `echo "P4sSw0rD" | openssl passwd -1 -stdin` franta /etc/passwd /etc/group /etc/skell /etc/shadow mount -o remount,usrquota,grpquota /home service quota start quotacheck /dev/sdb1 quotaon /dev/sdb1 edquota franta chmod chown chgrp S - Bit T - Bit
Správa uživatelských účtů, vytvoření a mazání uživatelů [40] [41];
Uživatelská práva [42];
PAM moduly [43] [44], diskové quoty [45]
Cvičení:
- Formátování diskového oddílu, připojení souborového systému, vytvoření SW RAID, práce s LVM
Na stolním PC které je v učebně prosím klikněte na odkaz: [46]
Úkoly:
Zadání 1 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. Přičemž zachovejte veškerý obsah původního adresáře /home. Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID1 s jedním spare diskem. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2 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. Přičemž zachovejte veškerý obsah původního adresáře /home. Do svého virtualizovaného PC přidejte další tři SATA disky. Vytvořte nad nima SW RAID5 bez použití spare disku. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3 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. Přičemž zachovejte veškerý obsah původního adresáře /home. Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID5 s jedním spare diskem. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4 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. Přičemž zachovejte veškerý obsah původního adresáře /home. Do svého virtualizovaného PC přidejte další čtyři SATA disky. Vytvořte nad nima SW RAID6 bez použití spare disku. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5 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. Přičemž zachovejte veškerý obsah původního adresáře /home. 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. b - Modifikace zadání dle pokynů vyučujícího.
Šestá přednáška
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.
Klíčová slova: /etc/network/* cat /etc/network/interfaces auto enp0s3 iface enp0s3 inet dhcp allow-hotplug enp0s3 iface enp0s3 inet static address 192.168.0.1 netmask 255.255.255.0 broacast 192.168.0.1 ip route add default via 192.168.0.254 ip route del default via 192.168.0.254 route add default gw 192.168.0.1 //přidá defaultní gateway route del default gw 192.168.0.1 //odebere defaultní gateway /etc/resolv.conf //konfigurace DNS, základem je řádek nameserver IP_ADRESA
Výborný článek se základy zde [47] iptabels -t filter, iptabels -t nat, iptabels -t mangle iptables -P INPUT ACCEPT //defaultní politika iptables -A INPUT -i eth0 -j ACCEPT //pustí pakety vstupující do systému přes eth0 iptables -A OUTPUT -o eth0 -j DROP //zahodí pakety vystupující ze systému přes eth1 iptables -A INPUT -s 192.168.0.100 -j DROP //zahodí pakety vstupující do systému se zdrojovou IP 192.168.0.100 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 iptables -A INPUT -p tcp --dport 80 -j DROP //zakáže pakety vstupující do systému s cílovým tcp portem 80 iptables -A OUTPUT -p tcp --dport 80 -j DROP //zakáže pakety vystupující ze systému s cílovým tcp portem 80
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //zamaskuje pakety vystupující ze systému přes eth0 echo "1" > /proc/sys/net/ipv4/ip_forward //povolí přeposílání paketů
iptables-save > /etc/iptables iptables-restore /etc/iptables
Linux jako aktivní síťový prvek, routing [48], NAT, Firewall [49] [50]
Cvičení:
- Práce s uživatelkými účty, zavedení quot, přístupová práva (Pro vytváření účtů můžete využít soubor jmena.txt [51] )
Na stolním PC které je v učebně prosím klikněte na odkaz: [52]
Úkoly:
Zadání 1 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. 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. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2 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. 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é. Všem nově vytvořeným uživatelům definujte diskové quoty. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3 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. Při vytváření účtů každému uživateli (pomocí /etc/skel) nakopírujte do jeho domovského adresáře soubor README.txt. Všem nově vytvořeným uživatelům definujte diskové quoty. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4 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. Všechny nově vytvořené účty zablokujte. Všem nově vytvořeným uživatelům definujte diskové quoty. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5 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. 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. b - Modifikace zadání dle pokynů vyučujícího.
Sedmá přednáška
V akademickém roce 2020/21 tuto přednášku vynecháme.
Téma sedmého cvičení ale zůstává.
Nástroje pro správu procesů [53]; Balíčkovací systémy [54] [55] ; Tvorba vlastního instalačního balíčku
Systém APT
nízká úroveň:
dpkg-deb -f geg_1.0.2-4_i386.deb <-- info o balíčku
střední úroveň:
dpkg -i geg_1.0.2-4_i386.deb <-- instalace balíku dpkg -r geg <-- odinstalace dpkg -l 'gettext*' <-- info z bal systému dpkg -L gftp-text <-- jaké soubory balík obsahuje dpkg -S /usb/bin/mc <-- ve kterém balíčku se vyskytuje
vyšší úroveň
apt-get install apt-get remove apt-get update && apt-get upgrade apt-get source mc apt-cache stats apt-cache show mc apt-cache search mcedit apt-cache depends mc
Vytvoření balíčku
tmp |-- DEBIAN | |-- control | |-- postinst | |-- preinst | `-- md5sums `-- etc |--neco.conf . . .
find * -type f ! -regex '^DEBIAN/.*' -exec md5sum {} \; > DEBIAN/md5sums
#cat control Package: nazev_baliku Version: 0.01 Section: sekce - především oficiální balíky Priority: optional (důležitost, nechte vždy optional) Recommends: kaffe | java-virtual-machine (doporučené balíky, oddělovačem je |) Depends: libc6 (>= 2.2.4-4) (balíky nutné pro instalaci, v závorce minimální verze) Architecture: i386 (architektura procesoru, pokud programujete v Javě tak all) Installed-Size: 2717 (velikost složky /usr/ v kB) Maintainer: vase_jmeno <vase.emailova@adresa.cz> Description: Krátký popis v AJ Dlouhý popis v AJ . Druhý odstavec dlouhého popisu, obvykle vaše URL
dpkg-deb -b slozka nazev_0.1_i386.deb
Cvičení:
- Programování sktriptu pro natavení firewallu a rourování
Na stolním PC které je v učebně prosím klikněte na odkaz: [56]
Úkoly:
Zadání 1 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. Vytvořte startovací skript, který inicializuje firewall pomocí iptables. Defaultní politika pro INPUT bude DROP. Zakažte veškerý provoz na server (INPUT) mino port 80 a 443. Port 22 povolte jen z definovaných IP. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2 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. Defaultní politika pro INPUT bude ACCEPT. Zakažte veškerý provoz na server (INPUT) mino port 80 a 443. Port 22 povolte jen z definovaných IP. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3 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. Defaultní politika pro OUTPUT bude DROP. Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443. Port 22 povolte jen na definované IP adresy. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4 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. Defaultní politika pro OUTPUT bude ACCEPT. Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443. Port 22 povolte jen na definované IP adresy. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5 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. Defaultní politika pro OUTPUT a INPUT bude DROP. Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443. Odchozí provoz povolte pouze na portu 22. b - Modifikace zadání dle pokynů vyučujícího.
Osmá přednáška
Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.
Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální.
Základní síťové služby; LAMP server [57] [58], DHCP server [59] , NFS [60] [61] a jiné; Nástroje pro kontrolu spuštěných síťových služeb netstat tcpdump nmap iftop [62]
Přidání uživatele do databáze MariaDB
# mysql -u root -p MariaDB [(none)]> use mysql MariaDB [mysql]> CREATE USER 'wiki'@'localhost' IDENTIFIED BY 'wiki'; MariaDB [mysql]> \q
# mysql -u root MariaDB [(none)]> CREATE DATABASE wiki; MariaDB [(none)]> use wiki MariaDB [wiki]> GRANT ALL ON wiki.* TO wiki@localhost; Query OK, 0 rows affected (0.01 sec) MariaDB [wiki]>\q
Přidání databáze MySQL do Debianu
* Stáhnout následující balíček: https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb * Doinstalovat lsb_release apt install lsb-release * nainstalovat balíček dpkg -i mysql-apt-config_0.8.12-1_all.deb * Aktualizovat balíky z internetu apt update * Nainstalovat MySQL apt install mysql-server * Pro vytváření účtu způsobem popsaným výše je nutné doplnit do /etc/mysql/my.cnf [mysqld] default_authentication_plugin=mysql_native_password
Cvičení:
- Vytvoření firewalu zaváděného ze startovacího skriptu
Na školním PC které je v učebně prosím klikněte na odkaz: [63]
Úkoly:
Zadání 1 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. 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 skriptu do systému. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2 a - Vytvořte skript v jazyce Bash, skript vypíše všechny uživatelé systému, kteří mají spuštěn nějaký program. U každého uživatele poté skript vypíše počet spuštěných programů. Pro vytvořený skript vytvořte DEB balíček, kde správně uveďte závislost na balíčku obsahující program ps. Tento balíček použijte k instalaci skriptu do systému. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3 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 zatížení systému zjištěné ze souboru /proc/loadavg. 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 skriptu do systému. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4 a - Vytvořte skript v jazyce Bash, skript bude spouštěn cyklicky a vždy provede zálohu všech podadresářů /home/*, pomocí programu tar. 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 skriptu do systému. b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5 a - Vytvořte skript v jazyce Bash, skript bude přijímat následující parametry: ./skript parametr1 parametr2 Prvním parametrem můžou být následující slova: http, https, ssh, telnet. Druhým parametrem může být accept nebo deny. Skript při zadání ./skript http deny zakáže pomocí iptables přístup na PC protokolem http. Ostatní parametry se zachovají obdobně. 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 skriptu do systému. b - Modifikace zadání dle pokynů vyučujícího.
Devátá přednáška
Raspberry PI, minipočítač za 700kč, velikosti kreditní karty a jeho možnosti 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/
Cvičení:
- Instalace a konfigurace LAMP serveru
- Instalace DHCP serveru
- Instalace NFS serveru
Na školním PC které je v učebně prosím klikněte na odkaz: [64]
Zadání 1 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 Na serveru nainstalujte webový server Apache a nastavte provoz na http s https Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC b - Modifikace zadání dle pokynů vyučujícího.
Zadání 2 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 Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC b - Modifikace zadání dle pokynů vyučujícího.
Zadání 3 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 Na serveru nainstalujte webový server Apache a nastavte provoz na http s modulem userdir Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC b - Modifikace zadání dle pokynů vyučujícího.
Zadání 4 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 Na serveru nainstalujte webový server Apache a nastavte provoz na http s podporou PHP Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC b - Modifikace zadání dle pokynů vyučujícího.
Zadání 5 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 Na serveru nainstalujte webový server Apache a nastavte provoz na http s https Na serveru nainstalujte NFS server a vyexportujte složku /var/www, tuto složku připojte v druhém virtuálním PC b - Modifikace zadání dle pokynů vyučujícího.
Desátá přednáška
Dobré návyky správce Linuxového serveru, logování stavu služeb, automatizování administrátorských činností, dohledové systémy
Cvičení:
- Závěrečný test
Zadání finálního testu verze A (29.4.2021)
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.).
3body
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.
3bodů
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.
10bodů
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.
12bodů
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.
5bodů
6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir.
3body
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT a OUTPUT na všech rozhraních byla DROP.
- Povolte do systému přístup pro službu SSH a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.
- Povolte přístup na http a https ze všech rozhraní a IP adres.
- Povolte provoz ICMP na všech rozhraních.
- Na rozhraní připojeném k síti NAT nakonfigurujte překlad síťových adres (source nat).
Funkčnost firewallu demonstrujte.
- Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.
12bodů
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.
8bodů
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.
5bodů
Zadání finálního testu verze B (23.4.2021)
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.).
3body
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.
3body
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.
10bodů
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.
12bodů
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.
5bodů
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.
3body
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki
8bodů
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.
8bodů
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP.
- Povolte do systému přístup pro službu SSH pouze z definovaných IP adres.
- Povolte přístup na http a https z libovolné IP adresy.
- Povolte provoz ICMP na všech rozhraních.
- Nastavte překlad zdrojových síťových adres na rozhraní enp0s3.
Funkčnost firewallu demonstrujte.
- Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.
12bodů
Zadání finálního testu (1.6.2020 8:00-10:30)
Zadání bude zveřejněno v době konání testu.
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í. 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. 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ě). Problémy řešte se mnou přes hangout. Během testu můžete používat libovolné zdroje, pouze je zakázána online komunikace. Uvědomte si že jste připojeni na školní VPN a my máme nástroje jak případné podvodníky odhalit.
!!! MEZI 10:30 a naším telefonátem bude vaše virtualizované PC stále vypnuté !!!
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
2body
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ž nebude 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.
10bodů
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.
10bodů
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.
4bodů
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.
2body
6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki a to včetně instalace MediaWiki
6bodů
7) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro INPUT i OUTPUT byla DROP.
- 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).
- Povolte přístup na http a https z libovolné IP adresy ze školní sítě (158.196.0.0/16).
- Povolte provoz ICMP na všech rozhraních.
Funkčnost firewallu demonstrujte.
- Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Nevyužívejte standardní iptables-persistent)
10bodů
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.
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ů.
6bodů
Změna jazyka v konzole
V distribucích odvozených od Debianu lze změnit jazyk a klávesnici v konzole následovně:
dpkg-reconfigure locales # vybrat kodovani cs_CZ... a en_US...., vybrat default, pro UTF je to skoro jedno. dpkg-reconfigure console-setup # vybrat UTF8, Latin2, font a jeho velikost dpkg-reconfigure console-data # vybrat klavesnici Pokud nemáte k dispozici console-data tak je nainstalujete pomocí apt-get install console-data
O humor není u tučňáka nouze
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í.
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).
Mašinka
# sl
Zakřičte si v příkazovém řádku
# figlet Linux
Zakřičte si barevně příkazovém řádku
# toilet -f mono12 -F metal Linux
Kráva říká
# cowsay Linux # for i in /usr/share/cowsay/cows/*; do cowsay -f $i $i; sleep 5; done
Moudra
# fortune # fortune | cowsay
Popovídejte si
# aptitude moo # aptitude -v moo # aptitude -vv moo # aptitude -vvv moo # ... # ...
Koukněte na konec helpu
# aptitude -h # apt-get -h
Pozadu
# echo Ahoj | rev
Matrix
# cmatrix
Obrázky
# jp2a *.jpg
A co film
# vlc -V aa film.*
Kočička
# oneko
Hoří...
# apt-get install libaa-bin # aafire