15%

É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
31.10.2024
1 +1

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 robuste de paquets et son solide support communautaire 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 paie ses dividendes à 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 en production.

Table des matières

  1. Mettre à jour Ubuntu avant d’installer quoi que ce soit
  2. Installation des composants essentiels
  3. Configuration des référentiels logiciels
  4. Installation et configuration d’un pare-feu avec UFW
  5. Installation et configuration des serveurs de base de données
  6. Installation d’outils et d’utilitaires supplémentaires
  7. Personnalisation des paramètres système Ubuntu
  8. Configuration des sauvegardes automatisées
  9. Surveillance du système et optimisation des performances
  10. Conseils finaux pour un système Ubuntu prêt pour la production

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

Avant de toucher un seul paquet, mettez toujours votre système à jour. Cela garantit que vous travaillez avec les derniers correctifs de sécurité, corrections de bogues 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 nouvellement provisionné — en particulier si vous exécutez Ubuntu sur un Dedicated Server — cette étape est non négociable. Les paquets obsolètes sont l’un des vecteurs d’attaque les plus courants pour les violations de sécurité.

Après la mise à niveau, redémarrez si le noyau 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 paquets les plus critiques pour tout déploiement Ubuntu sérieux.

2.1. Build Essentials

Le paquet build-essential installe un ensemble organisé d’outils requis pour compiler les logiciels à partir de la source, 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 paquet 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 à partir de 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 connexes.
  • 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 prend en charge plusieurs options selon votre préférence 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 (basée sur les événements)Bonne (basée sur les 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 — en particulier sur les environnements cloud VPS Hosting — 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 référentiels logiciels

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

Méthode 1 : Utilisation de l’interface graphique (Ubuntu de bureau)

  1. Ouvrez Logiciels et mises à jour à partir du 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 : Utilisation de la ligne de commande (recommandée pour les serveurs)

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

Aperçu du référentiel :

RéférentielContenu
MainLogiciels open-source officiellement pris en charge
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 référentiels 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 des PPA que provenant de sources fiables et bien connues. Les référentiels 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 le système de gestion de base de données relationnelle open-source le plus largement déployé 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émarrez et activez MySQL :

sudo systemctl start mysql
sudo systemctl enable mysql

Vérifiez que le service s’exécute :

sudo systemctl status mysql

Connectez-vous au shell MySQL :

sudo mysql -u root -p

5.2. Installation de MariaDB (alternative compatible 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 classe entreprise connu pour sa conformité aux normes et son extensibilité.

sudo apt install postgresql postgresql-contrib -y

Démarrez et activez PostgreSQL :

sudo systemctl start postgresql
sudo systemctl enable postgresql

Basculez vers l’utilisateur administratif PostgreSQL et ouvrez le shell :

sudo -i -u postgres
psql

Créez 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 — Runtime de conteneur

Docker vous permet d’empaqueter les applications et leurs dépendances dans des conteneurs portables, garantissant la cohérence entre les environnements de développement, de test 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 et en couleur des processus système, de l’utilisation du CPU, de la consommation de mémoire, et plus encore — bien supérieur à la commande standard top.

sudo apt install htop -y
htop

Raccourcis clés 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 Tmux essentielles :

# 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 critique — en particulier sur les serveurs accessibles au public. Le paquet 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 noyau.
  • Unattended-Upgrade::Mail — Configurez les notifications par courrier électronique pour l’activité de mise à jour.

7.2. Gestion des applications de démarrage (Ubuntu de bureau)

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 de 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ée pour les serveurs)

rsync est la norme de l’industrie 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

Moniteur système GNOME (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 à partir du 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. Configuration et activation de 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 échange correctement configuré peut prévenir les plantages dus à un manque 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

Affinez 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. Suppression des paquets inutilisés et nettoyage du cache des paquets

Au fil du temps, les paquets orphelins et les téléchargements en cache consom

15%

É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