Auteurs : Anthony & Guillaume
Encadrement : Mr Malaise, Mr Dambrin, Mr Roland
Année académique : 2024–2025
UE : Projets Linux (Bachelier en informatique, spécialité Télécommunications et réseaux, Bloc 2)
- Description du projet
- Architecture & Environnement
- Prérequis
- Installation et déploiement
- Services implémentés
- Automatisation & Scripts
- Sécurisation
- Plan de sauvegarde
- Structure du dépôt
- Livrables & Rapport
- Contribuer
- Licence
- Contact
Ce projet vise à déployer et configurer une architecture de serveurs Linux virtualisés sur AWS, dans le cadre du cours Projets Linux à la HEH (Mons, Belgique). L’objectif est de mettre en place divers services réseau automatisés, monitorés et sécurisés :
- Partage de fichiers NFS & Samba (Linux/Windows)
- Accès SSH sécurisé pour l’administration
- Hébergement Web (Apache ou Nginx)
- Service FTP + accès Samba au dossier web
- Bases de données isolées par utilisateur (MySQL/PostgreSQL)
- DNS (zone directe et inverse) avec cache
- Serveur NTP pour synchronisation horaire
- Monitoring centralisé via interface Web
- Automatisation complète via scripts Bash
- Cloud Provider : AWS EC2 (instances t2.micro ou t3.micro)
- Système d’exploitation : Ubuntu Server 22.04 LTS (ou Debian 11)
- Réseau : VPC privé avec subnets public/privé, Security Groups configurés
- Accès : Clés SSH (
.pem) stockées danskeys/
- Compte AWS étudiant avec droit de créer des instances EC2
- Clé SSH configurée pour chaque étudiant (
anthony.pem,guillaume.pem) - Git installé localement
- Connexion Internet et accès au groupe Teams/Discord du cours
-
Cloner le dépôt :
git clone https://github.com/AnthonyCodeDev/HEH-2025-ProjetLinux.git cd HEH-2025-ProjetLinux -
Déploiement AWS :
- Créer les instances EC2 selon l’architecture décrite
- Déployer les clés dans
~/.ssh/et ajuster les permissions
-
Exécution des scripts :
cd scripts/ sudo chmod +x *.sh sudo ./01_install_packages.sh # Installation des paquets sudo ./02_configure_services.sh # Configuration des services sudo ./03_secure.sh # Sécurisation et pare-feu sudo ./04_monitoring.sh # Mise en place du monitoring
-
Validation :
- Pinger les serveurs
- Tester le site web, l’accès FTP/Samba, le DNS, etc.
| Service | Description | Port par défaut |
|---|---|---|
| NFS | Partage de dossier Linux | 2049 |
| Samba | Partage Windows & Linux | 445 |
| SSH | Administration sécurisée | 22 |
| HTTP/HTTPS | Serveur Web (Nginx) | 80 / 443 |
| FTP | Upload/Download via vsftpd | 21 |
| MySQL/PostgreSQL | Bases de données isolées par utilisateur | 3306 / 5432 |
| DNS (BIND9) | Serveur de noms maître et cache, zone directe/inverse | 53 |
| NTP (Chrony) | Synchronisation horaire | 123 |
| Monitoring | cokpit | 10050 / 3000 |
Tous les services sont configurés et automatisés à l’aide de scripts Bash situés dans le dossier scripts/.
Chaque script correspond à une étape clé :
- Installation des paquets (
01_install_packages.sh) - Configuration des services (
02_configure_services.sh) - Sécurisation (
03_secure.sh) - Monitoring (
04_monitoring.sh)
Astuce : Exécutez
scripts/deploy_all.shpour lancer l’ensemble des scripts en une seule commande.
- Pare-feu : UFW avec règles limitées aux ports nécessaires
- SSH : Désactivation de l’authentification par mot de passe, utilisation de clés
- SELinux/AppArmor : Profil applicatif adapté
- Antivirus : Installation de ClamAV pour analyse périodique
- Sauvegarde quotidienne des fichiers critiques via
rsync - Export et exportation des bases MySQL/PostgreSQL
- Stockage des backups sur un bucket S3 (chiffrement AES-256)
- Rotation et purge automatique des sauvegardes > 7 jours
├── README.md
├── scripts/ # Scripts d’automatisation
│ ├── 01_install_packages.sh
│ ├── 02_configure_services.sh
│ ├── 03_secure.sh
│ ├── 04_monitoring.sh
│ └── deploy_all.sh
├── keys/ # Clés SSH (.pem)
├── docs/ # Documentation et reporting
│ ├── journal_de_bord.md
│ └── rapport_final.pdf
└── .gitignore
-
Démonstration : Vendredi 16 mai à partir de 8h00, présentation auprès des professeurs.
-
Rapport : À envoyer par email à
antoine.malaise@heh.beavant 23 mai 2025 23:59.- Cahier des charges, partitionnement, configuration des services, sécurisation, scripts, plan de sauvegarde, problèmes rencontrés, améliorations, bibliographie.
- Fork du dépôt
- Création d’une branche (
git checkout -b feature/ma-feature) - Commit et push (branche
feature/...) - Pull request pour revue par les encadrants
Ce projet est distribué sous la licence MIT. Consultez le fichier LICENSE pour plus de détails.
Pour toute question, contactez :
- Anthony & Guillaume (équipe projets Linux)
- Mr Antoine Malaise : antoine.malaise@heh.be
- Mr Dambrin & Mr Roland (cours Projets Linux)