Chahine AzegrarBTS SIO · SISR
← Tous les projets

Système

Hébergement web en architecture 3-tiers

Nginx, PHP-FPM et MariaDB dans un conteneur Debian pour héberger un site WordPress, avec une page de connexion restreinte à une liste d'adresses.

Problème

Héberger un site WordPress en séparant clairement les rôles : réception des requêtes, exécution du code, stockage des données. La page d'administration, cible habituelle des attaques par force brute, devait en plus être protégée.

Architecture

Le navigateur parle à Nginx, qui transmet les pages PHP à PHP-FPM, qui interroge MariaDB.
Le navigateur parle à Nginx, qui transmet les pages PHP à PHP-FPM, qui interroge MariaDB.

Trois couches : Nginx sert les fichiers statiques et reçoit les requêtes, PHP-FPM exécute le code, MariaDB stocke les données. Les trois couches tournent ici dans un même conteneur Debian sous Proxmox.

Mise en œuvre

Services

Nginx, PHP 8.3-FPM et MariaDB actifs et lancés au démarrage.
Nginx, PHP 8.3-FPM et MariaDB actifs et lancés au démarrage.
La base dédiée au site, à côté des bases système de MariaDB.
La base dédiée au site, à côté des bases système de MariaDB.
  • Un utilisateur MariaDB dédié au site, jamais root.
  • Services démarrés automatiquement (systemctl enable).
  • Configuration découpée en snippets réutilisables.

Restreindre la page de connexion

La page wp-login.php n'est accessible qu'aux adresses autorisées.
La page wp-login.php n'est accessible qu'aux adresses autorisées.

Dans Nginx, wp-login.php est isolé dans son propre bloc pour n'autoriser qu'une liste blanche d'adresses IP. Les fichiers statiques (images, CSS, polices) sont mis en cache longtemps et n'alourdissent pas les journaux.

location ~ \.php$ {
    location ~ \wp-login.php$ {
        include snippets/Authorized_IPs.conf;   # liste blanche
        include snippets/php.conf;
    }
    include snippets/php.conf;
}

Limites et pistes d'amélioration

  • Les trois couches partagent un seul conteneur : c'est une séparation logique, pas physique. Une panne du conteneur arrête le site, la base comprise, et il n'y a ni réplication ni répartition de charge.
  • La liste blanche d'adresses suppose des adresses d'administration fixes ; elle est à maintenir à la main.

Compétences du référentiel mobilisées

  • Mettre à disposition un service informatique
  • Sécuriser les équipements et les usages
  • Installer et configurer des services web