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
- Mettre à jour Ubuntu avant d’installer quoi que ce soit
- Installation des composants essentiels
- Configuration des référentiels logiciels
- Installation et configuration d’un pare-feu avec UFW
- Installation et configuration des serveurs de base de données
- Installation d’outils et d’utilitaires supplémentaires
- Personnalisation des paramètres système Ubuntu
- Configuration des sauvegardes automatisées
- Surveillance du système et optimisation des performances
- 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 -yCe 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 reboot2. 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 -yVérifiez l’installation :
gcc --version
make --versionCe 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 -yAprè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 --listOptionnel 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 main2.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 -yExemples 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.comOutils de diagnostic réseau supplémentaires utiles :
sudo apt install net-tools dnsutils traceroute -ynet-tools— Fournitifconfig,netstatet les commandes connexes.dnsutils— Inclutdigetnslookuppour 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 -yVim (puissant, hautement configurable) :
sudo apt install vim -yEmacs (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 -yDémarrez et activez Nginx pour qu’il se lance automatiquement au démarrage :
sudo systemctl start nginx
sudo systemctl enable nginxVérifiez qu’il s’exécute :
sudo systemctl status nginxTestez votre configuration avant de recharger :
sudo nginx -t#### Installation d’Apache
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2Nginx vs. Apache — Lequel devriez-vous choisir ?
| Fonctionnalité | Nginx | Apache |
|---|---|---|
| Performance sous charge | Excellente (basée sur les événements) | Bonne (basée sur les processus/threads) |
| Service de fichiers statiques | Très rapide | Rapide |
| Support .htaccess | Non | Oui |
| Écosystème de modules | En croissance | Étendu |
| Utilisation de la mémoire | Inférieure | Supé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)
- Ouvrez Logiciels et mises à jour à partir du menu des applications.
- Sous l’onglet Logiciels Ubuntu, cochez les cases pour Universe et Multiverse.
- 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 updateAperçu du référentiel :
| Référentiel | Contenu |
|---|---|
| Main | Logiciels open-source officiellement pris en charge |
| Restricted | Pilotes propriétaires avec support officiel |
| Universe | Logiciels open-source maintenus par la communauté |
| Multiverse | Logiciels 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 enableAutoriser les services essentiels
Autorisez toujours SSH avant d’activer le pare-feu pour éviter de vous verrouiller :
sudo ufw allow sshOu spécifiez le port explicitement :
sudo ufw allow 22/tcpAutorisez le trafic HTTP et HTTPS pour les serveurs Web :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpAutorisez 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 verboseCommandes 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 -yAprès l’installation, exécutez le script de renforcement de la sécurité :
sudo mysql_secure_installationCe 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 mysqlVérifiez que le service s’exécute :
sudo systemctl status mysqlConnectez-vous au shell MySQL :
sudo mysql -u root -p5.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 mariadb5.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 -yDémarrez et activez PostgreSQL :
sudo systemctl start postgresql
sudo systemctl enable postgresqlBasculez vers l’utilisateur administratif PostgreSQL et ouvrez le shell :
sudo -i -u postgres
psqlCré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;
q6. 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 dockerAjoutez votre utilisateur au groupe Docker pour exécuter des commandes sans sudo :
sudo usermod -aG docker $USER
newgrp dockerVérifiez que Docker fonctionne :
docker run hello-worldPour les déploiements en production, envisagez également d’installer Docker Compose :
sudo apt install docker-compose -yhtop — 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
htopRaccourcis clés htop :
F6— Trier les processus par colonneF9— Terminer un processusF10— 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 -yCommandes 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 mysessionUtilitaires 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 -y7. 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-upgradesPour personnaliser le comportement, modifiez le fichier de configuration :
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesParamè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 surtruepour 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.
- Recherchez Applications de démarrage dans le menu des applications GNOME.
- Examinez la liste des programmes de démarrage activés.
- Désactivez les applications dont vous n’avez pas besoin à la connexion.
- 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=enabled7.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/London7.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_configParamè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 3Aprè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)
- Recherchez Sauvegardes (Déjà Dup) dans le menu des applications.
- Configurez votre destination de sauvegarde : lecteur externe, partage réseau ou stockage cloud.
- Définissez un calendrier de sauvegarde sous l’onglet Planification.
- 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 -eAjoutez une tâche de sauvegarde quotidienne à 2h00 du matin :
0 2 * * * rsync -avz /var/www/ /backup/www/ >> /var/log/backup.log 2>&1Meilleures 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-monitorhtop (Ligne de commande) :
htopvmstat — Statistiques de mémoire virtuelle :
vmstat 1 10iostat — Statistiques CPU et E/S :
sudo apt install sysstat -y
iostat -x 1 5free — Utilisation de la mémoire :
free -hdf — Utilisation de l’espace disque :
df -hnetstat / ss — Connexions réseau :
ss -tuln9.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_exporter10. 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.service10.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/fstabAffinez la swappiness (valeur inférieure = échange moins agressif) :
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf10.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
