Ubuntu Server
| 🏠 Accueil | 📚 Index | 🐧 Linux | 🌐 Réseau | 🔒 Cybersécurité | 🖥️ Virtualisation | ✅ Checklists d'intervention | 📚 Tutoriels | 🤝 Services |
|---|
🐧 UBUNTU SERVER
Installation, administration et sécurisation d'un serveur Linux
Ubuntu Server est une distribution Linux conçue pour héberger des services informatiques : serveurs Web, bases de données, partage de fichiers, messagerie, DNS, virtualisation et bien plus encore.
Cette page présente les notions essentielles et les principales commandes pour installer, administrer et maintenir un serveur Ubuntu.
Objectif pédagogique : apprendre à administrer un serveur Ubuntu en ligne de commande, gérer les logiciels, configurer le réseau, sécuriser les accès et héberger des services.
1. Qu'est-ce qu'Ubuntu Server ?
Définition : Ubuntu Server est une édition d'Ubuntu adaptée aux serveurs. Elle permet d'exécuter des services informatiques de manière fiable, généralement sans interface graphique complète.
Ubuntu est basé sur Linux et fait partie de la famille des distributions Debian. Il est développé et maintenu par Canonical avec la participation de la communauté.
Ubuntu Server est utilisé pour :
- Héberger des sites Web avec Apache ou Nginx.
- Gérer des bases de données MySQL, MariaDB ou PostgreSQL.
- Fournir des services réseau : DNS, DHCP et partage de fichiers.
- Héberger des services de messagerie.
- Exécuter des machines virtuelles et des conteneurs.
- Stocker et partager des fichiers.
- Héberger des applications professionnelles.
Ubuntu Desktop ou Ubuntu Server ?
| Caractéristique | Ubuntu Desktop | Ubuntu Server |
|---|---|---|
| Utilisation principale | Poste de travail | Hébergement de services |
| Interface graphique | Généralement présente | Généralement absente par défaut |
| Administration | Interface graphique et terminal | Principalement en ligne de commande |
| Ressources | Dépend des applications et de l'environnement graphique | Peut fonctionner avec des ressources plus limitées |
| Exemples | Navigation, bureautique, développement | Web, DNS, messagerie, bases de données |
2. Choisir une version d'Ubuntu Server
Ubuntu propose des versions régulières et des versions LTS (Long Term Support).
Conseil : pour un serveur qui doit rester en service pendant plusieurs années, privilégier une version LTS encore prise en charge et vérifier la compatibilité des applications installées.
| Type de version | Caractéristiques |
|---|---|
| LTS | Version bénéficiant d'une période de maintenance prolongée. Adaptée à de nombreux serveurs. |
| Version intermédiaire | Version plus fréquente, avec un cycle de support plus court. |
| Image ISO | Fichier utilisé pour installer Ubuntu sur un serveur physique ou dans une machine virtuelle. |
Avant une installation, vérifie la version proposée, la durée de support, les besoins matériels et la compatibilité avec les logiciels souhaités.
Téléchargement officiel :
3. Configuration matérielle
Les besoins dépendent des services qui seront installés. Un serveur de test n'a pas les mêmes exigences qu'un serveur Web ou de messagerie utilisé en production.
| Ressource | Rôle |
|---|---|
| Processeur | Exécution du système et des applications. |
| Mémoire vive (RAM) | Stockage temporaire des données utilisées par les programmes. |
| Disque SSD ou HDD | Stockage du système, des journaux, des données et des sauvegardes locales. |
| Carte réseau | Communication avec le réseau local et éventuellement Internet. |
| Connexion Internet | Téléchargement des mises à jour et accès aux dépôts logiciels. |
Pour un serveur de production, prévois des ressources supplémentaires en fonction du nombre d'utilisateurs, des services et de la quantité de données.
4. Installer Ubuntu Server
Étape 1 : télécharger l'image ISO
Rends-toi sur le site officiel d'Ubuntu et télécharge l'image ISO de la version choisie.
Étape 2 : préparer le support d'installation
Selon le matériel utilisé, tu peux créer une clé USB démarrable avec un outil comme Rufus ou balenaEtcher. Pour une machine virtuelle, il suffit généralement de monter l'image ISO dans le lecteur virtuel.
Étape 3 : démarrer sur le support
Configure le démarrage du serveur pour utiliser la clé USB, le lecteur virtuel ou le média d'installation approprié.
Étape 4 : suivre l'assistant
Pendant l'installation, les choix principaux concernent :
- La langue et le clavier.
- La configuration du réseau.
- Le partitionnement du disque.
- Le nom du serveur.
- La création du compte utilisateur.
- L'installation éventuelle du serveur OpenSSH.
Étape 5 : redémarrer
À la fin de l'installation, retire le support d'installation si nécessaire, puis redémarre le serveur.
Attention : le partitionnement peut effacer des données présentes sur le disque. Vérifie soigneusement le disque sélectionné et sauvegarde les données importantes avant de commencer.
5. Première connexion et commandes essentielles
Après le démarrage, connecte-toi avec le compte utilisateur créé pendant l'installation.
Identifier le système
hostname hostnamectl uname -r lsb_release -a
- `hostname` affiche le nom de la machine.
- `hostnamectl` fournit des informations sur le système et le nom d'hôte.
- `uname -r` affiche la version du noyau Linux.
- `lsb_release -a` affiche les informations de version si la commande est disponible.
Vérifier les ressources
uptime free -h df -h lsblk
| Commande | Fonction | |- | `uptime` | Temps de fonctionnement et charge système. | `free -h` | Utilisation de la mémoire vive. | `df -h` | Espace utilisé et disponible sur les systèmes de fichiers. | `lsblk` | Liste les disques et les partitions.
Se déplacer dans les dossiers
pwd ls -lah cd /etc cd ..
- `pwd` affiche le répertoire courant.
- `ls -lah` affiche les fichiers, y compris les fichiers cachés, avec leurs tailles.
- `cd /etc` accède au répertoire de configuration.
- `cd ..` remonte d'un niveau.
6. Comprendre l'arborescence Linux
Linux organise les fichiers dans une arborescence qui commence à la racine `/`.
| Répertoire | Utilité |
|---|---|
| `/` | Racine du système de fichiers. |
| `/home` | Répertoires personnels des utilisateurs. |
| `/etc` | Fichiers de configuration. |
| `/var` | Données variables : journaux, files d'attente et données de services. |
| `/var/log` | Journaux du système et des applications. |
| `/tmp` | Fichiers temporaires. |
| `/usr` | Programmes, bibliothèques et ressources. |
| `/opt` | Applications supplémentaires installées hors de l'organisation habituelle des paquets. |
| `/srv` | Données utilisées par certains services. |
| `/mnt` | Point de montage temporaire ou administré manuellement. |
| `/root` | Répertoire personnel du compte administrateur système `root`. |
7. Gérer les logiciels avec APT
APT permet d'installer, de mettre à jour et de supprimer les logiciels provenant des dépôts configurés.
Mettre à jour la liste des paquets
sudo apt update
Cette commande actualise la liste des paquets disponibles. Elle n'installe pas, à elle seule, les mises à jour.
Installer les mises à jour
sudo apt upgrade
Cette commande propose d'installer les versions mises à jour des paquets selon les règles d'APT.
Installer un logiciel
sudo apt install nom-du-paquet
Exemple :
sudo apt install curl
Rechercher un paquet
apt search apache2
Supprimer un logiciel
sudo apt remove nom-du-paquet
Pour supprimer également les fichiers de configuration gérés par le paquet :
sudo apt purge nom-du-paquet
Nettoyer les paquets devenus inutiles
sudo apt autoremove
Bonne pratique : consulte les opérations proposées par APT avant de les confirmer, en particulier sur un serveur qui héberge déjà des services.
8. Administrer les utilisateurs et les permissions
Créer un utilisateur
sudo adduser nouvelutilisateur
Remplace `nouvelutilisateur` par le nom souhaité. La commande demande un mot de passe et quelques informations facultatives.
Ajouter un utilisateur au groupe sudo
sudo usermod -aG sudo nouvelutilisateur
L'utilisateur pourra utiliser `sudo` pour les opérations administratives après une nouvelle connexion, si la configuration du système le permet.
Attention : n'accorde les privilèges administratifs qu'aux comptes qui en ont réellement besoin.
Afficher les utilisateurs connectés
who w
Comprendre les permissions
Linux utilise notamment les droits de lecture (`r`), d'écriture (`w`) et d'exécution (`x`).
Exemple :
ls -l fichier.txt
Modifier les permissions d'un fichier :
chmod 640 fichier.txt
Modifier le propriétaire d'un fichier :
sudo chown utilisateur:utilisateur fichier.txt
Important : adapte le propriétaire et les permissions au service concerné. Évite les permissions excessives, notamment `chmod 777`, qui donne des droits très larges.
9. Configurer le réseau avec Netplan
Ubuntu Server utilise généralement Netplan pour décrire la configuration réseau.
Afficher les interfaces réseau
ip addr ip route
- `ip addr` affiche les interfaces et les adresses IP.
- `ip route` affiche les routes réseau, notamment la route par défaut.
Identifier les fichiers Netplan
ls -l /etc/netplan/
Les fichiers de configuration présents dans ce répertoire sont généralement au format YAML.
Exemple de configuration DHCP
Exemple indicatif pour une interface nommée `enp1s0` :
network:
version: 2
ethernets:
enp1s0:
dhcp4: true
Le nom de l'interface doit correspondre à celui de ton serveur.
Exemple d'adresse IP statique
network:
version: 2
ethernets:
enp1s0:
dhcp4: false
addresses:
- 192.168.1.20/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 1.1.1.1
- 9.9.9.9
Dans cet exemple :
- `192.168.1.20/24` est l'adresse IP du serveur.
- `192.168.1.1` est la passerelle.
- Les adresses indiquées sous `nameservers` sont des résolveurs DNS d'exemple. Tu peux utiliser les DNS de ton réseau.
Appliquer une configuration
Avant toute modification, conserve une copie du fichier d'origine.
sudo cp /etc/netplan/01-config.yaml /etc/netplan/01-config.yaml.bak
Le nom `01-config.yaml` est un exemple : utilise le nom réel de ton fichier.
Vérifier puis appliquer la configuration :
sudo netplan generate sudo netplan try
`netplan try` permet de tester une configuration et de revenir en arrière si elle n'est pas confirmée dans le délai prévu.
Attention : une modification réseau incorrecte peut couper une connexion SSH. Pour un serveur distant, utilise si possible une console locale ou un accès de secours et vérifie la configuration avant de l'appliquer.
10. Administrer les services avec systemd
Sur Ubuntu, `systemd` permet de gérer de nombreux services.
Vérifier l'état d'un service
systemctl status nom-du-service
Démarrer un service
sudo systemctl start nom-du-service
Arrêter un service
sudo systemctl stop nom-du-service
Redémarrer un service
sudo systemctl restart nom-du-service
Activer un service au démarrage
sudo systemctl enable nom-du-service
Pour activer un service et le démarrer immédiatement :
sudo systemctl enable --now nom-du-service
Exemple avec Apache
sudo systemctl status apache2 sudo systemctl restart apache2
Le nom du service dépend du logiciel installé. Vérifie toujours le nom correct avant d'exécuter une commande.
11. Installer un serveur Web Apache
Apache HTTP Server permet d'héberger des sites Web et des applications accessibles par HTTP ou HTTPS.
Installer Apache
sudo apt update sudo apt install apache2
Vérifier le service
sudo systemctl status apache2
Tester la configuration
sudo apache2ctl configtest
La réponse `Syntax OK` indique que le contrôle syntaxique n'a pas détecté d'erreur.
Emplacements importants
| Chemin | Utilité |
|---|---|
| `/var/www/html` | Répertoire Web par défaut dans une installation courante. |
| `/etc/apache2` | Configuration d'Apache. |
| `/etc/apache2/sites-available` | Définitions des sites disponibles. |
| `/etc/apache2/sites-enabled` | Sites activés. |
| `/var/log/apache2` | Journaux d'accès et d'erreurs. |
Pour un site public, configure correctement le nom de domaine, le pare-feu et le HTTPS. Ne publie pas un service sans vérifier ses paramètres de sécurité.
12. Accéder au serveur à distance avec SSH
SSH permet d'administrer le serveur depuis un autre ordinateur à travers une connexion chiffrée.
Installer le serveur SSH
sudo apt update sudo apt install openssh-server
Vérifier son état
sudo systemctl status ssh
Se connecter depuis un autre ordinateur
ssh utilisateur@192.168.1.20
Remplace `utilisateur` par le compte présent sur le serveur et l'adresse IP par celle de ta machine.
Bonnes pratiques SSH
- Utiliser des mots de passe robustes ou, de préférence lorsque c'est possible, des clés SSH.
- Maintenir OpenSSH à jour.
- Limiter les comptes autorisés à se connecter.
- Éviter l'accès direct par le compte `root`.
- Contrôler les journaux de connexion.
- Ne pas exposer inutilement le port SSH à Internet.
Avant de modifier la configuration SSH, vérifie qu'un autre accès administratif fonctionne et teste la nouvelle configuration sans fermer ta session existante.
13. Sécuriser le serveur avec UFW
UFW (Uncomplicated Firewall) fournit une interface simplifiée pour gérer les règles du pare-feu.
Vérifier l'état du pare-feu
sudo ufw status verbose
Autoriser SSH avant activation
sudo ufw allow OpenSSH
Autoriser le trafic Web
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
Activer UFW
sudo ufw enable
Vérifier les règles
sudo ufw status numbered
Prudence : si tu administres ton serveur à distance, autorise d'abord le mode d'accès SSH réellement utilisé. Une règle incorrecte peut interrompre la connexion. N'ouvre que les ports nécessaires aux services installés.
14. Installer et vérifier les mises à jour de sécurité
La maintenance régulière est essentielle pour limiter les risques de vulnérabilités connues.
Mise à jour manuelle
sudo apt update sudo apt upgrade
Installer les mises à jour automatiques
sudo apt install unattended-upgrades
Cette fonctionnalité peut installer automatiquement certaines mises à jour, notamment de sécurité, selon sa configuration.
Vérifier si un redémarrage est nécessaire
if [ -f /var/run/reboot-required ]; then echo "Un redémarrage est recommandé" else echo "Aucun redémarrage signalé" fi
Avant un redémarrage, vérifie les services hébergés et prévois une interruption si nécessaire.
15. Surveiller les journaux et les performances
Les journaux permettent d'identifier des erreurs, des échecs de connexion et des problèmes de service.
Consulter les journaux système
sudo journalctl -p warning -b
Affiche les messages de niveau avertissement ou plus grave depuis le démarrage actuel.
Consulter les dernières lignes d'un journal
sudo journalctl -u apache2 -n 50
Suivre les journaux en direct
sudo journalctl -u apache2 -f
Vérifier les ressources
top free -h df -h uptime
Ces commandes aident à repérer une consommation élevée de mémoire, une saturation du disque ou une charge importante du processeur.
16. Sauvegarder les données
Une sauvegarde est une copie des données qui permet de les restaurer après une panne, une erreur humaine ou un incident de sécurité.
Il faut distinguer :
- La sauvegarde des fichiers et documents.
- La sauvegarde des bases de données.
- La sauvegarde des configurations système.
- La sauvegarde des certificats et des données applicatives.
- La sauvegarde complète d'une machine virtuelle, si le serveur est virtualisé.
Exemple simple de copie avec rsync
sudo rsync -aHAX --numeric-ids /etc/ /mnt/sauvegarde/etc/
Cet exemple copie le contenu de `/etc/` vers `/mnt/sauvegarde/etc/`. Le point de montage de destination doit exister et correspondre au support de sauvegarde souhaité.
Important : une copie sur le même disque ne protège pas contre la panne de ce disque. Prévois une destination distincte et teste régulièrement la restauration. Pour les bases de données et les applications actives, utilise une méthode de sauvegarde cohérente avec le logiciel concerné.
17. Héberger plusieurs services sur Ubuntu
Un serveur Ubuntu peut héberger plusieurs services, à condition de gérer correctement les ressources, les accès et les dépendances.
| Service | Logiciel ou technologie | Usage |
|---|---|---|
| Serveur Web | Apache, Nginx | Hébergement de sites et d'applications. |
| Messagerie | Postfix, Dovecot | Transport et accès aux courriels. |
| Base de données | MariaDB, MySQL, PostgreSQL | Stockage des données applicatives. |
| Partage de fichiers | Samba, NFS | Échange de fichiers sur le réseau. |
| Accès distant | OpenSSH | Administration sécurisée à distance. |
| Virtualisation | KVM, QEMU, libvirt | Exécution de machines virtuelles. |
| Conteneurs | Docker, Podman | Déploiement d'applications isolées. |
Pour chaque service, prévois une configuration, des mises à jour, des sauvegardes et des règles réseau adaptées.
18. Ubuntu Server et la virtualisation
Ubuntu Server peut être installé directement sur un serveur physique ou dans une machine virtuelle.
Installation physique
Ubuntu utilise directement les ressources matérielles du serveur. Cette solution peut convenir à un serveur dédié à plusieurs services.
Installation virtuelle
Ubuntu Server peut être installé dans une machine virtuelle créée avec un hyperviseur comme KVM, Proxmox VE, Hyper-V ou VMware.
Avantages :
- Tester de nouvelles configurations sans modifier directement le système principal.
- Créer des environnements de formation.
- Isoler certains services.
- Faciliter certains scénarios de sauvegarde et de restauration.
Voir aussi : Virtualisation et Cloud Computing.
19. Dépannage : problèmes fréquents
| Problème | Vérifications utiles |
|---|---|
| Impossible de se connecter en SSH | Vérifier l'adresse IP, le service SSH, le pare-feu et les identifiants. |
| Le site Web ne répond pas | Vérifier Apache, les ports 80/443, le DNS, les journaux et la configuration du site. |
| Plus d'espace disque | Exécuter `df -h`, examiner les répertoires volumineux et vérifier les journaux. |
| Le serveur n'a plus accès à Internet | Contrôler `ip addr`, `ip route`, le DNS et la connectivité. |
| Un service ne démarre pas | Examiner `systemctl status` et `journalctl -u nom-du-service`. |
| Les mises à jour échouent | Vérifier la connexion, les dépôts APT, l'espace disque et les messages d'erreur. |
Méthode de dépannage
- Identifier précisément le symptôme.
- Vérifier l'état du service concerné.
- Consulter les journaux.
- Examiner les changements récents.
- Modifier un seul paramètre à la fois.
- Tester la correction.
- Documenter la solution.
20. Bonnes pratiques d'administration
- [ ] Maintenir le système à jour.
- [ ] Utiliser des comptes nominatifs et limiter les privilèges.
- [ ] Sécuriser les accès SSH.
- [ ] Configurer un pare-feu adapté.
- [ ] Vérifier régulièrement l'espace disque.
- [ ] Surveiller les journaux et les services.
- [ ] Effectuer des sauvegardes sur un support distinct.
- [ ] Tester les restaurations.
- [ ] Documenter les adresses IP, les noms de domaine et les ports utilisés.
- [ ] Planifier les redémarrages et les opérations de maintenance.
- [ ] Vérifier la durée de support de la version d'Ubuntu utilisée.
21. Glossaire
| Terme | Définition |
|---|---|
| Linux | Famille de systèmes utilisant le noyau Linux. |
| Distribution | Ensemble comprenant un noyau, des logiciels et des outils système. |
| LTS | Version bénéficiant d'un support à long terme. |
| Terminal | Interface permettant d'exécuter des commandes. |
| Shell | Programme qui interprète les commandes saisies. |
| sudo | Permet d'exécuter certaines commandes avec des privilèges élevés. |
| APT | Outil de gestion des paquets logiciels sur Ubuntu et Debian. |
| SSH | Protocole chiffré utilisé notamment pour l'administration distante. |
| UFW | Outil simplifié de gestion du pare-feu. |
| Netplan | Outil de configuration réseau utilisé sur Ubuntu. |
| systemd | Système d'initialisation et de gestion de nombreux services. |
| DNS | Système qui associe des noms de domaine à des informations réseau. |
| Adresse IP | Adresse utilisée pour identifier une interface sur un réseau IP. |
| Paquet | Archive logicielle installable par le gestionnaire de paquets. |
| Journal système | Enregistrement des événements et messages du système ou des services. |
22. Ressources et documentation
- Télécharger Ubuntu Server
- Documentation officielle Ubuntu Server
- Guides pratiques Ubuntu Server
- Recommandations de sécurité Ubuntu
- Documentation sur les mises à jour automatiques
- Documentation réseau Ubuntu Server