🌐 Web

Objectifs de la Mission

Cette mission avait pour but de dĂ©couvrir et de mettre en Ɠuvre les composants fondamentaux d’une stack web LAMP (Linux, Apache/Nginx, MariaDB, PHP) et de dĂ©ployer des applications web courantes. Il s’agissait Ă©galement d’appliquer les premiĂšres mesures de sĂ©curitĂ© web.

Compétences Développées

  • Administration de serveurs Web : Installation et configuration de Nginx (et Apache pour GLPI).
  • Gestion de bases de donnĂ©es : MariaDB et phpMyAdmin.
  • DĂ©ploiement d’applications : WordPress, GLPI, DokuWiki.
  • SĂ©curitĂ© Web : Redirection HTTPS, rĂšgles Fail2ban spĂ©cifiques aux applications web.
  • DĂ©pannage : RĂ©solution de problĂšmes de configuration web et base de donnĂ©es.

Outils et Technologies Utilisés

  • SystĂšme d’exploitation : Debian ou Ubuntu Server
  • Serveurs Web : Nginx, Apache2
  • Langage de script : PHP (avec les extensions nĂ©cessaires)
  • Base de donnĂ©es : MariaDB
  • Outil de gestion de BDD : phpMyAdmin
  • Applications Web : WordPress, GLPI, DokuWiki
  • SĂ©curitĂ© : Fail2ban

Déroulement de la Mission

1. Installation de la Stack Web (Nginx, PHP, MariaDB)

  • Installation de Nginx : Configuration du serveur web pour servir des sites.
  • Installation de PHP-FPM : Configuration de PHP pour fonctionner avec Nginx (FastCGI Process Manager).
  • Installation de MariaDB : Mise en place du serveur de base de donnĂ©es, sĂ©curisation initiale (mysql_secure_installation).
  • CrĂ©ation des bases de donnĂ©es et utilisateurs : PrĂ©paration des bases pour chaque application.

  • Capture d’écran : Configuration de Nginx pour PHP-FPM
    • (Montrer un extrait du fichier de configuration Nginx pour un site)
  • Capture d’écran : SĂ©curisation de MariaDB
    • (Montrer la fin de l’exĂ©cution de mysql_secure_installation)

2. DĂ©ploiement d’Applications Web

  • DĂ©ploiement de WordPress :
    • TĂ©lĂ©chargement des fichiers WordPress.
    • Configuration du fichier wp-config.php avec les informations de la base de donnĂ©es.
    • Configuration d’un hĂŽte virtuel Nginx pour WordPress.
    • Finalisation de l’installation via l’interface web.
    • À faire : CrĂ©ation d’une page de blog simple.
      • Capture d’écran : Page de blog WordPress fonctionnelle
        • (Montrer la page de blog créée sur ton WordPress)
  • DĂ©ploiement de GLPI (Gestion Libre de Parc Informatique) :
    • TĂ©lĂ©chargement et installation de GLPI.
    • Configuration d’Apache pour GLPI (souvent plus simple avec Apache pour les premiĂšres versions de GLPI).
    • Configuration de la base de donnĂ©es et finalisation via l’installeur web.
    • À faire : CrĂ©ation d’un ticket de test.
      • Capture d’écran : CrĂ©ation d'un ticket GLPI
        • (Montrer l’interface GLPI avec un ticket créé)
  • DĂ©ploiement de DokuWiki :
    • TĂ©lĂ©chargement et installation des fichiers DokuWiki.
    • Configuration d’un hĂŽte virtuel Nginx.
    • Finalisation de l’installation.
    • À faire : CrĂ©ation d’une page de documentation.
      • Capture d’écran : Page de documentation DokuWiki
        • (Montrer une page de documentation que tu as créée sur DokuWiki)

3. Installation et Utilisation de phpMyAdmin

  • Installation de phpMyAdmin : AccĂšs simplifiĂ© aux bases de donnĂ©es MariaDB via une interface web.
  • Configuration avec Nginx : S’assurer que phpMyAdmin est accessible via une URL dĂ©diĂ©e.
  • À faire : RĂ©initialisation d’un mot de passe via phpMyAdmin.
    • (Choisir une application, par exemple WordPress, et montrer la modification directe du mot de passe dans la table wp_users via phpMyAdmin).
    • Capture d’écran : RĂ©initialisation mot de passe WordPress via phpMyAdmin
      • (Montrer la table wp_users et la ligne du mot de passe hachĂ©)

4. Sécurisation Web Additionnelle

  • Redirection HTTP vers HTTPS :
    • Configuration de Nginx (ou Apache) pour rediriger automatiquement tout le trafic HTTP vers HTTPS (mĂȘme si le certificat n’est pas encore en place sur cette VM locale, la configuration est prĂȘte pour l’avenir).
    • À faire : VĂ©rification de la redirection (via curl -v http://ton_ip ou depuis un navigateur).
      • Capture d’écran : Configuration Nginx pour redirection HTTPS
        • (Montrer un bloc server de Nginx configurĂ© pour la redirection)
  • RĂšgle Fail2ban pour WordPress :
    • CrĂ©ation d’une jail Fail2ban spĂ©cifique pour la page de connexion de WordPress (wp-login.php).
    • Configuration de la rĂšgle pour bannir les IPs aprĂšs 3 tentatives de connexion Ă©chouĂ©es pendant 1 minute.
    • Capture d’écran : Configuration Jail Fail2ban WordPress
      • (Montrer le fichier de configuration de la jail WordPress pour Fail2ban)
    • Capture d’écran : Test de bannissement Fail2ban WordPress
      • (Montrer des logs d’authentification WordPress et/ou la sortie de fail2ban-client status wordpress-auth)

Défis Rencontrés et Solutions Apportées

  • ProblĂšme : Erreurs “502 Bad Gateway” avec Nginx et PHP-FPM.
  • Solution : VĂ©rification des chemins des sockets PHP-FPM, des droits d’accĂšs et redĂ©marrage des services (php-fpm et nginx).
  • ProblĂšme : Conflits entre Nginx et Apache lors de l’installation de GLPI.
  • Solution : Utilisation d’un port diffĂ©rent pour Apache ou arrĂȘt de Nginx pendant l’installation de GLPI, puis configuration pour qu’ils Ă©coutent sur des ports ou hĂŽtes virtuels distincts.
  • ProblĂšme : ComprĂ©hension des expressions rĂ©guliĂšres pour les filtres Fail2ban sur les logs d’applications web.
  • Solution : Utilisation d’outils de test d’expressions rĂ©guliĂšres et lecture de la documentation de Fail2ban pour affiner les filtres.

Résultats Obtenus

Une stack web complĂšte et fonctionnelle a Ă©tĂ© mise en place, permettant le dĂ©ploiement de plusieurs applications clĂ©s. J’ai acquis une bonne comprĂ©hension des interactions entre Nginx, PHP, MariaDB et les applications. Des mesures de sĂ©curitĂ© initiales ont Ă©tĂ© appliquĂ©es, posant les bases pour des dĂ©ploiements web plus robustes.


Retour à l’accueil