Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Administration Linux

Installation et Configuration des Composants Ubuntu : Un Guide Complet

Ubuntu reste l’une des distributions Linux les plus populaires au monde — et pour de bonnes raisons. Sa flexibilité, son écosystème de paquets robuste et le soutien communautaire solide en font une plateforme idéale pour les développeurs, les administrateurs système et les entreprises. Que vous configuriez une machine de développement locale ou que vous provisionniez un environnement VPS Hosting dans le cloud, savoir comment installer et configurer correctement les composants Ubuntu est une compétence fondamentale qui porte ses fruits à tous les niveaux de votre infrastructure.

Ce guide complet vous guide à travers chaque étape critique : mettre à jour votre système, installer les paquets essentiels, configurer les pare-feu, configurer les serveurs de base de données, optimiser les performances, et bien plus encore. À la fin, votre système Ubuntu sera renforcé, efficace et prêt pour les charges de travail de production.

1. Mise à jour d’Ubuntu avant d’installer quoi que ce soit

Avant de toucher à un seul paquet, mettez toujours votre système complètement à jour. Cela garantit que vous travaillez avec les derniers correctifs de sécurité, corrections de bugs et améliorations de compatibilité logicielle.

sudo apt update && sudo apt upgrade -y

Ce que cela fait :

  • apt update — Actualise l’index local des paquets à partir de tous les référentiels configurés.
  • apt upgrade -y — Met à niveau tous les paquets installés vers leurs dernières versions disponibles, en confirmant automatiquement les invites.

> Conseil professionnel : Sur un serveur fraîchement provisionné — en particulier si vous exécutez Ubuntu sur un Serveur Dédié — cette étape est incontournable. Les paquets obsolètes sont l’un des vecteurs les plus courants de violations de sécurité.

Après la mise à niveau, redémarrez si le kernel a été mis à jour :

sudo reboot

2. Installation des composants essentiels

La puissance d’Ubuntu réside dans son extensibilité. Les sous-sections suivantes couvrent les packages les plus critiques pour tout déploiement Ubuntu sérieux.

2.1. Build Essentials

Le package build-essential installe un ensemble curé d’outils nécessaires pour compiler des logiciels à partir des sources, y compris GCC (GNU Compiler Collection), Make et les bibliothèques C/C++ standard.

sudo apt install build-essential -y

Vérifiez l’installation :

gcc --version
make --version

Ce package est un prérequis pour de nombreux autres outils et runtimes de langage (par exemple, extensions Python, gems Ruby, modules natifs Node.js).

2.2. Git — Système de contrôle de version

Git est l’outil standard de l’industrie pour la gestion du code source, le développement collaboratif et les pipelines de déploiement.

sudo apt install git -y

Après l’installation, configurez votre identité globale :

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Vérifiez votre configuration :

git config --list

Optionnel mais recommandé : Définissez le nom de votre branche par défaut sur main pour vous aligner sur les conventions modernes :

git config --global init.defaultBranch main

2.3. Outils réseau : curl et wget

Ces utilitaires sont indispensables pour télécharger des fichiers, tester des API et déboguer la connectivité réseau directement depuis la ligne de commande.

sudo apt install curl wget -y

Exemples d’utilisation rapide :

# Download a file with wget
wget https://example.com/file.tar.gz

# Test an API endpoint with curl
curl -I https://example.com

Outils de diagnostic réseau supplémentaires utiles :

sudo apt install net-tools dnsutils traceroute -y
  • net-tools — Fournit ifconfig, netstat et les commandes associées.
  • dnsutils — Inclut dig et nslookup pour le dépannage DNS.
  • traceroute — Trace le chemin réseau vers un hôte distant.

2.4. Éditeurs de texte

Chaque administrateur système a besoin d’un éditeur de texte fiable en ligne de commande. Ubuntu supporte plusieurs options selon vos préférences et votre flux de travail.

Nano (convivial pour les débutants) :

sudo apt install nano -y

Vim (puissant, hautement configurable) :

sudo apt install vim -y

Emacs (riche en fonctionnalités, extensible) :

sudo apt install emacs -y

> Recommandation : Pour les environnements serveur, Vim est l’option la plus universellement disponible et capable. Investissez du temps pour apprendre ses commandes principales — cela accélèrera considérablement votre flux de travail.

2.5. Installation du serveur web

Un serveur web est essentiel pour héberger des sites web, des applications web et des API. Les deux choix dominants sur Ubuntu sont Nginx et Apache.

Installation de Nginx (recommandé pour les hautes performances)

sudo apt install nginx -y

Démarrez et activez Nginx pour qu’il se lance automatiquement au démarrage :

sudo systemctl start nginx
sudo systemctl enable nginx

Vérifiez qu’il s’exécute :

sudo systemctl status nginx

Testez votre configuration avant de recharger :

sudo nginx -t

Installation d’Apache

sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2

Nginx vs. Apache — Lequel devriez-vous choisir ?

FonctionnalitéNginxApache
Performance sous chargeExcellente (événementielle)Bonne (basée sur processus/threads)
Service de fichiers statiquesTrès rapideRapide
Support .htaccessNonOui
Écosystème de modulesEn croissanceÉtendu
Utilisation de la mémoireInférieureSupérieure

Pour la plupart des déploiements modernes — particulièrement dans les environnements VPS Hosting cloud — Nginx est le choix préféré en raison de sa gestion supérieure des connexions simultanées et de son empreinte mémoire plus faible.

3. Configuration des dépôts logiciels

L’installation par défaut d’Ubuntu n’active que les dépôts Main et Restricted. Pour accéder à une gamme beaucoup plus large de logiciels, vous devez activer les dépôts Universe et Multiverse.

Méthode 1 : Utiliser l’interface graphique (Ubuntu Desktop)

  1. Ouvrez Logiciels et mises à jour depuis le menu des applications.
  2. Sous l’onglet Logiciels Ubuntu, cochez les cases pour Universe et Multiverse.
  3. Cliquez sur Fermer et rechargez la liste des paquets lorsque vous y êtes invité.

Méthode 2 : Utiliser la ligne de commande (Recommandé pour les serveurs)

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt update

Aperçu des dépôts :

DépôtContenu
MainLogiciels open-source officiellement soutenus
RestrictedPilotes propriétaires avec support officiel
UniverseLogiciels open-source maintenus par la communauté
MultiverseLogiciels avec restrictions de licence

Ajout de PPA tiers

Pour les logiciels non disponibles dans les dépôts officiels, vous pouvez ajouter des Archives de paquets personnels (PPA) :

sudo add-apt-repository ppa:repository-name/ppa
sudo apt update
sudo apt install package-name

> Note de sécurité : N’ajoutez que des PPA provenant de sources de confiance et bien connues. Les dépôts tiers peuvent introduire des logiciels non vérifiés dans votre système.

4. Installation et configuration d’un pare-feu avec UFW

Ubuntu est livré avec UFW (Uncomplicated Firewall), une interface conviviale pour iptables. La configuration correcte de votre pare-feu est l’une des étapes de sécurité les plus importantes pour tout serveur accessible sur Internet.

Activer UFW

sudo ufw enable

Autoriser les services essentiels

Autorisez toujours SSH avant d’activer le pare-feu pour éviter de vous verrouiller :

sudo ufw allow ssh

Ou spécifiez le port explicitement :

sudo ufw allow 22/tcp

Autorisez le trafic HTTP et HTTPS pour les serveurs web :

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Autorisez les profils d’application spécifiques :

sudo ufw allow 'Nginx Full'
# or
sudo ufw allow 'Apache Full'

Vérifier l’état du pare-feu

sudo ufw status verbose

Commandes UFW supplémentaires

# Deny a specific port
sudo ufw deny 8080/tcp

# Delete a rule
sudo ufw delete allow 8080/tcp

# Reset all rules
sudo ufw reset

# Disable UFW
sudo ufw disable

> Bonne pratique : Suivez le principe du moindre privilège — n’ouvrez que les ports explicitement requis pour vos services. Chaque port ouvert inutile est une surface d’attaque potentielle.

5. Installation et Configuration des Serveurs de Base de Données

Les bases de données sont l’épine dorsale de pratiquement toutes les applications web. Ubuntu prend en charge tous les principaux systèmes de bases de données relationnelles et NoSQL via ses référentiels de paquets.

5.1. Installation de MySQL

MySQL est la base de données relationnelle open-source la plus largement déployée au monde.

sudo apt install mysql-server -y

Après l’installation, exécutez le script de renforcement de la sécurité :

sudo mysql_secure_installation

Ce script interactif va :

  • Définir un mot de passe root (ou valider la force du mot de passe)
  • Supprimer les utilisateurs anonymes
  • Interdire la connexion root à distance
  • Supprimer la base de données de test
  • Recharger les tables de privilèges

Démarrer et activer MySQL :

sudo systemctl start mysql
sudo systemctl enable mysql

Vérifier que le service est en cours d’exécution :

sudo systemctl status mysql

Se connecter au shell MySQL :

sudo mysql -u root -p

5.2. Installation de MariaDB (Alternative Compatible avec MySQL)

MariaDB est un fork développé par la communauté de MySQL avec des performances améliorées et des fonctionnalités supplémentaires :

sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo systemctl enable --now mariadb

5.3. Installation de PostgreSQL

PostgreSQL est un système de base de données objet-relationnel puissant et de niveau entreprise, connu pour sa conformité aux normes et son extensibilité.

sudo apt install postgresql postgresql-contrib -y

Démarrer et activer PostgreSQL :

sudo systemctl start postgresql
sudo systemctl enable postgresql

Passer à l’utilisateur administratif PostgreSQL et ouvrir le shell :

sudo -i -u postgres
psql

Créer une nouvelle base de données et un nouvel utilisateur :

CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp_user;
q

6. Installation d’outils et d’utilitaires supplémentaires

Au-delà des éléments essentiels, les outils suivants améliorent considérablement votre productivité, la visibilité du système et les capacités de déploiement.

Docker — Container Runtime

Docker vous permet de packager les applications et leurs dépendances dans des conteneurs portables, garantissant la cohérence entre les environnements de développement, de staging et de production.

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

Ajoutez votre utilisateur au groupe Docker pour exécuter des commandes sans sudo :

sudo usermod -aG docker $USER
newgrp docker

Vérifiez que Docker fonctionne :

docker run hello-world

Pour les déploiements en production, envisagez également d’installer Docker Compose :

sudo apt install docker-compose -y

htop — Visionneuse de processus interactive

htop fournit une vue en temps réel, codée par couleur, des processus système, de l’utilisation du CPU, de la consommation de mémoire, et bien plus — bien supérieur à la commande standard top.

sudo apt install htop -y
htop

Raccourcis clés de htop :

  • F6 — Trier les processus par colonne
  • F9 — Terminer un processus
  • F10 — Quitter
  • / — Rechercher un processus

Tmux — Multiplexeur de terminal

Tmux vous permet de créer, gérer et conserver plusieurs sessions de terminal dans une seule connexion SSH — inestimable pour les tâches longues sur les serveurs distants.

sudo apt install tmux -y

Commandes essentielles de Tmux :

# Start a new session
tmux new -s mysession

# Detach from session (keeps it running)
Ctrl+B, then D

# List all sessions
tmux ls

# Reattach to a session
tmux attach -t mysession

Utilitaires supplémentaires recommandés

# fail2ban — Intrusion prevention system
sudo apt install fail2ban -y

# unzip — Extract ZIP archives
sudo apt install unzip -y

# tree — Display directory structure
sudo apt install tree -y

# ncdu — Disk usage analyzer
sudo apt install ncdu -y

# jq — JSON processor for the command line
sudo apt install jq -y

7. Personnalisation des paramètres système Ubuntu

7.1. Activation des mises à jour de sécurité automatiques

Maintenir votre système à jour est essentiel — en particulier sur les serveurs accessibles au public. Le package unattended-upgrades d’Ubuntu automatise ce processus.

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Pour personnaliser le comportement, modifiez le fichier de configuration :

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Paramètres clés à examiner :

  • Unattended-Upgrade::Allowed-Origins — Définissez les référentiels qui déclenchent les mises à jour automatiques.
  • Unattended-Upgrade::Automatic-Reboot — Définissez sur true pour autoriser les redémarrages automatiques après les mises à jour du kernel.
  • Unattended-Upgrade::Mail — Configurez les notifications par e-mail pour l’activité de mise à jour.

7.2. Gestion des applications au démarrage (Ubuntu Desktop)

Contrôler les applications qui se lancent à la connexion aide à réduire le temps de démarrage et à économiser les ressources système.

  1. Recherchez Applications au démarrage dans le menu des applications GNOME.
  2. Examinez la liste des programmes de démarrage activés.
  3. Désactivez les applications dont vous n’avez pas besoin à la connexion.
  4. Utilisez le bouton Ajouter pour enregistrer de nouveaux scripts de démarrage ou applications.

Pour les environnements serveur, gérez les services avec systemd :

# Disable a service from starting at boot
sudo systemctl disable service-name

# Enable a service at boot
sudo systemctl enable service-name

# List all enabled services
sudo systemctl list-unit-files --state=enabled

7.3. Configuration du fuseau horaire du système

La configuration correcte du fuseau horaire est essentielle pour la précision des journaux, les tâches planifiées et la validation des certificats SSL.

# Check current timezone
timedatectl

# List available timezones
timedatectl list-timezones

# Set timezone
sudo timedatectl set-timezone Europe/London

7.4. Configuration de SSH pour un accès à distance sécurisé

Si vous gérez un serveur distant, renforcer votre configuration SSH est primordial.

sudo nano /etc/ssh/sshd_config

Paramètres de sécurité recommandés :

# Disable root login
PermitRootLogin no

# Disable password authentication (use SSH keys instead)
PasswordAuthentication no

# Change default SSH port (optional but reduces automated scanning)
Port 2222

# Limit login attempts
MaxAuthTries 3

Après avoir apporté des modifications, redémarrez SSH :

sudo systemctl restart sshd

> Important : Testez toujours votre nouvelle configuration SSH dans une session de terminal séparée avant de fermer votre connexion actuelle pour éviter d’être verrouillé.

8. Configuration des sauvegardes automatisées

La perte de données est catastrophique. Que vous exécutiez un projet personnel ou une application critique pour l’entreprise, les sauvegardes automatisées sont non négociables.

Utilisation de l’outil de sauvegarde intégré d’Ubuntu (Bureau)

  1. Recherchez Sauvegardes (Déjà Dup) dans le menu des applications.
  2. Configurez votre destination de sauvegarde : lecteur externe, partage réseau ou stockage cloud.
  3. Définissez un calendrier de sauvegarde sous l’onglet Planification.
  4. Activez Sauvegarde automatique et configurez les périodes de rétention.

Sauvegarde en ligne de commande avec rsync (Recommandé pour les serveurs)

rsync est la norme de référence pour les sauvegardes de fichiers efficaces et incrémentielles sur les serveurs Linux.

# Basic local backup
rsync -avz /source/directory/ /backup/destination/

# Remote backup over SSH
rsync -avz -e ssh /local/directory/ user@remote-server:/backup/path/

# Exclude specific directories
rsync -avz --exclude='*.log' --exclude='tmp/' /source/ /destination/

Automatisation des sauvegardes avec Cron

crontab -e

Ajoutez une tâche de sauvegarde quotidienne à 2h00 du matin :

0 2 * * * rsync -avz /var/www/ /backup/www/ >> /var/log/backup.log 2>&1

Meilleures pratiques de sauvegarde

  • Suivez la règle 3-2-1 : 3 copies de données, sur 2 types de médias différents, avec 1 copie hors site.
  • Testez régulièrement vos sauvegardes en effectuant des exercices de restauration.
  • Chiffrez les données de sauvegarde sensibles.
  • Surveillez les journaux de sauvegarde pour détecter les défaillances.

9. Surveillance du système et optimisation des performances

Outils de surveillance intégrés

GNOME System Monitor (Bureau) :

Fournit un aperçu graphique de l’utilisation du CPU, de la mémoire, des E/S disque et du réseau. Lancez-le depuis le menu des applications ou via :

gnome-system-monitor

htop (Ligne de commande) :

htop

vmstat — Statistiques de mémoire virtuelle :

vmstat 1 10

iostat — Statistiques CPU et E/S :

sudo apt install sysstat -y
iostat -x 1 5

free — Utilisation de la mémoire :

free -h

df — Utilisation de l’espace disque :

df -h

netstat / ss — Connexions réseau :

ss -tuln

9.1. Configuration de la surveillance du système avec Prometheus et Node Exporter

Pour les environnements de production, une pile de surveillance appropriée fournit des données historiques, des alertes et des tableaux de bord.

# Install Node Exporter for system metrics
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo cp node_exporter-*/node_exporter /usr/local/bin/
sudo systemctl enable --now node_exporter

10. Optimisation des performances du système

10.1. Désactiver les services de démarrage inutiles

Identifiez et désactivez les services dont vous n’avez pas besoin :

# List all running services
sudo systemctl list-units --type=service --state=running

# Disable a specific service
sudo systemctl disable --now bluetooth.service
sudo systemctl disable --now cups.service

10.2. Configurer et activer l’espace d’échange

L’espace d’échange agit comme une mémoire de débordement lorsque la RAM est épuisée. Sur les serveurs avec une RAM limitée, un swap correctement configuré peut prévenir les plantages dus à l’insuffisance de mémoire.

# Create a 2GB swap file
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Make swap permanent across reboots
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Ajustez la swappiness (valeur inférieure = échange moins agressif) :

sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

10.3. Supprimer les packages inutilisés et nettoyer le cache des packages

Au fil du temps, les packages orphelins et les téléchargements en cache consomment un espace disque important :

# Remove automatically installed packages no longer needed
sudo apt autoremove -y

# Remove cached package files
sudo apt autoclean

# Full clean of the package cache
sudo apt clean

10.4. Optimiser les E/S disque avec le planificateur Deadline

Pour les SSD, le planificateur none (noop) offre souvent de meilleures performances :

# Check current scheduler
cat /sys/block/sda/queue/scheduler

# Set scheduler temporarily
echo none | sudo tee /sys/block/sda/queue/scheduler

10.5. Activer et configurer Fail2Ban

Fail2Ban surveille les fichiers journaux et bannit automatiquement les adresses IP qui affichent un comportement malveillant (par exemple, les attaques SSH par force brute) :

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

Créez un remplacement de configuration locale :

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Paramètres clés :

[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
findtime = 600

Redémarrez Fail2Ban pour appliquer les modifications :

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

Héberger votre serveur Ubuntu avec AlexHost

Un système Ubuntu correctement configuré n’est aussi bon que l’infrastructure sur laquelle il s’exécute. Que vous déployiez un projet personnel, une application métier ou une architecture multi-niveaux complexe, un hébergement fiable est la fondation de tout.

AlexHost propose un large éventail de solutions d’hébergement conçues pour compléter votre configuration Ubuntu :

  • Hébergement VPS — Accès root complet, stockage SSD et ressources évolutives. Parfait pour les déploiements de serveurs Ubuntu avec un contrôle total de votre environnement.
  • Serveurs dédiés — Performance bare-metal pour les charges de travail exigeantes. Idéal lorsque vous avez besoin d’un CPU, RAM et débit d’E/S maximum sans partage de ressources.
  • VPS avec cPanel — Combine la puissance d’un VPS avec la facilité d’utilisation de l’interface de gestion web de cPanel — une excellente option si vous préférez une interface graphique à la ligne de commande.
  • Certificats SSL — Sécurisez vos applications web avec des certificats SSL/TLS de confiance. Essentiel pour tout serveur web en production.
  • Hébergement web partagé — Un point d’entrée abordable pour les projets plus petits qui ne nécessitent pas encore un VPS complet.

Tous les serveurs AlexHost supportent Ubuntu et peuvent être provisionnés en quelques minutes, vous donnant une base propre et à jour pour appliquer tout ce qui est couvert dans ce guide.

Conclusion

L’installation et la configuration des composants Ubuntu ne sont pas une tâche ponctuelle — c’est une pratique continue qui évolue avec vos besoins en infrastructure. En travaillant systématiquement sur les mises à jour système, l’installation des packages essentiels, la configuration des référentiels, la configuration du pare-feu, le déploiement de bases de données, l’optimisation des performances et les sauvegardes automatisées, vous construisez un environnement Ubuntu robuste, sécurisé et hautement capable.

Que vous soyez un développeur configurant une station de travail locale, un administrateur système gérant une flotte de serveurs cloud, ou une entreprise déployant des applications en production, les principes et les commandes couverts dans ce guide fournissent une base solide et reproductible.

Points clés à retenir :

  • Mettez toujours à jour votre système avant d’installer un nouveau logiciel.
  • Suivez le principe du moindre privilège pour les utilisateurs, les services et les règles de pare-feu.
  • Automatisez les mises à jour de sécurité et les sauvegardes — ne comptez pas sur les processus manuels.
  • Surveillez votre système de manière proactive, pas réactive.
  • Choisissez votre infrastructure d’hébergement judicieusement — elle sous-tend tout le reste.

Appliquez ces pratiques de manière cohérente, et votre système Ubuntu restera sécurisé, performant et prêt pour tout ce que vous lui lancez.