Objectif du Projet
Mettre en pratique les compétences acquises (gestion de paquets, services, pare-feu) pour installer, configurer et sécuriser un serveur web Nginx fonctionnel sur un système de type Debian/Ubuntu.
Le Scénario
Vous disposez d’un nouveau serveur Linux fraîchement installé. Votre mission est de le transformer en un serveur web capable de servir une page HTML simple sur Internet, de manière sécurisée.
Les Étapes
Ce projet est une séquence de commandes que vous avez apprises dans les chapitres précédents.
Étape 1 : Mettre à jour le système
Avant d’installer quoi que ce soit, il est crucial de s’assurer que le système est à jour.
sudo apt update
sudo apt upgrade -y
Étape 2 : Installer Nginx
Nginx est un serveur web moderne, performant et très populaire. On l’installe depuis les dépôts officiels.
sudo apt install nginx
Étape 3 : Configurer le pare-feu (ufw)
Par défaut, le trafic web est bloqué. Nous devons configurer notre pare-feu ufw pour autoriser les connexions entrantes sur les ports HTTP (80) et HTTPS (443).
-
Autoriser le trafic Nginx.
ufwconnaît les profils d’application courants.# Affiche les profils d'application connus sudo ufw app list # Autorise Nginx sur tous les ports nécessaires (HTTP, HTTPS) sudo ufw allow 'Nginx Full'Si vous ne vouliez que le HTTP, vous utiliseriez
'Nginx HTTP'. -
Vérifier que SSH est autorisé (TRÈS IMPORTANT).
sudo ufw allow ssh -
Activer le pare-feu.
sudo ufw enable -
Vérifier le statut.
sudo ufw status # Status: active # # To Action From # -- ------ ---- # Nginx Full ALLOW Anywhere # 22/tcp ALLOW Anywhere
Étape 4 : Vérifier le service Nginx
Le gestionnaire de paquets a normalement déjà démarré et activé le service Nginx. Vérifions-le avec systemctl.
systemctl status nginx
Vous devriez voir Active: active (running). Si ce n’est pas le cas, vous pouvez le démarrer et l’activer avec :
sudo systemctl start nginx
sudo systemctl enable nginx
Étape 5 : Créer une page d’accueil personnalisée
Par défaut, Nginx sert les fichiers situés dans /var/www/html. Le fichier index.html est la page affichée par défaut. Nous allons remplacer la page par défaut d’Ubuntu par la nôtre.
# On crée le contenu de notre page
PAGE_HTML="<h1>Bonjour depuis mon serveur Nginx !</h1><p>Ce serveur a été configuré avec succès.</p>"
# On utilise 'tee' avec 'sudo' pour écrire dans le fichier protégé
echo "$PAGE_HTML" | sudo tee /var/www/html/index.html
Étape 6 : Tester le résultat
Vous avez maintenant un serveur web fonctionnel. Pour le tester :
- Trouvez l’adresse IP de votre serveur avec
ip a. - Depuis une autre machine sur le même réseau (ou votre propre machine si c’est une VM), ouvrez un navigateur web.
- Entrez l’adresse IP de votre serveur dans la barre d’adresse.
Vous devriez voir votre page “Bonjour depuis mon serveur Nginx !”.
Résumé du projet
En quelques étapes, vous avez :
- Installé un logiciel avec
apt. - Configuré un pare-feu avec
ufw. - Géré un service avec
systemctl. - Modifié un fichier dans un répertoire système de manière sécurisée.
C’est une excellente synthèse des compétences de base en administration système sous Linux.
Exercices et améliorations
-
Créer un deuxième site (avancé) :
- Créez un nouveau dossier
/var/www/monsite2. - Créez un
index.htmldifférent à l’intérieur. - Copiez le fichier de configuration par défaut de Nginx (
/etc/nginx/sites-available/default) vers un nouveau fichier/etc/nginx/sites-available/monsite2. - Modifiez ce nouveau fichier pour qu’il pointe vers votre nouveau dossier et écoute sur un autre “server_name”.
- Activez ce nouveau site en créant un lien symbolique vers
sites-enabled. - Rechargez la configuration de Nginx avec
sudo systemctl reload nginx.
- Créez un nouveau dossier
-
Passer en HTTPS :
- Recherchez comment utiliser l’outil
certbotpour obtenir un certificat SSL/TLS gratuit de Let’s Encrypt et configurer automatiquement Nginx pour le HTTPS.
- Recherchez comment utiliser l’outil