user@homelab:~/docs$ cat 08-hardening.md

Hardening a režim serveru

Aktualizace, čas, firewall, zavřené víko, swap a ochrana baterie

# obsah

Aktualizace a čas

Instalace proběhla bez sítě, takže systém neměl žádné aktualizace:

shell @ server
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y unattended-upgrades chrony
sudo timedatectl set-timezone Europe/Prague
  • unattended-upgrades instaluje bezpečnostní aktualizace automaticky,
  • chrony synchronizuje čas. Certifikáty a logy na přesném čase závisí.

Firewall (ufw)

Firewall propouští jen to, co povolíš. Pravidlo pro SSH musí být povolené před zapnutím, jinak by firewall spojení odřízl.

shell @ server
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Porty pro Kubernetes se přidávaly až s k3s, viz k3s. Výsledný stav:

Port / síťÚčel
22/tcpSSH
6443/tcpKubernetes API (kubectl)
80/tcp, 443/tcpTraefik ingress
10.42.0.0/16síť podů k3s
10.43.0.0/16síť služeb (Services) k3s

Výchozí politika: deny (incoming), allow (outgoing).

Zavřené víko neuspí systém

shell @ server
sudo mkdir -p /etc/systemd/logind.conf.d
sudo nano /etc/systemd/logind.conf.d/lid.conf
config @ server
[Login]
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

Tři řádky pokrývají běh na baterii, na nabíječce a s monitorem. Projeví se po restartu. Konfigurace je v logind.conf.d/ místo přímé úpravy logind.conf, takže ji aktualizace systému nepřepíší.

Vypnutí swapu

Kubernetes standardně nechce swap, protože by plánoval pody podle paměti, kterou ve skutečnosti nemá. Na CKA je vypnutý swap základní požadavek.

shell @ server
sudo swapoff -a
sudo sed -i '/swap/ s/^/#/' /etc/fstab
sudo rm -f /swap.img
free -h

Ochrana baterie

Notebook na nabíječce 24/7 drží baterii na 100 %, a to ji opotřebovává. Ovladač ideapad_laptop umí conservation mode, který nabíjení zastaví na ~60 %:

shell @ server
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.conf

Druhý řádek přes systemd-tmpfiles zařídí, že se režim zapne při každém startu.

Kontrola po restartu

shell @ server
free -h | grep Swap
cat /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode
ip -br addr show wlp3s0

Očekávaný výsledek: Swap: 0B 0B 0B, 1 a wlp3s0 UP <ip-serveru>/24.