Projet ALPY — Documentation technique

Projet ALPY — Documentation technique

Par Dauba Alexandre

Contexte

Le groupement ALPY, gestionnaire des stations d’altitude des Pyrénées, souhaite récolter des informations de fréquentation et de satisfaction auprès de ses clients. Le site d’enquête est réalisé avec le CMS WordPress. Pour des raisons de sécurité, le serveur Web (Nginx) est placé dans une DMZ. Des postes en libre‑service doivent être proposés et un service DHCP configuré sur le routeur. Un contrôleur de domaine Samba doit être fourni, incluant les comptes administrator et alpy.

Présentation d’ALPY

  • Créée en 2001, basée à NAY (Pyrénées‑Atlantiques).
  • Exploitant des domaines skiables (Gourette, La Pierre Saint‑Martin, Cauterets, Saint‑Lary).
  • Animations, maintenance des domaines, vente des forfaits.
  • La sécurité est centrale : pistes & données.

En chiffres

  • 4 stations, 250 salariés
  • 680 000 journées skieurs
  • 10 M€ de CA
  • 80 pistes, 63 remontées
  • 428 km de pistes alpin, 200 km de fond

Schéma réseau

Schéma réseau du projet ALPY

Tableau d’adressage

Voici ci-dessous le tableau d’adressage du projet :

Réseau / Postes IP CIDR Gateway DNS
WAN ///// 21 ///// /////
dauba-gtw 172.31.4.204 21 ///// /////
DMZ 204.204.204.0 30 ///// /////
dauba-gtw 204.204.204.1 30 ///// /////
dauba-wp 204.204.204.2 30 204.204.204.1 204.204.204.1
LAN 192.168.1.0 24 ///// /////
dauba-gtw 192.168.1.254 24 ///// /////
dauba-adm 192.168.1.1 24 192.168.1.254 192.168.1.2
dauba-ad 192.168.1.2 24 192.168.1.254 192.168.1.254
dauba-db 192.168.1.3 24 192.168.1.254 192.168.1.2

Spécifications techniques

Routeur

  • Nom : dauba-gtw
  • IP : 172.31.4.204 (WAN), 204.204.204.1 (DMZ), 192.168.1.254 (LAN)
  • CPU : 1 cœur · RAM : 2 Go · Stockage : 16 Go

Serveur Web

  • Nom : dauba-wp
  • IP : 204.204.204.2
  • CPU : 2 cœurs · RAM : 2 Go · Stockage : 20 Go

Serveur de base de données

  • Nom : dauba-db
  • IP : 192.168.1.3
  • CPU : 2 cœurs · RAM : 2 Go · Stockage : 20 Go

Serveur Active Directory

  • Nom : dauba-ad
  • IP : 192.168.1.2
  • CPU : 2 cœurs · RAM : 2 Go · Stockage : 20 Go

Poste Administrateur Windows

  • Nom : dauba-adm
  • IP : 192.168.1.1
  • CPU : 3 cœurs · RAM : 10 Go · Stockage : 80 Go

Configuration du routeur

Interfaces réseau

  • em0 (WAN) : 172.31.4.204
  • em1 (LAN) : 192.168.1.254
  • em2 (DMZ) : 204.204.204.1

Toutes les adresses sont configurées en IP fixe.

Règles NAT

Service Interface Protocole Destination Port dest. IP NAT Port NAT
SSH Contrôleur de domaine WAN TCP WAN address 2289 192.168.1.2 22 (SSH)
SSH Base de données WAN TCP WAN address 2286 192.168.1.3 22 (SSH)
SSH Serveur Web WAN TCP WAN address 2280 204.204.204.2 22 (SSH)
RDP poste Windows WAN TCP WAN address 3389 (MS RDP) 192.168.1.1 3389 (MS RDP)
SQL depuis DMZ DMZ TCP DMZ address 3306 192.168.1.3 3306
Interface pfSense depuis WAN WAN TCP WAN address 4431 LAN address 80 (HTTP)
Serveur Web depuis WAN WAN TCP WAN address 80 (HTTP) 204.204.204.2 80 (HTTP)
SQL depuis WAN WAN TCP WAN address 3306 192.168.1.3 3306

Service DHCP

  • IP du serveur DHCP : 192.168.1.254
  • Pool : 192.168.1.4 → 192.168.1.253

Configurations des serveurs & machine Windows

Configuration WordPress (WP)

Prérequis : nginx, php, wordpress, phpMyAdmin.

Fichier : /etc/nginx/sites-available/default

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  root /var/www/wordpress;
  index index.php;
  server_name _;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    # With php-cgi (or other tcp sockets):
  }
}

Arborescence (à la racine /var/www) :

  • Dossier wordpress
  • Dossier phpMyAdmin
  • Fichier info.php : <?php phpinfo(); ?>

Créer un raccourci dans wordpress vers /var/www/phpMyAdmin et un second vers info.php (dossier parent). Dans la table wp_options de la base wordpress, définir siteurl et home → http://204.204.204.2/.

Fichier : /var/www/wordpress/wp-config.php

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wp');
define('DB_PASSWORD', 'sio');
define('DB_HOST', '204.204.204.1');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');

/* Clés et sels d'authentification (exemple, à régénérer en prod) */
// AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, etc.

$table_prefix = 'wp_';
define('WP_DEBUG', false);
if (!defined('ABSPATH')) {
  define('ABSPATH', __DIR__ . '/');
}
require_once ABSPATH . 'wp-settings.php';

Fichier : /var/www/phpMyAdmin/config.inc.php

<?php
declare(strict_types=1);
$cfg['blowfish_secret'] = '';
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = '204.204.204.1';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

Configuration Base de données (MySQL)

Prérequis : MySQL.

Extrait de configuration :

pid-file              = /run/mysqld/mysqld.pid
basedir               = /usr
bind-address          = 192.168.0.3
expire_logs_days      = 10
character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci

Comptes : créer la base wordpress et deux utilisateurs :

  • wp/sio : droits uniquement sur la BDD wordpress
  • sio/sio : droits sur tout le serveur

Configuration Active Directory (Samba AD DC)

Prérequis : samba-ad-dc.

  • Nom de domaine : dauba-alpy.lan
  • FQDN serveur : dauba-ad
  • Compte admin : administrator/sio
  • Compte user : alpy/sio

Poste ADM (Windows)

  • Créer un utilisateur local ajouté au groupe Invités.
  • Joindre la machine au domaine.
  • Installer les outils RSAT :
    • Outils AD DS et services LDS
    • Outils de gestion de stratégie de groupe
    • Outils du serveur DNS
An unhandled error has occurred. Reload 🗙