TP - Créer un site de vente en ligne avec Wordpress et WooCommerce
Présentation
Dans ce TP, vous allez créer et configurer un serveur Debian nommé CMS, sur lequel vous allez mettre en place :
- Un serveur web Apache.
- Une base de données MariaDB.
- Un interpréteur PHP.
- Un site WordPress accessible en HTTP puis en HTTPS (certificat autosigné).
- Un plugin WooCommerce pour transformer WordPress en boutique en ligne.
- Un serveur de mail Postfix (pour la simulation d'envoi de mails de commande).
- Configuration du pare-feu NFtables (2 ports : 22 et 443 en entrée uniquement)
- Configuration de Fail2ban (Bannissement d'IP de 5min en cas d'échec répété SSH ou de connexions trop nombreuses sur Apache)
Vous disposerez également d'une machine CLIENT sous Windows 11, qui sera connectée sur le même réseau afin de tester l'accès au site et à l'interface WordPress.
Objectifs principaux :
- Maîtriser l'installation et la configuration de la pile LAMP (Linux, Apache, MariaDB, PHP) sur Debian.
- Créer un VirtualHost Apache en HTTP et passer ensuite en HTTPS avec un certificat autosigné.
- Installer et configurer WordPress, puis WooCommerce pour mettre en place une mini-boutique en ligne.
- Installer Postfix pour simuler l'envoi de mails (notamment les mails de commande WooCommerce).
- Observer les logs de Postfix afin de comprendre le fonctionnement du service et l'impact de la non-certification de domaine dans l'envoi de mails.
Ressources à disposition :
- Je vous mets à disposition 2 VM : un client Windows 11 et un serveur Debian.
(mais vous pouvez les créer vous même également !).
- Votre parcours sur le blog comporte toutes les références nécessaires pour vous aider à mettre en place la pile LAMP, le passage du vhost http à https et les configurations d'NFtables et Fail2ban
2. Architecture réseau
VM n°1 -- Debian (CMS)
- Nom d'hôte : cms.local (par exemple)
- Adresse IP : 10.10.10.11/24 (à adapter selon votre réseau ou le plan d'adressage que je vous donne)
- Services : Apache, MariaDB, PHP, WordPress, WooCommerce, Postfix
VM n°2 -- Windows 11 (CLIENT)
- Nom d'hôte : client-win11.local (par exemple)
- Adresse IP : 10.10.10.10/24 (à adapter selon votre réseau ou le plan d'adressage que je vous donne)
- Rôle : poste client pour tester la connexion au site WordPress et aux services.
Vous devez également vous en servir pour configurer votre serveur CMS via SSH.
Les deux machines seront configurées sur le même réseau virtuel (par exemple un réseau interne VirtualBox ou VMware, ou directement sur l'un des serveurs hébergés).
3. Rappel des étapes de configuration
1. Configurations IP du client et du serveur linux
2. Connexion SSH par clef entre le client et le serveur linux.
3. MAJ du serveur linux et déploiement de la pile LAMP
- Installation du serveur Mariadb
-- Exécution du script "mysql_secure_installation"
-- Création de la base "wordpressdb" avec l'utilisateur privilégié "adminwp" (mot de passe "Ertyuiop,")
- Installation d'Apache2
- Installation de PHP, des extensions requises pour Wordpress, et du module libapache2-mod-php
- Configuration d'un vhost propre ou du vhost par défaut d'Apache (au choix) en http.
- Installation de Wordpress
- Test via le navigateur (n'oubliez pas l'enregistrement A dans le fichier hosts si vous avez créé un vhost nominatif !)
- Passage du vhost en https avec certificat autosigné (créez votre propre autorité)
4. Installation de WooCommercer sur Wordpress
- Création de votre boutique avec au moins un produit à vendre, et un panier d'achats.
5. Installation du serveur de mails Postfix sur votre serveur Linux
- Simulez l'envoi d'un mail (vous ne pourrez pas l'envoyer, mais lisez les logs et expliquez-moi pourquoi).
6. Configuration de NFtables
- 2 ports doivent rester ouverts en entrée : le 443 et le 22 (ou un autre port si vous avez décidé de changer le port SSH... ce qui est mieux !)
- Vous laissez évidemment la possibilité de vous connecter à internet depuis le serveur (TCP : 80 et 443 TCP/UDP : 53), et également d'envoyer des mails (même si dans le cas présent, ça ne fonctionnera pas).
Je vous laisse chercher quels ports ! (smtp...)
7. Configuration de Fail2ban
- Bannissement de 5minutes en cas d'échecs répétés de connexion SSH (5 fois)
- Mise en place d'un bannissement de 5minutes en cas de centaines de connexions quasi simultannées provenant de la même IP, au service Apache.