4SA313 cvičení Ing. Pavlíčka
Letní semestr 2023/24
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. | 12. února | Hesla |
2. | 19. února | SSH |
3. | 26. února | Unix - základní příkazy, adresářová struktura |
4. | 4. března | Unix - procesy |
5. | 11. března | Certifikáty |
6. | 18. března | Protokol TLS |
7. | 25. března | Konfigurace Apache |
8. | 1. dubna | velikonoce |
9. | 8. dubna | inovační týden |
10. | 15. dubna | LDAP |
11. | 22. dubna | Zabezpečení HTTPS, útoky na weby |
12. | 29. dubna | OpenPGP - podepisování, šifrování, správa klíčů |
13. | 6. května | Osobní certifikáty - podepisování, šifrování |
Termíny testů
termín | zadání testu | body | komentář |
---|---|---|---|
19. 2.; 12:45 až 13:00 | test hesla | 5 | na začátku cvičení |
26. 2.; 16:00 až 22:00 | test na SSH - tunel | 3 | mimo cvičení, test v InSIS |
4. 3.; 16:00 až 22:00 | test na SSH - bastion | 2 | mimo cvičení, test v InSIS |
11. 3.; 16:00 až 22:00 | test na práva | 5 | mimo cvičení, test v InSIS |
18. 3.; 16:00 až 22:00 | test certifikáty | 5 | mimo cvičení, test v InSIS |
do 25. 3. 9:15 | viz sem. úloha | - | zvolit aplikaci pro semestrální úlohu |
25. 3.; 16:00 až 22:00 | test TLS | 5 | mimo cvičení, test v InSIS |
do 18. 4. 23:59 | přihlášení do VPN | 2 | domácí úkol |
do 29. 4. 16:00 | viz sem. úloha | - | instalace aplikace na server (semestrální úloha) |
do 6. 5. 16:00 | viz sem. úloha | - | protokol o auditu (semestrální úloha) |
6. 5.; 16:00 až 22:00 | test PGP podepisování, klíče | 5 | mimo cvičení, test v InSIS |
do 13. 5. 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ář |
---|---|---|---|
4. 3.; do 23:59 | zakázat přihlašování heslem | -2 | |
12. 4.; 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 bis.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-available
zkopírujte000-default-le-ssl.conf
do 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.conf
je potřeba zrušit adminer a LAM (a případně i sks) - v
000-default.conf
je 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 bis.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ř. na anglické wikipedii či článek Bezpečnější web s hlavičkou Content-Security-Policy
- založte si účet na https://report-uri.com/
- přečtěte si informace o CSP Wizard na report-uri.com
- pomocí CSP Wizard vygenerujte CSP pravidla,
- přepněte do provozu,
- nesmí se přepsat CSP pravidla pro 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. 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 bis.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 |
SSH přihlášení uživatele pomocí OpenSSH certifikátu - viz https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Certificate-based_Authentication. Nelze současně s předchozím úkolem (SSH a 2FA). V PuTTY podpora od verze 0.78. | 2 |
SSH přihlášení pomocí privátního klíče umístěného na FIDO2 či čipové kartě/tokenu. Potřebujete HW úložiště privátního klíče. V případě PuTTY se podívejte na https://github.com/NoMoreFood/putty-cac. Pravděpodobně nejde rozumně kombinovat s předchozími úkoly (SSH a 2FA, SSH a certifikáty). Ze tří zadání na SSH si vyberte jen jedno. | 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-3 |
|
|
Doplněn soubor security.txt, viz https://securitytxt.org/ či https://www.michalspacek.cz/k-cemu-je-soubor-security.txt. Dostupný na https://bisxxx.vse.cz/.well-known/security.txt, nedostupný přes http (přesměrování na https). Soubor musí být podepsán pomocí PGP, musí odkazovat odkaz na OpenPGP klíč (ten musí být ke stažení). | 2 |
—
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: