1. Préparation et Installation du Système de Base
Avant de taper la moindre ligne de code, il est essentiel de partir sur des bases saines avec la dernière version LTS (Long Term Support) d'Ubuntu.
Les Prérequis Une machine physique ou un VPS (Virtual Private Server) chez un hébergeur cloud.
L'image ISO d'Ubuntu Server, téléchargeable sur le Site officiel d'Ubuntu.
Un accès Internet sur la machine cible.
Un client SSH installé sur votre ordinateur personnel (Terminal sous Linux/macOS, ou PuTTY/PowerShell sous Windows).
Installation de l'OS Démarrez sur l'image ISO.
Suivez l'assistant d'installation : choisissez votre langue, configurez votre clavier et validez les paramètres réseau (assurez-vous d'avoir une adresse IP statique).
À l'étape du partitionnement, laissez les paramètres par défaut ou configurez LVM si vous souhaitez plus de flexibilité.
Créez votre utilisateur principal (évitez de l'appeler admin ou root).
Cochez impérativement l'option Install OpenSSH server lorsqu'elle vous est proposée.
Une fois l'installation terminée, redémarrez la machine et connectez-vous via SSH depuis votre ordinateur :
ssh nom_utilisateur@adresse_ip_du_serveur
2. Configuration Initiale et Mises à Jour
La première étape sur tout nouveau serveur est de s'assurer que tous les paquets sont à jour avec les derniers correctifs de sécurité.
Bash
Mise à jour de la liste des paquets
`sudo apt update
Installation des mises à jour disponibles
sudo apt upgrade -y
Installation de unattended-upgrades Pour s'assurer que les correctifs de sécurité critiques sont appliqués automatiquement :
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
3. Durcissement de la Sécurité (Hardening)
Un serveur exposé sur Internet est constamment scanné. Il faut verrouiller les accès immédiatement.
Sécurisation du service SSH Il est recommandé de désactiver la connexion par mot de passe au profit d'une clé SSH, et d'interdire la connexion directe en tant que root.
Éditez le fichier de configuration SSH :
sudo nano /etc/ssh/sshd_config
Modifiez ou ajoutez les lignes suivantes :
Plaintext
PermitRootLogin no
PasswordAuthentication no
Redémarrez le service pour appliquer les changements :
sudo systemctl restart ssh
Configuration du Pare-feu (UFW) UFW (Uncomplicated Firewall) est un outil simple pour gérer les règles de pare-feu iptables.
Bash
Refuser le trafic entrant par défaut
sudo ufw default deny incoming
Autoriser le trafic sortant par défaut
sudo ufw default allow outgoing
Autoriser SSH (sinon vous serez bloqué dehors !)
sudo ufw allow OpenSSH
Autoriser le trafic HTTP et HTTPS pour le futur serveur web
sudo ufw allow 'Apache Full'
Activer le pare-feu
sudo ufw enable
Installation de Fail2Ban Fail2Ban analyse les logs du serveur et bannit les adresses IP qui montrent des signes d'attaques par force brute.
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
4. Déploiement du Serveur Web (Stack LAMP)
Maintenant que notre serveur est une forteresse, installons les services web.
Étape A : Le serveur Web Apache Apache est l'un des serveurs web les plus robustes et populaires au monde.
sudo apt install apache2 -y
Vérifiez son fonctionnement en tapant l'adresse IP de votre serveur dans votre navigateur. Vous devriez voir la page par défaut "Apache2 Ubuntu Default Page".
Étape B : Le serveur de Base de Données (MariaDB) MariaDB est un fork communautaire de MySQL, réputé pour ses excellentes performances.
sudo apt install mariadb-server -y
Sécurisation post-installation de la base de données : Lancez le script de sécurité intégré pour définir un mot de passe root et supprimer les bases de données de test.
sudo mysql_secure_installation
Étape C : PHP Pour rendre vos pages web dynamiques (nécessaire pour des CMS comme WordPress), installez PHP et ses modules courants.
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y
5. Sécurité Avancée Web : HTTPS avec Let's Encrypt
Il est inconcevable aujourd'hui de faire tourner un site sans certificat SSL/TLS valide (le fameux petit cadenas https). Nous allons utiliser Certbot pour obtenir un certificat gratuit via Let's Encrypt.
Note : Pour cette étape, vous devez posséder un nom de domaine valide (ex: mondomaine.com) pointant vers l'adresse IP de votre serveur (Enregistrement DNS de type A).
Installation de Certbot
sudo apt install certbot python3-certbot-apache -y
Génération du Certificat Exécutez la commande suivante et suivez les instructions à l'écran :
sudo certbot --apache -d mondomaine.com -d www.mondomaine.com
Certbot va automatiquement :
-
Vérifier que vous contrôlez bien le domaine.
-
Obtenir le certificat.
-
Modifier la configuration d'Apache pour forcer la redirection de HTTP vers HTTPS.
Conclusion Votre serveur Linux Ubuntu est désormais installé, équipé d'un serveur web complet et sécurisé contre la majorité des menaces automatisées du web.
Prochaines étapes conseillées :
Configurer des sauvegardes régulières (via rsync ou des solutions cloud).
Mettre en place un outil de monitoring comme Netdata ou Prometheus pour surveiller les ressources (CPU, RAM, Disque).
Surveiller régulièrement vos logs situés dans le dossier /var/log/.
Aucun commentaire pour le moment.