Maintenance et Backup
Procédures de maintenance régulière et stratégies de backup pour l'infrastructure Olympus Lab.
Vue d'ensemble
Composants critiques à maintenir
- Proxmox VE (fox-factory)
- OPNsense (Olympus - VM 100)
- Cloudflare Tunnel (Hermes - CT 202)
- Configurations firewall
- Documentation
Philosophie
- Prévention : Mises à jour régulières pour éviter les failles de sécurité
- Backup : Toujours avoir un plan B
- Documentation : Chaque modification est documentée
- Testing : Tester avant de déployer en production
Calendrier de maintenance
Hebdomadaire
Dimanche soir (ou moment calme) :
- ✅ Vérifier l'état des services (Proxmox, OPNsense, Tunnel)
- ✅ Consulter les logs Cloudflare Access
- ✅ Vérifier l'espace disque
Temps estimé : 10-15 minutes
Mensuel
Premier dimanche du mois :
- ✅ Mettre à jour Proxmox
- ✅ Mettre à jour OPNsense
- ✅ Mettre à jour le container Cloudflare Tunnel
- ✅ Backup des configurations
- ✅ Vérifier les règles firewall (supprimer l'inutile)
- ✅ Tester les accès distants
Temps estimé : 1-2 heures
Trimestriel
Début de chaque trimestre :
- ✅ Audit de sécurité complet
- ✅ Review des logs sur 3 mois
- ✅ Mettre à jour la documentation
- ✅ Tester la restauration des backups
- ✅ Planifier les évolutions (nouvelles VMs, services)
Temps estimé : 2-3 heures
Mises à jour
Proxmox VE
Vérification des mises à jour
# SSH vers Proxmox
ssh root@192.168.1.51
# Vérifier les updates disponibles
apt update
apt list --upgradable
Mise à jour
# Mettre à jour les packages
apt update
apt dist-upgrade -y
# Si le kernel est mis à jour, redémarrer
reboot
Après reboot :
# Vérifier la version
pveversion
# Vérifier que tout fonctionne
pct list
qm list
Via l'interface Web
- https://proxmox.olympus-lab.org
- Node (fox-factory) → Updates
- Refresh
- Upgrade (si updates disponibles)
- Reboot si nécessaire
Fréquence : Mensuel
OPNsense
Via l'interface Web
- https://opnsense.olympus-lab.org
- System → Firmware → Status
- Check for updates
- Si updates disponibles :
- Download → Attendre
- Install → Confirmer
- Reboot automatique après installation
Durée : 5-10 minutes (le firewall redémarre)
⚠️ Important : Prévoir une fenêtre de maintenance car tout l'accès Internet est coupé pendant le reboot.
Fréquence : Mensuel
Backup avant update
TOUJOURS faire un backup avant une mise à jour OPNsense :
System → Configuration → Backups → Download configuration
Sauvegarder le fichier XML localement.
Container Cloudflare Tunnel (Hermes)
Mise à jour du système
# Entrer dans le container
pct enter 202
# Mettre à jour Ubuntu
apt update && apt upgrade -y
# Sortir
exit
Mise à jour de cloudflared
# Entrer dans le container
pct enter 202
# Télécharger la dernière version
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /tmp/cloudflared
# Remplacer l'ancien
mv /tmp/cloudflared /usr/local/bin/cloudflared
chmod +x /usr/local/bin/cloudflared
# Vérifier la version
cloudflared --version
# Redémarrer le service
systemctl restart cloudflared
# Vérifier que tout fonctionne
systemctl status cloudflared
journalctl -u cloudflared -n 20
Statut attendu : 4 connexions établies ✅
Fréquence : Mensuel
Stratégie de backup
Priorités de backup
Critique (journalier recommandé) :
- Configuration OPNsense
- Configuration Cloudflare Tunnel
- Snapshots des VMs critiques
Important (hebdomadaire) : 4. Containers LXC 5. Configuration Proxmox
Optionnel (mensuel) : 6. VMs de développement/test
Backup OPNsense
Backup manuel
Via l'interface Web :
System → Configuration → Backups → Download configuration
Fichier : config-fox-factory.localdomain-YYYYMMDD.xml
Sauvegarde : Sur ton PC dans un dossier dédié
C:\Backups\olympus-lab\opnsense\
Backup automatique (à configurer)
OPNsense peut envoyer des backups automatiques :
System → Configuration → Backups → Enable automatic backup
Destination: Email, FTP, etc.
Fréquence recommandée : Hebdomadaire
Restauration
System → Configuration → Backups
↓
Choose file (XML)
↓
Restore configuration
↓
Reboot
Backup Cloudflare Tunnel
Fichiers critiques
/etc/cloudflared/config.yml
/etc/cloudflared/f7fedba1-6be1-4408-a755-e9badd33f9a0.json
⚠️ Le fichier .json est CRITIQUE : Sans lui, impossible de reconnecter le tunnel !
Backup manuel
# Depuis Proxmox
pct exec 202 -- tar czf /tmp/cloudflared-backup.tar.gz /etc/cloudflared
# Télécharger sur ton PC
pct pull 202 /tmp/cloudflared-backup.tar.gz ~/cloudflared-backup-$(date +%Y%m%d).tar.gz
Sauvegarde : Sur ton PC + cloud (Google Drive, Dropbox)
C:\Backups\olympus-lab\cloudflared\
Restauration
# Uploader le backup
pct push 202 ~/cloudflared-backup-YYYYMMDD.tar.gz /tmp/cloudflared-backup.tar.gz
# Extraire
pct exec 202 -- tar xzf /tmp/cloudflared-backup.tar.gz -C /
# Redémarrer le service
pct exec 202 -- systemctl restart cloudflared
# Vérifier
pct exec 202 -- systemctl status cloudflared
Fréquence recommandée : Après chaque modification de la config
Backup VMs et Containers
Snapshots manuels
Avant une modification importante :
# Snapshot d'une VM
qm snapshot 100 pre-update-$(date +%Y%m%d) --description "Avant mise à jour OPNsense"
# Snapshot d'un container
pct snapshot 202 pre-config-change-$(date +%Y%m%d) --description "Avant modif config tunnel"
Restauration d'un snapshot
# Lister les snapshots
qm listsnapshot 100
# Restaurer
qm rollback 100 nom-du-snapshot
# Pour container
pct listsnapshot 202
pct rollback 202 nom-du-snapshot
Backup complet (vzdump)
Backup d'une VM :
# Backup de OPNsense
vzdump 100 --compress zstd --mode snapshot --storage local
# Fichier créé dans /var/lib/vz/dump/
# vzdump-qemu-100-YYYY_MM_DD-HH_MM_SS.vma.zst
Backup d'un container :
# Backup du container Cloudflare
vzdump 202 --compress zstd --mode snapshot --storage local
Télécharger le backup :
# Sur ton PC
scp root@192.168.1.51:/var/lib/vz/dump/vzdump-*.zst ~/Backups/olympus-lab/
Restauration :
Via l'interface Web Proxmox :
- Datacenter → Storage (local) → Backups
- Sélectionner le backup
- Restore
Backup automatique avec Proxmox
Configurer un job de backup
Via l'interface Web :
Datacenter → Backup → Add
↓
Schedule: Daily at 2:00 AM
Selection Mode: Include selected VMs
VMs: 100 (OPNsense), 202 (Hermes)
Storage: local
Compression: ZSTD
Mode: Snapshot
Email notification: [ton email]
↓
Create
Résultat : Backup automatique tous les jours à 2h du matin.
Rétention : Configurer la rétention (ex: garder 7 derniers backups)
Monitoring
Vérifications quotidiennes (automatisable)
Espace disque
# Sur Proxmox
df -h
# Vérifier que / et /var/lib/vz ne sont pas pleins
# Alerte si > 80%
Services critiques
# Statut OPNsense
qm status 100
# Doit être "running"
# Statut Cloudflare Tunnel
pct status 202
pct exec 202 -- systemctl status cloudflared
# Doit être "active (running)"
Connectivité Internet
# Depuis Proxmox
ping -c 3 1.1.1.1
# Depuis un container en LAN
pct enter 200
ping -c 3 google.com
exit
Logs à surveiller
Cloudflare Access Logs
Dashboard : https://one.dash.cloudflare.com/
Logs → Access
↓
Voir :
- Tentatives de connexion refusées (suspicious ?)
- Patterns d'accès inhabituels
- Accès depuis des pays inattendus
Alertes à configurer :
- Email si > 5 tentatives refusées en 1h
- Email si accès depuis un nouveau pays
OPNsense Firewall Logs
Via l'interface Web :
Firewall → Log Files → Live View
↓
Filtrer sur "Block"
↓
Identifier les patterns suspects :
- Port scanning (nombreux ports différents)
- Brute force SSH (nombreuses tentatives port 22)
- Accès depuis IP suspectes
Action : Créer des règles de blocage si nécessaire
Proxmox Logs
# Logs système
journalctl -xe
# Logs des VMs
qm showcmd 100
# Logs des containers
pct exec 202 -- journalctl -n 50
Nettoyage
Proxmox
Nettoyer les anciens kernels
# Lister les kernels installés
dpkg --list | grep linux-image
# Supprimer les anciens (garder le current + 1)
apt autoremove -y
Nettoyer le cache APT
apt clean
apt autoclean
Supprimer les anciens backups
# Lister
ls -lh /var/lib/vz/dump/
# Supprimer manuellement les plus vieux
rm /var/lib/vz/dump/vzdump-qemu-100-OLD_DATE.vma.zst
Ou configurer la rétention automatique dans le job de backup.
OPNsense
Supprimer les anciens backups config
System → Configuration → Backups
↓
Liste des backups automatiques
↓
Supprimer les plus anciens (garder les 10 derniers)
Nettoyer les logs
Les logs sont automatiquement rotatés par OPNsense.
Optionnel : Réduire la rétention si l'espace disque est limité
System → Settings → Logging → Keep logs: 7 days
Procédures d'urgence
OPNsense ne répond plus
Symptômes
- Pas d'accès Internet depuis les VMs
- Interface Web inaccessible
- Pas de réponse ping sur 10.0.1.1
Solution
Via console Proxmox :
# Vérifier le statut
qm status 100
# Si stopped, démarrer
qm start 100
# Si running mais ne répond pas, redémarrer
qm reboot 100
# En dernier recours, forcer l'arrêt
qm stop 100
qm start 100
Après redémarrage :
- Attendre 2-3 minutes (OPNsense boot complet)
- Tester :
ping 10.0.1.1 - Vérifier l'interface Web
Si ça ne fonctionne toujours pas : Restaurer depuis backup
Cloudflare Tunnel down
Symptômes
- Erreur 1033 sur proxmox.olympus-lab.org
- Pas d'accès aux services
Solution
# Vérifier le container
pct status 202
# Démarrer si arrêté
pct start 202
# Vérifier le service
pct exec 202 -- systemctl status cloudflared
# Redémarrer le service
pct exec 202 -- systemctl restart cloudflared
# Voir les logs
pct exec 202 -- journalctl -u cloudflared -f
Si erreurs dans les logs :
# Vérifier la config
pct exec 202 -- cat /etc/cloudflared/config.yml
# Tester manuellement
pct exec 202 -- cloudflared tunnel run opnsense-access
Proxmox ne démarre plus
Solution
- Accès physique à la machine (ThinkCentre M710S)
- Brancher un écran + clavier
- Boot depuis USB (clé de rescue)
- Monter les disques et récupérer les configs
- Réinstaller Proxmox si nécessaire
- Restaurer depuis backups
Prévention : Avoir une clé USB bootable Proxmox prête
Documentation continue
Après chaque modification
Mettre à jour la documentation Docusaurus :
# Sur ton PC
cd C:\Docu
# Éditer les fichiers concernés
code docs\infrastructure\...
# Commit et push
git add .
git commit -m "Update: description de la modification"
git push
# Déploiement automatique via GitHub Actions
# https://docs.olympus-lab.org sera mis à jour automatiquement
Template de note de modification
## [Date] - Titre de la modification
**Quoi** : Description de ce qui a été fait
**Pourquoi** : Raison de la modification
**Impact** : Downtime ? Services affectés ?
**Rollback** : Comment revenir en arrière si problème
**Validé par** : Test effectué pour confirmer que ça marche
Checklist de maintenance mensuelle
## Maintenance [Mois YYYY]
### Avant de commencer
- [ ] Vérifier que c'est un moment calme (pas d'utilisation critique)
- [ ] Prévenir si d'autres utilisent le homelab
- [ ] Avoir les backups à jour
### Proxmox
- [ ] SSH vers Proxmox : `ssh root@192.168.1.51`
- [ ] `apt update && apt dist-upgrade -y`
- [ ] `reboot` si kernel mis à jour
- [ ] Vérifier post-reboot : `pct list`, `qm list`
- [ ] Nettoyer : `apt autoremove -y && apt clean`
### OPNsense
- [ ] https://opnsense.olympus-lab.org
- [ ] System → Configuration → Backups → Download
- [ ] System → Firmware → Check for updates
- [ ] Installer si disponible
- [ ] Tester après reboot : ping, accès web, firewall rules
### Cloudflare Tunnel
- [ ] `pct enter 202`
- [ ] `apt update && apt upgrade -y`
- [ ] Mettre à jour cloudflared (voir procédure ci-dessus)
- [ ] `systemctl restart cloudflared`
- [ ] Vérifier : `systemctl status cloudflared`
- [ ] `exit`
### Backups
- [ ] Backup OPNsense téléchargé et sauvegardé
- [ ] Backup Cloudflare Tunnel : `pct exec 202 -- tar czf /tmp/cf-backup.tar.gz /etc/cloudflared`
- [ ] Snapshots des VMs : `qm snapshot 100 monthly-YYYYMM`
### Vérifications
- [ ] Accès web : https://proxmox.olympus-lab.org ✅
- [ ] Accès web : https://opnsense.olympus-lab.org ✅
- [ ] SSH : `ssh ssh-proxmox` ✅
- [ ] Internet depuis VM LAN : `pct enter 200 && ping 1.1.1.1` ✅
- [ ] Logs Cloudflare : Pas d'alertes suspectes ✅
### Documentation
- [ ] Mettre à jour la doc si modifications
- [ ] Commit + push vers GitHub
- [ ] Vérifier https://docs.olympus-lab.org
### Notes
[Ajouter ici les observations, problèmes rencontrés, etc.]
Outils recommandés
Monitoring (à déployer plus tard)
- Uptime Kuma : Monitoring simple des services
- Grafana + Prometheus : Métriques détaillées
- Netdata : Monitoring temps réel
Backup
- Proxmox Backup Server (PBS) : Solution officielle Proxmox
- Restic : Backups chiffrés vers cloud
- Rclone : Sync vers Google Drive, Dropbox, etc.
Documentation
- ✅ Docusaurus (déjà en place)
- Draw.io : Diagrammes réseau
- Obsidian : Notes personnelles markdown
Ressources
- Proxmox Best Practices : https://pve.proxmox.com/wiki/Storage
- OPNsense Docs : https://docs.opnsense.org/
- Cloudflare Status : https://www.cloudflarestatus.com/
- Backup Strategy Guide : https://www.backblaze.com/blog/the-3-2-1-backup-strategy/
Règle 3-2-1 pour les backups
3 copies de tes données :
- 1x Production (sur Proxmox)
- 1x Backup local (snapshots Proxmox)
- 1x Backup distant (cloud)
2 types de média différents :
- Disque dur local
- Cloud storage
1 copie off-site :
- Google Drive, Dropbox, ou autre cloud
Appliquer à :
- ✅ Configuration OPNsense (critique)
- ✅ Configuration Cloudflare Tunnel (critique)
- ✅ Documentation (GitHub + local)
- ⚠️ VMs complètes (si espace suffisant)