Image OS et premier boot#
Pourquoi#
Le choix de l’image et la configuration du tout premier boot déterminent des contraintes qui seront difficiles à corriger après coup, en particulier l’accès SSH (si mal configuré, c’est l’accès à une machine sans écran qui se perd) et la résolution DNS du nom public du serveur.
Comment#
Flasher l’image#
Avec rpi-imager, choisir Raspberry Pi OS Lite (64-bit), pas la
version desktop, inutile pour un serveur, et qui consomme des ressources
sans bénéfice. Dans les options avancées de l’imager :
- Hostname : le nom qui sera publié au DNS (ex.
time.example.org) - SSH : activé, par clé publique uniquement, jamais par mot de passe pour un serveur exposé sur Internet
- Wi-Fi : désactivé (Ethernet uniquement, plus stable, moins de surface d’attaque radio)
- Locale et fuseau :
UTCpour le fuseau, quelle que soit la locale choisie, un serveur de temps ne doit jamais raisonner en heure locale
Premier boot#
ssh utilisateur@time.example.org
sudo -i
cat /etc/os-release
uname -aHostname et FQDN#
hostnamectl set-hostname time.example.org
# Hostname COURT uniquement, pas le FQDN complet
# 127.0.1.1 (pas 127.0.0.1) : convention Debian qui réserve une adresse de
# loopback distincte au nom de la machine elle-même, pour ne jamais entrer
# en conflit avec la véritable entrée "localhost"
grep -qE '^127\.0\.1\.1\s+time\b' /etc/hosts || echo "127.0.1.1 time" >> /etc/hosts
# Le FQDN complet doit résoudre via le DNS PUBLIC, pas via /etc/hosts
host time.example.orgErreurs à éviter#
Le FQDN public ne doit jamais être placé dans
/etc/hostspointé sur loopback. C’est une erreur courante (“pour que ça marche tout de suite”) qui casse silencieusement plusieurs choses en aval : la validation ACME de Let’s Encrypt (qui vérifie la résolution DNS publique), tout test de connectivité externe, et surtout ça masque un vrai problème de configuration DNS derrière un faux “ça marche en local”. Seul le hostname court (sans le domaine) va dans/etc/hosts.
- Activer SSH par mot de passe “pour faire vite”. Un serveur NTP public reçoit du trafic de scan en continu dès sa mise en ligne (observé : plusieurs milliers d’IPs bannies en quelques semaines sur ce projet). L’authentification par clé n’est pas une option, c’est un prérequis.
- Garder le Wi-Fi actif “au cas où”. Chaque interface réseau active est une surface d’attaque et une source de latence variable. Un service de temps de référence doit avoir le chemin réseau le plus simple et le plus prévisible possible.
Vérifier#
uname -a
# Confirme l'architecture (aarch64) et le noyau de base
cat /etc/os-release
# Confirme la version de Debian sous-jacente
host time.example.org
# Doit retourner l'IP publique du serveur, pas 127.0.1.1Si host ne résout pas encore vers la bonne IP, ce n’est pas bloquant à ce
stade (le DNS peut être configuré en parallèle), mais il faudra que ce
soit résolu avant le chapitre NGINX/Let’s Encrypt, qui dépend de cette
résolution publique pour la validation du certificat.