4SA313 cvičení Ing. Pavlíčka
Zimní semestr 2026/27
Přidělení bodů
| druh úkolu | počet bodů | poznámka |
|---|---|---|
| semestrální úloha | 30 | Více kontrolních bodů, obhajoba nejpozději do konce zkouškového období. |
| průběžné testy | 40 | 7 testů a 2 domácí úkoly |
| závěrečná zkouška | 30 |
Budou též nadstandardní úkoly, za jejichž splnění získají studenti body navíc.
Obsah cvičení, průběžné testy
Plán cvičení
| týden | téma | |
|---|---|---|
| 1. | 21. září | Hesla |
| 2. | 28. září | státní svátek |
| 3. | 5. října | SSH |
| 4. | 12. října | Unix - základní příkazy, adresářová struktura |
| 5. | 19. října | Unix - procesy |
| 6. | 26. října | Certifikáty, certifikát pro server |
| 7. | 2. listopadu | inovační týden |
| 8. | 9. listopadu | Protokol TLS, konfigurace Apache |
| 9. | 16. listopadu | konfigurace Apache |
| 10. | 23. listopadu | LDAP |
| 11. | 30. listopadu | Zabezpečení HTTPS, útoky na weby |
| 12. | 7. prosince | OpenPGP - podepisování, šifrování, správa klíčů |
| 13. | 14. prosince | Osobní certifikáty - podepisování, šifrování |
Termíny testů
| termín | zadání testu | body | komentář |
|---|---|---|---|
| 5. 10.; 12:45 až 13:05 | test hesla | 5 | na začátku cvičení |
| 12. 10.; 16:00 až 22:00 | test na SSH - tunel | 3 | mimo cvičení, test v InSIS |
| 19. 10.; 16:00 až 22:00 | test na SSH - bastion | 2 | mimo cvičení, test v InSIS |
| 26. 10.; 16:00 až 22:00 | test na práva | 5 | mimo cvičení, test v InSIS |
| do 8. 11. 23:59 | přihlášení do VPN | 5 | domácí úkol |
| do 9. 11. 14:15 | viz sem. úloha | - | zvolit aplikaci pro semestrální úlohu |
| 9. 11.; 16:00 až 22:00 | test certifikáty | 5 | mimo cvičení, test v InSIS |
| 16. 11.; 16:00 až 22:00 | test TLS | 5 | mimo cvičení, test v InSIS |
| do 7. 12. 14:15 | viz sem. úloha | - | instalace aplikace na server (semestrální úloha) |
| do 14. 12. 14:15 | viz sem. úloha | - | protokol o auditu (semestrální úloha) |
| 14. 12.; 16:00 až 22:00 | test PGP podepisování, klíče | 5 | mimo cvičení, test v InSIS |
| do 21. 12. 23:59 | podepisování dokumentů a el. pošty | 5 | domácí úkol |
Termíny z přednášek
Ještě si dovolím připomenout dva termíny z přednášek
| termín | zadání testu | body | komentář |
|---|---|---|---|
| 19. října; do 23:59 | zakázat přihlašování heslem | -2 | za každý započatý týden zpoždění |
| 8. listopadu; do 23:59 | identifikační prostředky na NIA | 2 |
Aplikace adminer a ldap-account-manager
- adminer - stáhnout z https://www.adminer.org, URL aplikace
https://bisxxx.vse.cz/adminer/ - ldap-account-manager - balíček pro Debian,
- adminer dostupný ze školní sítě (146.102.0.0/16) a případně z vybraných IP adres (z domova, …),
- dostupné pouze přes doménové jméno a https, tj. při testování z 4bis.vse.cz následující příkazy nevrátí aplikaci, ale buď odmítnou spojení (kód 4xx či 5xx), nebo přesměrují na
https://bisxxx.vse.cz/adminer/(příkazy jsou pro adminer, pro LAM obdobně)curl http://bisxxx.vse.cz/adminer/např.curl http://bis049.vse.cz/adminer/curl http://146.102.54.xxx/adminer/např.curl http://146.102.54.49/adminer/curl --insecure https://146.102.54.xxx/adminer/např.curl --insecure https://146.102.54.49/adminer/
- úvodní stránka a lam (https://bisxxx.vse.cz/lam/) - na https://securityheaders.com/ hodnocení B a lepší
- úvodní stránka a lam (https://bisxxx.vse.cz/lam/) - na https://observatory.mozilla.org/ hodnocení B a lepší
- budete doplňovat bezpečnostní hlavičky - zjistěte si, proti jakým útokům chrání,
Admin aplikace přes adm-bisxxx.vse.cz
Doporučený postup:
- vytvořte samostatný DocumentRoot pro adm-bisxxx.vse.cz, např.
mkdir /var/www/adm-bis081 - do tohoto adresáře umístěte ukázkový
index.html(např. informací, že se jedná o adm-bis081.vse.cz) - do tohoto adresáře přesuňte adresář s aplikací adminer (
mv /var/www/html/adminer /var/www/adm-bis081) - požádejte o certifikát pro doménové jméno adm-bisxxx.vse.cz, tj. příkaz
certbot --domains adm-bis081.vse.cz, neupravujte konfigurační soubory, - v
/etc/apache2/sites-availablezkopírujte000-default-le-ssl.confdo adm-bisxxx.conf (cp 000-default-le-ssl.conf adm-bis081.conf), - v tomto novém konfiguračním souboru je potřeba změnit ServerName a cesty k certifikátům a i další (např. adresář pro adminer),
- v původním
000-default-le-ssl.confje potřeba zrušit adminer a LAM (a případně i sks) - v
000-default.confje potřeba nastavit přesměrování na HTTPS pro adm-bisxxx.vse.cz; buď použijete regulární výraz nebo dvakrát RewriteCond s operátorem OR; popis viz https://www.jakpsatweb.cz/server/mod-rewrite.html; na 4bis.vse.cz je obecnější zápis, kdy nemusím při doplnění jména upravovat000-default.conf - nastavit použití nové site -
a2ensite adm-bis081.conf - a nyní již zkontrolovat úpravy (
apachectl configtest), restartovat apache (systemctl restart apache2) a otestovat
Content-Security-Policy
Doporučuji následující postup pro vytváření hlavičky Content-Security-Policy:
- nejdříve potřebujete mít nainstalovaný LDAP server a dokonfigurovat aplikaci,
- přečtěte si základní informace o hlavičce Content-Security-Policy, např. Content Security Policy (CSP) od Mozilla či článek Bezpečnější web s hlavičkou Content-Security-Policy
- CSP definuje mnoho pravidel, některé jsou bezpečné (např. upgrade-insecure-requests), některé nahrazují starší direktivy (frame-ancestors),
- hlavním cílem je ochrana proti Cross-Site Scripting (XSS) - tato pravidla je potřeba odladit. Nejvhodnější je nastavit doporučený bezpečný standard a poté zkoušet, zda něco nepřestalo fungovat. V prohlížeči použijte Nástroje pro vývojáře v nich si zobrazit konzoli (console).
- některé aplikace generují CSP hlavičku sami, není vhodné je přepisovat (apache, u Header se podívejte na parametr setifempty). Nepřepisujte CSP pravidla pro aplikace jako adminer či LAM,
Nadstandardní úkoly pro semestrální práci
Zde jsou návrhy rozšiřujících úloh k semestrální práci. Některé návrhy se mohou vzájemně vylučovat, některé návrhy lze realizovat pouze u některých aplikací.
| popis rozšíření | počet bodů |
|---|---|
| ModSecurity - web application firewall. Nainstalovat a nakonfigurovat (návod pro Debian, návod v češtině). Ukázat v logách nějaké zachycené útoky (SQL Injection, XSS, …) | 3 |
| Fail2ban - aplikace v logách hledá útočníky a poté je může blokovat (návod). 1 bod při instalaci a upozorňování na e-mail, 3 body při blokování přes nftables. Alternativou je nainstalovat aplikaci Crowdsec. Poznámky k instalaci. | 1-3 |
| SSH server bude používat dvoufaktorovou autentizaci - použít Time-based One-time Password Algorithm (TOTP), též se používá označní Google Authenticator. Tj. uživatel se přihlásí klíčem a jednorázovým kódem. Pokud dodatečné údaje pro TOTP nemá nastaveny, tak se nepřihlásí. Ze serveru 4bis.vse.cz (popř. z celé školní sítě) by mělo být možné se přihlásit bez dvoufaktorové autentizace, tj. pouze klíčem. | 2 |
| Přihlášení do aplikace pomocí dvoufaktorové autentizace (TOTP). Část aplikací dvoufaktorovou autentizaci nepodporuje. V případě WordPressu je to součást zadání. | 1-2 |
| Konfigurace serveru, instalace a konfigurace aplikace pomocí AI agenta | 5 |
Nadstandardní úkoly s použitím AI agenta - podmínky:
- úpravy/zjišťování dělá jeden či více AI agentů. Tj. ne že v chatu Vám poradí příkazy a Vy je sami provedete.
- přihlásíte se k použití AI agenta předem přes příslušný rozpis témat v InSIS.
- vytvoříte a odevzdáte protokol, který bude obsahovat:
- základní informace,
- jaké nástroje jste použili (která LLM, které agenty, co je potřeba si nainstalovat, aby bylo možné zopakovat to co jste dělali),
- výsledky - co agenti zvládli sami, co ne či jen částečně; náklady (kolik to zabralo času, počet kreditů …)
- protokol (očekávám, že použijete agenty, kteří logují/auditují průběh). Můžete mít více protokolů - různí agenti, různá LLM, rozdělení na více časových oken, ..
—
Různé služby pro testování webů/serverů/domén:
https://webbkoll.dataskydd.net/en/
https://observatory.mozilla.org/
AbuseIPDB is an IP address blacklist for webmasters and sysadmins to report IP addresses engaging in abusive behavior on their networks: