Expérience de Stage - Nextgen-Heberg

Mon Expérience de Stage Nextgen-Heberg

De l’installation d’un serveur Linux à la mise en ligne d’un site web sécurisé

1. 🚀 Installation et préparation du serveur

Installation d’un système Linux (Debian/Ubuntu) sur un VPS. Mise à jour du système via apt update && apt upgrade, création d’un utilisateur non-root et configuration des accès SSH sécurisés.

Objectif : disposer d’un environnement stable et prêt pour héberger des services web.

2. ⚙️ Configuration d’Apache et du VirtualHost

Installation d’Apache2 pour servir des pages web, test initial confirmé par le message “It works!”.

Création d’un VirtualHost personnalisé :

<VirtualHost *:80>
    ServerName stage.ngh-cloud.fr
    DocumentRoot /var/www/portfolio
</VirtualHost>

Activation du site avec a2ensite et rechargement d’Apache.

3. 🌐 Création d’un mini site web

Réalisation d’un petit site HTML/CSS affichant “Hello world” puis d’un portfolio plus complet.

Structure du dossier :

/var/www/portfolio/
├── index.html
└── style.css

4. 🔒 Mise en place du HTTPS

Installation et configuration du certificat SSL avec Certbot et Let’s Encrypt.

Ajout du VirtualHost pour le port 443 :

<VirtualHost *:443>
    ServerName stage.ngh-cloud.fr
    DocumentRoot /var/www/portfolio
    SSLCertificateFile /etc/letsencrypt/live/stage.ngh-cloud.fr/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/stage.ngh-cloud.fr/privkey.pem
</VirtualHost>

Résultat : redirection automatique HTTP → HTTPS et connexion sécurisée.

5. 🛠️ Installation et configuration de GLPI

Téléchargement de GLPI depuis GitHub, décompression dans /var/www/glpi, configuration de la base de données via MariaDB et interface web.

Commandes principales :

sudo apt install [pré-réquis]
sudo mysql -u root -p
CREATE DATABASE glpi;
GRANT ALL PRIVILEGES ON glpi.* TO 'glpiuser'@'localhost' IDENTIFIED BY 'motdepasse';
FLUSH PRIVILEGES;
sudo mysql -e "SHOW DATABASES;"
ALTER USER 'glpiuser'@'localhost' IDENTIFIED BY 'NouveauMotDePasse';

6. 🧱 Sécurisation du serveur

  • Changement du port SSH dans /etc/ssh/sshd_config
  • Utilisation d’iptables pour filtrer le trafic
  • Autorisation explicite des ports nécessaires : 22, 80, 443
  • Configuration des permissions des fichiers via chown et chmod
  • Installation de Fail2Ban pour bloquer les tentatives d’intrusion

7. 🔍 Diagnostic et gestion des logs

Analyse des fichiers de logs pour identifier les erreurs Apache/MySQL :

/var/log/apache2/error.log
/var/log/mysql/error.log
journalctl -xe

Configuration de la rotation automatique des logs avec logrotate.

🌐 Migration vers Nginx + SSL

  • Désinstallation complète d’Apache2 et installation de Nginx avec PHP‑FPM 8.2
  • Reconfiguration des VirtualHosts pour glpi.ngh-cloud.fr, pterodactyl.ngh-cloud.fr et stage.ngh-cloud.fr
  • Génération de certificats SSL Let’s Encrypt et redirection automatique HTTP → HTTPS

🛠️ Déploiement complet des services

  • GLPI : installation, configuration base de données MariaDB, vérification du fonctionnement PHP
  • Pterodactyl : réinstallation du panel et du nœud Wings, connexion base de données, configuration SMTP fonctionnelle
  • Portainer : conteneur Docker configuré avec volume persistant et accès en HTTPS sur le port 9443

🛡️ Sécurité et administration

  • Application d’une politique de mot de passe : 12 caractères minimum, majuscules, minuscules, chiffres et caractères spéciaux
  • Changement du port SSH par défaut et désactivation de la connexion root
  • Ajout de Fail2Ban pour la prévention des attaques par force brute
  • Configuration d’iptables : ouverture uniquement des ports nécessaires (22, 80, 443, 8080, 9443)
  • Mise en place du 2FA sur les comptes ayant accès SSH

📦 Bilan et compétences acquises

  • Administration avancée de serveurs Linux (Debian)
  • Gestion de services web sous Nginx avec HTTPS et sécurité renforcée
  • Déploiement multi‑applications (GLPI, Pterodactyl, Portainer)
  • Diagnostic d’erreurs réseau et configuration DNS/SSL

Ce projet de fin de stage m’a permis de valider mes connaissances en déploiement, maintenance et sécurisation de serveurs web en environnement professionnel.

🎓 Conclusion du stage

Ce stage m’a permis de développer une réelle autonomie dans l’administration et la sécurisation d’un environnement serveur complet. J’ai acquis une expérience concrète en configuration web, réseau, virtualisation et cybersécurité, tout en respectant les contraintes d’un environnement de production.