đ Web
đ 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 :
- (Montrer un extrait du fichier de configuration Nginx pour un site)
- Capture dâĂ©cran :
- (Montrer la fin de lâexĂ©cution de
mysql_secure_installation)
- (Montrer la fin de lâexĂ©cution de
2. DĂ©ploiement dâApplications Web
- Déploiement de WordPress :
- Téléchargement des fichiers WordPress.
- Configuration du fichier
wp-config.phpavec 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 :
- (Montrer la page de blog créée sur ton WordPress)
- Capture dâĂ©cran :
- 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 :
- (Montrer lâinterface GLPI avec un ticket créé)
- Capture dâĂ©cran :
- 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 :
- (Montrer une page de documentation que tu as créée sur DokuWiki)
- Capture dâĂ©cran :
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_usersvia phpMyAdmin). - Capture dâĂ©cran :
- (Montrer la table
wp_userset la ligne du mot de passe haché)
- (Montrer la table
- (Choisir une application, par exemple WordPress, et montrer la modification directe du mot de passe dans la table
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_ipou depuis un navigateur).- Capture dâĂ©cran :
- (Montrer un bloc
serverde Nginx configuré pour la redirection)
- (Montrer un bloc
- Capture dâĂ©cran :
- 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 :
- (Montrer le fichier de configuration de la jail WordPress pour Fail2ban)
- Capture dâĂ©cran :
- (Montrer des logs dâauthentification WordPress et/ou la sortie de
fail2ban-client status wordpress-auth)
- (Montrer des logs dâauthentification WordPress et/ou la sortie de
- CrĂ©ation dâune jail Fail2ban spĂ©cifique pour la page de connexion de WordPress (
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-fpmetnginx). - 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.