1. Accès et comptes #
Savoir qui fait quoi.
Règles #
- Comptes nominatifs, jamais de connexion directe en root ni de compte partagé.
- Authentification SSH par clé uniquement, clés protégées par phrase de passe, bastion pour l'accès depuis Internet.
- sudo limité aux commandes nécessaires, édité avec
visudodans/etc/sudoers.d/. - Comptes de service sans shell, un par application.
- Revue trimestrielle des comptes, des groupes et des
authorized_keys.
2. Système et services #
Un serveur prévisible.
Règles #
- Distribution avec support long, installation minimale.
- Correctifs de sécurité automatiques ; redémarrages planifiés quand
/var/run/reboot-requiredexiste. - Services gérés par systemd, avec
Restart=on-failureet options de sandboxing. - Jamais de modification des unités fournies par les paquets :
systemctl edit. - Timers systemd plutôt que cron pour la journalisation et le rattrapage.
- Heure synchronisée (
timedatectl, chrony) : indispensable pour corréler les journaux.
3. Stockage, réseau et sécurité #
Les sources d'incidents évitables.
Règles #
- LVM avec de l'espace libre dans le VG ; UUID et
nofaildans fstab ;mount -aavant tout redémarrage. - Séparer les données (
/var/lib,/srv) du système pour qu'un remplissage ne bloque pas l'OS. - Pare-feu en refus par défaut, seuls les ports nécessaires ouverts, et uniquement aux sources nécessaires.
- Services internes en écoute sur
127.0.0.1ou sur le réseau privé. - SELinux ou AppArmor en mode enforcing.
- fail2ban sur les services exposés, journaux d'authentification centralisés.
4. Exploitation #
Durer.
Règles #
- Sauvegardes 3-2-1, chiffrées, avec test de restauration régulier.
- Supervision des disques, de la mémoire, des services, des sauvegardes et des certificats, avec des alertes actionnables.
- Toute configuration décrite dans Git et appliquée par Ansible : le serveur doit pouvoir être reconstruit.
- Scripts avec
set -euo pipefail, vérifiés par ShellCheck. - Chaque intervention tracée (ticket, commandes), avec un plan de retour arrière.
Schéma de référence et vérification rapide #
Check-list.
Check-list #
cat /etc/os-release ; uname -r ; uptime
sudo apt list --upgradable 2>/dev/null | wc -l ; ls /var/run/reboot-required 2>/dev/null
sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication'
sudo ufw status verbose || sudo firewall-cmd --list-all
ss -tlnp
systemctl --failed
df -h ; df -i ; free -h
sudo journalctl -p err -b --no-pager | tail
getent group sudo ; sudo ls /etc/sudoers.d
systemctl list-timers | grep -i backup ; restic snapshots --latest 1
timedatectl | grep synchronized
getenforce 2>/dev/null || sudo aa-status | head -3