user@homelab:~/docs$ cat hardening.md
Hardening a režim serveru
Aktualizace, synchronizace času, firewall, víko, swap a ochrana baterie
# obsah
Přehled
| Oblast | Nastavení |
|---|---|
| aktualizace | unattended-upgrades (bezpečnostní), občas ručně full-upgrade |
| čas | chrony, časové pásmo Europe/Prague |
| firewall | ufw: příchozí ve výchozím stavu zakázané, explicitní seznam povolení |
| napájení | víko ignorované, baterie omezená na ~60 % |
| paměť | swap vypnutý (požadavek Kubernetes) |
1. Aktualizace a čas
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y unattended-upgrades chrony
sudo timedatectl set-timezone Europe/Pragueunattended-upgrades instaluje jen bezpečnostní aktualizace; full-upgrade spustit občas ručně a restartovat, pokud existuje /var/run/reboot-required.
2. Firewall
sudo ufw allow OpenSSH # před zapnutím, jinak se relace odřízne
sudo ufw enable| Port / síť | Účel |
|---|---|
22/tcp | SSH |
6443/tcp | Kubernetes API |
80/tcp, 443/tcp | Traefik ingress |
10.42.0.0/16 | síť podů k3s |
10.43.0.0/16 | síť služeb k3s |
Z internetu stejně nic dostupné není: na routeru není žádný port forwarding.
3. Víko
# /etc/systemd/logind.conf.d/lid.conf
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignoreDrop-in soubor místo úpravy logind.conf, takže ho aktualizace balíčků nepřepíšou. Platí po restartu.
4. Vypnutý swap
sudo swapoff -a
sudo sed -i '/swap/ s/^/#/' /etc/fstab
sudo rm -f /swap.imgKubernetes plánuje pody podle požadavků na paměť; swap by skutečný nedostatek paměti zakryl. Bez swapu zasáhne OOM killer, proto má každý pod limit paměti.
5. Ochrana baterie
echo 1 | sudo tee /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode
echo 'w /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode - - - - 1' | sudo tee /etc/tmpfiles.d/battery.confOvladač ideapad_laptop zastaví nabíjení na ~60 %; systemd-tmpfiles nastavení obnoví při každém startu.
Ověření
sudo ufw status verbose
free -h | grep Swap # Swap: 0B 0B 0B
cat /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode # 1
timedatectl | grep -E "Time zone|synchronized"