SOS: Porovnání verzí
m |
|||
(Není zobrazeno 121 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
+ | [[Soubor:Msmt.jpg]] | ||
+ | |||
+ | [[Soubor:Oa_licencecc_cc_by_rectangle.png|150px]] | ||
+ | |||
+ | 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]. | ||
+ | |||
+ | |||
'''Změny týkající se tohoto předmětu v dalších letech'''<br> | '''Změny týkající se tohoto předmětu v dalších letech'''<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> | 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> | ||
Řádek 31: | Řádek 38: | ||
=== Kombinované studium === | === 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. | * 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 | + | * 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ů. |
* 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. | * 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. | ||
Řádek 47: | Řádek 54: | ||
* http://www.root.cz | * http://www.root.cz | ||
* http://wikipedia.org | * http://wikipedia.org | ||
− | |||
* http://www.linuxexpres.cz | * http://www.linuxexpres.cz | ||
Řádek 66: | Řádek 72: | ||
== Témata jednotlivých přednášek a navazujících cvičení == | == Témata jednotlivých přednášek a navazujících cvičení == | ||
+ | <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> | ||
+ | <hr> | ||
+ | <!-- <youtube width="200" height="180">iCzR2jCrMH8</youtube> --> | ||
=== První přednáška === | === První přednáška === | ||
+ | <youtube width="200" height="180">w3lsMLrR7js</youtube><br> | ||
+ | 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[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; | Historie OS Unix a jeho vývoj[http://www.root.cz/texty/historie-operacniho-systemu-gnulinux/]; | ||
OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; | OS Linux vznik a koncepce [http://www.linuxexpres.cz/aktuality/dvacet-let-linuxu-jak-to-bylo]; | ||
Řádek 79: | Řádek 91: | ||
* Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/]. | * Instalace distribuce Debian do virtualizovaného prostředí [http://www.debian.org/] [http://www.debian.cz/]. | ||
− | # 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 i386 | + | # 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). |
# 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á. | # 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á. | ||
# Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian | # Vytvořte nový virtuální počítač s názvem Debian, typu Linux, verze Debian | ||
Řádek 104: | Řádek 116: | ||
# Přihlaste se do vašeho Debianu a vyzkoušejte si všechny základní příkazy pro práci v příkazové řádce. | # 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 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 | + | # Pro začátečníky doporučuji do systému doinstalovat Midnight Commander příkazem ''apt install mc''. |
<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. | + | * 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> | ||
=== Druhá přednáška === | === Druhá přednáška === | ||
+ | <youtube width="200" height="180">ZywdNYbmE94</youtube><br> | ||
+ | Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. | ||
+ | |||
'''Klíčová slova:''' | '''Klíčová slova:''' | ||
standardní výstup a standardní chybový výstup, přesměrování, pípa, návratový kód funkce | 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 | cat, cut, grep, sort, tr, echo | ||
− | #!/bin/ | + | #!/bin/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# ..... |
if...then...else , test, [] | if...then...else , test, [] | ||
− | Programování ve skriptovacím jazyku BASH; proměnné, cykly, podmínky [http://www.root.cz/clanky/programovani-v-bash-shellu/]; | + | 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/]; |
− | Program sed [http://cs.wikipedia.org/wiki/Sed] [http://www.abclinuxu.cz/clanky/navody/unixove-nastroje-9-sed-nahrazovani-textu] a | + | 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] |
Cvičení: | Cvičení: | ||
Řádek 123: | Řádek 138: | ||
* Interpret příkazů, vícenásobné přesměrování, cykly. | * 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 | + | 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: [http://seidl.cs.vsb.cz/skupina.php]<br> | Na stolním PC které je v učebně prosím klikněte na odkaz: [http://seidl.cs.vsb.cz/skupina.php]<br> | ||
Řádek 129: | Řádek 144: | ||
'''Zadání 1''' | '''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 | + | 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. | b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího. | ||
<!-- | <!-- | ||
Řádek 137: | Řádek 151: | ||
'''Zadání 2''' | '''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 | + | 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. | b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího. | ||
<!-- | <!-- | ||
Řádek 146: | Řádek 158: | ||
'''Zadání 3''' | '''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 | + | 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. | b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího. | ||
<!-- | <!-- | ||
Řádek 155: | Řádek 165: | ||
'''Zadání 4''' | '''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 | + | 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. | b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího. | ||
<!-- | <!-- | ||
Řádek 164: | Řádek 172: | ||
'''Zadání 5''' | '''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 | + | 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. | b - Modifikace vámi vytvořených adresářů dle pokynů vyučujícího. | ||
<!-- | <!-- | ||
Řádek 173: | Řádek 179: | ||
=== Třetí přednáška === | === Třetí přednáška === | ||
+ | <youtube width="200" height="180">tlUNt4JWXXA</youtube><br> | ||
+ | Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. | ||
+ | |||
'''Klíčová slova:''' | '''Klíčová slova:''' | ||
* Většinu informací jsem čerpal z následujících stránek: | * Většinu informací jsem čerpal z následujících stránek: | ||
Řádek 265: | Řádek 274: | ||
/etc/systemd/user | /etc/systemd/user | ||
− | + | <!-- | |
'''SystemV''' | '''SystemV''' | ||
grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d | grub2, /boot, vmlinuz, initrd, update-grub2, /etc/default/grub, /etc/grub.d | ||
Řádek 284: | Řádek 293: | ||
;; | ;; | ||
esac | esac | ||
+ | --> | ||
Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč | Zavádění OS Linux [http://cs.wikibooks.org/wiki/Start_Linuxu], zavaděč | ||
Řádek 353: | Řádek 363: | ||
=== Čtvrtá přednáška === | === Čtvrtá přednáška === | ||
+ | <youtube width="200" height="180">2bgkPu-eMYQ</youtube><br> | ||
+ | Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. | ||
+ | |||
'''Klíčová slova:''' | '''Klíčová slova:''' | ||
apt-get install system-config-lvm mdadm | apt-get install system-config-lvm mdadm | ||
Řádek 427: | Řádek 440: | ||
=== Pátá přednáška === | === Pátá přednáška === | ||
+ | <youtube width="200" height="180">FggHmPPSL3k</youtube><br> | ||
+ | Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků. | ||
+ | |||
'''Klíčová slova:''' | '''Klíčová slova:''' | ||
− | apt | + | apt install openssl quota |
adduser, deluser | adduser, deluser | ||
Řádek 440: | Řádek 456: | ||
/etc/shadow | /etc/shadow | ||
− | mount -o remount,usrquota,grpquota /home | + | mount -o remount,usrquota,grpquota /home #toto řešení funguje jen do restartu, korektně je nutné editovat /etc/fstab |
− | service quota start | + | service quota start #nezapomeňte službu povolit, ať se zavádí po startu |
− | quotacheck /dev/sdb1 | + | quotacheck /dev/sdb1 |
− | quotaon /dev/sdb1 | + | quotaon /dev/sdb1 |
edquota franta | edquota franta | ||
Řádek 454: | Řádek 470: | ||
− | Správa uživatelských účtů, vytvoření a mazání uživatelů [ | + | Správa uživatelských účtů, vytvoření a mazání uživatelů [https://archiv.linuxsoft.cz/article.php?id_article=248]; |
Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava]; | Uživatelská práva [http://www.abclinuxu.cz/ucebnice/zaklady/principy-prace-se-systemem/pristupova-prava]; | ||
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/] | 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/] | ||
Řádek 511: | Řádek 527: | ||
=== Šestá přednáška === | === Šestá přednáška === | ||
+ | <youtube width="200" height="180">LpgYKDjmRcg</youtube><br> | ||
+ | Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br> | ||
+ | Jedná se o přednášku vytvořenou již minulý rok, nicméně je stále aktuální. | ||
+ | |||
'''Klíčová slova:''' | '''Klíčová slova:''' | ||
/etc/network/* | /etc/network/* | ||
Řádek 611: | Řádek 631: | ||
=== Sedmá přednáška === | === Sedmá přednáška === | ||
+ | <b>V akademickém roce 2023/24 tuto přednášku vynecháme.</b><br> | ||
Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409]; | Nástroje pro správu procesů [http://www.linuxsoft.cz/article.php?id_article=409]; | ||
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 | 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 | ||
Řádek 705: | Řádek 726: | ||
'''Zadání 2''' | '''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. | 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 ACCEPT. | Defaultní politika pro INPUT bude ACCEPT. | ||
Zakažte veškerý provoz na server (INPUT) mino port 80 a 443. | Zakažte veškerý provoz na server (INPUT) mino port 80 a 443. | ||
Řádek 715: | Řádek 737: | ||
'''Zadání 3''' | '''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. | 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 OUTPUT bude DROP. | Defaultní politika pro OUTPUT bude DROP. | ||
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443. | Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443. | ||
Řádek 725: | Řádek 748: | ||
'''Zadání 4''' | '''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. | 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 OUTPUT bude ACCEPT. | Defaultní politika pro OUTPUT bude ACCEPT. | ||
Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443. | Zakažte veškerý provoz ze serveru (OUTPUT) mino port 80 a 443. | ||
Řádek 735: | Řádek 759: | ||
'''Zadání 5''' | '''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. | 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 OUTPUT a INPUT bude DROP. | Defaultní politika pro OUTPUT a INPUT bude DROP. | ||
Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443. | Zakažte veškerý provoz na server (INPUT) mino port 22,80 a 443. | ||
Řádek 744: | Řádek 769: | ||
=== Osmá přednáška === | === Osmá přednáška === | ||
+ | <youtube width="200" height="180">672DyTiauWc</youtube><br> | ||
+ | Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.<br> | ||
+ | |||
Základní síťové služby; | Základní síťové služby; | ||
LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache], | LAMP server [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-instalace-lamp] [http://www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-uvod-do-konfigurace-apache], | ||
Řádek 763: | Řádek 791: | ||
Query OK, 0 rows affected (0.01 sec) | Query OK, 0 rows affected (0.01 sec) | ||
MariaDB [wiki]>\q | MariaDB [wiki]>\q | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Cvičení: | Cvičení: | ||
Řádek 942: | Řádek 954: | ||
<br> | <br> | ||
− | == Zadání finálního testu verze A ( | + | == Zadání finálního testu verze A (x.x.2024) == |
− | 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 OS Linux/Debian | + | 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> |
− | '''3body'''<br><br> | + | '''3body'''<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> | ||
+ | '''3bodů'''<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> | ||
+ | '''10bodů'''<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> | ||
+ | '''12bodů'''<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> | ||
+ | '''5bodů'''<br> | ||
+ | |||
+ | 6) Nainstalujte webový server Apache2 s podporou PHP, https a userdir. <br> | ||
+ | '''3body'''<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. | ||
+ | * 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“. | ||
+ | * Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres. | ||
+ | * Povolte provoz ICMP (INPUT, OUTPUT) 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.<br> | ||
+ | * Vytvořte jednotku pro systemd, které zavede pravidla firewalu, vždy po startu systému.<br> | ||
+ | '''12bodů'''<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> | ||
+ | '''8bodů'''<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> | ||
+ | '''5bodů'''<br> | ||
+ | |||
+ | |||
+ | <!-- | ||
+ | == COVID 19 (2020) == | ||
+ | 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. | ||
+ | |||
+ | * Konfigurace sítě a firewall https://youtu.be/wQtu0qR22rk | ||
+ | * Konfigurace služeb https://youtu.be/6JZ1JAeTt6Y | ||
+ | |||
+ | 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. | ||
+ | |||
+ | * Systém DNS https://youtu.be/KaACbGBGmVQ | ||
+ | * LAMP server https://youtu.be/rdRy1V8esl0 | ||
+ | * Poštovní server https://youtu.be/BLmeg8O7gGw | ||
+ | |||
+ | |||
+ | 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 . | ||
+ | |||
+ | 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. | ||
+ | |||
+ | '''Finální test 2020''' | ||
+ | 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'''. | ||
+ | Opět před začátkem testu budou všechny současné virtuály uvedeny do defaultného stavu. | ||
+ | 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!!! | ||
+ | Během testu budeme k dispozici na hangouts pro případné řešení technických problémů. | ||
+ | |||
+ | Vyhodnocení finálního testu bude probíhat v Út,St a Čt dle níže uvedeného harmonogramu. | ||
+ | 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. | ||
+ | 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. | ||
+ | |||
+ | '''Opravný termín finálního testu 2020''' | ||
+ | Opravný termín proběhne 26.5.2020 od 8:00 za stejných podmínek jako test první. | ||
+ | |||
+ | |||
+ | Zkoušející David Seidl | ||
+ | '''5.května od 10:30''' BAU0027 BOH0124 BYS0043 CEC0123 DED0057 DOS0161 EIS0011 FAR0065 FIA0065 | ||
+ | '''6.května od 10:30''' FOU0021 HAN0261 HEC0051 HLA0188 HLA0190 HLO0046 HRO0078 CHO0177 CHU0077 | ||
+ | '''7.května od 10:30''' JAN0673 JUR0355 KIE0021 KLU0096 KOU0147 KOZ0265 KRI0255 KRU0141 KRU0142 | ||
+ | |||
+ | Zkoušející Jan Kožusznik | ||
+ | '''5.května od 10:30''' KUB0506 KUR0140 MAC0440 MAC0463 MAI0037 MIK0378 MIN0105 MIN0110 MIT0042 | ||
+ | '''6.května od 10:30''' MOR0157 NEV0056 PAP0081 POS0215 POT0053 PTA0047 SKR0109 SLI0094 SLI0095 | ||
+ | '''7.května od 10:30''' STE0327 STI0074 SUT0018 SZK0024 TRE0059 VAL0322 VRO0022 ZAJ0098 ZUR0037 | ||
+ | |||
+ | --> | ||
+ | |||
+ | <!-- | ||
− | + | == Zadání vzorové verze finálního testu (30.4.2020 8-11hod) == | |
+ | 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> | ||
'''3body'''<br><br> | '''3body'''<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> | |
'''10bodů'''<br><br> | '''10bodů'''<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> | |
'''12bodů'''<br><br> | '''12bodů'''<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> | |
'''5bodů'''<br><br> | '''5bodů'''<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> | ||
+ | '''3body'''<br><br> | ||
+ | |||
+ | 6) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br> | ||
+ | '''8bodů'''<br><br> | ||
+ | |||
+ | 7) 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. | ||
+ | Funkčnost firewallu demonstrujte. | ||
+ | *Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému. (Navyužívejte standardní iptables-persistent)<br> | ||
+ | '''12bodů'''<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. | ||
+ | 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> | ||
+ | '''8bodů'''<br><br> | ||
+ | |||
+ | --> | ||
+ | |||
+ | == Zadání finálního testu verze B (x.x.2024)== | ||
+ | 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> | ||
+ | '''3body'''<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> | ||
+ | '''3body'''<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> | ||
+ | '''10bodů'''<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> | ||
+ | '''12bodů'''<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> | ||
+ | '''5bodů'''<br> | ||
6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br> | 6) Nainstalujte webový server Apache2 s podporou PHP a SSL.<br> | ||
− | '''3body''' | + | '''3body'''<br> |
7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br> | 7) Nainstalujte server MySQL/MariaDB a zprovozněte software MediaWiki <br> | ||
− | '''8bodů''' | + | '''8bodů'''<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> | 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> | ||
− | '''8bodů''' | + | '''8bodů'''<br> |
9) Vytvořte skript, který nastaví firewall systému tak, aby defaultní politika pro OUTPUT byla DROP. | 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 do systému přístup (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres. |
− | * Povolte přístup na http a https z libovolné IP adresy. | + | * Povolte přístup (INPUT, OUTPUT) na http a https z libovolné IP adresy. |
* Povolte provoz ICMP na všech rozhraních. | * Povolte provoz ICMP na všech rozhraních. | ||
* Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. | * Nastavte překlad zdrojových síťových adres na rozhraní enp0s3. | ||
Funkčnost firewallu demonstrujte. | Funkčnost firewallu demonstrujte. | ||
*Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br> | *Vytvořte jednotku, které zavede pravidla firewalu, vždy po startu systému.<br> | ||
− | '''12bodů''' | + | '''12bodů'''<br> |
Řádek 988: | Řádek 1 115: | ||
--> | --> | ||
− | == Zadání finálního testu | + | <!-- |
− | 1 | + | |
− | ''' | + | == 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<br> | |
− | ''' | + | '''2body'''<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> | |
'''10bodů'''<br><br> | '''10bodů'''<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> | |
− | ''' | + | '''10bodů'''<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> | |
− | ''' | + | '''4bodů'''<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> | |
− | ''' | + | '''2body'''<br><br> |
− | + | 6) Nainstalujte server '''MySQL/MariaDB''' a zprovozněte software '''MediaWiki''' a to včetně instalace MediaWiki<br> | |
− | + | '''6bodů'''<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). |
− | ''' | + | * 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)<br> | ||
+ | '''10bodů'''<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. | ||
+ | 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> | ||
+ | '''6bodů'''<br><br> | ||
− | + | --> | |
− | |||
== Změna jazyka v konzole == | == Změna jazyka v konzole == |
Aktuální verze z 18. 4. 2024, 08:12
Toto dílo podléhá licenci Creative Commons Uveďte původ 4.0 Mezinárodní License.
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 (x.x.2024)
- 8 Zadání finálního testu verze B (x.x.2024)
- 9 Změna jazyka v konzole
- 10 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 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ů.
- 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.
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í!
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 amd64 (i386 je už asi historie). - 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 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/bash, . , for, switch, while, until, $@, $0, $1, $$ , $# ..... if...then...else , test, []
Programování ve skriptovacím jazyku BASH; proměnné, cykly [13], podmínky [14]; Program sed [15] [16] a expanze proměnných [17]
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: [18]
Ú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
Zavádění OS Linux [19], zavaděč
Lilo [20];
Grub [21] [22] a
Grub2 [23] [24] [25],
využití zaváděcího RAMdisku [26];
inicializace systému, spuštění procesu INIT [27];
spouštění služeb [28] [29] [30];
Cyklické spouštění příkazů s skriptů [31] [32]
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: [33]
Ú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 [34]; Základní vlastnosti [35] [36] 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 [37]
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: [38]
Ú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 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 #toto řešení funguje jen do restartu, korektně je nutné editovat /etc/fstab service quota start #nezapomeňte službu povolit, ať se zavádí po startu 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ů [39];
Uživatelská práva [40];
PAM moduly [41] [42], diskové quoty [43]
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: [44]
Ú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 [45] 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 [46], NAT, Firewall [47] [48]
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 [49] )
Na stolním PC které je v učebně prosím klikněte na odkaz: [50]
Ú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 2023/24 tuto přednášku vynecháme.
Nástroje pro správu procesů [51]; Balíčkovací systémy [52] [53] ; 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: [54]
Ú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. Vytvořte startovací skript, který inicializuje firewall pomocí iptables. 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. Vytvořte startovací skript, který inicializuje firewall pomocí iptables. 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. Vytvořte startovací skript, který inicializuje firewall pomocí iptables. 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. Vytvořte startovací skript, který inicializuje firewall pomocí iptables. 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ů.
Základní síťové služby; LAMP server [55] [56], DHCP server [57] , NFS [58] [59] a jiné; Nástroje pro kontrolu spuštěných síťových služeb netstat tcpdump nmap iftop [60]
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
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: [61]
Ú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: [62]
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 (x.x.2024)
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, pro identifikaci raidu použijte UUID.
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í 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.
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 (INPUT, OUTPUT) pro službu SSH (port 22 tcp)a NFS (port 2049 tcp,udp) pouze prostřednictvím rozhraní „Host-only network“.
- Povolte přístup (INPUT, OUTPUT) na http a https ze všech rozhraní a IP adres.
- Povolte provoz ICMP (INPUT, OUTPUT) 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 pro systemd, 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 (x.x.2024)
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, pro identifikaci raidu použijte UUID.
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 /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.
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 (INPUT, OUTPUT) pro službu SSH pouze z definovaných IP adres.
- Povolte přístup (INPUT, OUTPUT) 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ů
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