-
Notifications
You must be signed in to change notification settings - Fork 0
Zabezpeceni serveru
Základní opatření, která mají skutečný efekt, a poznámka o těch, která ho nemají.
Předpoklad je, že máš vyřešený firewall — bez toho zbytek nedává smysl.
Zdaleka nejdůležitější položka, protože je to jediná cesta dovnitř.
Tady je nutné minimum. Protokol, certifikáty, tunely, hardwarové klíče a omezení v authorized_keys jsou v SSH do hloubky.
# na klientovi
ssh-keygen -t ed25519 -C "martin@notebook"
ssh-copy-id -i ~/.ssh/id_ed25519.pub servered25519 je dnes výchozí volba. RSA jen tam, kde protistrana neumí nic novějšího, a pak minimálně 4096 bitů.
Ověř si, že se přihlásíš klíčem, než vypneš hesla. Otevři si druhé SSH spojení a nech ho běžet, dokud si nejsi jistý.
/etc/ssh/sshd_config.d/99-vlastni.conf:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
AllowUsers martin
ClientAliveInterval 300
ClientAliveCountMax 2
MaxAuthTries 3
sshd -t # kontrola syntaxe
systemctl reload sshdPasswordAuthentication no je jediné opatření, které z devadesáti procent řeší problém hrubé síly. Bez hesel nemá útočník co zkoušet.
AllowUsers je podceňovaná drobnost — omezí přihlášení na konkrétní účty bez ohledu na to, kolik jich na stroji je.
Port 2222
Neposkytuje skutečnou bezpečnost. Kdo tě cíleně skenuje, port najde za pár vteřin.
Radikálně ale zmenší množství záznamů v logu, protože plošné skenování jde na port 22. To má hodnotu samo o sobě: v čistém logu si všimneš skutečného pokusu.
Nevystavovat SSH do internetu vůbec a chodit přes WireGuard. Když se dá, dělej to takhle.
Druhá nejlepší je klíč, který se nedá zkopírovat — FIDO2 token s vyžadovaným dotekem. Viz SSH do hloubky.
apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades/etc/apt/apt.conf.d/50unattended-upgrades:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "ty@example.cz";
Bezpečnostní aktualizace automaticky, restart ne. Automatický restart serveru uprostřed noci je způsob, jak se ráno divit.
Restart po aktualizaci jádra ale potřebuješ. needrestart ti to připomene:
apt install needrestartunattended-upgrades neaktualizuje obrazy v Dockeru. Na to potřebuješ vlastní postup — buď Watchtower pro automatiku, nebo pravidelné ruční:
docker compose pull && docker compose up -dAutomatická aktualizace kontejnerů je dvojsečná: opraví díry, ale taky ti může rozbít funkční službu. U databází ji nedoporučuju vůbec.
adduser martin
usermod -aG sudo martin
passwd -l root # zamkne přímé přihlášení jako rootPracuj pod běžným účtem, sudo používej na jednotlivé příkazy. sudo -i na celou relaci jen když opravdu musíš.
Zásadní věc, kterou hodně lidí nezná: kdo je ve skupině docker, je fakticky root. Může připojit kořenový systém do kontejneru a udělat cokoliv.
docker run -v /:/host -it alpine chroot /hostPřidání uživatele do skupiny docker tedy není „drobné zjednodušení", je to udělení plných práv. Kdo to bere vážně, používá rootless Docker nebo Podman.
journalctl -u ssh -f
lastb | head -20 # neúspěšná přihlášení
last | head -20 # úspěšná
ss -tulpn # co posloucháTen lastb stojí za občasné spuštění. Řekne ti, jestli tě někdo zkouší, a last jestli se někomu povedlo.
Pravidelnou ochranu proti hrubé síle řeší fail2ban.
Vypni, co nepotřebuješ. Podívej se na ss -tulpn a zeptej se u každé položky, proč tam je.
Publikuj na loopback. Všechno, co nemá být veřejné, poslouchá na 127.0.0.1 a ven jde přes reverse proxy. Pro Docker viz Docker a firewall.
Odděl sítě. Služby vystavené do internetu dej do vlastní VLANy s pravidlem, které jim zakazuje iniciovat spojení dovnitř.
Nesdílej hesla mezi službami. Správce hesel a náhodné heslo na každou věc.
Zálohy jsou bezpečnostní opatření, ne provozní. Proti ransomwaru je to jediná skutečná obrana.
Pravidlo 3-2-1: tři kopie, dvě různá média, jedna mimo dům.
Zásadní je offline nebo neměnná kopie. Záloha na připojený síťový disk, do kterého má server zapisovací přístup, ti při ransomwaru nepomůže — zašifruje se s tím zbytkem.
Kopie mimo dům musí být šifrovaná u tebe, ne až v cíli. Jak na to je v šifrování disků a souborů.
A hlavně: zkus obnovu. Nevyzkoušená záloha je jen naděje.
Věci, které se doporučují a jejichž přínos je zanedbatelný:
Skrývání SSID a filtrování MAC adres — viz WiFi.
Přesun SSH na jiný port jako jediné opatření — zmenší log, nezastaví útočníka.
Zakázání ping — znemožní ti diagnostiku a útočníka nezastaví. V IPv6 navíc zablokování ICMPv6 rozbije síť.
Antivirus na Linuxu — smysl má na souborovém serveru pro sdílení s Windows, jinak ne.
Čas investovaný do klíčů, aktualizací a záloh má stonásobně větší návratnost.
Našel jsi chybu nebo něco chybí? Založ issue nebo pošli pull request. — Psáno 2026, licence CC BY-SA 4.0
Základy
- Cesta paketu
- Vrstvy a zapouzdření
- MAC, ARP a přepínání
- Prefixy a masky
- Směrování
- DHCP a DNS
- Porty a spojení
- NAT a port forwarding
Domácí síť
IPv6
Linux firewall
TLS a reverse proxy
- TLS a HTTPS
- HTTP, QUIC a WebSocket
- Reverse proxy
- Caddy
- Nginx
- Traefik
- Certifikáty a Let's Encrypt
- Vlastní certifikační autorita
Kryptografie
- Stavební kameny
- Veřejný a soukromý klíč
- Diffie-Hellman
- Hashe, HMAC a podpisy
- Náhodnost a entropie
- TLS handshake
- Postkvantová kryptografie
- Šifrování disků a souborů
Virtualizace a kontejnery
Diagnostika
Vzdálený přístup
Provoz a bezpečnost
Praxe