Se rendre au contenu

Administrer des systèmes informatiques communicants complexes

Projet Home Lab : Administration de systèmes informatiques

Dans le cadre de mon apprentissage en administration des systèmes et réseaux, j’ai mis en place un Home Lab en utilisant les ressources à ma disposition : deux ordinateurs portables sous Windows, un switch 6 ports TP-Link, ainsi que des machines virtuelles sous Linux (VMware et WSL). Ce projet personnel a pour objectif de simuler un environnement réseau d’entreprise afin de configurer, tester et administrer différents services tels que l’attribution d’adresses IP, l’hébergement d’un serveur web, la gestion d’un serveur DNS, ainsi que le renforcement de la sécurité à l’aide de pare-feu et d’outils de surveillance.

Grâce à ce laboratoire, j’ai pu expérimenter plusieurs aspects critiques de l’administration système, notamment l’installation et la configuration d’un OS, la gestion des utilisateurs et des permissions, le déploiement d’applications communicantes et la sécurisation des services. L’isolement du réseau via le switch m’a permis de tester les interactions entre les machines sans impacter mon réseau domestique. Ce projet constitue une base évolutive qui pourra être enrichie avec de nouveaux services, l’automatisation de tâches via des scripts et l’optimisation de la surveillance réseau.

Identifier les différents composants (matériel, logiciels) d’un système numérique


Dans ce projet, nous avons identifié et analysé les composants matériels et logiciels utilisés. Le Home Lab repose sur deux ordinateurs portables (un HP avec 16 Go de RAM et un autre avec 8 Go), un switch 6 ports TP-Link, ainsi que des machines virtuelles sous VMware et Windows Subsystem for Linux (WSL). Côté logiciel, nous avons utilisé Windows, différentes distributions Linux (Ubuntu/Debian), ainsi que divers outils réseau (Wireshark, Nmap, iperf). Cette phase d’identification a permis de comprendre la capacité de chaque élément et d’optimiser leur utilisation pour la simulation d’un réseau isolé.

Utiliser les fonctionnalités de base d’un système multitâche / multi utilisateurs


Pour tester la gestion des utilisateurs et des processus sur un système multitâche, nous avons créé plusieurs comptes avec des niveaux d'accès différents sur Linux et Windows. Nous avons ensuite observé le fonctionnement des processus en temps réel à l’aide des commandes htop, ps aux sous Linux et du Gestionnaire des tâches sous Windows. Nous avons également simulé des connexions simultanées via SSH et testé la gestion des permissions avec sudo et chown.   

Installer et configurer un système d’exploitation et des outils de développement


Nous avons installé une VM sous Ubuntu à l’aide de VMware sur PC1. Après l’installation, nous avons mis en place un environnement de développement avec Python, Node.js, et Git. Pour automatiser cette installation, un script Bash a été créé afin d’installer les packages essentiels et de configurer le système avec les bonnes dépendances.    

Configurer un poste de travail dans un réseau d’entreprise


Un réseau local isolé a été mis en place entre les deux PC à l’aide du switch TP-Link. Les adresses IP statiques ont été attribuées manuellement et la connectivité testée avec ping. J'ai aussi configuré un serveur DHCP sur une VM pour automatiser l’attribution des IP aux machines connectées.  

Concevoir et déployer des application communicantes


Un serveur Web basé sur Nginx a été déployé sur une VM sous Linux. Ce serveur héberge une application simple, accessible depuis PC2 via un navigateur en entrant l’adresse IP du serveur. Pour tester la communication, des commandes curl et wget ont été utilisées. Nous avons également testé une base de données MySQL connectée à une API en Python.   

Utiliser des serveurs et des services réseaux virtualisés


J'ai mis en place plusieurs services réseau sur des machines virtuelles : un serveur DNS avec Bind9, un serveur DHCP, et un VPN avec WireGuard. Ces services ont été configurés et testés pour simuler un réseau d’entreprise fonctionnel. L’ensemble a été monitoré avec des outils comme systemctl et journalctl pour vérifier l’état des services.   

Sécuriser les services et données d’un système


La sécurité du réseau et des services a été renforcée avec plusieurs mesures :

  1. Pare-feu : Utilisation d’iptables et ufw pour filtrer le trafic entrant et sortant.
  2. SSH sécurisé : Interdiction de l’accès root et mise en place de l’authentification par clé.
  3. Détection d’intrusions : Installation de Fail2Ban pour bloquer les tentatives de connexion suspectes.
  4. Sauvegardes automatisées : Scripts de sauvegarde des fichiers et bases de données.