SecureSysInit est un projet **cloud-init ** destiné à automatiser le déploiement d’un serveur Linux sécurisé, robuste et prêt pour l’administration système.
Il combine :
- configuration du stockage avec LVM / partition dédiée,
- durcissement SSH,
- sécurisation réseau (UFW, Fail2Ban),
- bonnes pratiques d’administration système.
Ce type de configuration est particulièrement adapté aux environnements cloud, VPS ou VM de production.
- Isoler les logs système sur un disque dédié pour éviter la saturation du système
- Mettre en place un accès SSH sécurisé (clé + port non standard)
- Restreindre l’accès root et l’authentification par mot de passe
- Déployer automatiquement un pare-feu et un système anti-bruteforce
- Préparer un compte administrateur sécurisé
- Image Linux compatible cloud-init (Ubuntu/Debian recommandé)
- Deux disques attachés à la VM (
/dev/sda+/dev/sdb) - Accès à une clé SSH publique valide
user-data.yamlCe fichier doit être fourni comme user-data lors de la création de l’instance.
- Initialisation du disque
/dev/sdb - Formatage en ext4
- Montage automatique sur
/var/log
🎯 Objectif : éviter qu’une croissance des logs ne bloque le système.
- Utilisateur :
sysadmin - Groupes :
sudo,adm - Authentification exclusivement par clé SSH
- Accès sudo sans mot de passe
Configuration appliquée :
- Port SSH : 2222
- Authentification par mot de passe désactivée
- Connexion root interdite
- X11 Forwarding désactivé
Configuration écrite dans :
/etc/ssh/sshd_config.d/hardening.conf
| Service | Rôle |
|---|---|
ufw | Pare-feu simplifié |
fail2ban | Protection contre les attaques bruteforce |
git | Récupération de scripts d’administration |
Actions exécutées au premier démarrage :
- Ouverture des ports nécessaires (2222, 80)
- Activation forcée du pare-feu
- Configuration de Fail2Ban pour SSH sur le port 2222
- Redémarrage du service Fail2Ban
- Clonage d’un dépôt de scripts d’administration dans
/opt/scripts
À la fin du provisioning, cloud-init affiche :
Le système est prêt après <UPTIME> secondes. Accès via port 2222 uniquement.
Fournir ce fichier comme user-data lors de la création de l’instance (AWS, Azure, GCP, OpenStack, VPS).
ssh -p 2222 sysadmin@<IP_DU_SERVEUR>- Tester ce script en environnement de staging avant production
- Ajouter une règle firewall pour HTTPS si nécessaire
- Sauvegarder la clé SSH utilisée
- Vérifier que
/dev/sdbexiste avant déploiement
Projet open-source à vocation éducative. Licence recommandée : MIT ou Apache 2.0.