IP et le routage

25/09/2020 Categories: Réseau, Tutoriel Tags: Aucun commentaire

Excellent article de Christian Caleca grâce auquel j’ai pu approfondir mes connaissances et ma compréhension des bases du réseau IP.

Je potasse encore car j’ai parfois des lacunes.

Merci Christian


1. IP et le Routage

ip routageLes réseaux informatiques ont ceci d’intéressant : Ils couvrent des besoins aussi simples que la connexion entre deux hôtes sur un réseau local que l’interconnexion de systèmes à l’échelle planétaire.

Ici, nous allons nous intéresser à quelques aspects nécessaires à une bonne compréhension de ce qu’il se passe sur notre connexion Internet par le câble (nous verrons pourquoi cette connexion diffère fondamentalement d’autres moyens comme l’ADSL, le RTC ou l’ISDN).

Vous trouverez dans cet exposé :

  • une définition de ce que sont les adresses MAC et IP ;
  • ce que sont les réseaux physiques et les réseaux logiques ;
  • quels sont les composants d’interconnexion de réseaux les plus courants ;
  • comment les données circulent d’un réseau à l’autre ;
  • une manipulation destinée à toucher du doigt les problèmes du routage.

2. Physique/Logique

2-1. Qu’est-ce qu’une adresse MAC ?

Media Access Control

C’est une adresse écrite en « dur » dans le « firmware » d’un équipement réseau, le plus souvent une interface réseau.

Cette adresse est définie sur six octets.

  • Les trois premiers (les plus à gauche) sont attribués au constructeur.
  • Les trois derniers sont spécifiques à un équipement matériel donné.

Au total, une adresse MAC est censée être unique au monde.

Son but est d’identifier sans aucune ambigüité possible un nœud sur un réseau. Elle est utilisée par le niveau 2 du modèle OSI pour l’acheminement des données d’une source vers une cible.

Il faut bien comprendre que cette adresse est indispensable, parce qu’elle est la seule qui soit définie à la mise en route d’un système, puisqu’elle réside dans une ROM. D’ailleurs, certains protocoles réseau simples se contentent de cette adresse pour fonctionner. NetBEUI en est un exemple. De plus, au niveau 2 du modèle OSI, c’est la seule adresse en mesure d’être utilisée.

Toute autre adresse qui sera ajoutée avec l’installation du système sera une adresse plus évoluée, destinée à gérer les réseaux de façon logique, mais l’adresse MAC demeure indispensable.

2-2. Avantages et inconvénients

Nous l’avons vu, le principal avantage est que cette adresse unique est disponible immédiatement lors de la procédure de « boot » et qu’elle est alors la seule disponible, de plus, c’est la seule qui soit utilisable dans les couches basses du réseau.

Son principal inconvénient est qu’elle est physiquement attachée à un hôte. Pour en changer, il faut changer d’interface (il y a des astuces pour qu’il en soit autrement, surtout avec Linux, mais je ne vous les dévoilerai pas… Un internaute politiquement correct n’a pas besoin de les connaitre). De plus, la répartition de ces adresses sur un réseau est faite de manière quasi aléatoire, il n’y a que le constructeur de l’interface qui maitrise cette adresse. Il est donc impossible d’organiser cet adressage de manière logique.

2-3. Adresse IP

Nous n’allons pas revenir sur les détails de cette adresse, abondamment traités dans le chapitre précédent. Cette adresse sera ici d’une importance fondamentale.

2-4. Mise en garde

Nous avons dit et redit que la couche 2 n’utilise que l’adresse MAC pour acheminer les données. Au passage de la couche 3 (qui utilise une adresse logique, IP dans notre cas) à la couche 2 (et réciproquement), il faudra donc disposer d’une table d’équivalence entre les adresses IP et les adresses MAC du réseau.

2-5. Réseau physique ou logique

Ici, nous allons faire abstraction du support choisi (autant que possible) et nous intéresser à la façon de connecter les systèmes entre eux.

2-5-1. Un réseau physique

2-5-1-1. Le principe
img01

Voici un réseau physique :

  • tous les hôtes sont connectés entre eux au moyen du même support de transport ;
  • tous les hôtes sont en mesure de communiquer entre eux directement, sans besoin d’une quelconque passerelle.

Un réseau physique, c’est relativement facile à comprendre. Vous prenez un HUB, vous y connectez autant de postes que vous pouvez avec des câbles de cuivre en paire torsadée et vous avez construit un réseau physique.

Vous vous arrangez pour que tous les postes disposent du même logiciel réseau, par exemple Windows avec le protocole NetBEUI et le tour est joué. Vous pouvez partager des ressources entre les postes. Finalement, c’est assez simple. Oui mais, c’est parce que vos besoins sont simples. Si vous voulez utiliser TCP/IP, il faudra alors définir des adresses IP pour chacune de vos machines, adresses choisies dans le même réseau logique (voir le chapitre TCP/IP) et votre réseau fonctionnera aussi bien. Pourtant, NetBEUI n’introduit pasd’adresse logique.

2-5-1-2. Comment ça marche

La question est très compliquée, mais il est encore possible ici de donner une réponse simple et satisfaisante pour l’instant.

Les informations qui transitent sur le réseau sont visibles par tous les hôtes du réseau. Cependant, un système d’adresse unique par hôte (adresse MAC) permet au destinataire de se reconnaître et de récupérer l’information. Disons que dans un groupe de cinq personnes qui vaquent chacune à leurs occupations, vous posez une question à un membre du groupe. Tout le groupe entend la question, mais celui à qui elle est destinée se reconnaît et vous répond. Les autres entendent aussi la réponse, mais savent qu’ils ne sont pas concernés et nel’écoutent pas. Notez que si vous êtes capable d’analyser parfaitement tous les mécanismes mis en œuvre dans cet exemple, vous avez déjà pratiquement tout compris sur les principes des réseaux locaux.

2-5-1-3. Ça peut se compliquer…

Nous verrons, avec les passerelles, qu’un réseau physique peut être un peu plus compliqué que ça. Les ponts, qui sont des passerelles travaillant au niveau 2 (avec les adresses MAC) permettent de connecter deux réseaux physiques pour qu’ils n’en fassent plus qu’un.

2-5-2. Un réseau logique

2-5-2-1. Le principe

La notion de réseau logique est déjà un peu plus délicate, parce qu’elle n’est pas directement liée au câblage.

Il est peut-être nécessaire de reprendre le modèle théorique d’un OS réseau. À gauche, le modèle OSI en sept couches, à droite le modèle DOD de TCP/IP, plus pragmatique. Nous allons tout de même utiliser le modèle OSI qui décompose mieux les diverses fonctions.

img02

Pour l’étude des réseaux, ce sont surtout les trois premières couches OSI qui nous intéressent. Nous avons déjà parlé de la couche physique et de la couche liaison. Parler d’un réseau physique, c’est parler d’un réseau en le regardant au niveau 2.

Un réseau logique en revanche fait intervenir la couche 3. Il existe toujours une adresse unique par hôte, mais cette adresse est logique, l’adresse IP en ce qui nous concerne, et cette adresse est exploitée par niveau 3

2-5-2-2. Comment ça marche

Comme l’adresse utilisée est fixée par une stratégie définie par l’architecte du réseau et non par le hasard de la construction de la machine, il devient possible d’organiser les transferts de données d’une manière optimale en fonction des besoins. Deux réseaux logiques ne pourront communiquer entre eux que par l’intermédiaire d’un routeur, ce qui permet non seulement d’optimiser les flux de données, mais encore d’assurer un minimum de sécurité parce que l’on va pouvoir effectuer un contrôle d’accès au niveau de ces routeurs (fonctions de « firewalls »).

Il ne nous reste plus maintenant qu’à regarder d’un peu plus près les passerelles les plus courantes.

Lire la suite…

Categories: Réseau, Tutoriel Tags:

Tcpdump

24/09/2020 Categories: Réseau Tags: , , Aucun commentaire

Dans un réseau ethernet relié par un concentrateur (ou hub), chaque machines reçoit tous les paquets qui circulent sur le réseau. En fonctionnement normal, les cartes réseau ne réceptionnent que les paquets qui leur sont destinés, mais on peut faire en sorte qu’elles transmettent tous les paquets au système et les inspecter avec tcpdump.

Les hubs sont de moins en moins utilisés. Ils sont généralement remplacés par des commutateurs (ou switch) qui savent déterminer (en fonction de l’adresses MAC) sur quel câble il faut envoyer un paquet. Les machines ne reçoivent donc généralement que les paquets qui leur sont destinés.

L’utilitaire tcpdump permet d’inspecter les paquets qui sont reçus et transmis par une carte réseau.

Filtrage

Il est possible de sélectionner les paquets à “écouter” en fonction d’expressions. Ainsi, ne seront affichées / traitées que les informations pour lesquelles le résultat de l’expression est vérifié. Une expression est composée de primitives et d’opérateurs logiques.

Une primitive est un identifiant précédé de mots clés qui indiquent le type de l’identifiant. Par exemple la primitive src port 21 contient les éléments suivants :

  • le mot clé src qui indique que l’identifiant ne porte que sur la source du paquet
  • le mot clé port qui indique que l’identifiant est le port du paquet
  • l’identifiant 21

La primitive correspond donc au port source 21.

Lire la suite…

Categories: Réseau Tags: , ,

Administration réseau sous Linux: SSH

24/09/2020 Categories: Réseau, Système, Tutoriel Tags: , Aucun commentaire

Source: Wikilivres

SSH signifie Secure SHell. C’est un protocole qui permet de faire des connexions sécurisées (i.e. cryptées) entre un serveur et un client SSH.

On peut l’utiliser pour se connecter à une machine distante comme avec telnet, pour transférer des fichiers de manière sécurisée ou pour créer des tunnels. Les tunnels permettent sécuriser des protocoles qui ne le sont pas en faisant passer les données par une connexion SSH.

Sections

Le système de clés de SSH

Cryptographie asymétrique

SSH utilise la cryptographie asymétrique RSA ou DSA. En cryptographie asymétrique, chaque personne dispose d’un couple de clé : une clé publique et une clé privée. La clé publique peut être librement publiée tandis que chacun doit garder sa clé privée secrète. La connaissance de la clé publique ne permet pas d’en déduire la clé privée.

Si la personne A veut envoyer un message confidentiel à la personne B, A crypte le message avec la clé publique de B et l’envoie à B sur un canal qui n’est pas forcément sécurisé. Seul B pourra décrypter le message en utilisant sa clé privée.

Cryptographie symétrique

SSH utilise également la cryptographie symétrique. Son principe est simple : si A veut envoyer un message confidentiel à B, A et B doivent d’abord posséder une même clé secrète. A crypte le message avec la clé sécrète et l’envoie à B sur un canal qui n’est pas forcément sécurisé. B décrypte le message grâce à la clé secrète.

Toute autre personne en possession de la clé secrète peut décrypter le message.

La cryptographie symétrique est beaucoup moins gourmande en ressources processeur que la cryptographie asymétrique, mais le gros problème est l’échange de la clé secrète entre A et B. Dans le protocole SSL, qui est utilisé par les navigateurs Web et par SSH, la cryptographique asymétrique est utilisée au début de la communication pour que A et B puissent s’échanger une clé secrète de manière sécurisée, puis la suite la communication est sécurisée grâce à la cryptographie symétrique en utilisant la clé secrète échangée.

Lire la suite…

Categories: Réseau, Système, Tutoriel Tags: ,

Administration réseau sous Linux: Apache

23/09/2020 Categories: Logiciel Tags: , , Comments off

Source: Wikilivres

Apache est un serveur HTTP libre. Un serveur HTTP permet d’héberger des sites web qui seront accessibles avec un navigateur tel que Mozilla Firefox, Internet Explorer ou encore Chrome.

Un site web peut fournir tout type de contenu (des fichiers textes, HTML, Flash, zip…). Ce contenu peut être statique (le serveur transmet un fichier au navigateur) ou dynamique (le contenu est généré par un programme exécuté par le serveur). Les sites web contiennent généralement plusieurs types de documents, certains étant statiques et d’autres dynamiques.

Nous traiterons ici d’Apache 2.2 sur un système Debian (et ses dérivés, comme Ubuntu).

Fichiers log

Par défaut sous Debian, Apache enregistre les erreurs dans le fichier /var/log/apache2/error.log. Quand quelque chose ne fonctionne pas, ce fichier fournit souvent des pistes pour trouver la solution.

Il enregistre également toutes les requêtes dans /var/log/apache2/access.log.

Configuration de base

Sous Debian, Apache se lance automatiquement lorsqu’on l’installe et à chaque démarrage du système. Lorsqu’on modifie sa configuration, il faut lui faire prendre connaissance des changements avec la commande

/etc/init.d/apache2 reload

Pour l’arrêter, le lancer ou le relancer on utilisera la même commande avec stop, start ou restart.

Pour d’autres systèmes il faudra consulter la documentation du système ou celle d’Apache [archive].

Configuration du serveur

La configuration [archive] du serveur se trouve dans /etc/apache2/apache2.conf. Ce fichier contient des instructions Include [archive] qui permettent de déplacer certaines parties de la configuration dans d’autres fichiers. Debian utilise cette fonctionnalité pour les modules [archive] (comme PHP) et la gestion des serveurs virtuels [archive] :

Configuration des modules

Le répertoire /etc/apache2/mods-available contient les modules installés. Le répertoire /etc/apache2/mods-enabled contient les modules activés. Les modules activés sont des liens symboliques vers les modules installés.

Pour activer ou désactiver un module, on peut manipuler directement les liens ou utiliser les commandes a2enmod et a2dismod (voir les pages de man).

Configuration des sites

De la même manière, le répertoire /etc/apache2/sites-available contient les sites web disponibles et /etc/apache2/sites-enabled les sites activés. Il en existe un préinstallé : le site default.

Les sites peuvent s’activer ou se désactiver en manipulant les liens dans sites-enabled ou en utilisant a2ensite et a2dissite. Lire la suite…

Categories: Logiciel Tags: , ,

Administration réseau sous Linux: Netfilter

Source: Wikilivres

Netfilter est un module qui permet de filtrer et de manipuler les paquets réseau qui passent dans le système.

Il fournit à Linux :

  • des fonctions de pare-feu et notamment le contrôle des machines qui peuvent se connecter, sur quels ports, de l’extérieur vers l’intérieur, ou de l’intérieur vers l’extérieur du réseau ;
  • de traduction d’adresse (NAT) pour partager une connexion internet (masquerading), masquer des machines du réseau local, ou rediriger des connexions ;
  • et d’historisation du trafic réseau.

iptables est la commande qui permet de configurer Netfilter.

Sections

Fonctionnement

Netfilter intercepte les paquets réseau à différents endroits du système (à la réception, avant de les transmettre aux processus, avant des les envoyer à la carte réseau, etc.). Les paquets interceptés passent à travers des chaînes qui vont déterminer ce que le système doit faire avec le paquet. En modifiant ces chaines on va pouvoir bloquer certains paquets et en laisser passer d’autres.

Filtrage

 

Netfilter_schema_-_Filter_table_only
Principal cheminement des paquets à travers Netfilter

Dans son fonctionnement le plus simple, Netfilter permet de jeter ou de laisser passer les paquets qui entrent et qui sortent.

Il fournit pour cela trois chaînes principales :

  • une chaîne INPUT pour filtrer les paquets à destination du système,
  • une chaîne OUTPUT pour filtrer les paquets émis par les processus du système,
  • et une chaîne FORWARD pour filtrer les paquets que le système doit transmettre.

En ajoutant des règles dans ces chaînes on pourra laisser passer ou jeter les paquets suivant certains critères.

Lire la suite…