Vous êtes sur la page 1sur 10

TP Réseaux informatiques

Introduction à Linux et prise en main de la ligne de


commande

I. Familiarisation avec le terminal

Depuis un terminal, plusieurs actions sont possibles :


• lancer un commande
• déclarer une variable
• créer, ouvrir, modifier ou encore supprimer un fichier

Une commande peut se diviser en plusieurs parties :


• le nom de la commande (en premier)
• d’éventuels paramètres (qui suit le nom sous la forme « -paramètre »)
• des arguments (en dernier comme par exemple le nom d’un fichier)

1) Les commandes générales :


Elles nous permettent d’afficher des paramètres, des variables systèmes ou encore de manipuler des
fichiers.
2) Les caractères spéciaux :
Il existe des caractères que l’on utilise pour définir une chaîne ou un caractère quelconque. Ceux-ci
sont utiles pour lister des fichiers ou encore remplacer un ou plusieurs caractères.
Le caractère « * » permet de remplacer toute chaîne de caractère, le caractère « ? » Permet de
remplacer un caractère quelconque.
Exemples : ls *.txt → liste tous les fichiers avec l’extension .txt
ls t?t?.txt → liste les fichiers titi.txt toto.txt tata.txt …
On peut aussi utiliser des crochets pour rechercher une plage de caractères.
Exemple : ls t[ao]t[ao].txt → liste les fichiers tata.txt toto.txt tota.txt tato.txt
ls t[a-d]to.txt → liste les fichiers tato.txt tbto.txt tcto.txt et tdto.txt

3) Les droits d’accès :


Depuis le terminal une commande nous permet de modifier les droits d’accès des fichiers et des
répertoires.

Il y a 3 types d’accès et 3 types d’utilisateurs, lorsqu’on créer un fichier en général celui-ci à les
droits 755.
7 : a tous les droits
5 : a les droits de lecture et d’exécution

4) Gestion des processus :


Unix étant multitâche il peut lancer plusieurs processus en même temps. Les processus sont des
programmes en cours d’exécution, ils sont définissable par leurs identificateurs PID, UID, GID.
Pour lancer un processus en tâche de fond : NomProcessus&

[6] : nom_signal 5302 : numéro processus


Pour qu’il s’arrête complètement il faut « tuer » le processus avec la commande :

Sinon il continuera de tourner en tâche de fond.

II. Passons la vitesse supérieure

Redirections des entrées/sorties, tubes et filtres :


Tout processus communique avec l’extérieur par l’intermédiaire de trois fichiers standards :
• Le fichier sortie standard sur lequel le processus écrit ses résultats, l’écran
• Le fichier entrée standard sur lequel le processus lit ses données, le clavier
• Le fichier sortie erreur standard sur lequel le processus écrit ses erreurs, l’écran
Au lieu d’utiliser normalement les entrées/sorties standards on peut leur associer un autre fichier
que le terminal.

Exemple : La sortie standard de la commande « users » est associée à un fichier, la liste des
utilisateurs connectés sera écrite dans un fichier utilisateurs.txt.
On peut faire de même avec deux commandes, pour ce faire on utilise un « pipe » qui va envoyer la
sortie de la première commande dans l’entrée de la seconde.

Le shell :
Le Shell donne a l'utilisateur la possibilité de définir des variables qui peuvent être utilisées dans la
construction de commandes complexes.
Un certain nombre de variables sont prédéfinies dès le moment ou l'utilisateur se logue. On peut en
définir de nouvelles avec la syntaxe nom=valeur.
On peut aussi affecter à une variable une valeur lue sur l’entrée standard au moyen de la commande
« read ».

Les expressions régulières pour le filtrage :


On appelle un filtre une commande qui lit des données sur son entrée standard, les modifie et écrit
les résultats sur sa sortie. On utilise des expressions régulières pour décrire des lignes de texte.
Pour définir ces expressions on utilise des caractères spéciaux :
• le point désigne n’importe quel caractère
• le chapeau « ^ » désigne un début de ligne
• le dollar « $ » désigne une fin de ligne
Ainsi pour rechercher toutes les lignes commençant par B dans un fichier on aura :
$ grep ‘^B’ fichier

Les filtres éditeurs :


La commande « sed » peut être considérer comme un filtre et un éditeur. Son utilisation la plus
simple est la substitution mais elle peut aussi ajouter un texte, changer un texte ou encore remplacer
un caractère par un autre.

Automatiser les tâches : make


Make rempli le même rôle qu’un gestionnaire de projet : il centralise l’ensemble des fichiers et
ressources dont se compose un projet.
Ainsi, si l’on modifie un des fichiers le makefile en prendra compte et le recompilera afin de garder
les liens à jour.
Le makefile contient un certains nombre de règles :
Pour créer le fichier exécutable « helloworld » nous avons besoin au préalable de deux fichiers
objets, on retrouve en dessous des dépendances la commande qui sera exécutée dans le shell.

L’intérêt général d’utiliser un makefile est qu’il n’effectue que le strict minimum, il ne va compiler
que les fichiers qui doivent l’être et on gagne un temps considérable dans la compilation de gros
projets.

Commandes réseau sous Linux

III.Analyse des fichiers de configuration réseaux

Depuis le terminal on peut accéder aux fichiers de configuration réseaux :


Le fichier « hosts » liste les adresses IP connectées au PC et les associes à des noms d’hôtes.
D’autres fichiers de configuration sont disponibles comme les fichiers resolv.conf ou hostname.

IV.Commandes utilisateur principales d’analyse réseau

Plusieurs commandes permettent de tester les réseaux connectés au PC :


• PING : cette commande permet de vérifier si une machine distante répond en lui envoyant
des paquets ICMP ECHO_REQUEST.
• TRACEROUTE : dans le même esprit que PING, cette commande va envoyer des paquets
dans l’attente d’un retour tout en déterminant la route empruntée.
• IFCONFIG remplacée par IP : cette commande permet d’afficher la configuration d’une
interface réseau en spécifiant l’adresse IP ou aussi d’afficher toutes les interfaces réseau
disponibles avec l’option « a »

Protocoles de communications

V. Le protocole HTTP

L’Hypertext Transfert Protocol est un protocole de communication client-serveur qui peut


fonctionner sur n’importe quel connexion fiable.
Il consiste en l’envoi de requêtes depuis un client (généralement un navigateur web) à un serveur,
les plus courantes sont les méthodes GET et POST.
Dans notre cas on utilise le terminal et la commande « telnet » pour nous connecter à un serveur sur
le port adéquat (80), il suffit ensuite d’envoyer la requête sous forme de texte au serveur et
d’attendre sa réponse.

VI. Le protocole SSH

Ce protocole de communication nous permet de mettre en place une connexion sécurisée (cryptée)
via les protocoles scp et sftp entre deux machines distantes.
La connexion se fait en créant un « tunnel » sécurisé en utilisant un couple de clés privée/publique.
Le serveur possède une clé privée unique et les clients une copie de la clé publique.
Les données sont alors cryptées lors de la communication, d’un côté seul la clé privée peut
décrypter celles envoyées depuis une clé publique et de l’autre la clé publique peut décrypter toute
donnée crypter par la clé privée.
Ceci permet entre autres de ne plus envoyer de mot de passe en clair à un serveur lors de la
connexion à une machine distante et de sécuriser celle-ci.

Cependant pour pouvoir se connecter entre deux machines distantes, il faut installer sur la machine
cliente un client SSH et sur la machine distante un serveur SSH. Il faut bien entendu connaître
l’adresse IP du destinataire et aussi s’y connecter sur le port TCP 22.

Malgré tout ça, n’importe qui peut récupérer la clé publique et l’utiliser pour se connecter à distance
c’est pourquoi on peut ajouter une ‘passphrase’ afin d’améliorer la sécurité de la connexion.

Le protocole SSH permet aussi de faire plusieurs sauts entre consoles, c’est-à-dire d’ouvrir une
session sur un serveur puis d’en ouvrir une autre sur autre serveur.

Machine virtuelle

Une machine virtuelle permet de simuler l’utilisation d’un OS sans se déconnecter du principal, elle
s’affiche dans une simple fenêtre ce qui permet d’en lancer plusieurs en même temps.
Afin d’installer des machines virtuelles sur le PC nous allons utiliser l’application Virtualbox. Nous
allons installer une VM avec Debian et une avec Ubuntu.
La première possède deux interfaces réseau :
• une en NAT qui donne accès à internet
• une autre en réseau privé hôte
La deuxième possède une seule interface réseau, un réseau privé hôte qui est composé de la VM
Debian et de la VM Ubuntu, elle n’aura donc pas accès à internet.

Après avoir créer le réseau privé hôte, on peut vérifier sa disponibilité avec la commande « IP » :
• VM Ubuntu :
Dans la capture d’écran ci-dessous, la commande « ip a » affiche les informations de toutes les
interfaces réseau disponibles.
La première est le réseau localhost et la deuxième définit le réseau privé hôte que l’on a créé
auparavant. On peut vérifier que la connexion est effective en envoyant un « ping » à l’adresse de la
VM Debian.

• VM Debian :
De la même manière que pour la première, on affiche les interfaces réseau disponibles. Cette fois
nous avons respectivement le réseau localhost, le réseau privé hôte ainsi que l’interface réseau NAT.
En envoyant un « ping », on reçoit bien les paquets en retour.
On peut même vérifier la route empruntée pour atteindre la VM :

Raspberry Pi

Le Raspberry Pi est un micro-ordinateur qui permet l’exécution du système d’exploitation Linux. Il


est fourni seul et a donc besoin d’un support de stockage (carte SD) contenant le système
d’exploitation. Pas besoin d’y branché un écran ou un clavier, lors du démarrage le protocole SSH
est déjà activé, on peut alors se connecter et le contrôler à distance.
connexion SSH :
On se connecte au Raspberry Pi via le protocole SSH, il suffit de renseigner le login « pi » et son
adresse IP.
La commande SSH nous permet de mettre en place une connexion sécurisé entre le Raspberry et
l’ordinateur.
Une fois connecté au Raspberry on peut accéder a un menu simple à partir du quel nous avons accès
aux paramètres de celui-ci depuis le terminal avec la commande « raspi-config »

extension à l’ensemble de la carte SD

Utilisation de la caméra :
Pour capturer une image ou une vidéo avec la caméra du Raspberry Pi, il existe deux commandes :
• raspistill : permet de capturer une image avec un grand nombre de paramètres
• raspivid : permet la capture d’une vidéo avec tous les paramètres qui permettent de modifier
la résolution, la durée, les FPS, etc
Afin de récupérer la vidéo que nous avons pris avec le Raspberry, nous effectuons un transfert de
fichier sécurisé via le protocole SSH avec la commande « scp ».
Ici, nous nous sommes déconnecté du Raspberry pour effectuer le transfert mais il est possible de le
faire dans les deux sens :
Transfert du fichier du Raspberry vers le PC :

Vous aimerez peut-être aussi