Comment configurer un VPS en 10 minutes ?
Un serveur privé virtuel (VPS) est une machine virtuelle qui fonctionne comme un serveur distinct au sein d'un système physique plus grand. Il est souvent utilisé pour héberger des sites web, des bases de données, des conteneurs ou des services réseau. Mettre en place un VPS en dix minutes est réalisable si vous suivez les bonnes étapes et disposez des outils nécessaires. Ce processus comprend le choix d'un fournisseur, la configuration du VPS, la configuration de l'accès réseau via SSH, la sécurisation du serveur et l'installation des logiciels de base.
La première étape consiste à choisir un fournisseur de VPS. Il existe de nombreux fournisseurs qui proposent des services VPS basés sur Linux, comme DigitalOcean, Hetzner, Linode et Vultr. Ces fournisseurs proposent généralement une interface web dans laquelle vous pouvez créer un serveur virtuel avec une certaine quantité de CPU, de mémoire, d'espace disque et de bande passante. Vous choisissez une région proche de votre public cible pour une latence optimale. La plupart des fournisseurs prennent en charge la sélection directe d'une distribution Linux, comme Ubuntu, Debian ou CentOS. Pour ce scénario, nous choisissons Ubuntu 22.04 LTS, une version stable et largement prise en charge.
Une fois le VPS configuré, le fournisseur vous fournit une adresse IP et un mot de passe root ou une clé SSH. La méthode standard pour accéder au serveur est SSH, un protocole réseau qui permet des connexions chiffrées entre ordinateurs. La commande `ssh` est essentielle ici. Vous ouvrez un terminal sur votre machine locale et entrez une commande telle que `ssh root@votre-ip-serveur`. Lors de votre première connexion, le système demande une confirmation de la clé d'hôte. Après approbation, il vous est demandé de saisir le mot de passe, ou vous êtes automatiquement connecté si vous avez configuré une clé SSH.
L'utilisation de clés SSH est fortement recommandée pour la sécurité. La commande `ssh-keygen` est utilisée pour générer une paire de clés : une clé privée que vous conservez localement et une clé publique qui est placée sur le serveur. La commande `ssh-keygen -t ed25519` crée une clé moderne et sûre. La clé publique peut être copiée sur le serveur avec `ssh-copy-id`, mais si cela n'est pas disponible, vous pouvez ajouter manuellement le contenu de `~/.ssh/id_ed25519.pub` à `~/.ssh/authorized_keys` sur le serveur.
Après une connexion réussie, l'étape suivante consiste à mettre à jour le système. Vous le faites avec `apt update && apt upgrade -y`. Cela garantit que tous les paquets et correctifs de sécurité sont à jour. Un serveur non corrigé est vulnérable aux exploits connus. Il est également judicieux de configurer un pare-feu. C'est là que `nft` entre en jeu. `nft` est la commande de gestion de `nftables`, le framework moderne de filtrage de paquets sous Linux. Avec `nft`, vous pouvez définir des règles pour n'autoriser que SSH (port 22), HTTP (port 80) et HTTPS (port 443), et bloquer toutes les autres connexions entrantes.
Une configuration de pare-feu simple peut ressembler à ceci :
``` nft add table inet filter nft add chain inet filter input { type filter hook input priority 0 \; } nft add rule inet filter input ct state established,related accept nft add rule inet filter input iif "lo" accept nft add rule inet filter input tcp dport 22 accept nft add rule inet filter input tcp dport 80 accept nft add rule inet filter input tcp dport 443 accept nft add rule inet filter input drop ```Ces règles assurent une sécurité de base sans que vous deviez installer un paquet supplémentaire.
Ensuite, il est judicieux de créer un utilisateur régulier au lieu de continuer à travailler en tant que root. Vous exécutez `adduser nom-utilisateur`, définissez un mot de passe et ajoutez l'utilisateur au groupe sudo avec `usermod -aG sudo nom-utilisateur`. Dès lors, vous pouvez vous connecter avec cet utilisateur et obtenir des privilèges via `sudo`.
Si vous souhaitez modifier ultérieurement des configurations réseau, par exemple pour ajouter des paramètres IP statiques ou des interfaces supplémentaires, vous pouvez utiliser `netplan`. `netplan` est un outil de configuration des réseaux sur les systèmes Ubuntu modernes. Les configurations sont stockées dans `/etc/netplan/` et écrites au format YAML. Après modifications, vous exécutez `netplan apply`. Si vous faites accidentellement une erreur dans la configuration et perdez la connexion réseau, `netplan try` peut être un sauveur. Cette commande applique temporairement une configuration et revient automatiquement en arrière si vous ne confirmez pas que tout fonctionne — idéal pour gérer un VPS à distance.
Pour gérer l'activité du système, `sar` est un outil précieux. Il fait partie du paquet sysstat et collecte des statistiques sur l'utilisation du CPU, la mémoire, les E/S disque et le trafic réseau. Avec `sar -u 1 5`, vous pouvez par exemple interroger l'utilisation du CPU cinq fois, chaque seconde. Cela aide à surveiller les performances de votre VPS, surtout si vous exécutez des applications web ou des bases de données.
Si vous souhaitez copier des données depuis ou vers des périphériques SCSI ou des périphériques bloc, la commande `sg_dd` peut être utile. Elle fonctionne de manière similaire au classique `dd`, mais est spécifiquement conçue pour les périphériques SCSI et offre plus de contrôle sur la taille des blocs, la synchronisation et la gestion des erreurs. Bien que cela soit moins souvent nécessaire sur un VPS standard, cela peut être pertinent lors de la création de sauvegardes ou du clonage de disques dans des environnements virtualisés.
Pour gérer les systèmes de fichiers, `e2fsck` est un outil crucial. Si vous utilisez un système de fichiers ext4 (ce qui est standard sur de nombreuses installations VPS), vous pouvez utiliser `e2fsck` pour vérifier l'intégrité et réparer d'éventuelles erreurs. La commande `e2fsck -f /dev/vda1` force une vérification sur le disque principal. Attention : n'exécutez cela que sur un disque éteint ou démonté, sinon vous risquez une perte de données.
Si vous êtes intéressé par l'analyse ou l'influence du trafic réseau, vous pouvez également examiner `tc`, la commande de contrôle du trafic. Avec `tc`, vous pouvez configurer la limitation de bande passante, la priorisation et le contrôle de congestion. Par exemple : `tc qdisc add dev eth0 root sfb` active la discipline de file d'attente Stochastic Fair Blue (SFB). SFB est conçue pour gérer la congestion en fonction de la perte de paquets et de l'utilisation du lien, et protège les flux réactifs contre les flux non réactifs. C'est une option plus avancée que les méthodes classiques comme RED et aide à prévenir le bufferbloat.
Pour le traitement de texte et l'automatisation des tâches de configuration, `mawk` est disponible. C'est une implémentation légère du langage AWK, idéale pour analyser des fichiers journaux ou générer des scripts de configuration. Bien que `gawk` soit souvent standard, `mawk` est plus rapide et adapté aux environnements où la vitesse et une faible utilisation de la mémoire sont importantes.
Enfin, il est important de documenter vos configurations et éventuellement de les gérer avec Git. `gitweb` peut vous y aider si vous souhaitez offrir une interface web pour vos dépôts. Bien que cela ne soit pas directement nécessaire pour la mise en place d'un VPS, cela peut être utile si vous gérez une équipe ou souhaitez un versionnement pour vos configurations serveur.
En résumé : en dix minutes, vous pouvez mettre en place un VPS en choisissant un fournisseur, en démarrant une instance, en vous connectant via SSH, en utilisant `apt` pour les mises à jour, `nft` pour la sécurité du pare-feu, en créant un utilisateur et en configurant une surveillance de base avec `sar`. Des outils comme `ssh-keygen`, `netplan try`, `e2fsck`, `tc-sfb` et `mawk` vous donnent un contrôle et une stabilité supplémentaires. Le processus est technique, mais précis, et utilise des outils Linux standard disponibles sur pratiquement toute installation serveur.