Závěrečná kontrola: Váš server pod drobnohledem
Modul 10: Zůstaňte v bezpečí · Doba čtení: 10 min.
Cíl lekce: Po této lekci dokážete posoudit svůj server pomocí kontrolního seznamu a automatické kontroly zvenku, víte, které body mají přednost, a máte pevný rytmus údržby a stručnou dokumentaci serveru.
Klíčové pojmy: kontrolní seznam, priorita, kontrola zvenku, dokumentace serveru, rytmus údržby (týdně, měsíčně, čtvrtletně, ročně), datum konce podpory vydání, test obnovy
Od jednotlivých lekcí k jednomu celku
V tomto kurzu jste krok za krokem nastavili server: bezpečné přihlašování, oprávnění, aktualizace, firewall, služby, web s https, zálohy, monitoring a kontejnery. V této poslední lekci vše shrnete do jednoho seznamu. Projdete svůj server, necháte program kurzu podívat se na něj zvenku a stanovíte, jak budete server v příštích letech udržovat.
Server není nikdy "hotový". Software zastarává, certifikáty vypršují, disky se zaplňují, vydání se dostávají na konec podpory (end of life). Pevný rytmus je proto stejně důležitý jako první nastavení.
Kontrolní seznam seřazený podle důležitosti
Ne všechno je stejně naléhavé. Procházejte seznam shora dolů: první bloky zabrání většině problémů.
Blok 1: nikdo se jen tak nedostane dovnitř (modul 2, 3, 5)
- Přihlašování pouze pomocí klíčů;
PasswordAuthentication noaKbdInteractiveAuthentication no, ověřeno pomocísudo sshd -T. - Root se nepřihlašuje heslem; pracujete jako běžný uživatel se sudo.
- Databáze, cache a vyhledávací clustery naslouchají na
127.0.0.1; porty 3306, 5432, 6379, 9200 a 27017 jsou zvenku uzavřené, pro IPv4 i IPv6. - Firewall, který ve výchozím stavu blokuje veškerý příchozí provoz; otevřené jsou jen porty, které potřebujete.
- fail2ban běží pro SSH (
fail2ban-client status sshd).
Blok 2: bezpečnostní díry se záplatují (modul 4)
- Automatické bezpečnostní aktualizace jsou zapnuté a ověřené (log,
apt list --upgradable). - Plán pro restartování;
/var/run/reboot-requiredtam nezůstává celé týdny. - Vydání je stále podporováno; datum konce podpory máte v kalendáři.
Blok 3: můžete se vrátit (modul 8)
- Šifrované zálohy mimo server, automatické a s monitoringem.
- Test obnovy je proveden a víte, jak dlouho obnova trvá.
- Víte, jak vytvořit snapshot a otevřít konzoli.
Blok 4: vnější stránka je v pořádku (modul 7)
- Záznamy A a AAAA ukazují na Váš server; reverzní DNS (PTR) ukazuje zpět na stejné jméno.
- https s platným certifikátem, který se sám obnovuje; http přesměrovává na https.
- HSTS a několik bezpečnostních hlaviček;
security.txts funkční kontaktní adresou a datem vypršení.
Blok 5: vidíte, co se děje (modul 6, 8)
- Journal je trvalý; můžete číst logy z doby před restartem.
- Monitoring zvenku (dostupnost, certifikát) i zevnitř (disk, služby), s upozorněními, která skutečně dorazí.
systemctl --failedje prázdný.
Blok 6: kontejnery pod kontrolou (modul 9, pokud používáte Docker)
- Porty kontejnerů na
127.0.0.1nebo za reverzní proxy; žádnýdocker.sockv kontejnerech, které to opravdu nepotřebují. - Volumes jsou součástí zálohy; images se pravidelně aktualizují.
- Tajné údaje jsou v souborech
.envs přísnými oprávněními, ne v Gitu.
Kontrola zvenku
Část tohoto seznamu dokáže program kurzu zkontrolovat zvenku, přesně tak, jak Váš server vidí kdokoli na internetu. Závěrečný úkol (Z10.4) spojuje kontroly z předchozích úkolů:
| Oblast | Co program dělá | Z lekce |
|---|---|---|
| SSH | Přečte banner s verzí a zjistí, jaké způsoby přihlášení Váš server nabízí pro Vaše uživatelské jméno; nepřihlašuje se | 2.2 |
| Databázové porty | Pouze se pokusí o spojení na 3306, 5432, 6379, 9200 a 27017; nic neodesílá | 5.1 |
| https | Zkontroluje certifikát (platný, důvěryhodný, správné jméno) | 7.3 |
| Hlavičky | Přečte HSTS a další bezpečnostní hlavičky | 7.4 |
| security.txt | Stáhne /.well-known/security.txt a zkontroluje Contact a Expires | 7.4 |
| Kontejner | Hledá hlavičku s Vaším kódem, kterou nastavila Vaše reverzní proxy | 9.4 |
Program na Vašem serveru nic nespouští, nezkouší hesla a neskenuje žádné další porty. Každou adresu lze zkontrolovat jen několikrát za hodinu. Zelený výsledek znamená: zvenku nejsou vidět nejznámější chyby. Neříká nic o tom, co se děje uvnitř Vašeho serveru; to je zbytek kontrolního seznamu a ten projdete sami.
Dokumentace serveru
Pro každý server si sepište krátký dokument a uchovávejte ho mimo server (například ve správci hesel nebo ve sdílené složce):
- název, IP adresy, poskytovatel, vydání a datum konce podpory;
- co na serveru běží (služby, kontejnery, weby) a proč;
- které porty jsou otevřené a k čemu;
- kde jsou zálohy, jak je obnovit a kdy proběhl poslední test;
- jaké tajné údaje jsou na serveru (ne samotné tajné údaje, ale které to jsou a kde se mění);
- co jste vědomě udělali jinak než ve výchozím stavu (například doporučení nástroje Lynis, které jste přeskočili, lekce 10.1);
- kdo má přístup (které klíče jsou v
authorized_keys).
Tato dokumentace je k nezaplacení při incidentu (lekce 10.3), při upgradu vydání (lekce 4.3) a když správu převezme někdo jiný.
Rytmus údržby
Bez rytmu pozornost ochabuje. Příklad pro malý server; přizpůsobte si ho své situaci.
| Kdy | Co |
|---|---|
| Každý týden | Projít monitoring a upozornění; systemctl --failed; restartovat, pokud existuje /var/run/reboot-required (nebo ověřit, že automatický restart proběhl) |
| Každý měsíc | apt list --upgradable (nezůstává něco viset?); docker compose pull a up -d pro Vaše kontejnery, spolu s poznámkami k vydání; místo na disku; fail2ban-client status; log s ohledem na nápadné chyby (journalctl -p err --since "1 month ago") |
| Každé čtvrtletí | Test obnovy ze zálohy; projít authorized_keys a uživatele (odebrat ty, kdo už nemají mít přístup); znovu spustit Lynis; znovu provést závěrečnou kontrolu zvenku (úkol Z10.4) |
| Každý rok | Aktualizovat security.txt (Expires); zkontrolovat datum konce podpory vydání a naplánovat upgrade; aktualizovat dokumentaci serveru a krizový plán |
Zapište si tyto termíny do kalendáře. Velkou část můžete také automatizovat pomocí monitoringu z lekce 8.3, ale dívat se je stále potřeba.
V praxi
Ať je Váš server u WebOké, nebo u jiného poskytovatele: poskytovatel se stará o hardware, síť a možnost vytvářet snapshoty a zálohy, Vy o vše uvnitř serveru. Tento kurz je svépomoc: nikdo se Vám na server nedívá. S tímto kontrolním seznamem, dokumentací a rytmem ale máte vše potřebné k tomu, abyste správu zvládli samostatně a dobře.
Shrnutí
- Procházejte server po blocích: nikdo se jen tak nedostane dovnitř, bezpečnostní díry se záplatují, můžete se vrátit, vnější stránka je v pořádku, vidíte, co se děje, kontejnery pod kontrolou.
- Kontrola zvenku se dívá na způsoby přihlášení přes SSH, databázové porty, https, hlavičky, security.txt a hlavičku Vašeho kontejneru; zbytek projdete sami.
- Veďte dokumentaci serveru, uloženou mimo server.
- Pracujte v pevném rytmu: týdně, měsíčně, čtvrtletně a ročně.
Kvíz
Úkol
Úkol Z10.4: Závěrečný úkol: Váš server zvenku. Nechte program kurzu zkontrolovat Váš server zvenku najednou: způsoby přihlášení přes SSH pro Vaše uživatelské jméno, pět databázových portů, https a hlavičky Vašeho webu, Váš security.txt a hlavičku X-Weboke-Cursus s Vaším kódem na jménu, kde běží Váš kontejner. Kromě toho vyplňte kontrolní seznam bloků 1 až 6 pro to, co program vidět nemůže.
Úkol O10.4: Váš rytmus údržby. Vytvořte si vlastní dokumentaci serveru a rytmus údržby: co děláte týdně, měsíčně, čtvrtletně a ročně, a zapište si tyto termíny do kalendáře.
Úkol O10.4: Váš rytmus údržby
Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.
Každý týden zkontrolovat aktualizace a upozornění; každý měsíc provést malou obnovu ze zálohy a zkontrolovat přístupy (authorized_keys, uživatelé); každé čtvrtletí úplnou závěrečnou kontrolu; každý rok kompletní obnovu ze zálohy a prodloužení security.txt.
Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.
Doporučujeme k přečtení
- Zabezpečení VPS: prvních pět minut
- HSTS a bezpečnostní hlavičky pro Váš web
- Záložní strategie: pravidlo 3-2-1 pro Vaši vlastní firmu
- securitytxt.org (vysvětlení a generátor pro security.txt): https://securitytxt.org/
- Nizozemské NCSC, Sestavení strategie zálohování (nizozemský zdroj, v nizozemštině): https://www.ncsc.nl/back-up/een-back-up-strategie-opstellen
