🌐 Návod: Instalace NTP serveru (Chrony) na Minisforum N100
Tento návod popisuje nasazení vysoce přesného časového serveru pomocí Dockeru a Portaineru. Konfigurace je navržena pro české prostředí s důrazem na bezpečnost (Rate-limiting pro WAN) a vysokou dostupnost (Stratum 1 zdroje).
📋 Specifikace řešení
-
Hardware: Minisforum N100 (Intel Alder Lake-N)
-
Platforma: Docker + Portainer (Stack)
-
Software: Chrony (v image
cturra/ntp) -
Cílová skupina: ~300 LAN zařízení + omezený přístup z WAN
🛠️ 1. Příprava prostředí
Procesory Intel N100 mají nízkou spotřebu, což je pro 24/7 NTP server ideální. Pro nejvyšší přesnost doporučujeme:
-
Mít server připojený kabelem, nikoliv přes Wi-Fi (jitter).
-
V BIOSu Minisforum zkontrolovat, zda je zapnuté High Precision Event Timer (HPET).
🚀 2. Nasazení v Portaineru (Stack)
Vytvořte nový Stack (např. ntp-server) a vložte následující kód.
Docker Compose (YAML)
version: "3.8"
services:
ntp:
image: cturra/ntp:latest
container_name: ntp-server
restart: unless-stopped
# Host mód je klíčový pro přesnost mikrosekundy a viditelnost IP adres klientů
network_mode: host
# Vyžadováno pro manipulaci se systémovými hodinami
user: "0:0"
cap_add:
- SYS_TIME
# Definice konfigurace přímo v entrypointu (vše v jednom souboru v Portaineru)
entrypoint:
- /bin/sh
- -c
- |
cat <<EOF > /etc/chrony/chrony.conf
# UPSTREAM ZDROJE (ČR + Svět)
server ntp.nic.cz iburst
server tik.cesnet.cz iburst
server time.cloudflare.com nts iburst
server time.google.com iburst
# SYSTÉMOVÉ NASTAVENÍ
driftfile /var/lib/chrony/chrony.drift
makestep 1.0 3
rtcsync
# ACCES CONTROL LIST (ACL)
# 1. LAN - neomezený přístup
allow 192.168.0.0/16
allow 10.0.0.0/8
# 2. WAN - omezený přístup (Security)
allow 0.0.0.0/0
ratelimit interval 3 burst 8
EOF
# Spuštění démona
exec /usr/sbin/chronyd -d -s
healthcheck:
test: ["CMD", "chronyc", "tracking"]
interval: 60s
timeout: 10s
retries: 3
🔍 3. Diagnostika a ověření (Cheat Sheet)
Tyto příkazy spouštějte v terminálu pro kontrolu stavu:
Kontrola synchronizace s internetem
Zobrazí seznam upstream serverů. Hvězdička (*) značí vybraný hlavní zdroj.
docker exec -it ntp-server chronyc sources -v
Detailní přesnost hodin
Ukazuje, o kolik mikrosekund se váš server liší od atomového času.
docker exec -it ntp-server chronyc tracking
Monitoring klientů a Rate-limitu
Klíčové pro zjištění, zda někdo nezneužívá váš server z WAN.
docker exec -it ntp-server chronyc clients
-
NTP: Počet odpovědí.
-
Drop: Počet zahozených dotazů (pokud klient překročil limit).
🛡️ 4. Bezpečnostní poznámky
-
Rate-limit: Nastavený parametr
interval 3znamená, že klient může poslat dotaz v průměru jednou za 8 sekund. Krátkodobý "náraz" (burst) je povolen do 8 paketů. -
NTS (Network Time Security): Cloudflare zdroj je nastaven s příznakem
nts, což zajišťuje autentizaci času.
📝 5. Údržba
NTP server je prakticky bezúdržbový. Díky Intel N100 a Dockeru spotřebovává minimum RAM (~15 MB) a CPU (~0.1 %). Pokud v budoucnu změníte rozsahy LAN, stačí upravit řádky allow v Portaineru a dát Update the Stack.
No comments to display
No comments to display