Un serveur sous Linux

Introduction

Durée : 2h

Environnement de travail : VPS, terminal (shell)

Pré-requis : Aucun

VPS : serveur dédié virtuel

Objectifs

  • Savoir ce qu'est un VPS

  • Savoir créer un VPS chez un hébergeur

  • Savoir se connecter à distance sur un VPS avec SSH

RappelServeur

Un serveur est un ordinateur accessible depuis Internet, qui rend des services aux utilisateurs.

Il se distingue des ordinateurs personnels que l'on ne peut pas contacter directement aussi simplement depuis Internet.

ExempleUtilisation quotidienne des serveurs

  • Lorsque je me rends sur le site wikipedia.org, je demande en réalité aux serveurs de Wikipédia de m'envoyer le contenu de la page que je veux afficher.

  • Un ami ne peut pas accéder aux fichiers de mon ordinateur personnel : pour les partager, je dois les téléverser sur un serveur (envoyer un mail, utiliser un service partage de fichiers, etc.).

Remarque

Tout ordinateur personnel peut être transformé temporairement en serveur, mais on ne traite pas ce cas ici.

DéfinitionVPS

Un VPS (serveur dédié virtuel, ou Virtual Private Server) peut s'envisager comme un serveur réservé à son usage personnel. En réalité, il s'agit d'une partie d'un serveur physique isolée du reste du système : un serveur virtuel.

ExempleÀ quoi sert un VPS ?

Un VPS peut servir :

  • à mettre en ligne un site web : serveur Apache, Nginx.

  • à travailler à plusieurs sur une même machine : partage de fichier avec SFTP, serveur NextCloud, serveur GitLab.

  • à tester et installer d'autres applications web : Etherpad, Mattermost.

  • à tester et installer des applications d'Internet : mail.

MéthodeCréer un VPS chez un hébergeur

Il existe plusieurs hébergeurs professionnels qui proposent la location de VPS, on retrouvera en général les étapes suivantes :

  1. Se rendre sur le site de l'hébergeur (exemple : gandi.net)

  2. Choisir une offre (à noter que pour disposer d'un serveur réellement accessible sur Internet par tout le monde, il faut que le VPS soit doté d'une adresse IPv4)

  3. Choisir le système d'exploitation souhaité, sa version (par exemple : Debian 10)

  4. Choisir un nom pour identifier le VPS, créer un mot de passe robuste pour le compte administrateur et éventuellement associer une clé SSH

ExempleCréer un VPS chez Gandi

Remarque

Le VPS est contactable par son adresse IP, qui est unique sur Internet et est l'équivalent d'une adresse postale.

On peut utiliser la commande ping pour vérifier qu'un serveur répond bien.

ExemplePing

MéthodeAccéder à un VPS avec SSH

Pour travailler sur un VPS, il faut un moyen de s'y connecter et d'y ouvrir un shell. SSH (Secure SHell) est un outil standard qui remplit cette fonction : une fois la connexion établie, on travaille sur un VPS comme on travaille sur un shell local.

Dans un shell local, copier la commande reçue par mail pour ouvrir un shell distant sur le VPS.

ssh <super-utilisateur>@<adresse-IP>

ExempleAccéder à un VPS avec SSH

Cette image montre une session SSH classique :

  • La première commande s'exécute sur l'ordinateur local.

  • Après la connexion SSH, les commandes s'exécutent automatiquement sur le VPS distant.

  • La commande exit ferme la connexion SSH, les commandes s'exécutent de nouveau sur l'ordinateur local.

ComplémentAutres fournisseurs de VPS français

Il existe d'autres fournisseurs de VPS français, comme OVH et Scaleway.

ComplémentSSH et Windows 10

Windows n'intègre pas SSH par défaut. Il y plusieurs possibilités pour l'installer :

ComplémentPourquoi louer un VPS et pas un serveur physique ?

Les VPS répondent à un problème classique : louer un serveur physique impose de choisir des composants adaptés à la puissance voulue. Si les besoins augmentent, il faut changer de machine, ce qui peut être très coûteux.

Les fournisseurs de serveurs ont trouvé une astuce : séparer un serveur physique en plusieurs serveurs virtuels, dont la puissance peut être adaptée en fonction des besoins. Pour les utilisateurs, le coût est moindre, et pour les fournisseurs, l'utilisation d'un serveur physique est optimisée.

À retenir

  • Un VPS est l'équivalent d'un serveur que l'on peut louer pour son usage personnel. Il est accessible depuis Internet.

  • SSH permet de se connecter à distance sur son VPS, et d'y exécuter des commandes.

  • Il existe plusieurs fournisseurs de VPS français, comme Gandi, OVH ou Scaleway.

Appliquer la notion

Sélectionnez toutes les assertions vraies :

Un serveur est un ordinateur accessible via Internet a qui on peut demander un service (comme nous afficher une page web) ?

Un serveur dispose d'une adresse IP publique, comme par exemple 176.31.68.180 ?

Pour disposer d'un serveur il est nécessaire de faire appel à un hébergeur professionnel, comme par exemple Gandi.net ?

Un VPS est un serveur virtuel, donc il ne consomme pas d'énergie.

Sélectionnez toutes les assertions vraies :

Un serveur est un ordinateur accessible via Internet a qui on peut demander un service (comme nous afficher une page web) ?

Un serveur dispose d'une adresse IP publique, comme par exemple 176.31.68.180 ?

Pour disposer d'un serveur il est nécessaire de faire appel à un hébergeur professionnel, comme par exemple Gandi.net ?

Un VPS est un serveur virtuel, donc il ne consomme pas d'énergie.

Un serveur est un ordinateur accessible via Internet a qui on peut demander un service (comme nous afficher une page web) ?

Un serveur dispose d'une adresse IP publique, comme par exemple 176.31.68.180 ?

Pour disposer d'un serveur il est nécessaire de faire appel à un hébergeur professionnel, comme par exemple Gandi.net ?

Non, c'est une des solutions possible, mais pas la seule. On peut tout à fait installer un serveur chez soi par exemple, et le connecter à Internet via sa box.

Un VPS est un serveur virtuel, donc il ne consomme pas d'énergie.

Le V de VPS signifie en effet virtuel, cela signifie que le serveur que l'on utilise est simulé par un vrai ordinateur. Mais ce vrai ordinateur consomme bien des ressources, donc le VPS aussi.

Créer un compte chez Gandi

Rappel

  • Gandi est entreprise qui loue des VPS.

  • Un VPS est un petit serveur dimensionné pour un usage personnel.

VPS Linux

Méthode

Pour acquérir un VPS chez un hébergeur, il faut préalablement se créer un compte.

AttentionUn VPS c'est un un vrai serveur dans le vrai monde

Faites attention à vos manipulations, tout le monde fait des erreurs, c'est normal, a fortiori quand on apprend. L'usage d'un VPS peut parfois donner l'impression que c'est "pour de faux", mais la machine est vraiment connectée à tous les autres ordinateurs du monde, donc une bêtise peut avoir des conséquences bien réelles pour d'autres personnes.

Une bonne règle générale est :

  1. On se "relit" avant de valider une commande, on se demande si ce qu'on va faire correspond à ce qu'on veut faire.

  2. On n'exécute jamais de commande que l'on ne comprend pas.

  3. On ne dépose aucune information sensible (données à caractère personnel) ou illégales sur un VPS que l'on ne maîtrise pas bien.

Et en cas de doute, demandez conseil.

AttentionUn VPS c'est fragile

Conservez une sauvegarde de ce que vous déposez sur vos VPS, la gestion étant partagée entre plusieurs utilisateurs novices (dont vous même !), une fausse manipulation peut entraîner la destruction de votre VPS.

  • Ce n'est pas grave, il suffit d'en recréer un autre, de refaire les manipulations d'initialisation et de déposer à nouveau les données dont on a besoin...

  • Ce n'est pas grave si on a gardé une trace facile à exploiter de ces manipulations et données !

AttentionUn VPS ça consomme des ressources

Si vous n'utilisez plus votre VPS, supprimez-le afin de ne pas consommer inutilement des ressources.

  • Si vous utilisez les ressources (crédits) d'une organisation qui vous accueille (U T Compiègne ou Librecours par exemple), gardez en tête que ce sont de vraies ressources (elles ne sont pas du tout virtuelles). Elles resteront ainsi disponibles pour d'autres personnes, et vous éviterez de consommer de l'énergie inutilement.

  • Utilisez le plus petit VPS dont vous avez besoin, inutile de mobiliser beaucoup de ressources pour faire des travaux expérimentaux.

  • Si un VPS est mis à votre disposition dans un contexte pédagogique, vous pouvez l'utiliser pour vos apprentissages ou pour des recherches personnelles, mais pas pour la mise en production de services réels (dans le doute vérifiez avec le détenteur des crédits).

Complément

Appliquer la notion

Créez un compte chez Gandi.

Rejoindre une organisation chez Gandi

DéfinitionOrganisation

Une « organisation » est une unité qui représente une société, une association, un organisme public voire un utilisateur, avec un ensemble d'informations légales et de facturation, qui peut acheter et gérer des produits Gandi.

docs.gandi.net

Remarque

Pour chaque utilisateur Gandi il existe une organisation de même nom.

Méthode

  • Vous pouvez inviter dans vos organisations d'autres utilisateurs Gandi.

  • Vous pouvez être invité dans d'autres organisations par d'autres utilisateurs Gandi.

DéfinitionÉquipe

Une équipe est un groupe « d'utilisateurs » Gandi qui possèdent un ensemble de permissions sur les produits « d'une organisation », et/ou sur ses informations légales et de facturation.

docs.gandi.net

Méthode

Exemple

Il existe une organisation U T Compiègne qui contient les équipes :

  • Propriétaire : qui rassemble les utilisateurs qui gèrent l'organisation et ses équipes

  • we01 : qui rassemble les utilisateurs autorisés à créer des VPS dans le cadre du cours WE01.

Appliquer la notion

Pré-requis

Disposer d'un compte chez Gandi.

Communiquez votre compte Gandi à quelqu'un dont vous voulez rejoindre l’organisation, il vous invitera en retour à rejoindre une équipe dans une organisation.

Acceptez cette invitation et connectez-vous pour vérifier que vous y avez accès.

À la découverte du terminal

Objectif

  • Savoir ouvrir un terminal et exécuter une commande.

Mise en situation

On a l'habitude d'interagir avec les ordinateurs en mode graphique, c'est-à-dire en utilisant essentiellement la souris pour cliquer sur des éléments d'interface pour effectuer des actions. Mais il existe une autre manière d'interagir avec un ordinateur, très utilisée en informatique : le mode texte ou interface en ligne de commande (CLI en anglais).

Ce mode d'interaction est très utile pour pouvoir utiliser un ordinateur à distance, ce qui est généralement le cas lorsque l'on souhaite administrer un serveur web.

À travers ce module vous allez découvrir le shell qui permet de dialoguer avec le système d'exploitation d'une machine. Il existe beaucoup de shells, le plus connu vient du monde Linux et se nomme bash. Vous allez découvrir les commandes de base pour parcourir des répertoires ou éditer des fichiers.

DéfinitionTerminal ou CLI

Un terminal, ou interface en ligne de commande (CLI en anglais), est une interface homme-machine dans laquelle l'utilisateur interagit avec la machine en mode texte. L'utilisateur écrit des lignes de commande, la machine les exécute et affiche le résultat des commandes.

Le terme terminal est très général : un terminal peut servir à dialoguer avec un programme informatique, à donner des ordres à un ordinateur, ou à exécuter d'autres programmes.

DéfinitionShell

Un shell est une interface en ligne de commande permettant de dialoguer avec le système d'exploitation de la machine. On dit qu'il interprète les commandes.

ExempleLangages CLI

Il existe au moins autant de shells que de systèmes d'exploitation. Chaque shell propose des commandes spécifiques. Le choix d'un shell se fait surtout par rapport à des critères pratiques (de quoi ai-je besoin ?) et des critères subjectifs (quel shell me semble le plus ergonomique ?).

  • Sur Linux, le shell le plus connu et installé par défaut sur la plupart des systèmes s'appelle bash (pour "Bourne Again Shell").

  • Sur Windows, il existe trois shells :

    • cmd, le shell historique,

    • powershell, une version plus moderne,

    • et il est possible d'utiliser bash avec le sous-système Linux.

  • Sur macOS, le shell installé par défaut s'appelle zsh. Il partage de grandes similarités avec bash.

RemarqueShells et Windows

Le shell historique cmd de Windows n'est presque plus utilisé. powershell utilise une syntaxe assez différente de la plupart des autres shells. Il est possible d'installer bash sous Windows depuis peu, mais il n'est pas inclus par défaut dans les installations.

ConseilBash et Windows

La plupart des shells adhèrent à des standards communs, mais ce n'est pas le cas des shells disponibles sur Windows. Pour suivre les exemples et exercices qui suivent, il est recommandé d'activer le sous-système Linux pour Windows 10 et d'utiliser bash, en suivant la partie "Installer le sous-système Windows pour Linux" de cette documentation : docs.microsoft.com/fr-fr/windows/wsl/install-win10

ExempleCommandes et Bash

Cette image montre quelques commandes de base, exécutées par un shell bash sur un système Linux.

  • cd /tmp/test se rend dans le dossier test qui se trouve dans le dossier racine /tmp.

  • pwd affiche le dossier où on est situé dans le système de fichier.

  • ls -al affiche la liste des fichiers dans le dossier courant.

  • cat memo affiche le contenu du fichier memo.

RemarqueTerminal et environnement graphique

  • Un ordinateur personnel moderne PC dispose d'une interface graphique et d'une interface terminal : les deux permettent d'effectuer à peu près les mêmes opérations : visualiser des fichiers, les supprimer, ouvrir des applications, etc.

  • Un serveur n'offre en général qu'une possibilité d'accès à distance via un terminal. C'est une des raisons pour lesquelles savoir utiliser le terminal est utile.

MéthodeOuvrir un terminal sous Linux

En général (et en particulier sur les systèmes Ubuntu), le raccourci Ctrl+Alt+T ouvre un terminal. Une alternative consiste à chercher Terminal dans la liste des applications.

MéthodeOuvrir un terminal sous Windows 10

Ouvrir la fenêtre Exécuter à l'aide du raccourci Super+R (la touche Super est en général représentée par un logo Windows sur le clavier). Entrer :

  • cmd ou powershell dans la fenêtre qui s'est ouverte pour démarrer un terminal Windows

  • bash pour ouvrir un shell Bash s'il a été installé

MéthodeOuvrir un terminal sous macOS

Depuis le Launchpad, chercher Terminal et cliquer sur l'icône qui s'affiche.

SyntaxeQuelques commandes de base

Ces commandes sont des commandes Bash qui fonctionnent également sous macOS et avec la plupart des autres shells Linux.

  • ls -al : lister les fichiers dans le répertoire courant

  • pwd : afficher le répertoire courant

  • cat fichier : afficher le contenu d'un fichier

  • cd dossier : se rendre dans un dossier fils du dossier courant

  • cd .. : se rendre dans le dossier parent

  • echo message : afficher un message

  • man commande : afficher la documentation détaillée d'une commande

MéthodeCopier/coller dans un terminal

Les actions « copier » et « coller » sont accessibles en effectuant un clic droit sur la fenêtre d'un terminal. Il est plus rapide d'utiliser des raccourcis clavier pour copier et coller, respectivement :

  • Sur Bash et la plupart des shells Linux :Ctrl+Shift+C et Ctrl+Shift+V

  • Sur macOS : Command+C et Command+V

  • Sur Windows (powershell) : Ctrl+C et Ctrl+V

À retenir

  • Un shell, ou par abus de langage un terminal, permet de dialoguer avec le système d'exploitation d'une machine.

  • Il existe beaucoup de shells. Le plus connu vient du monde Linux et se nomme bash.

  • Un shell permet de se passer du mode graphique, ce qui est souvent indispensable pour travailler sur une machine à distance.

Appliquer la notion

On se propose d'utiliser quelques commandes de base dans un shell de type bash ou zsh.

Trouver le nom du répertoire courant.

La commande pwd permet d'afficher le nom du répertoire courant.

pwd

Le shell affiche le répertoire courant en résultat de la commande.

Remarque

Sous Linux le répertoire racine s'appelle /, tous les autres répertoire sont des descendants de cette racine.

Lister les fichiers du répertoire courant

La commande ls liste les fichiers d'un répertoire.

Si on ne lui donne pas de répertoire, elle liste les fichiers du répertoire courant.

ls

Complément

La commande ls --help affiche les différentes options disponibles. Chercher l'option pour afficher la taille des fichiers.

Coller la ligne de commande suivante dans un terminal. Elle va créer un fichier nommé message.

Vérifiez-le avec la commande ls.

echo "Je suis un bout de texte pas très secret..." > message

Pour coller dans un terminal, on utilise le menu « clic-droit » ou un raccourci clavier.

echo "Je suis un bout de texte pas très secret..." > message
ls

Utilisez la commande cat pour afficher le contenu du fichier message.

La commande cat file affiche le contenu du fichier nommé file.

cat message

Créer un VPS chez Gandi

Remarque

Les VPS chez Gandi sont nommés Serveurs Cloud.

https://www.gandi.net/fr/cloud/iaas

Méthode

  1. Choisir l'organisation qui va supporter le coût de la création du VPS

  2. Choisir le plus petit pack doté d'une IPv4 (Small)

  3. Choisir une localisation pour le VPS (exemple : Paris)

  4. Choisir le système d'exploitation souhaité et sa version (exemple : Debian 10)

  5. Choisir un nom pour identifier le VPS (exemple : vps-nom-prénom)

  6. Créer un mot de passe robuste pour le compte administrateur

  7. (Éventuellement associer une clé SSH)

Attention

Il est très important de choisir d'emblée un mot de passe très robuste, en effet les VPS sont accessibles sur Internet et de nombreux robots cherchent en permanence à y accéder.

Si votre VPS était compromis, il pourrait être utilisé pour commettre des actes répréhensibles et par conséquent :

  1. entacher la réputation de Gandi,

  2. engager votre responsabilité légale.

Remarque

Le pack Small est nécessaire car il permet de disposer d'une adresse IPv4, qui est encore nécessaire aujourd'hui pour que les applications fonctionnent pour tous les utilisateurs.

ComplémentIPv4 et IPv6

Certains opérateurs n'ayant pas complètement déployé le standard IPv6, une machine sans IPv4 ne sera pas joignable par tous les ordinateur sur Internet.

La transition vers le protocole IPv6 a démarré en 2003. Cependant, en 2019, internet n'en est encore qu'au début de la phase de cohabitation. IPv4 et IPv6 vont coexister tant qu'IPv6 n'a pas été généralisé au niveau de tous les maillons de la chaîne d'internet.

https://www.arcep.fr/cartes-et-donnees/nos-publications-chiffrees/transition-ipv6/barometre-annuel-de-la-transition-vers-ipv6-en-france.html

Par exemple en 2021, derrière une box SFR il n'est pas possible de contacter une machine avec IPv6 sans IPv4.

Appliquer la notion

Pré-requis

Disposer d'un compte chez Gandi et faire partie d'une organisation disposant de crédits.

Créer un VPS chez Gandi à Paris (SD3), qui devra exécuter le système d'exploitation Debian, dans sa version 10.

Choisissez le pack small.

Le système d'exploitation et sa version sont paramétrables dans l'onglet Serveur.

Effectuez une commande ping depuis un terminal pour vérifier que le VPS répond bien.

Ping est le nom d'une commande informatique permettant de tester l'accessibilité d'une autre machine à travers un réseau IP. La commande mesure également le temps mis pour recevoir une réponse, appelé round-trip time (temps aller-retour).

fr.wikipedia.org/wiki/Ping_(logiciel)

Exemple

ping 95.142.161.129
PING 95.142.161.129 (95.142.161.129) 56(84) bytes of data.
64 bytes from 95.142.161.129: icmp_seq=1 ttl=54 time=6.56 ms
64 bytes from 95.142.161.129: icmp_seq=2 ttl=54 time=6.88 ms
64 bytes from 95.142.161.129: icmp_seq=3 ttl=54 time=6.96 ms
64 bytes from 95.142.161.129: icmp_seq=4 ttl=54 time=6.40 ms
64 bytes from 95.142.161.129: icmp_seq=5 ttl=54 time=6.80 ms

SSH : Secure Shell

Objectif

  • Se familiariser avec le protocole SSH (Secure SHell).

Mise en situation

SSH est une application d'Internet qui n'est pas aussi connue que le Web ou le mail.

Mais elle est très utile dans le monde du développement informatique car elle permet de se connecter à un serveur à distance, puis d'exécuter des commandes sur ce serveur. C'est aujourd'hui le mode de contrôle privilégié des informaticiens sur les serveurs qui font fonctionner Internet.

RappelTerminal et shell

Le terminal (aussi appelé invite de commande ou console) est le moyen le plus naturel pour interagir avec un ordinateur. Ce programme offre un shell (une interface système) donnant accès aux programmes de l'ordinateur. Il suffit d'un écran et d'un clavier pour utiliser ce shell.

DéfinitionLe programme SSH (Secure SHell)

Le programme SSH (Secure Shell) permet d'interagir de manière sécurisée avec un ordinateur distant via un shell. C'est le programme de référence pour effectuer des opérations à distance.

Toutes les commandes tapées depuis un clavier d'ordinateur à un emplacement A sont exécutées dans le shell d'un ordinateur à un emplacement B. Les informations qui transitent sur Internet via SSH sont les chaînes de caractères représentant les commandes à exécuter et les chaînes de caractères représentant les résultats de ces exécutions.

DéfinitionLe protocole SSH

SSH est aussi le nom du protocole de communication utilisé par le programme SSH. Ce protocole fonctionne sur une architecture client-serveur ; l'ordinateur qui fournit les commandes est le client et l'ordinateur qui exécute les commandes sur son système est le serveur.

SSH repose généralement sur TCP pour le transport et est par défaut associé au port 22.

L'établissement d'une connexion SSH se fait en deux étapes :

  • l'établissement d'une communication sécurisée,

  • l'authentification du client.

MéthodeÉtablir une connexion SSH

On utilise la commande ssh depuis un terminal :

ssh alice@adresse.ip

La machine se trouvant à l'adresse adresse.ip doit avoir un utilisateur alice.

Sur Windows, Putty est un client SSH qui permet d'ouvrir une console sous SSH. Il est téléchargeable sur le site dédié : https://www.putty.org/

Attention

Si ssh se connecte pour la première fois au serveur, l'utilisateur devra accepter d'utiliser la clé publique du serveur pour des raisons de sécurité.

Remarque

Si un serveur est associé à un nom de domaine, on peut utiliser ce domaine à la place de l'IP.

ssh alice@serveur.exemple.com

À retenir

  • Le protocole SSH permet à un client d'ouvrir un shell sur un serveur distant.

  • Ce protocole sécurise les communications en employant plusieurs méthodes de chiffrement, de l'authentification au transfert de données.

Appliquer la notion

Pré-requis

Disposer d'un VPS chez un hébergeur qui fournit un accès SSH à un serveur.

VPS : serveur dédié virtuel

Se connecter à ce serveur en utilisant une authentification par mot de passe.

Il faut utiliser la commande ssh depuis un shell local.

Une connexion ssh nécessite :

  • L'adresse IP du serveur,

  • Le nom d'un utilisateur,

  • Le mot de passe de l'utilisateur.

Exemple

L'hébergeur a fourni une adresse IPv6 et a créé un utilisateur exemple.

ssh exemple@2001:4b99:1:1:216:3eff:fe90:63f

Lors de la première connexion, pourquoi le terminal a-t-il demandé si vous faisiez confiance au serveur ?

La clé SSH d'un serveur est unique et sert à la fois à l'identifier et à chiffrer les communications.

Le client ssh stocke les clés publiques de tous les serveurs auxquels il s'est déjà connecté dans le fichier known_hosts.

  1. Lors la première connexion à un serveur qui n'est pas encore connu, ssh s'assure que vous savez qu'il s'agit d'un nouveau serveur.

  2. Si ce message apparaît et que ce n'est pas la première connexion, alors :

    • soit le serveur a changé de clé publique,

    • soit il s'est fait usurper son identité.

Vérifier que la clé SSH du serveur a bien été ajoutée aux hôtes connus (known_hosts).

La commande suivante permet de vérifier qu'un hôte est connu sur votre client SSH :

ssh-keygen -F ip_serveur

La commande renvoie des informations sur le serveur, la méthode de chiffrement utilisée ainsi que la clé publique.

Exemple

ssh-keygen -F 194.187.168.100

Connexion à un VPS chez Gandi

Rappel

Le VPS peut être contacté par son adresse IP, qui est unique sur Internet et est l'équivalent d'une adresse postale.

Méthode

Attention

Gandi ne permet pas de se connecter à ses machines directement en root avec ssh (c'est une mesure de sécurité).

  1. On se connecte donc avec l'utilisateur créé en même temps que le VPS (admin par défaut).

  2. Puis on utilise la commande su qui permet de prendre le rôle de root sur la machine (ou on utilise la commande sudo).

Conseil

Lors de votre première connexion à votre VPS, vérifiez votre connexion root.

Puis procédez à la mise à jour de votre système.

su root
apt update
apt upgrade -y

Appliquer la notion

Pré-requis

Disposer d'un VPS chez un hébergeur qui fournit un accès SSH à un serveur.

VPS : serveur dédié virtuel

Se connecter au VPS avec SSH, et entrer la commande suivante :

lsb_release -a

Que permet de vérifier cette commande ?

La commande man lsb_release donne des informations sur l'utilité de la commande.

La commande renvoie :

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

Elle confirme que le système d'exploitation installé est Debian, dans sa version 10.

ComplémentLSB, des standards pour les gouverner toutes

LSB veut dire Linux Standard Base. C'est un ensemble de standards visant à rendre les variantes de Linux (ou distributions) compatibles entre elles. La commande lsb_release permet donc d'obtenir les informations sur la variante de Linux utilisée, mais sert aussi à confirmer qu'elle respecte ces standards.

Défi

L'objectif de cet exercice est de créer un VPS chez Gandi et de mettre en ligne une page web.

Préambule : Le groupe auquel vous appartenez doit avoir les droits suivants :

  • Organisation > Voir l'organisation

  • Cloud > Voir les ressources Cloud

  • Cloud > Gérer les ressources Cloud

Créez un VPS de type Small, sous Debian en veillant :

  • à nommer votre VPS par avec vos noms et prénoms (exemple : vps-nom-prénom)

  • à choisir un mot de passe très robuste (utilisez un générateur de mot de passe ou par exemple la commande uuid)

Vérifiez l'accès à votre VPS avec la commande ping.

Exemple

ping 95.142.161.129
PING 95.142.161.129 (95.142.161.129) 56(84) bytes of data.
64 bytes from 95.142.161.129: icmp_seq=1 ttl=54 time=6.56 ms
64 bytes from 95.142.161.129: icmp_seq=2 ttl=54 time=6.88 ms
64 bytes from 95.142.161.129: icmp_seq=3 ttl=54 time=6.96 ms
64 bytes from 95.142.161.129: icmp_seq=4 ttl=54 time=6.40 ms
64 bytes from 95.142.161.129: icmp_seq=5 ttl=54 time=6.80 ms

Connectez-vous à votre VPS avec SSH.

ssh user@ip

Exemple

ssh admin@95.142.161.129
Linux crozatst 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64
[-----------------------------------------]
  Gandi - Welcome to your new OS image.
  Documentation :
   [EN] http://wiki.gandi.net/en/iaas
   [FR] http://wiki.gandi.net/fr/iaas
  Configuration file for Gandi :
   /etc/default/gandi or
   /etc/sysconfig/gandi
[-----------------------------------------]
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Mettez à jour votre système.

Seuls les super-utilisateurs, comme root, peuvent mettre le système à jour.

On peut devenir root avec la commande su root.

La commande apt update permet de mettre à jour la liste des dépôts qui contiennent les mises à jour.

La commande apt upgrade permet de mettre à jour le système.

su root
apt update
apt upgrade -y

Installez le serveur web Apache :

apt install apache2

Créez un fichier texte accessible sur le web :

echo "hello world !" > /var/www/html/index.html

Accédez à la page en entrant l'IP de votre VPS dans la barre d'adresse de votre navigateur.

La commande echo "hello world !" > /var/www/html/index.html a créé un fichier index.html dans le dossier /var/www/html avec le contenu hello world !.

  • Rendez-vous dans le dossier qui contient les fichiers accessibles de puis le Web sur votre VPS,

  • listez les fichiers présents,

  • vérifiez que le fichier index.html est présent

  • affichez son contenu

Le dossier qui contient les fichiers accessibles de puis le Web est /var/www/html.

Pour se rendre dans un dossier dir on utilise la commande cd dir.

Pour lister le contenu du dossier dans lequel on est placé, on utilise la commande ls -l.

Pour afficher le contenu d'un fichier file on utilise la commande cat file.

cd /var/www/html
ls -l
cat index.html
  • Transformez le fichier index.html en fichier HTML valide.

  • Créez un fichier histo.html qui présente une petite histoire du Web.

  • Déposez-le à côté du fichier index.html.

  • Ajoutez un lien depuis le fichier index.html.

Crédits

  • Gandi a fait don de crédits pour permettre aux étudiants de l'UTC et utlisateurs de librecours.net de disposer gratuitement d'un VPS pour la durée de leur apprentissage.

  • Studi a contribué à la réalisation du début de ce cours "VPS Linux".

VPS : serveur dédié virtuel

Objectifs
  • Savoir ce qu'est un VPS

  • Savoir créer un VPS chez un hébergeur

  • Savoir se connecter à distance sur un VPS avec SSH

RappelServeur

Un serveur est un ordinateur accessible depuis Internet, qui rend des services aux utilisateurs.

Il se distingue des ordinateurs personnels que l'on ne peut pas contacter directement aussi simplement depuis Internet.

ExempleUtilisation quotidienne des serveurs
  • Lorsque je me rends sur le site wikipedia.org, je demande en réalité aux serveurs de Wikipédia de m'envoyer le contenu de la page que je veux afficher.

  • Un ami ne peut pas accéder aux fichiers de mon ordinateur personnel : pour les partager, je dois les téléverser sur un serveur (envoyer un mail, utiliser un service partage de fichiers, etc.).

Remarque

Tout ordinateur personnel peut être transformé temporairement en serveur, mais on ne traite pas ce cas ici.

DéfinitionVPS

Un VPS (serveur dédié virtuel, ou Virtual Private Server) peut s'envisager comme un serveur réservé à son usage personnel. En réalité, il s'agit d'une partie d'un serveur physique isolée du reste du système : un serveur virtuel.

ExempleÀ quoi sert un VPS ?

Un VPS peut servir :

  • à mettre en ligne un site web : serveur Apache, Nginx.

  • à travailler à plusieurs sur une même machine : partage de fichier avec SFTP, serveur NextCloud, serveur GitLab.

  • à tester et installer d'autres applications web : Etherpad, Mattermost.

  • à tester et installer des applications d'Internet : mail.

MéthodeCréer un VPS chez un hébergeur

Il existe plusieurs hébergeurs professionnels qui proposent la location de VPS, on retrouvera en général les étapes suivantes :

  1. Se rendre sur le site de l'hébergeur (exemple : gandi.net)

  2. Choisir une offre (à noter que pour disposer d'un serveur réellement accessible sur Internet par tout le monde, il faut que le VPS soit doté d'une adresse IPv4)

  3. Choisir le système d'exploitation souhaité, sa version (par exemple : Debian 10)

  4. Choisir un nom pour identifier le VPS, créer un mot de passe robuste pour le compte administrateur et éventuellement associer une clé SSH

ExempleCréer un VPS chez Gandi
Remarque

Le VPS est contactable par son adresse IP, qui est unique sur Internet et est l'équivalent d'une adresse postale.

On peut utiliser la commande ping pour vérifier qu'un serveur répond bien.

ExemplePing
MéthodeAccéder à un VPS avec SSH

Pour travailler sur un VPS, il faut un moyen de s'y connecter et d'y ouvrir un shell. SSH (Secure SHell) est un outil standard qui remplit cette fonction : une fois la connexion établie, on travaille sur un VPS comme on travaille sur un shell local.

Dans un shell local, copier la commande reçue par mail pour ouvrir un shell distant sur le VPS.

ssh <super-utilisateur>@<adresse-IP>
ExempleAccéder à un VPS avec SSH

Cette image montre une session SSH classique :

  • La première commande s'exécute sur l'ordinateur local.

  • Après la connexion SSH, les commandes s'exécutent automatiquement sur le VPS distant.

  • La commande exit ferme la connexion SSH, les commandes s'exécutent de nouveau sur l'ordinateur local.

ComplémentAutres fournisseurs de VPS français

Il existe d'autres fournisseurs de VPS français, comme OVH et Scaleway.

ComplémentSSH et Windows 10

Windows n'intègre pas SSH par défaut. Il y plusieurs possibilités pour l'installer :

ComplémentPourquoi louer un VPS et pas un serveur physique ?

Les VPS répondent à un problème classique : louer un serveur physique impose de choisir des composants adaptés à la puissance voulue. Si les besoins augmentent, il faut changer de machine, ce qui peut être très coûteux.

Les fournisseurs de serveurs ont trouvé une astuce : séparer un serveur physique en plusieurs serveurs virtuels, dont la puissance peut être adaptée en fonction des besoins. Pour les utilisateurs, le coût est moindre, et pour les fournisseurs, l'utilisation d'un serveur physique est optimisée.

À retenir
  • Un VPS est l'équivalent d'un serveur que l'on peut louer pour son usage personnel. Il est accessible depuis Internet.

  • SSH permet de se connecter à distance sur son VPS, et d'y exécuter des commandes.

  • Il existe plusieurs fournisseurs de VPS français, comme Gandi, OVH ou Scaleway.

À la découverte du terminal

Objectif
  • Savoir ouvrir un terminal et exécuter une commande.

Mise en situation

On a l'habitude d'interagir avec les ordinateurs en mode graphique, c'est-à-dire en utilisant essentiellement la souris pour cliquer sur des éléments d'interface pour effectuer des actions. Mais il existe une autre manière d'interagir avec un ordinateur, très utilisée en informatique : le mode texte ou interface en ligne de commande (CLI en anglais).

Ce mode d'interaction est très utile pour pouvoir utiliser un ordinateur à distance, ce qui est généralement le cas lorsque l'on souhaite administrer un serveur web.

À travers ce module vous allez découvrir le shell qui permet de dialoguer avec le système d'exploitation d'une machine. Il existe beaucoup de shells, le plus connu vient du monde Linux et se nomme bash. Vous allez découvrir les commandes de base pour parcourir des répertoires ou éditer des fichiers.

DéfinitionTerminal ou CLI

Un terminal, ou interface en ligne de commande (CLI en anglais), est une interface homme-machine dans laquelle l'utilisateur interagit avec la machine en mode texte. L'utilisateur écrit des lignes de commande, la machine les exécute et affiche le résultat des commandes.

Le terme terminal est très général : un terminal peut servir à dialoguer avec un programme informatique, à donner des ordres à un ordinateur, ou à exécuter d'autres programmes.

DéfinitionShell

Un shell est une interface en ligne de commande permettant de dialoguer avec le système d'exploitation de la machine. On dit qu'il interprète les commandes.

ExempleLangages CLI

Il existe au moins autant de shells que de systèmes d'exploitation. Chaque shell propose des commandes spécifiques. Le choix d'un shell se fait surtout par rapport à des critères pratiques (de quoi ai-je besoin ?) et des critères subjectifs (quel shell me semble le plus ergonomique ?).

  • Sur Linux, le shell le plus connu et installé par défaut sur la plupart des systèmes s'appelle bash (pour "Bourne Again Shell").

  • Sur Windows, il existe trois shells :

    • cmd, le shell historique,

    • powershell, une version plus moderne,

    • et il est possible d'utiliser bash avec le sous-système Linux.

  • Sur macOS, le shell installé par défaut s'appelle zsh. Il partage de grandes similarités avec bash.

RemarqueShells et Windows

Le shell historique cmd de Windows n'est presque plus utilisé. powershell utilise une syntaxe assez différente de la plupart des autres shells. Il est possible d'installer bash sous Windows depuis peu, mais il n'est pas inclus par défaut dans les installations.

ConseilBash et Windows

La plupart des shells adhèrent à des standards communs, mais ce n'est pas le cas des shells disponibles sur Windows. Pour suivre les exemples et exercices qui suivent, il est recommandé d'activer le sous-système Linux pour Windows 10 et d'utiliser bash, en suivant la partie "Installer le sous-système Windows pour Linux" de cette documentation : docs.microsoft.com/fr-fr/windows/wsl/install-win10

ExempleCommandes et Bash

Cette image montre quelques commandes de base, exécutées par un shell bash sur un système Linux.

  • cd /tmp/test se rend dans le dossier test qui se trouve dans le dossier racine /tmp.

  • pwd affiche le dossier où on est situé dans le système de fichier.

  • ls -al affiche la liste des fichiers dans le dossier courant.

  • cat memo affiche le contenu du fichier memo.

RemarqueTerminal et environnement graphique
  • Un ordinateur personnel moderne PC dispose d'une interface graphique et d'une interface terminal : les deux permettent d'effectuer à peu près les mêmes opérations : visualiser des fichiers, les supprimer, ouvrir des applications, etc.

  • Un serveur n'offre en général qu'une possibilité d'accès à distance via un terminal. C'est une des raisons pour lesquelles savoir utiliser le terminal est utile.

MéthodeOuvrir un terminal sous Linux

En général (et en particulier sur les systèmes Ubuntu), le raccourci Ctrl+Alt+T ouvre un terminal. Une alternative consiste à chercher Terminal dans la liste des applications.

MéthodeOuvrir un terminal sous Windows 10

Ouvrir la fenêtre Exécuter à l'aide du raccourci Super+R (la touche Super est en général représentée par un logo Windows sur le clavier). Entrer :

  • cmd ou powershell dans la fenêtre qui s'est ouverte pour démarrer un terminal Windows

  • bash pour ouvrir un shell Bash s'il a été installé

MéthodeOuvrir un terminal sous macOS

Depuis le Launchpad, chercher Terminal et cliquer sur l'icône qui s'affiche.

SyntaxeQuelques commandes de base

Ces commandes sont des commandes Bash qui fonctionnent également sous macOS et avec la plupart des autres shells Linux.

  • ls -al : lister les fichiers dans le répertoire courant

  • pwd : afficher le répertoire courant

  • cat fichier : afficher le contenu d'un fichier

  • cd dossier : se rendre dans un dossier fils du dossier courant

  • cd .. : se rendre dans le dossier parent

  • echo message : afficher un message

  • man commande : afficher la documentation détaillée d'une commande

MéthodeCopier/coller dans un terminal

Les actions « copier » et « coller » sont accessibles en effectuant un clic droit sur la fenêtre d'un terminal. Il est plus rapide d'utiliser des raccourcis clavier pour copier et coller, respectivement :

  • Sur Bash et la plupart des shells Linux :Ctrl+Shift+C et Ctrl+Shift+V

  • Sur macOS : Command+C et Command+V

  • Sur Windows (powershell) : Ctrl+C et Ctrl+V

À retenir
  • Un shell, ou par abus de langage un terminal, permet de dialoguer avec le système d'exploitation d'une machine.

  • Il existe beaucoup de shells. Le plus connu vient du monde Linux et se nomme bash.

  • Un shell permet de se passer du mode graphique, ce qui est souvent indispensable pour travailler sur une machine à distance.

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.